From: "Jonathan Neuschäfer" <j.neuschaefer@gmx.net> To: linux-gpio@vger.kernel.org, devicetree@vger.kernel.org Cc: "Linus Walleij" <linus.walleij@linaro.org>, "Rob Herring" <robh+dt@kernel.org>, openbmc@lists.ozlabs.org, "Tomer Maimon" <tmaimon77@gmail.com>, "Joel Stanley" <joel@jms.id.au>, linux-kernel@vger.kernel.org, "Jonathan Neuschäfer" <j.neuschaefer@gmx.net> Subject: [PATCH 0/8] Nuvoton WPCM450 pinctrl and GPIO driver Date: Wed, 2 Jun 2021 14:03:21 +0200 [thread overview] Message-ID: <20210602120329.2444672-1-j.neuschaefer@gmx.net> (raw) This series adds support for pinctrl and GPIO in the Nuvoton WPCM450 SoC. Both my DT bindings and my driver are based on the work done by others for the newer Nuvoton NPCM7xx SoC, and I've tried to keep both similar. Instead of extending the pinctrl-npcm7xx driver to add WPCM450 support, I copied/forked it. The pinmux mechanism is very similar (using MFSEL1 and MFSEL2 registers), but the GPIO register interface has been redesigned for NPCM7xx; adding support for the older GPIO controller would make the driver harder to understand, while only enabling a small amount of code sharing. The DT binding in YAML format might make a good template for also converting the nuvoton,npcm7xx-pinctrl binding to YAML. Both in the DT binding and in the driver I kept the name "pinctrl". For the driver, I find it accurate enough because it handles pinctrl and GPIO. For the DT node, it's a bit less accurate because the register block at 0xb8003000 is about GPIOs, and pin control happens in the global control registers (GCR) block, except for input debouncing. So, "GPIO" might be the more appropriate name component there. Jonathan Neuschäfer (8): dt-bindings: arm/npcm: Add binding for global control registers (GCR) MAINTAINERS: Match all of bindings/arm/npcm/ as part of NPCM architecture ARM: dts: wpcm450: Add global control registers (GCR) node dt-bindings: pinctrl: Add Nuvoton WPCM450 pinctrl: nuvoton: Add driver for WPCM450 ARM: dts: wpcm450: Add pinctrl node ARM: dts: wpcm450: Add pin functions ARM: dts: wpcm450-supermicro-x9sci-ln4f: Add GPIO LEDs and buttons .../bindings/arm/npcm/nuvoton,gcr.yaml | 38 + .../pinctrl/nuvoton,wpcm450-pinctrl.yaml | 142 ++ MAINTAINERS | 2 + .../nuvoton-wpcm450-supermicro-x9sci-ln4f.dts | 27 + arch/arm/boot/dts/nuvoton-wpcm450.dtsi | 321 +++++ drivers/pinctrl/Makefile | 2 +- drivers/pinctrl/nuvoton/Kconfig | 14 + drivers/pinctrl/nuvoton/Makefile | 1 + drivers/pinctrl/nuvoton/pinctrl-wpcm450.c | 1230 +++++++++++++++++ 9 files changed, 1776 insertions(+), 1 deletion(-) create mode 100644 Documentation/devicetree/bindings/arm/npcm/nuvoton,gcr.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/nuvoton,wpcm450-pinctrl.yaml create mode 100644 drivers/pinctrl/nuvoton/pinctrl-wpcm450.c -- 2.30.2
WARNING: multiple messages have this Message-ID (diff)
From: "Jonathan Neuschäfer" <j.neuschaefer@gmx.net> To: linux-gpio@vger.kernel.org, devicetree@vger.kernel.org Cc: "Tomer Maimon" <tmaimon77@gmail.com>, "Linus Walleij" <linus.walleij@linaro.org>, linux-kernel@vger.kernel.org, "Jonathan Neuschäfer" <j.neuschaefer@gmx.net>, "Rob Herring" <robh+dt@kernel.org>, openbmc@lists.ozlabs.org Subject: [PATCH 0/8] Nuvoton WPCM450 pinctrl and GPIO driver Date: Wed, 2 Jun 2021 14:03:21 +0200 [thread overview] Message-ID: <20210602120329.2444672-1-j.neuschaefer@gmx.net> (raw) This series adds support for pinctrl and GPIO in the Nuvoton WPCM450 SoC. Both my DT bindings and my driver are based on the work done by others for the newer Nuvoton NPCM7xx SoC, and I've tried to keep both similar. Instead of extending the pinctrl-npcm7xx driver to add WPCM450 support, I copied/forked it. The pinmux mechanism is very similar (using MFSEL1 and MFSEL2 registers), but the GPIO register interface has been redesigned for NPCM7xx; adding support for the older GPIO controller would make the driver harder to understand, while only enabling a small amount of code sharing. The DT binding in YAML format might make a good template for also converting the nuvoton,npcm7xx-pinctrl binding to YAML. Both in the DT binding and in the driver I kept the name "pinctrl". For the driver, I find it accurate enough because it handles pinctrl and GPIO. For the DT node, it's a bit less accurate because the register block at 0xb8003000 is about GPIOs, and pin control happens in the global control registers (GCR) block, except for input debouncing. So, "GPIO" might be the more appropriate name component there. Jonathan Neuschäfer (8): dt-bindings: arm/npcm: Add binding for global control registers (GCR) MAINTAINERS: Match all of bindings/arm/npcm/ as part of NPCM architecture ARM: dts: wpcm450: Add global control registers (GCR) node dt-bindings: pinctrl: Add Nuvoton WPCM450 pinctrl: nuvoton: Add driver for WPCM450 ARM: dts: wpcm450: Add pinctrl node ARM: dts: wpcm450: Add pin functions ARM: dts: wpcm450-supermicro-x9sci-ln4f: Add GPIO LEDs and buttons .../bindings/arm/npcm/nuvoton,gcr.yaml | 38 + .../pinctrl/nuvoton,wpcm450-pinctrl.yaml | 142 ++ MAINTAINERS | 2 + .../nuvoton-wpcm450-supermicro-x9sci-ln4f.dts | 27 + arch/arm/boot/dts/nuvoton-wpcm450.dtsi | 321 +++++ drivers/pinctrl/Makefile | 2 +- drivers/pinctrl/nuvoton/Kconfig | 14 + drivers/pinctrl/nuvoton/Makefile | 1 + drivers/pinctrl/nuvoton/pinctrl-wpcm450.c | 1230 +++++++++++++++++ 9 files changed, 1776 insertions(+), 1 deletion(-) create mode 100644 Documentation/devicetree/bindings/arm/npcm/nuvoton,gcr.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/nuvoton,wpcm450-pinctrl.yaml create mode 100644 drivers/pinctrl/nuvoton/pinctrl-wpcm450.c -- 2.30.2
next reply other threads:[~2021-06-02 12:03 UTC|newest] Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-06-02 12:03 Jonathan Neuschäfer [this message] 2021-06-02 12:03 ` [PATCH 0/8] Nuvoton WPCM450 pinctrl and GPIO driver Jonathan Neuschäfer 2021-06-02 12:03 ` [PATCH 1/8] dt-bindings: arm/npcm: Add binding for global control registers (GCR) Jonathan Neuschäfer 2021-06-02 12:03 ` Jonathan Neuschäfer 2021-06-04 8:00 ` Linus Walleij 2021-06-04 8:00 ` Linus Walleij 2021-06-13 9:20 ` Jonathan Neuschäfer 2021-06-13 9:20 ` Jonathan Neuschäfer 2021-06-15 23:43 ` Rob Herring 2021-06-15 23:43 ` Rob Herring 2021-06-19 10:08 ` Jonathan Neuschäfer 2021-06-19 10:08 ` Jonathan Neuschäfer 2021-06-02 12:03 ` [PATCH 2/8] MAINTAINERS: Match all of bindings/arm/npcm/ as part of NPCM architecture Jonathan Neuschäfer 2021-06-02 12:03 ` Jonathan Neuschäfer 2021-06-02 12:03 ` [PATCH 3/8] ARM: dts: wpcm450: Add global control registers (GCR) node Jonathan Neuschäfer 2021-06-02 12:03 ` Jonathan Neuschäfer 2021-06-04 8:01 ` Linus Walleij 2021-06-04 8:01 ` Linus Walleij 2021-06-13 9:23 ` Jonathan Neuschäfer 2021-06-13 9:23 ` Jonathan Neuschäfer 2021-06-02 12:03 ` [PATCH 4/8] dt-bindings: pinctrl: Add Nuvoton WPCM450 Jonathan Neuschäfer 2021-06-02 12:03 ` Jonathan Neuschäfer 2021-06-04 9:35 ` Linus Walleij 2021-06-04 9:35 ` Linus Walleij 2021-06-13 9:53 ` Jonathan Neuschäfer 2021-06-13 9:53 ` Jonathan Neuschäfer 2021-06-15 23:45 ` Rob Herring 2021-06-15 23:45 ` Rob Herring 2021-06-19 10:17 ` Jonathan Neuschäfer 2021-06-19 10:17 ` Jonathan Neuschäfer 2021-06-02 12:03 ` [PATCH 5/8] pinctrl: nuvoton: Add driver for WPCM450 Jonathan Neuschäfer 2021-06-02 12:03 ` Jonathan Neuschäfer 2021-06-02 12:50 ` Andy Shevchenko 2021-06-02 12:50 ` Andy Shevchenko 2021-06-12 23:20 ` Jonathan Neuschäfer 2021-06-12 23:20 ` Jonathan Neuschäfer 2021-06-13 10:06 ` Andy Shevchenko 2021-06-13 10:06 ` Andy Shevchenko 2021-06-13 19:08 ` Jonathan Neuschäfer 2021-06-13 19:08 ` Jonathan Neuschäfer 2021-06-02 14:31 ` kernel test robot 2021-06-02 14:31 ` kernel test robot 2021-06-02 14:31 ` kernel test robot 2021-06-03 18:33 ` kernel test robot 2021-06-03 18:33 ` kernel test robot 2021-06-03 18:33 ` kernel test robot 2021-06-04 9:31 ` Linus Walleij 2021-06-04 9:31 ` Linus Walleij 2021-06-13 10:26 ` Jonathan Neuschäfer 2021-06-13 10:26 ` Jonathan Neuschäfer 2021-06-02 12:03 ` [PATCH 6/8] ARM: dts: wpcm450: Add pinctrl node Jonathan Neuschäfer 2021-06-02 12:03 ` Jonathan Neuschäfer 2021-06-02 12:03 ` [PATCH 7/8] ARM: dts: wpcm450: Add pin functions Jonathan Neuschäfer 2021-06-02 12:03 ` Jonathan Neuschäfer 2021-06-02 12:03 ` [PATCH 8/8] ARM: dts: wpcm450-supermicro-x9sci-ln4f: Add GPIO LEDs and buttons Jonathan Neuschäfer 2021-06-02 12:03 ` 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=20210602120329.2444672-1-j.neuschaefer@gmx.net \ --to=j.neuschaefer@gmx.net \ --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+dt@kernel.org \ --cc=tmaimon77@gmail.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.