From ecf040339a9d38d223b71bd3f0f2ec90ff7fa2df Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 27 Nov 2025 15:58:32 +0000 Subject: [PATCH] overlays: Ensure that defined pin groups are used In order to prevent confusing problems where pin configuration is not be applied, an upcoming change to the overlaycheck utility will add a check that all added pin groups are in some way referenced by the overlay. Before that can be done, it is necessary to ensure that all existing overlays pass that test. This patch modifies some overlays by adding the required "pinctrl-0" properties, but for others that are just setting GPIOs to inputs and outputs, where those same GPIOs are declared by -gpios properties, it is better to drop the pin groups and let the GPIO subsystem set up the GPIOs as required. Removing this duplication may be helpful in the future should we ever decide to enable the exclusive GPIO vs pinctrl locking (.strict in struct pinmux_ops). See: https://forums.raspberrypi.com/viewtopic.php?t=393742 Signed-off-by: Phil Elwell --- .../boot/dts/overlays/at86rf233-overlay.dts | 19 ++--------- .../dts/overlays/audiosense-pi-overlay.dts | 10 ------ .../boot/dts/overlays/chipcap2-overlay.dts | 22 +++---------- .../boot/dts/overlays/dacberry400-overlay.dts | 12 +------ arch/arm/boot/dts/overlays/draws-overlay.dts | 4 --- .../dts/overlays/gpio-poweroff-overlay.dts | 13 +------- .../boot/dts/overlays/mcp23s17-overlay.dts | 32 +++++++++++++++++++ .../overlays/sunfounder-pipower3-overlay.dts | 12 +------ .../boot/dts/overlays/tinylcd35-overlay.dts | 15 +-------- arch/arm/boot/dts/overlays/udrc-overlay.dts | 4 --- .../vc4-kms-dsi-lt070me05000-overlay.dts | 2 ++ .../dts/overlays/vec-gpio-pi5-overlay.dts | 2 +- 12 files changed, 46 insertions(+), 101 deletions(-) diff --git a/arch/arm/boot/dts/overlays/at86rf233-overlay.dts b/arch/arm/boot/dts/overlays/at86rf233-overlay.dts index 5a3f4571ee78..2caae2e21328 100644 --- a/arch/arm/boot/dts/overlays/at86rf233-overlay.dts +++ b/arch/arm/boot/dts/overlays/at86rf233-overlay.dts @@ -34,23 +34,10 @@ }; }; - fragment@2 { - target = <&gpio>; - __overlay__ { - lowpan0_pins: lowpan0_pins { - brcm,pins = <23 24 25>; - brcm,function = <0 1 1>; /* in out out */ - }; - }; - }; - __overrides__ { - interrupt = <&lowpan0>, "interrupts:0", - <&lowpan0_pins>, "brcm,pins:0"; - reset = <&lowpan0>, "reset-gpio:4", - <&lowpan0_pins>, "brcm,pins:4"; - sleep = <&lowpan0>, "sleep-gpio:4", - <&lowpan0_pins>, "brcm,pins:8"; + interrupt = <&lowpan0>, "interrupts:0"; + reset = <&lowpan0>, "reset-gpio:4"; + sleep = <&lowpan0>, "sleep-gpio:4"; speed = <&lowpan0>, "spi-max-frequency:0"; trim = <&lowpan0>, "xtal-trim.0"; }; diff --git a/arch/arm/boot/dts/overlays/audiosense-pi-overlay.dts b/arch/arm/boot/dts/overlays/audiosense-pi-overlay.dts index a89d38b2fe19..34b1f883f80d 100644 --- a/arch/arm/boot/dts/overlays/audiosense-pi-overlay.dts +++ b/arch/arm/boot/dts/overlays/audiosense-pi-overlay.dts @@ -34,16 +34,6 @@ }; }; - fragment@2 { - target = <&gpio>; - __overlay__ { - codec_rst: codec-rst { - brcm,pins = <26>; - brcm,function = ; - }; - }; - }; - fragment@3 { target = <&i2c1>; __overlay__ { diff --git a/arch/arm/boot/dts/overlays/chipcap2-overlay.dts b/arch/arm/boot/dts/overlays/chipcap2-overlay.dts index e0b627e036cd..221b2541c909 100644 --- a/arch/arm/boot/dts/overlays/chipcap2-overlay.dts +++ b/arch/arm/boot/dts/overlays/chipcap2-overlay.dts @@ -30,16 +30,6 @@ }; fragment@1 { - target = <&gpio>; - __overlay__ { - chipcap2_pins: chipcap2_pins { - brcm,pins = <4 5 6 26>; - brcm,function = <0 0 0 1>; - }; - }; - }; - - fragment@2 { target-path = "/"; __overlay__ { chipcap2_reg: chipcap2_reg { @@ -54,13 +44,9 @@ }; __overrides__ { - ready_pin = <&chipcap2>, "interrupts:0", - <&chipcap2_pins>, "brcm,pins:0"; - low_pin = <&chipcap2>, "interrupts:8", - <&chipcap2_pins>, "brcm,pins:4"; - high_pin = <&chipcap2>, "interrupts:16", - <&chipcap2_pins>, "brcm,pins:8"; - reg_pin = <&chipcap2_reg>, "gpio:4", - <&chipcap2_pins>, "brcm,pins:12"; + ready_pin = <&chipcap2>, "interrupts:0"; + low_pin = <&chipcap2>, "interrupts:8"; + high_pin = <&chipcap2>, "interrupts:16"; + reg_pin = <&chipcap2_reg>, "gpio:4"; }; }; diff --git a/arch/arm/boot/dts/overlays/dacberry400-overlay.dts b/arch/arm/boot/dts/overlays/dacberry400-overlay.dts index c9ac11db20de..dfc357102c00 100644 --- a/arch/arm/boot/dts/overlays/dacberry400-overlay.dts +++ b/arch/arm/boot/dts/overlays/dacberry400-overlay.dts @@ -25,16 +25,6 @@ }; fragment@2 { - target = <&gpio>; - __overlay__ { - codec_rst: codec-rst { - brcm,pins = <26>; - brcm,function = <1>; - }; - }; - }; - - fragment@3 { target = <&i2c1>; __overlay__ { #address-cells = <1>; @@ -58,7 +48,7 @@ }; }; - fragment@4 { + fragment@3 { target = <&sound>; __overlay__ { compatible = "osaelectronics,dacberry400"; diff --git a/arch/arm/boot/dts/overlays/draws-overlay.dts b/arch/arm/boot/dts/overlays/draws-overlay.dts index b8801f583369..d2a8513d4cc9 100644 --- a/arch/arm/boot/dts/overlays/draws-overlay.dts +++ b/arch/arm/boot/dts/overlays/draws-overlay.dts @@ -176,10 +176,6 @@ brcm,pull = <1>; }; - aic3204_gpio: aic3204_gpio { - brcm,pins = <26>; - }; - sc16is752_irq: sc16is752_irq { brcm,pins = <17>; brcm,function = <0>; diff --git a/arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts b/arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts index 8153f83f0427..0af2b0d55c63 100644 --- a/arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts +++ b/arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts @@ -16,19 +16,8 @@ }; }; - fragment@1 { - target = <&gpio>; - __overlay__ { - power_ctrl_pins: power_ctrl_pins { - brcm,pins = <26>; - brcm,function = <1>; // out - }; - }; - }; - __overrides__ { - gpiopin = <&power_ctrl>,"gpios:4", - <&power_ctrl_pins>,"brcm,pins:0"; + gpiopin = <&power_ctrl>,"gpios:4"; active_low = <&power_ctrl>,"gpios:8"; input = <&power_ctrl>,"input?"; export = <&power_ctrl>,"export?"; diff --git a/arch/arm/boot/dts/overlays/mcp23s17-overlay.dts b/arch/arm/boot/dts/overlays/mcp23s17-overlay.dts index f50e960fa989..d10e3ef5d446 100644 --- a/arch/arm/boot/dts/overlays/mcp23s17-overlay.dts +++ b/arch/arm/boot/dts/overlays/mcp23s17-overlay.dts @@ -103,6 +103,8 @@ status = "okay"; #interrupt-cells=<2>; interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi0-0-int-gpio parameter */ + pinctrl-0 = <&spi0_0_int_pins>; + pinctrl-names = "default"; }; }; }; @@ -124,6 +126,8 @@ status = "okay"; #interrupt-cells=<2>; interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi0-1-int-gpio parameter */ + pinctrl-0 = <&spi0_1_int_pins>; + pinctrl-names = "default"; }; }; }; @@ -145,6 +149,8 @@ status = "okay"; #interrupt-cells=<2>; interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi1-0-int-gpio parameter */ + pinctrl-0 = <&spi1_0_int_pins>; + pinctrl-names = "default"; }; }; }; @@ -166,6 +172,8 @@ status = "okay"; #interrupt-cells=<2>; interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi1-1-int-gpio parameter */ + pinctrl-0 = <&spi1_1_int_pins>; + pinctrl-names = "default"; }; }; }; @@ -187,6 +195,8 @@ status = "okay"; #interrupt-cells=<2>; interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi1-2-int-gpio parameter */ + pinctrl-0 = <&spi1_2_int_pins>; + pinctrl-names = "default"; }; }; }; @@ -208,6 +218,8 @@ status = "okay"; #interrupt-cells=<2>; interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi2-0-int-gpio parameter */ + pinctrl-0 = <&spi2_0_int_pins>; + pinctrl-names = "default"; }; }; }; @@ -229,6 +241,8 @@ status = "okay"; #interrupt-cells=<2>; interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi2-1-int-gpio parameter */ + pinctrl-0 = <&spi2_1_int_pins>; + pinctrl-names = "default"; }; }; }; @@ -250,6 +264,8 @@ status = "okay"; #interrupt-cells=<2>; interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi2-2-int-gpio parameter */ + pinctrl-0 = <&spi2_2_int_pins>; + pinctrl-names = "default"; }; }; }; @@ -271,6 +287,8 @@ status = "okay"; #interrupt-cells=<2>; interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi0-0-int-gpio parameter */ + pinctrl-0 = <&spi0_0_int_pins>; + pinctrl-names = "default"; }; }; }; @@ -292,6 +310,8 @@ status = "okay"; #interrupt-cells=<2>; interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi0-1-int-gpio parameter */ + pinctrl-0 = <&spi0_1_int_pins>; + pinctrl-names = "default"; }; }; }; @@ -313,6 +333,8 @@ status = "okay"; #interrupt-cells=<2>; interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi1-0-int-gpio parameter */ + pinctrl-0 = <&spi1_0_int_pins>; + pinctrl-names = "default"; }; }; }; @@ -334,6 +356,8 @@ status = "okay"; #interrupt-cells=<2>; interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi1-1-int-gpio parameter */ + pinctrl-0 = <&spi1_1_int_pins>; + pinctrl-names = "default"; }; }; }; @@ -355,6 +379,8 @@ status = "okay"; #interrupt-cells=<2>; interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi1-2-int-gpio parameter */ + pinctrl-0 = <&spi1_2_int_pins>; + pinctrl-names = "default"; }; }; }; @@ -376,6 +402,8 @@ status = "okay"; #interrupt-cells=<2>; interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi2-0-int-gpio parameter */ + pinctrl-0 = <&spi2_0_int_pins>; + pinctrl-names = "default"; }; }; }; @@ -397,6 +425,8 @@ status = "okay"; #interrupt-cells=<2>; interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi2-1-int-gpio parameter */ + pinctrl-0 = <&spi2_1_int_pins>; + pinctrl-names = "default"; }; }; }; @@ -418,6 +448,8 @@ status = "okay"; #interrupt-cells=<2>; interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi2-2-int-gpio parameter */ + pinctrl-0 = <&spi2_2_int_pins>; + pinctrl-names = "default"; }; }; }; diff --git a/arch/arm/boot/dts/overlays/sunfounder-pipower3-overlay.dts b/arch/arm/boot/dts/overlays/sunfounder-pipower3-overlay.dts index cd5e8e68f20d..071899b86b46 100644 --- a/arch/arm/boot/dts/overlays/sunfounder-pipower3-overlay.dts +++ b/arch/arm/boot/dts/overlays/sunfounder-pipower3-overlay.dts @@ -28,17 +28,7 @@ }; }; }; - fragment@3 { - target = <&gpio>; - __overlay__ { - power_ctrl_pins: power_ctrl_pins { - brcm,pins = <26>; - brcm,function = <1>; // out - }; - }; - }; __overrides__ { - poweroff_pin = <&power_ctrl>,"gpios:4", - <&power_ctrl_pins>,"brcm,pins:0"; + poweroff_pin = <&power_ctrl>,"gpios:4"; }; }; diff --git a/arch/arm/boot/dts/overlays/tinylcd35-overlay.dts b/arch/arm/boot/dts/overlays/tinylcd35-overlay.dts index edc5889b6f5f..043b25887f2d 100644 --- a/arch/arm/boot/dts/overlays/tinylcd35-overlay.dts +++ b/arch/arm/boot/dts/overlays/tinylcd35-overlay.dts @@ -50,14 +50,6 @@ fragment@3 { target = <&gpio>; __overlay__ { - tinylcd35_pins: tinylcd35_pins { - brcm,pins = <25 24 18>; - brcm,function = <1>; /* out */ - }; - tinylcd35_ts_pins: tinylcd35_ts_pins { - brcm,pins = <5>; - brcm,function = <0>; /* in */ - }; keypad_pins: keypad_pins { brcm,pins = <4 17 22 23 27>; brcm,function = <0>; /* in */ @@ -76,10 +68,6 @@ tinylcd35: tinylcd35@0{ compatible = "neosec,tinylcd"; reg = <0>; - pinctrl-names = "default"; - pinctrl-0 = <&tinylcd35_pins>, - <&tinylcd35_ts_pins>; - spi-max-frequency = <48000000>; rotate = <270>; fps = <20>; @@ -211,8 +199,7 @@ fps = <&tinylcd35>,"fps:0"; debug = <&tinylcd35>,"debug:0"; touch = <&tinylcd35_ts>,"status"; - touchgpio = <&tinylcd35_ts_pins>,"brcm,pins:0", - <&tinylcd35_ts>,"interrupts:0", + touchgpio = <&tinylcd35_ts>,"interrupts:0", <&tinylcd35_ts>,"pendown-gpio:4"; xohms = <&tinylcd35_ts>,"ti,x-plate-ohms;0"; rtc-pcf = <0>,"=5"; diff --git a/arch/arm/boot/dts/overlays/udrc-overlay.dts b/arch/arm/boot/dts/overlays/udrc-overlay.dts index 701f28e811bb..24a2432ccd29 100644 --- a/arch/arm/boot/dts/overlays/udrc-overlay.dts +++ b/arch/arm/boot/dts/overlays/udrc-overlay.dts @@ -115,10 +115,6 @@ brcm,function = <1>; brcm,pull = <1>; }; - - aic3204_gpio: aic3204_gpio { - brcm,pins = <26>; - }; }; }; diff --git a/arch/arm/boot/dts/overlays/vc4-kms-dsi-lt070me05000-overlay.dts b/arch/arm/boot/dts/overlays/vc4-kms-dsi-lt070me05000-overlay.dts index d7b8f6713804..9cc6f1ae628f 100644 --- a/arch/arm/boot/dts/overlays/vc4-kms-dsi-lt070me05000-overlay.dts +++ b/arch/arm/boot/dts/overlays/vc4-kms-dsi-lt070me05000-overlay.dts @@ -32,6 +32,8 @@ compatible = "jdi,lt070me05000"; status = "okay"; reg = <0>; + pinctrl-0 = <<070me05000_pins>; + pinctrl-names = "default"; reset-gpios = <&gpio 17 1>; // LCD RST enable-gpios = <&gpio 4 0>; // LCD Enable dcdc-en-gpios = <&gpio 5 0>; // LCD DC-DC Enable diff --git a/arch/arm/boot/dts/overlays/vec-gpio-pi5-overlay.dts b/arch/arm/boot/dts/overlays/vec-gpio-pi5-overlay.dts index 1d2656e51f9c..6a99f0d0909b 100644 --- a/arch/arm/boot/dts/overlays/vec-gpio-pi5-overlay.dts +++ b/arch/arm/boot/dts/overlays/vec-gpio-pi5-overlay.dts @@ -12,7 +12,7 @@ target = <&rp1_vec>; rp1vec_overlay: __overlay__ { pinctrl-names = "default"; - pinctrl-0 = <&rp1vec_ch0pins>, <&rp1vec_ch0pins>; + pinctrl-0 = <&rp1vec_ch0pins &rp1vec_ch0pins>; }; };