Message ID | 20200520214757.GA362547@x1 (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] arm: dts: am33xx-bone-common: add gpio-line-names | expand |
On 21/05/2020 00:47, Drew Fustini wrote: > Add gpio-line-names properties to the GPIO controller nodes. > > BeagleBone boards have P8 and P9 headers [0] which expose many of the > AM3358 ZCZ SoC balls to stacking expansion boards called "capes", or to > other external connections like jumper wires connected to a breadboard. > BeagleBone users will often refer to the "Cape Exanpsion Headers" pin > diagram [1] as it is in the "Bone101" getting started tutorial. [2] > > Most of the P8 and P9 header pins can muxed to a GPIO line. The > gpio-line-names describe which P8 or P9 pin that line goes to and the > default mux for that P8 or P9 pin if it is not GPIO. > > For example, gpiochip 1 line 0 is connected to P8 header pin 25 (P8_25) > however the default device tree has the corresponding BGA ball (ZCZ U7) > muxed to mmc1_dat0 as it is used for the on-board eMMC chip. For that > GPIO line to be used, one would need to modify the device tree to > disable the eMMC and change the pin mux for that ball to GPIO mode. > > Some of the AM3358 ZCZ balls corresponding to GPIO lines are not routed > to a P8 or P9 header, but are instead wired to some peripheral device > like on-board eMMC, HDMI framer IC, or status LEDs. Those names are in > brackets to denote those GPIO lines can not be used. > > Some GPIO lines are named "[NC]" as the corresponding balls are not > routed to anything on the PCB. > > The goal for these names is to make it easier for a user viewing the > output of gpioinfo to determine which P8 or P9 pin is connected to a > GPIO line. The output of gpioinfo on a BeagleBone Black would be: > > debian@beaglebone:~$ gpioinfo > 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 [...] > > [0] https://git.io/JfgOd > [1] https://beagleboard.org/capes > [1] https://beagleboard.org/Support/bone101 > [2] https://beagleboard.org/static/images/cape-headers.png > > Reviewed-by: Jason Kridner <jason@beagleboard.org> > Reviewed-by: Robert Nelson <robertcnelson@gmail.com> > Signed-off-by: Drew Fustini <drew@beagleboard.org> > --- > arch/arm/boot/dts/am335x-bone-common.dtsi | 144 ++++++++++++++++++++++ Not sure if it should be in am335x-bone-common.dtsi. For example: am335x-boneblack.dts #include "am335x-bone-common.dtsi" #include "am335x-boneblack-common.dtsi" <-- hdmi defined only here am335x-bonegreen.dts #include "am335x-bone-common.dtsi" #include "am335x-bonegreen-common.dtsi" > 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..d86e67b0e852 100644 > --- a/arch/arm/boot/dts/am335x-bone-common.dtsi > +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi > @@ -397,3 +397,147 @@ &rtc { > 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]", [...]
> Not sure if it should be in am335x-bone-common.dtsi. > > For example: > am335x-boneblack.dts > #include "am335x-bone-common.dtsi" > #include "am335x-boneblack-common.dtsi" <-- hdmi defined only here Ah crap, yeah that's a good point.. So if we stick it in... am335x-boneblack-common.dtsi Then the Black-Wireless now has Ethernet... am335x-boneblack-wireless.dts #include "am335x-bone-common.dtsi" #include "am335x-boneblack-common.dtsi" It's going to be ugly, copy and paste mess, but i guess we might as well stick it in the device " am335x-boneblack.dts"? Regards,
On 21/05/2020 17:41, Robert Nelson wrote: >> Not sure if it should be in am335x-bone-common.dtsi. >> >> For example: >> am335x-boneblack.dts >> #include "am335x-bone-common.dtsi" >> #include "am335x-boneblack-common.dtsi" <-- hdmi defined only here > > Ah crap, yeah that's a good point.. So if we stick it in... > am335x-boneblack-common.dtsi > > Then the Black-Wireless now has Ethernet... > > am335x-boneblack-wireless.dts > #include "am335x-bone-common.dtsi" > #include "am335x-boneblack-common.dtsi" > > It's going to be ugly, copy and paste mess, but i guess we might as > well stick it in the device " am335x-boneblack.dts"? Seems like. Unfortunately, there is no way to partially overwrite "gpio-line-names" property.
On Thu, May 21, 2020 at 08:26:42PM +0300, Grygorii Strashko wrote: > > > On 21/05/2020 17:41, Robert Nelson wrote: > > > Not sure if it should be in am335x-bone-common.dtsi. > > > > > > For example: > > > am335x-boneblack.dts > > > #include "am335x-bone-common.dtsi" > > > #include "am335x-boneblack-common.dtsi" <-- hdmi defined only here > > > > Ah crap, yeah that's a good point.. So if we stick it in... > > am335x-boneblack-common.dtsi > > > > Then the Black-Wireless now has Ethernet... > > > > am335x-boneblack-wireless.dts > > #include "am335x-bone-common.dtsi" > > #include "am335x-boneblack-common.dtsi" > > > > It's going to be ugly, copy and paste mess, but i guess we might as > > well stick it in the device " am335x-boneblack.dts"? > > Seems like. > > Unfortunately, there is no way to partially overwrite "gpio-line-names" > property. > > -- > Best regards, > grygorii Thank you for pointing out that those gpio-line-names are really specific to the BeagleBone Black and not applicable for other boards like the BeagleBone Green which lack eMMC. I will post a new patch for am335x-boneblack.dts. After that is reviewed and applied, I will then create patches for the the other BeagleBone models. thanks, drew
diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi index 6c9187bc0f17..d86e67b0e852 100644 --- a/arch/arm/boot/dts/am335x-bone-common.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi @@ -397,3 +397,147 @@ &rtc { 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", + "[ethernet]", + "P8_19 [ehrpwm2a]", + "P8_13 [ehrpwm2b]", + "[NC]", + "[NC]", + "P8_14", + "P8_17", + "[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]", + "[NC]", + "[NC]", + "[NC]", + "[NC]", + "P8_12", + "P8_11", + "P8_16", + "P8_15", + "P9_15A", + "P9_23", + "P9_14 [ehrpwm1a]", + "P9_16 [ehrpwm1b]", + "[emmc]", + "[usr0 led]", + "[usr1 led]", + "[usr2 led]", + "[usr3 led]", + "[hdmi]", + "[usb]", + "[hdmi audio]", + "P9_12", + "P8_26", + "P8_21 [emmc]", + "P8_20 [emmc]"; +}; + +&gpio2 { + gpio-line-names = + "P9_15B", + "P8_18", + "P8_7", + "P8_8", + "P8_10", + "P8_9", + "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]", + "[NC]", + "[NC]", + "[usb]", + "P9_31 [spi1_sclk]", + "P9_29 [spi1_d0]", + "P9_30 [spi1_d1]", + "P9_28 [spi1_cs0]", + "P9_42B [ecappwm0]", + "P9_27", + "P9_41A", + "P9_25", + "[NC]", + "[NC]", + "[NC]", + "[NC]", + "[NC]", + "[NC]", + "[NC]", + "[NC]", + "[NC]", + "[NC]"; +};