From: "Jonathan Neuschäfer" <j.neuschaefer@gmx.net> To: Rob Herring <robh@kernel.org> Cc: "Jonathan Neuschäfer" <j.neuschaefer@gmx.net>, linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, "Linus Walleij" <linus.walleij@linaro.org>, openbmc@lists.ozlabs.org, "Tomer Maimon" <tmaimon77@gmail.com>, "Joel Stanley" <joel@jms.id.au>, linux-kernel@vger.kernel.org, "Andy Shevchenko" <andy.shevchenko@gmail.com>, "Avi Fishman" <avifishman70@gmail.com>, "Tali Perry" <tali.perry1@gmail.com>, "Patrick Venture" <venture@google.com>, "Nancy Yuen" <yuenn@google.com>, "Benjamin Fair" <benjaminfair@google.com> Subject: Re: [PATCH v3 4/9] dt-bindings: pinctrl: Add Nuvoton WPCM450 Date: Wed, 5 Jan 2022 15:40:19 +0100 [thread overview] Message-ID: <YdWt0zUh4ds1xlPz@latitude> (raw) In-Reply-To: <YdTGRY+n9XY522jg@robh.at.kernel.org> [-- Attachment #1: Type: text/plain, Size: 2097 bytes --] Hi, On Tue, Jan 04, 2022 at 04:12:21PM -0600, Rob Herring wrote: > On Fri, Dec 24, 2021 at 09:09:30PM +0100, Jonathan Neuschäfer wrote: > > This binding is heavily based on the one for NPCM7xx, because the > > hardware is similar. There are some notable differences, however: > > > > - The addresses of GPIO banks are not physical addresses but simple > > indices (0 to 7), because the GPIO registers are not laid out in > > convenient blocks. > > - Pinmux settings can explicitly specify that the GPIO mode is used. > > > > Certain pins support blink patterns in hardware. This is currently not > > modelled in the DT binding. > > > > Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net> > > > > > > --- [...] > > +patternProperties: > > + # There are three kinds of subnodes: > > + # 1. a GPIO controller node for each GPIO bank > > + # 2. a pinmux node configures pin muxing for a group of pins (e.g. rmii2) > > + # 3. a pinconf node configures properties of a single pin > > + > > + "^gpio": > > '^gpio@[0-7]$' Makes sense, I'll change it. > > + type: object > > + > > + description: > > + Eight GPIO banks (gpio@0 to gpio@7), that each contain between 14 and 18 > > + GPIOs. Some GPIOs support interrupts. > > + > > + properties: > > + reg: > > + description: GPIO bank number (0-7) > > reg: > minimum: 0 > maximum: 7 > > But there's not an actual register address range you could use instead? Unfortunately no, not easily. The GPIO bank specific registers are not arranged in a regular pattern, so the address/offset of the first register in a bank does not suffice to know the addresses of all other registers. Instead, different banks support slightly different functionality (e.g. power source configurations or automatic blinking), and the registers were crammed into the register space as tightly as possible. The full table of register offsets is in the driver, and for the aforementioned reasons, a full table is necessary. Thanks, Jonathan Neuschäfer [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: "Jonathan Neuschäfer" <j.neuschaefer@gmx.net> To: Rob Herring <robh@kernel.org> Cc: devicetree@vger.kernel.org, "Tomer Maimon" <tmaimon77@gmail.com>, "Avi Fishman" <avifishman70@gmail.com>, "Patrick Venture" <venture@google.com>, openbmc@lists.ozlabs.org, "Jonathan Neuschäfer" <j.neuschaefer@gmx.net>, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, "Andy Shevchenko" <andy.shevchenko@gmail.com>, "Tali Perry" <tali.perry1@gmail.com>, "Linus Walleij" <linus.walleij@linaro.org>, "Benjamin Fair" <benjaminfair@google.com> Subject: Re: [PATCH v3 4/9] dt-bindings: pinctrl: Add Nuvoton WPCM450 Date: Wed, 5 Jan 2022 15:40:19 +0100 [thread overview] Message-ID: <YdWt0zUh4ds1xlPz@latitude> (raw) In-Reply-To: <YdTGRY+n9XY522jg@robh.at.kernel.org> [-- Attachment #1: Type: text/plain, Size: 2097 bytes --] Hi, On Tue, Jan 04, 2022 at 04:12:21PM -0600, Rob Herring wrote: > On Fri, Dec 24, 2021 at 09:09:30PM +0100, Jonathan Neuschäfer wrote: > > This binding is heavily based on the one for NPCM7xx, because the > > hardware is similar. There are some notable differences, however: > > > > - The addresses of GPIO banks are not physical addresses but simple > > indices (0 to 7), because the GPIO registers are not laid out in > > convenient blocks. > > - Pinmux settings can explicitly specify that the GPIO mode is used. > > > > Certain pins support blink patterns in hardware. This is currently not > > modelled in the DT binding. > > > > Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net> > > > > > > --- [...] > > +patternProperties: > > + # There are three kinds of subnodes: > > + # 1. a GPIO controller node for each GPIO bank > > + # 2. a pinmux node configures pin muxing for a group of pins (e.g. rmii2) > > + # 3. a pinconf node configures properties of a single pin > > + > > + "^gpio": > > '^gpio@[0-7]$' Makes sense, I'll change it. > > + type: object > > + > > + description: > > + Eight GPIO banks (gpio@0 to gpio@7), that each contain between 14 and 18 > > + GPIOs. Some GPIOs support interrupts. > > + > > + properties: > > + reg: > > + description: GPIO bank number (0-7) > > reg: > minimum: 0 > maximum: 7 > > But there's not an actual register address range you could use instead? Unfortunately no, not easily. The GPIO bank specific registers are not arranged in a regular pattern, so the address/offset of the first register in a bank does not suffice to know the addresses of all other registers. Instead, different banks support slightly different functionality (e.g. power source configurations or automatic blinking), and the registers were crammed into the register space as tightly as possible. The full table of register offsets is in the driver, and for the aforementioned reasons, a full table is necessary. Thanks, Jonathan Neuschäfer [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2022-01-05 14:40 UTC|newest] Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-12-24 20:09 [PATCH v3 0/9] Nuvoton WPCM450 pinctrl and GPIO driver Jonathan Neuschäfer 2021-12-24 20:09 ` Jonathan Neuschäfer 2021-12-24 20:09 ` [PATCH v3 1/9] dt-bindings: arm/npcm: Add binding for global control registers (GCR) Jonathan Neuschäfer 2021-12-24 20:09 ` Jonathan Neuschäfer 2022-01-04 22:07 ` Rob Herring 2022-01-04 22:07 ` Rob Herring 2021-12-24 20:09 ` [PATCH v3 2/9] MAINTAINERS: Match all of bindings/arm/npcm/ as part of NPCM architecture Jonathan Neuschäfer 2021-12-24 20:09 ` Jonathan Neuschäfer 2021-12-24 20:09 ` [PATCH v3 3/9] ARM: dts: wpcm450: Add global control registers (GCR) node Jonathan Neuschäfer 2021-12-24 20:09 ` Jonathan Neuschäfer 2021-12-24 20:09 ` [PATCH v3 4/9] dt-bindings: pinctrl: Add Nuvoton WPCM450 Jonathan Neuschäfer 2021-12-24 20:09 ` Jonathan Neuschäfer 2022-01-04 22:12 ` Rob Herring 2022-01-04 22:12 ` Rob Herring 2022-01-05 14:40 ` Jonathan Neuschäfer [this message] 2022-01-05 14:40 ` Jonathan Neuschäfer 2021-12-24 20:09 ` [PATCH v3 5/9] pinctrl: nuvoton: Add driver for WPCM450 Jonathan Neuschäfer 2021-12-24 20:09 ` Jonathan Neuschäfer 2021-12-24 21:15 ` Andy Shevchenko 2021-12-24 21:15 ` Andy Shevchenko 2022-01-05 14:24 ` Jonathan Neuschäfer 2022-01-05 14:24 ` Jonathan Neuschäfer 2021-12-24 20:09 ` [PATCH v3 6/9] ARM: dts: wpcm450: Add pinctrl and GPIO nodes Jonathan Neuschäfer 2021-12-24 20:09 ` Jonathan Neuschäfer 2021-12-24 20:09 ` [PATCH v3 7/9] ARM: dts: wpcm450: Add pin functions Jonathan Neuschäfer 2021-12-24 20:09 ` Jonathan Neuschäfer 2021-12-24 20:09 ` [PATCH v3 8/9] ARM: dts: wpcm450-supermicro-x9sci-ln4f: Add GPIO LEDs and buttons Jonathan Neuschäfer 2021-12-24 20:09 ` Jonathan Neuschäfer 2021-12-24 20:09 ` [PATCH v3 9/9] ARM: dts: wpcm450: Add pinmux information to UART0 Jonathan Neuschäfer 2021-12-24 20:09 ` Jonathan Neuschäfer
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=YdWt0zUh4ds1xlPz@latitude \ --to=j.neuschaefer@gmx.net \ --cc=andy.shevchenko@gmail.com \ --cc=avifishman70@gmail.com \ --cc=benjaminfair@google.com \ --cc=devicetree@vger.kernel.org \ --cc=joel@jms.id.au \ --cc=linus.walleij@linaro.org \ --cc=linux-gpio@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=openbmc@lists.ozlabs.org \ --cc=robh@kernel.org \ --cc=tali.perry1@gmail.com \ --cc=tmaimon77@gmail.com \ --cc=venture@google.com \ --cc=yuenn@google.com \ /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 an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.