]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: add ngpios for vf610 compatible gpio controllers
authorHaibo Chen <haibo.chen@nxp.com>
Tue, 20 May 2025 03:46:14 +0000 (11:46 +0800)
committerShawn Guo <shawnguo@kernel.org>
Thu, 19 Jun 2025 03:49:13 +0000 (11:49 +0800)
After commit da5dd31efd24 ("gpio: vf610: Switch to gpio-mmio"),
the vf610 GPIO driver no longer uses the static number 32 for
gc->ngpio. This allows users to configure the number of GPIOs
per port.

And some gpio controllers did have less pads. So add 'ngpios' here,
this can save some memory when request bitmap, and also show user
more accurate information when use gpio tools.

Besides, some gpio controllers have hole in the gpio ranges, so use
'gpio-reserved-ranges' to cover that, then the gpioinfo tool show the
correct result.

Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Reviewed-by: Stefan Wahren <wahrenst@gmx.net>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx8ulp.dtsi
arch/arm64/boot/dts/freescale/imx93.dtsi
arch/arm64/boot/dts/freescale/imx94.dtsi
arch/arm64/boot/dts/freescale/imx95.dtsi

index 2562a35286c208869d11d7fb970ac84638f45088..13b01f3aa2a4950c37e72e04f6bfb5995dc19178 100644 (file)
                                         <&pcc4 IMX8ULP_CLK_PCTLE>;
                                clock-names = "gpio", "port";
                                gpio-ranges = <&iomuxc1 0 32 24>;
+                               ngpios = <24>;
                };
 
                gpiof: gpio@2d010000 {
                                         <&pcc4 IMX8ULP_CLK_PCTLF>;
                                clock-names = "gpio", "port";
                                gpio-ranges = <&iomuxc1 0 64 32>;
+                               ngpios = <32>;
                };
 
                per_bridge5: bus@2d800000 {
                                 <&pcc5 IMX8ULP_CLK_RGPIOD>;
                        clock-names = "gpio", "port";
                        gpio-ranges = <&iomuxc1 0 0 24>;
+                       ngpios = <24>;
                };
        };
 };
index 64cd0776b43d38219fee312baadd4665674a141e..52be83a168d9ee6452a63039c89169d49b63eb60 100644 (file)
                                 <&clk IMX93_CLK_GPIO2_GATE>;
                        clock-names = "gpio", "port";
                        gpio-ranges = <&iomuxc 0 4 30>;
+                       ngpios = <30>;
                };
 
                gpio3: gpio@43820000 {
                        clock-names = "gpio", "port";
                        gpio-ranges = <&iomuxc 0 84 8>, <&iomuxc 8 66 18>,
                                      <&iomuxc 26 34 2>, <&iomuxc 28 0 4>;
+                       ngpios = <32>;
                };
 
                gpio4: gpio@43830000 {
                                 <&clk IMX93_CLK_GPIO4_GATE>;
                        clock-names = "gpio", "port";
                        gpio-ranges = <&iomuxc 0 38 28>, <&iomuxc 28 36 2>;
+                       ngpios = <30>;
                };
 
                gpio1: gpio@47400000 {
                                 <&clk IMX93_CLK_GPIO1_GATE>;
                        clock-names = "gpio", "port";
                        gpio-ranges = <&iomuxc 0 92 16>;
+                       ngpios = <16>;
                };
 
                ocotp: efuse@47510000 {
index 3661ea48d7d2994df7b02084e9681beb303aa133..b8ffc428e95be1938bf5e73316b4163acaa04701 100644 (file)
                        #gpio-cells = <2>;
                        gpio-controller;
                        gpio-ranges = <&scmi_iomuxc 0 4 32>;
+                       ngpios = <32>;
                };
 
                gpio3: gpio@43820000 {
                        #gpio-cells = <2>;
                        gpio-controller;
                        gpio-ranges = <&scmi_iomuxc 0 36 26>;
+                       ngpios = <26>;
                };
 
                gpio4: gpio@43840000 {
                        gpio-controller;
                        gpio-ranges = <&scmi_iomuxc 0 62 4>, <&scmi_iomuxc 4 0 4>,
                                      <&scmi_iomuxc 8 140 12>, <&scmi_iomuxc 20 164 12>;
+                       ngpios = <32>;
                };
 
                gpio5: gpio@43850000 {
                        #gpio-cells = <2>;
                        gpio-controller;
                        gpio-ranges = <&scmi_iomuxc 0 108 32>;
+                       ngpios = <32>;
                };
 
                gpio6: gpio@43860000 {
                        #gpio-cells = <2>;
                        gpio-controller;
                        gpio-ranges = <&scmi_iomuxc 0 66 32>;
+                       ngpios = <32>;
                };
 
                gpio7: gpio@43870000 {
                        #gpio-cells = <2>;
                        gpio-controller;
                        gpio-ranges = <&scmi_iomuxc 0 98 10>, <&scmi_iomuxc 16 152 12>;
+                       gpio-reserved-ranges = <10 6>;
+                       ngpios = <28>;
                };
 
                aips1: bus@44000000 {
index a7a03243dc2a737814afd11dd344753a1e9762a9..f142c743f786fb5dbd67f8e52c8061bd2815a492 100644 (file)
                                 <&scmi_clk IMX95_CLK_BUSWAKEUP>;
                        clock-names = "gpio", "port";
                        gpio-ranges = <&scmi_iomuxc 0 4 32>;
+                       ngpios = <32>;
                };
 
                gpio3: gpio@43820000 {
                        clock-names = "gpio", "port";
                        gpio-ranges = <&scmi_iomuxc 0 104 8>, <&scmi_iomuxc 8 74 18>,
                                      <&scmi_iomuxc 26 42 2>, <&scmi_iomuxc 28 0 4>;
+                       ngpios = <32>;
                };
 
                gpio4: gpio@43840000 {
                                 <&scmi_clk IMX95_CLK_BUSWAKEUP>;
                        clock-names = "gpio", "port";
                        gpio-ranges = <&scmi_iomuxc 0 46 28>, <&scmi_iomuxc 28 44 2>;
+                       ngpios = <30>;
                };
 
                gpio5: gpio@43850000 {
                                 <&scmi_clk IMX95_CLK_BUSWAKEUP>;
                        clock-names = "gpio", "port";
                        gpio-ranges = <&scmi_iomuxc 0 92 12>, <&scmi_iomuxc 12 36 6>;
+                       ngpios = <18>;
                };
 
                aips1: bus@44000000 {
                                 <&scmi_clk IMX95_CLK_M33>;
                        clock-names = "gpio", "port";
                        gpio-ranges = <&scmi_iomuxc 0 112 16>;
+                       ngpios = <16>;
                        status = "disabled";
                };