[PATCH] arm: dts: am33xx-bone-common: add gpio-line-names

From: Drew Fustini
Date: Fri May 08 2020 - 12:57:37 EST


Add gpio-line-names properties to the gpio controller nodes.
BeagleBone boards have P8 and P9 headers [0] which expose many the
AM3358 SoC balls to stacking expansion boards called "capes", or to
other external connections like jumper wires to a breadboard.

Many of the P8/P9 header pins can muxed to a gpio line. The
gpio-line-names describe which P8/P9 pin that line goes to and the
default mux for that P8/P9 pin. Some lines are not routed to the
P8/P9 headers, but instead are dedicated to some functionality such as
status LEDs. The line name will indicate this. Some line names are
left empty as the corresponding AM3358 balls are not connected.

The goal is to make it easier for a user viewing the output of gpioinfo
to determine which P8/P9 pin is connected to a line. The output of
gpioinfo on a BeagleBone Black will now look like this:

gpiochip0 - 32 lines:
line 0: "ethernet" unused input active-high
line 1: "ethernet" unused input active-high
line 2: "P9_22 spi0_sclk" unused input active-high
line 3: "P9_21 spi0_d0" unused input active-high
line 4: "P9_18 spi0_d1" unused input active-high
line 5: "P9_17 spi0_cs0" unused input active-high
line 6: "sd card" "cd" input active-low [used]
line 7: "P9_42A ecappwm0" unused input active-high
line 8: "P8_35 hdmi" unused input active-high
line 9: "P8_33 hdmi" unused input active-high
line 10: "P8_31 hdmi" unused input active-high
line 11: "P8_32 hdmi" unused input active-high
line 12: "P9_20 i2c2_sda" unused input active-high
line 13: "P9_19 i2c2_scl" unused input active-high
line 14: "P9_26 uart1_rxd" unused input active-high
line 15: "P9_24 uart1_txd" unused input active-high
line 16: "ethernet" unused input active-high
line 17: "ethernet" unused input active-high
line 18: "usb" unused input active-high
line 19: "hdmi" unused input active-high
line 20: "P9_41B gpio" unused input active-high
line 21: "ethernet" unused input active-high
line 22: "P8_19 ehrpwm2a" unused input active-high
line 23: "P8_13 ehrpwm2b" unused input active-high
line 24: unnamed unused input active-high
line 25: unnamed unused input active-high
line 26: "P8_14 gpio" unused input active-high
line 27: "P8_17 gpio" unused input active-high
line 28: "ethernet" unused input active-high
line 29: "ethernet" unused input active-high
line 30: "P9_11 uart4_rxd" unused input active-high
line 31: "P9_13 uart4_txd" unused input active-high
gpiochip1 - 32 lines:
line 0: "P8_25 emmc" unused input active-high
line 1: "emmc" unused input active-high
line 2: "P8_5 emmc" unused input active-high
line 3: "P8_6 emmc" unused input active-high
line 4: "P8_23 emmc" unused input active-high
line 5: "P8_22 emmc" unused input active-high
line 6: "P8_3 emmc" unused input active-high
line 7: "P8_4 emmc" unused input active-high
line 8: unnamed unused input active-high
line 9: unnamed unused input active-high
line 10: unnamed unused input active-high
line 11: unnamed unused input active-high
line 12: "P8_12 gpio" unused input active-high
line 13: "P8_11 gpio" unused input active-high
line 14: "P8_16 gpio" unused input active-high
line 15: "P8_15 gpio" unused input active-high
line 16: "P9_15A gpio" unused input active-high
line 17: "P9_23 gpio" unused input active-high
line 18: "P9_14 ehrpwm1a" unused input active-high
line 19: "P9_16 ehrpwm1b" unused input active-high
line 20: "emmc" unused input active-high
line 21: "usr0 led" "beaglebone:green:heart" output active-high [used]
line 22: "usr1 led" "beaglebone:green:mmc0" output active-high [used]
line 23: "usr2 led" "beaglebone:green:usr2" output active-high [used]
line 24: "usr3 led" "beaglebone:green:usr3" output active-high [used]
line 25: "hdmi" "interrupt" input active-high [used]
line 26: "usb" unused input active-high
line 27: "hdmi audio" "enable" output active-high [used]
line 28: "P9_12 gpio" unused input active-high
line 29: "P8_26 gpio" unused input active-high
line 30: "P8_21 emmc" unused input active-high
line 31: "P8_20 emmc" unused input active-high
gpiochip2 - 32 lines:
line 0: "P9_15B gpio" unused input active-high
line 1: "P8_18 gpio" unused input active-high
line 2: "P8_7 gpio" unused input active-high
line 3: "P8_8 gpio" unused input active-high
line 4: "P8_10 gpio" unused input active-high
line 5: "P8_9 gpio" unused input active-high
line 6: "P8_45 hdmi" unused input active-high
line 7: "P8_46 hdmi" unused input active-high
line 8: "P8_43 hdmi" unused input active-high
line 9: "P8_44 hdmi" unused input active-high
line 10: "P8_41 hdmi" unused input active-high
line 11: "P8_42 hdmi" unused input active-high
line 12: "P8_39 hdmi" unused input active-high
line 13: "P8_40 hdmi" unused input active-high
line 14: "P8_37 hdmi" unused input active-high
line 15: "P8_38 hdmi" unused input active-high
line 16: "P8_36 hdmi" unused input active-high
line 17: "P8_34 hdmi" unused input active-high
line 18: "ethernet" unused input active-high
line 19: "ethernet" unused input active-high
line 20: "ethernet" unused input active-high
line 21: "ethernet" unused input active-high
line 22: "P8_27 hdmi" unused input active-high
line 23: "P8_29 hdmi" unused input active-high
line 24: "P8_28 hdmi" unused input active-high
line 25: "P8_30 hdmi" unused input active-high
line 26: "emmc" unused input active-high
line 27: "emmc" unused input active-high
line 28: "emmc" unused input active-high
line 29: "emmc" unused input active-high
line 30: "emmc" unused input active-high
line 31: "emmc" unused input active-high
gpiochip3 - 32 lines:
line 0: "ethernet" unused input active-high
line 1: "ethernet" unused input active-high
line 2: "ethernet" unused input active-high
line 3: "ethernet" unused input active-high
line 4: "ethernet" unused input active-high
line 5: "i2c0" unused input active-high
line 6: "i2c0" unused input active-high
line 7: "emu" unused input active-high
line 8: "emu" unused input active-high
line 9: "ethernet" unused input active-high
line 10: "ethernet" unused input active-high
line 11: unnamed unused input active-high
line 12: unnamed unused input active-high
line 13: "usb" unused input active-high
line 14: "P9_31 spi1_sclk" unused input active-high
line 15: "P9_29 spi1_d0" unused input active-high
line 16: "P9_30 spi1_d1" unused input active-high
line 17: "P9_28 spi1_cs0" unused input active-high
line 18: "P9_42B ecappwm0" unused input active-high
line 19: "P9_27 gpio" unused input active-high
line 20: "P9_41A gpio" unused input active-high
line 21: "P9_25 gpio" unused input active-high
line 22: unnamed unused input active-high
line 23: unnamed unused input active-high
line 24: unnamed unused input active-high
line 25: unnamed unused input active-high
line 26: unnamed unused input active-high
line 27: unnamed unused input active-high
line 28: unnamed unused input active-high
line 29: unnamed unused input active-high
line 30: unnamed unused input active-high
line 31: unnamed unused input active-high

