LKML Archive on lore.kernel.org help / color / mirror / Atom feed
From: Linus Walleij <linus.walleij@linaro.org> To: Robert Marko <robert.marko@sartura.hr> Cc: Rob Herring <robh@kernel.org>, Bartosz Golaszewski <bgolaszewski@baylibre.com>, Lee Jones <lee.jones@linaro.org>, Philipp Zabel <p.zabel@pengutronix.de>, "open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>, devicetree <devicetree@vger.kernel.org>, Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, Luka Perkov <luka.perkov@sartura.hr>, jmp@epiphyte.org, Paul Menzel <pmenzel@molgen.mpg.de>, Donald Buczek <buczek@molgen.mpg.de> Subject: Re: [PATCH v6 5/6] dt-bindings: mfd: Add Delta TN48M CPLD drivers bindings Date: Mon, 4 Oct 2021 00:48:17 +0200 [thread overview] Message-ID: <CACRpkdaBUrgnyFnO0Tdae56PKR4pLN1boLpK0FMCk7eYshZ5LA@mail.gmail.com> (raw) In-Reply-To: <CA+HBbNHZyYnnyz9=4Hgav96ZH8-R-nYoi300j2x3fgei8aa4zQ@mail.gmail.com> Hi Robert, sorry for slow reply, I am a bit busy. On Tue, Aug 24, 2021 at 10:03 AM Robert Marko <robert.marko@sartura.hr> wrote: > On Wed, Aug 11, 2021 at 2:17 PM Linus Walleij <linus.walleij@linaro.org> wrote: > > > > On Tue, Aug 3, 2021 at 9:23 PM Robert Marko <robert.marko@sartura.hr> wrote: > > > > > The pins that this driver wants to expose are used for SFP-s only, > > > they are provided by the Lattice CPLD which also does other things. > > > > > > Linux has a generic SFP driver which is used to manage these SFP > > > ports, but it only supports GPIO-s, it has no concept of anything else. > > > Since the driver is fully generic, I have no idea how could one extend it > > > to effectively handle these pins internally, especially since I have more > > > switches that use the CPLD for SFP-s as well, even for 48 ports and 192 > > > pins for them. > > > > Which file is this driver in so I can look? > > Hi Linus, > Sorry for the late reply. > > Sure, here is the generic Linux driver that is used for SFP handling: > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/phy/sfp.c?h=v5.14-rc7 So this has this: enum { GPIO_MODDEF0, GPIO_LOS, GPIO_TX_FAULT, GPIO_TX_DISABLE, GPIO_RATE_SELECT, GPIO_MAX, SFP_F_PRESENT = BIT(GPIO_MODDEF0), SFP_F_LOS = BIT(GPIO_LOS), SFP_F_TX_FAULT = BIT(GPIO_TX_FAULT), SFP_F_TX_DISABLE = BIT(GPIO_TX_DISABLE), SFP_F_RATE_SELECT = BIT(GPIO_RATE_SELECT), SFP_E_INSERT = 0, SFP_E_REMOVE, This does not look general purpose to me at all? It's just some hardware engineer that thougt "GPIO" was a nice thing to call this. > > Maybe it is not a good idea to look for generic code just because > > it is convenient? I have had this problem before with GPIO, along > > the lines "lemme just do this dirty thing this one time because it > > is so convenient for me" (more or less) and the answer is still > > "no". > > > > Can you either augment the driver to handle a regmap with bit indices > > instead or write a new similar driver for that or refactor it some other > > way? > > > > It is not a simple solution to your problem, but it might be the right > > solution even if it means some more work. > > I understand your position, believe me, I spend some time looking at > what would be the logical way for these switches. > But I see no way how could the SFP driver be extended in a generic way > that would allow supporting different register layouts when it comes to pins. Why do you think you have to use the GPIO abstraction and bindings? Just invent something that satisfy your needs, the bindings are just strings. Why does the consumer have to use the GPIO binding? They can just use phandle named anything. Some "sfp-foo-resource = <&...> or so. For example I created this: Documentation/devicetree/bindings/firmware/intel,ixp4xx-network-processing-engine.yaml It's handling out a resource using a phandle. Nothing different than GPIO, regulator, clock etc. Just invent something for SFP? Yours, Linus Walleij
next prev parent reply other threads:[~2021-10-03 22:48 UTC|newest] Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-06-07 12:33 [PATCH v6 1/6] mfd: simple-mfd-i2c: Add Delta TN48M CPLD support Robert Marko 2021-06-07 12:33 ` [PATCH v6 2/6] gpio: Add Delta TN48M CPLD GPIO driver Robert Marko 2021-06-07 12:33 ` [PATCH v6 3/6] dt-bindings: reset: Add Delta TN48M Robert Marko 2021-06-07 12:33 ` [PATCH v6 4/6] reset: Add Delta TN48M CPLD reset controller Robert Marko 2021-06-07 12:33 ` [PATCH v6 5/6] dt-bindings: mfd: Add Delta TN48M CPLD drivers bindings Robert Marko 2021-06-25 11:46 ` Robert Marko 2021-07-13 22:25 ` Rob Herring 2021-07-18 9:15 ` Robert Marko 2021-07-19 10:46 ` Lee Jones 2021-07-19 22:59 ` Rob Herring 2021-07-21 14:16 ` Linus Walleij 2021-08-03 19:22 ` Robert Marko 2021-08-11 12:17 ` Linus Walleij 2021-08-24 8:03 ` Robert Marko 2021-09-07 21:02 ` Robert Marko 2021-09-25 14:47 ` Robert Marko 2021-10-03 22:48 ` Linus Walleij [this message] 2021-10-12 16:31 ` Robert Marko 2021-10-19 1:40 ` Andrew Lunn 2021-10-19 10:49 ` Robert Marko 2021-10-19 2:05 ` Andrew Lunn 2021-10-19 10:54 ` Robert Marko 2021-06-07 12:33 ` [PATCH v6 6/6] MAINTAINERS: Add Delta Networks TN48M CPLD drivers Robert Marko
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=CACRpkdaBUrgnyFnO0Tdae56PKR4pLN1boLpK0FMCk7eYshZ5LA@mail.gmail.com \ --to=linus.walleij@linaro.org \ --cc=bgolaszewski@baylibre.com \ --cc=buczek@molgen.mpg.de \ --cc=devicetree@vger.kernel.org \ --cc=jmp@epiphyte.org \ --cc=lee.jones@linaro.org \ --cc=linux-gpio@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=luka.perkov@sartura.hr \ --cc=p.zabel@pengutronix.de \ --cc=pmenzel@molgen.mpg.de \ --cc=robert.marko@sartura.hr \ --cc=robh@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).