From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Jacky Huang <ychuang570808@gmail.com>,
linus.walleij@linaro.org, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
p.zabel@pengutronix.de, j.neuschaefer@gmx.net
Cc: linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
schung@nuvoton.com, Jacky Huang <ychuang3@nuvoton.com>
Subject: Re: [PATCH 3/4] arm64: dts: nuvoton: Add pinctrl support for ma35d1
Date: Thu, 12 Oct 2023 21:46:26 +0200 [thread overview]
Message-ID: <9a831a6e-ab5e-4911-8011-f6eb82dd3d6a@linaro.org> (raw)
In-Reply-To: <20231011090510.114476-4-ychuang570808@gmail.com>
On 11/10/2023 11:05, Jacky Huang wrote:
> From: Jacky Huang <ychuang3@nuvoton.com>
>
> Add 'pinctrl' node and 'gpioa' ~ 'gpion' nodes to the dtsi of ma35d1
> SoC and describe default pin configurations.
>
> Enable all UART nodes presented on som and iot boards, and add pinctrl
> function settings to these nodes.
>
> Signed-off-by: Jacky Huang <ychuang3@nuvoton.com>
> ---
> .../boot/dts/nuvoton/ma35d1-iot-512m.dts | 83 ++++++++-
> .../boot/dts/nuvoton/ma35d1-som-256m.dts | 86 ++++++++-
> arch/arm64/boot/dts/nuvoton/ma35d1.dtsi | 175 +++++++++++++++++-
> 3 files changed, 335 insertions(+), 9 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/nuvoton/ma35d1-iot-512m.dts b/arch/arm64/boot/dts/nuvoton/ma35d1-iot-512m.dts
> index b89e2be6abae..ff0d2bf8f5bf 100644
> --- a/arch/arm64/boot/dts/nuvoton/ma35d1-iot-512m.dts
> +++ b/arch/arm64/boot/dts/nuvoton/ma35d1-iot-512m.dts
> @@ -14,6 +14,10 @@ / {
>
> aliases {
> serial0 = &uart0;
> + serial10 = &uart10;
> + serial12 = &uart12;
> + serial13 = &uart13;
> + serial14 = &uart14;
> };
>
> chosen {
> @@ -33,10 +37,6 @@ clk_hxt: clock-hxt {
> };
> };
>
> -&uart0 {
> - status = "okay";
> -};
> -
> &clk {
> assigned-clocks = <&clk CAPLL>,
> <&clk DDRPLL>,
> @@ -54,3 +54,78 @@ &clk {
> "integer",
> "integer";
> };
> +
> +&pinctrl {
> + uart0 {
> + pinctrl_uart0: uart0grp {
> + nuvoton,pins =
> + <MA35_SYS_REG_GPE_H 24 1 &pcfg_default>,
> + <MA35_SYS_REG_GPE_H 28 1 &pcfg_default>;
> + };
> + };
> +
> + uart10 {
> + pinctrl_uart10: uart10grp {
> + nuvoton,pins =
> + <MA35_SYS_REG_GPH_L 16 2 &pcfg_default>,
> + <MA35_SYS_REG_GPH_L 20 2 &pcfg_default>,
> + <MA35_SYS_REG_GPH_L 24 2 &pcfg_default>,
> + <MA35_SYS_REG_GPH_L 28 2 &pcfg_default>;
> + };
> + };
> +
> + uart12 {
> + pinctrl_uart12: uart12grp {
> + nuvoton,pins =
> + <MA35_SYS_REG_GPC_H 20 2 &pcfg_default>,
> + <MA35_SYS_REG_GPC_H 24 2 &pcfg_default>,
> + <MA35_SYS_REG_GPC_H 28 2 &pcfg_default>;
> + };
> + };
> +
> + uart13 {
> + pinctrl_uart13: uart13grp {
> + nuvoton,pins =
> + <MA35_SYS_REG_GPH_H 16 3 &pcfg_default>,
> + <MA35_SYS_REG_GPH_H 20 3 &pcfg_default>;
> + };
> + };
> +
> + uart14 {
> + pinctrl_uart14: uart14grp {
> + nuvoton,pins =
> + <MA35_SYS_REG_GPH_H 24 2 &pcfg_default>,
> + <MA35_SYS_REG_GPH_H 28 2 &pcfg_default>;
> + };
> + };
> +};
> +
> +&uart0 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart0>;
> + status = "okay";
> +};
> +
> +&uart10 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart10>;
> + status = "okay";
> +};
> +
> +&uart12 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart12>;
> + status = "okay";
> +};
> +
> +&uart13 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart13>;
> + status = "okay";
> +};
> +
> +&uart14 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart14>;
> + status = "okay";
> +};
> diff --git a/arch/arm64/boot/dts/nuvoton/ma35d1-som-256m.dts b/arch/arm64/boot/dts/nuvoton/ma35d1-som-256m.dts
> index a1ebddecb7f8..c8c26f37116b 100644
> --- a/arch/arm64/boot/dts/nuvoton/ma35d1-som-256m.dts
> +++ b/arch/arm64/boot/dts/nuvoton/ma35d1-som-256m.dts
> @@ -14,6 +14,10 @@ / {
>
> aliases {
> serial0 = &uart0;
> + serial11 = &uart11;
> + serial12 = &uart12;
> + serial14 = &uart14;
> + serial16 = &uart16;
> };
>
> chosen {
> @@ -33,10 +37,6 @@ clk_hxt: clock-hxt {
> };
> };
>
> -&uart0 {
> - status = "okay";
> -};
> -
> &clk {
> assigned-clocks = <&clk CAPLL>,
> <&clk DDRPLL>,
> @@ -54,3 +54,81 @@ &clk {
> "integer",
> "integer";
> };
> +
> +&pinctrl {
> + uart0 {
> + pinctrl_uart0: uart0grp {
> + nuvoton,pins =
> + <MA35_SYS_REG_GPE_H 24 1 &pcfg_default>,
> + <MA35_SYS_REG_GPE_H 28 1 &pcfg_default>;
This does not look like generic pinctrl bindings. Looks
over-complicated. From where did you get it? Which recent bindings and
drivers where used as an example? Register addresses should be in the
driver. Bit offsets as well. "multi-pin-function-value" confuses me. All
this is not really suitable for DTS.
> + };
> + };
> +
> + uart11 {
> + pinctrl_uart11: uart11grp {
> + nuvoton,pins =
> + <MA35_SYS_REG_GPL_L 0 2 &pcfg_default>,
> + <MA35_SYS_REG_GPL_L 4 2 &pcfg_default>,
> + <MA35_SYS_REG_GPL_L 8 2 &pcfg_default>,
> + <MA35_SYS_REG_GPL_L 12 2 &pcfg_default>;
> + };
> + };
> +
> + uart12 {
> + pinctrl_uart12: uart12grp {
> + nuvoton,pins =
> + <MA35_SYS_REG_GPI_L 4 2 &pcfg_default>,
> + <MA35_SYS_REG_GPI_L 8 2 &pcfg_default>,
> + <MA35_SYS_REG_GPI_L 12 2 &pcfg_default>;
> + };
> + };
> +
> + uart14 {
> + pinctrl_uart14: uart14grp {
> + nuvoton,pins =
> + <MA35_SYS_REG_GPI_L 20 2 &pcfg_default>,
> + <MA35_SYS_REG_GPI_L 24 2 &pcfg_default>,
> + <MA35_SYS_REG_GPI_L 28 2 &pcfg_default>;
> + };
> + };
> +
> + uart16 {
> + pinctrl_uart16: uart16grp {
> + nuvoton,pins =
> + <MA35_SYS_REG_GPK_L 0 2 &pcfg_default>,
> + <MA35_SYS_REG_GPK_L 4 2 &pcfg_default>,
> + <MA35_SYS_REG_GPK_L 8 2 &pcfg_default>,
> + <MA35_SYS_REG_GPK_L 12 2 &pcfg_default>;
> + };
> + };
> +};
> +
> +&uart0 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart0>;
> + status = "okay";
> +};
> +
> +&uart11 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart11>;
> + status = "okay";
> +};
> +
> +&uart12 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart12>;
> + status = "okay";
> +};
> +
> +&uart14 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart14>;
> + status = "okay";
> +};
> +
> +&uart16 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart16>;
> + status = "okay";
> +};
> diff --git a/arch/arm64/boot/dts/nuvoton/ma35d1.dtsi b/arch/arm64/boot/dts/nuvoton/ma35d1.dtsi
> index 781cdae566a0..85431a074ab2 100644
> --- a/arch/arm64/boot/dts/nuvoton/ma35d1.dtsi
> +++ b/arch/arm64/boot/dts/nuvoton/ma35d1.dtsi
> @@ -10,6 +10,7 @@
> #include <dt-bindings/gpio/gpio.h>
> #include <dt-bindings/clock/nuvoton,ma35d1-clk.h>
> #include <dt-bindings/reset/nuvoton,ma35d1-reset.h>
> +#include <dt-bindings/pinctrl/ma35d1-pinfunc.h>
>
> / {
> compatible = "nuvoton,ma35d1";
> @@ -83,7 +84,7 @@ soc {
> ranges;
>
> sys: system-management@40460000 {
> - compatible = "nuvoton,ma35d1-reset";
> + compatible = "nuvoton,ma35d1-reset", "syscon";
> reg = <0x0 0x40460000 0x0 0x200>;
> #reset-cells = <1>;
> };
> @@ -95,6 +96,178 @@ clk: clock-controller@40460200 {
> clocks = <&clk_hxt>;
> };
>
> + pinctrl: pinctrl@40040000 {
> + compatible = "nuvoton,ma35d1-pinctrl";
> + #address-cells = <1>;
> + #size-cells = <1>;
> + nuvoton,sys = <&sys>;
> + ranges = <0x0 0x0 0x40040000 0xc00>;
> +
> + gpioa: gpioa@40040000 {
> + reg = <0x0 0x40>;
> + interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk GPA_GATE>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> +
> + gpiob: gpiob@40040040 {
> + reg = <0x40 0x40>;
> + interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk GPB_GATE>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> +
> + gpioc: gpioc@40040080 {
> + reg = <0x80 0x40>;
> + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk GPC_GATE>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> +
> + gpiod: gpiod@400400c0 {
> + reg = <0xc0 0x40>;
> + interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk GPD_GATE>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> +
> + gpioe: gpioe@40040100 {
> + reg = <0x100 0x40>;
> + interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk GPE_GATE>;
> + #gpio-cells = <2>;
> + gpio-controller;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> +
> + gpiof: gpiof@40040140 {
> + reg = <0x140 0x40>;
> + interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk GPF_GATE>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> +
> + gpiog: gpiog@40040180 {
> + reg = <0x180 0x40>;
> + interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk GPG_GATE>;
> + #gpio-cells = <2>;
> + gpio-controller;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> +
> + gpioh: gpioh@400401c0 {
> + reg = <0x1c0 0x40>;
> + interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk GPH_GATE>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> +
> + gpioi: gpioi@40040200 {
> + reg = <0x200 0x40>;
> + interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk GPI_GATE>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> +
> + gpioj: gpioj@40040240 {
> + reg = <0x240 0x40>;
> + interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk GPJ_GATE>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> +
> + gpiok: gpiok@40040280 {
> + reg = <0x280 0x40>;
> + interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk GPK_GATE>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> +
> + gpiol: gpiol@400402c0 {
> + reg = <0x2c0 0x40>;
> + interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk GPL_GATE>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> +
> + gpiom: gpiom@40040300 {
> + reg = <0x300 0x40>;
> + interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk GPM_GATE>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> +
> + gpion: gpion@40040340 {
> + reg = <0x340 0x40>;
> + interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk GPN_GATE>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> +
> + pcfg_default: pcfg-default {
> + slew-rate = <0>;
> + input-schmitt-disable;
> + bias-disable;
> + power-source = <3300>;
> + drive-strength = <0>;
> + };
> +
> + pcfg_emac_3_3v: pcfg-emac-3.3v {
Drop, unused.
> + slew-rate = <0>;
> + input-schmitt-enable;
> + bias-disable;
> + power-source = <3300>;
> + drive-strength = <1>;
> + };
> +
> + pcfg_emac_1_8v: pcfg-emac-1.8v {
Drop, unused.
> + slew-rate = <0>;
> + input-schmitt-enable;
> + bias-disable;
> + power-source = <1800>;
> + drive-strength = <1>;
> + };
> + };
> +
> uart0: serial@40700000 {
> compatible = "nuvoton,ma35d1-uart";
> reg = <0x0 0x40700000 0x0 0x100>;
Best regards,
Krzysztof
next prev parent reply other threads:[~2023-10-12 19:46 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-11 9:05 [PATCH 0/4] Add support for nuvoton ma35d1 pin control Jacky Huang
2023-10-11 9:05 ` [PATCH 1/4] dt-bindings: reset: Add syscon to nuvoton ma35d1 system-management node Jacky Huang
2023-10-12 19:30 ` Krzysztof Kozlowski
2023-10-13 6:34 ` Jacky Huang
2023-10-12 20:39 ` Rob Herring
2023-10-13 6:40 ` Jacky Huang
2023-10-11 9:05 ` [PATCH 2/4] dt-bindings: pinctrl: Document nuvoton ma35d1 pin control Jacky Huang
2023-10-12 19:41 ` Krzysztof Kozlowski
2023-10-16 4:32 ` Jacky Huang
2023-10-16 19:52 ` Krzysztof Kozlowski
2023-10-18 3:26 ` Jacky Huang
2023-10-18 5:58 ` Krzysztof Kozlowski
2023-10-18 7:01 ` Jacky Huang
2023-10-18 8:18 ` Linus Walleij
2023-10-18 9:53 ` Krzysztof Kozlowski
2023-10-18 11:41 ` Linus Walleij
2023-10-11 9:05 ` [PATCH 3/4] arm64: dts: nuvoton: Add pinctrl support for ma35d1 Jacky Huang
2023-10-12 19:46 ` Krzysztof Kozlowski [this message]
2023-10-13 6:52 ` Jacky Huang
2023-10-13 7:06 ` Krzysztof Kozlowski
2023-10-13 7:44 ` Jacky Huang
2023-10-11 9:05 ` [PATCH 4/4] pinctrl: nuvoton: Add ma35d1 pinctrl and GPIO driver Jacky Huang
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=9a831a6e-ab5e-4911-8011-f6eb82dd3d6a@linaro.org \
--to=krzysztof.kozlowski@linaro.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=j.neuschaefer@gmx.net \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=robh+dt@kernel.org \
--cc=schung@nuvoton.com \
--cc=ychuang3@nuvoton.com \
--cc=ychuang570808@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: link
Be 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).