[0] https://beagleboard.org/Support/bone101
[1] https://beagleboard.org/capes

Reviewed-by: Jason Kridner <jason@xxxxxxxxxxxxxxx>
Reviewed-by: Robert Nelson <robertcnelson@xxxxxxxxx>
Signed-off-by: Drew Fustini <drew@xxxxxxxxxxxxxxx>
---
arch/arm/boot/dts/am335x-bone-common.dtsi | 144 ++++++++++++++++++++++
1 file changed, 144 insertions(+)

diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi
index 6c9187bc0f17..defdf68edb58 100644
--- a/arch/arm/boot/dts/am335x-bone-common.dtsi
+++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
@@ -397,3 +397,147 @@
clocks = <&clk_32768_ck>, <&clk_24mhz_clkctrl AM3_CLK_24MHZ_CLKDIV32K_CLKCTRL 0>;
clock-names = "ext-clk", "int-clk";
};
+
+&gpio0 {
+ gpio-line-names =
+ "ethernet",
+ "ethernet",
+ "P9_22 spi0_sclk",
+ "P9_21 spi0_d0",
+ "P9_18 spi0_d1",
+ "P9_17 spi0_cs0",
+ "sd card",
+ "P9_42A ecappwm0",
+ "P8_35 hdmi",
+ "P8_33 hdmi",
+ "P8_31 hdmi",
+ "P8_32 hdmi",
+ "P9_20 i2c2_sda",
+ "P9_19 i2c2_scl",
+ "P9_26 uart1_rxd",
+ "P9_24 uart1_txd",
+ "ethernet",
+ "ethernet",
+ "usb",
+ "hdmi",
+ "P9_41B gpio",
+ "ethernet",
+ "P8_19 ehrpwm2a",
+ "P8_13 ehrpwm2b",
+ "",
+ "",
+ "P8_14 gpio",
+ "P8_17 gpio",
+ "ethernet",
+ "ethernet",
+ "P9_11 uart4_rxd",
+ "P9_13 uart4_txd";
+};
+
+&gpio1 {
+ gpio-line-names =
+ "P8_25 emmc",
+ "emmc",
+ "P8_5 emmc",
+ "P8_6 emmc",
+ "P8_23 emmc",
+ "P8_22 emmc",
+ "P8_3 emmc",
+ "P8_4 emmc",
+ "",
+ "",
+ "",
+ "",
+ "P8_12 gpio",
+ "P8_11 gpio",
+ "P8_16 gpio",
+ "P8_15 gpio",
+ "P9_15A gpio",
+ "P9_23 gpio",
+ "P9_14 ehrpwm1a",
+ "P9_16 ehrpwm1b",
+ "emmc",
+ "usr0 led",
+ "usr1 led",
+ "usr2 led",
+ "usr3 led",
+ "hdmi",
+ "usb",
+ "hdmi audio",
+ "P9_12 gpio",
+ "P8_26 gpio",
+ "P8_21 emmc",
+ "P8_20 emmc";
+};
+
+&gpio2 {
+ gpio-line-names =
+ "P9_15B gpio",
+ "P8_18 gpio",
+ "P8_7 gpio",
+ "P8_8 gpio",
+ "P8_10 gpio",
+ "P8_9 gpio",
+ "P8_45 hdmi",
+ "P8_46 hdmi",
+ "P8_43 hdmi",
+ "P8_44 hdmi",
+ "P8_41 hdmi",
+ "P8_42 hdmi",
+ "P8_39 hdmi",
+ "P8_40 hdmi",
+ "P8_37 hdmi",
+ "P8_38 hdmi",
+ "P8_36 hdmi",
+ "P8_34 hdmi",
+ "ethernet",
+ "ethernet",
+ "ethernet",
+ "ethernet",
+ "P8_27 hdmi",
+ "P8_29 hdmi",
+ "P8_28 hdmi",
+ "P8_30 hdmi",
+ "emmc",
+ "emmc",
+ "emmc",
+ "emmc",
+ "emmc",
+ "emmc";
+};
+
+&gpio3 {
+ gpio-line-names =
+ "ethernet",
+ "ethernet",
+ "ethernet",
+ "ethernet",
+ "ethernet",
+ "i2c0",
+ "i2c0",
+ "emu",
+ "emu",
+ "ethernet",
+ "ethernet",
+ "",
+ "",
+ "usb",
+ "P9_31 spi1_sclk",
+ "P9_29 spi1_d0",
+ "P9_30 spi1_d1",
+ "P9_28 spi1_cs0",
+ "P9_42B ecappwm0",
+ "P9_27 gpio",
+ "P9_41A gpio",
+ "P9_25 gpio",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "";
+};
--
2.20.1