Re: [PATCH] arm: dts: am335x-pocketbeagle: add gpio-line-names

From: Drew Fustini
Date: Wed Jun 17 2020 - 13:09:23 EST


On Tue, Jun 09, 2020 at 04:25:04PM +0200, Drew Fustini wrote:
> The BeagleBoard.org PocketBeagle has P1 and P2 headers [0] which expose
> many of the TI AM3358 SoC balls to stacking expansion boards called
> "capes", or to other external connections like jumper wires connected
> to a breadboard.
>
> Note: the AM3358 die is actually embedded inside of the OSD335x-SM
> System-in-Package (SiP) [1] but that is irrelevant to the gpio driver.
>
> Many of the P1 and P2 header pins can muxed to a GPIO line. The
> gpio-line-names describe which P1 or P2 pin that line goes to and the
> default mux for that P1 or P2 pin if it is not GPIO.
>
> 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 P1 or P2 pin is connected to a
> GPIO line. The output of gpioinfo on a PocketBeagle would be:
>
> gpiochip0 - 32 lines:
> line 0: "[NC]" unused input active-high
> line 1: "[NC]" unused input active-high
> line 2: "P1.08 [SPI0_CLK]" unused input active-high
> line 3: "P1.10 [SPI0_MISO]" unused input active-high
> line 4: "P1.12 [SPI0_MOSI]" unused input active-high
> line 5: "P1.06 [SPI0_CS]" unused input active-high
> line 6: "[MMC0_CD]" "cd" input active-low [used]
> line 7: "P2.29 [SPI1_CLK]" unused input active-high
> line 8: "[NC]" unused input active-high
> line 9: "[NC]" unused input active-high
> line 10: "[NC]" unused input active-high
> line 11: "[NC]" unused input active-high
> line 12: "P1.26 [I2C2_SDA]" unused input active-high
> line 13: "P1.28 [I2C2_SCL]" unused input active-high
> line 14: "P2.11 [I2C1_SDA]" unused input active-high
> line 15: "P2.09 [I2C1_SCL]" unused input active-high
> line 16: "[NC]" unused input active-high
> line 17: "[NC]" unused input active-high
> line 18: "[NC]" unused input active-high
> line 19: "P2.31 [SPI1_CS]" unused input active-high
> line 20: "P1.20 [PRU0.16]" unused input active-high
> line 21: "[NC]" unused input active-high
> line 22: "[NC]" unused input active-high
> line 23: "P2.03" unused input active-high
> line 24: "[NC]" unused input active-high
> line 25: "[NC]" unused input active-high
> line 26: "P1.34" unused input active-high
> line 27: "P2.19" unused input active-high
> line 28: "[NC]" unused input active-high
> line 29: "[NC]" unused input active-high
> line 30: "P2.05 [UART4_RX]" unused input active-high
> line 31: "P2.07 [UART4_TX]" unused input active-high
> gpiochip1 - 32 lines:
> line 0: "[NC]" unused input active-high
> line 1: "[NC]" unused input active-high
> line 2: "[NC]" unused input active-high
> line 3: "[NC]" unused input active-high
> line 4: "[NC]" unused input active-high
> line 5: "[NC]" unused input active-high
> line 6: "P1.06 [SPI0_CS]" unused input active-high
> line 7: "P1.06 [SPI0_CS]" unused input active-high
> line 8: "P2.27 [SPI1_MISO]" unused input active-high
> line 9: "P2.25 [SPI1_MOSI]" unused input active-high
> line 10: "P1.32 [UART0_RX]" unused input active-high
> line 11: "P1.30 [UART0_TX]" unused input active-high
> line 12: "P2.24" unused input active-high
> line 13: "P2.33" unused input active-high
> line 14: "P2.22" unused input active-high
> line 15: "P2.18" unused input active-high
> line 16: "[NC]" unused input active-high
> line 17: "[NC]" unused input active-high
> line 18: "P2.01 [PWM1A]" unused input active-high
> line 19: "[NC]" unused input active-high
> line 20: "P2.10" unused input active-high
> line 21: "[user led 0]" "beaglebone:green:usr0" output active-high [used]
> line 22: "[user led 1]" "beaglebone:green:usr1" output active-high [used]
> line 23: "[user led 2]" "beaglebone:green:usr2" output active-high [used]
> line 24: "[user led 3]" "beaglebone:green:usr3" output active-high [used]
> line 25: "P2.06" unused input active-high
> line 26: "P2.04" unused input active-high
> line 27: "P2.02" unused input active-high
> line 28: "P2.08" unused input active-high
> line 29: "[NC]" unused input active-high
> line 30: "[NC]" unused input active-high
> line 31: "[NC]" unused input active-high
> gpiochip2 - 32 lines:
> line 0: "[NC]" unused input active-high
> line 1: "P2.17" unused input active-high
> line 2: "[NC]" unused input active-high
> line 3: "[NC]" unused input active-high
> line 4: "[NC]" unused input active-high
> line 5: "[EEPROM_WP]" unused input active-high
> line 6: "[NC]" unused input active-high
> line 7: "[NC]" unused input active-high
> line 8: "[NC]" unused input active-high
> line 9: "[NC]" unused input active-high
> line 10: "[NC]" unused input active-high
> line 11: "[NC]" unused input active-high
> line 12: "[NC]" unused input active-high
> line 13: "[NC]" unused input active-high
> line 14: "[NC]" unused input active-high
> line 15: "[NC]" unused input active-high
> line 16: "[NC]" unused input active-high
> line 17: "[NC]" unused input active-high
> line 18: "[NC]" unused input active-high
> line 19: "[NC]" unused input active-high
> line 20: "[NC]" unused input active-high
> line 21: "[NC]" unused input active-high
> line 22: "P2.35 [AIN5]" unused input active-high
> line 23: "P1.02 [AIN6]" unused input active-high
> line 24: "P1.35 [PRU1.10]" unused input active-high
> line 25: "P1.04 [PRU1.11]" unused input active-high
> line 26: "[MMC0_DAT3]" unused input active-high
> line 27: "[MMC0_DAT2]" unused input active-high
> line 28: "[MMC0_DAT1]" unused input active-high
> line 29: "[MMC0_DAT0]" unused input active-high
> line 30: "[MMC0_CLK]" unused input active-high
> line 31: "[MMC0_CMD]" unused input active-high
> gpiochip3 - 32 lines:
> line 0: "[NC]" unused input active-high
> line 1: "[NC]" unused input active-high
> line 2: "[NC]" unused input active-high
> line 3: "[NC]" unused input active-high
> line 4: "[NC]" unused input active-high
> line 5: "[I2C0_SDA]" unused input active-high
> line 6: "[I2C0_SCL]" unused input active-high
> line 7: "[JTAG]" unused input active-high
> line 8: "[JTAG]" unused input active-high
> line 9: "[NC]" unused input active-high
> line 10: "[NC]" unused input active-high
> line 11: "[NC]" unused input active-high
> line 12: "[NC]" unused input active-high
> line 13: "P1.03 [USB1]" unused input active-high
> line 14: "P1.36 [PWM0A]" unused input active-high
> line 15: "P1.33 [PRU0.1]" unused input active-high
> line 16: "P2.32 [PRU0.2]" unused input active-high
> line 17: "P2.30 [PRU0.3]" unused input active-high
> line 18: "P1.31 [PRU0.4]" unused input active-high
> line 19: "P2.34 [PRU0.5]" unused input active-high
> line 20: "P2.28 [PRU0.6]" unused input active-high
> line 21: "P1.29 [PRU0.7]" unused input active-high
> line 22: "[NC]" unused input active-high
> line 23: "[NC]" unused input active-high
> line 24: "[NC]" unused input active-high
> line 25: "[NC]" unused input active-high
> line 26: "[NC]" unused input active-high
> line 27: "[NC]" unused input active-high
> line 28: "[NC]" unused input active-high
> line 29: "[NC]" unused input active-high
> line 30: "[NC]" unused input active-high
> line 31: "[NC]" unused input active-high
>
> [0] https://github.com/beagleboard/pocketbeagle/wiki/System-Reference-Manual#71_Expansion_Header_Connectors
> [1] https://octavosystems.com/app_notes/osd335x-family-pin-assignments/
>
> Reviewed-by: Jason Kridner <jason@xxxxxxxxxxxxxxx>
> Reviewed-by: Robert Nelson <robertcnelson@xxxxxxxxx>
> Signed-off-by: Drew Fustini <drew@xxxxxxxxxxxxxxx>
> ---
> arch/arm/boot/dts/am335x-pocketbeagle.dts | 144 ++++++++++++++++++++++
> 1 file changed, 144 insertions(+)
>
> diff --git a/arch/arm/boot/dts/am335x-pocketbeagle.dts b/arch/arm/boot/dts/am335x-pocketbeagle.dts
> index 4da719098028..60e5fa2b9156 100644
> --- a/arch/arm/boot/dts/am335x-pocketbeagle.dts
> +++ b/arch/arm/boot/dts/am335x-pocketbeagle.dts
> @@ -59,6 +59,150 @@ vmmcsd_fixed: fixedregulator0 {
> };
> };
>
> +&gpio0 {
> + gpio-line-names =
> + "[NC]",
> + "[NC]",
> + "P1.08 [SPI0_CLK]",
> + "P1.10 [SPI0_MISO]",
> + "P1.12 [SPI0_MOSI]",
> + "P1.06 [SPI0_CS]",
> + "[MMC0_CD]",
> + "P2.29 [SPI1_CLK]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "P1.26 [I2C2_SDA]",
> + "P1.28 [I2C2_SCL]",
> + "P2.11 [I2C1_SDA]",
> + "P2.09 [I2C1_SCL]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "P2.31 [SPI1_CS]",
> + "P1.20 [PRU0.16]",
> + "[NC]",
> + "[NC]",
> + "P2.03",
> + "[NC]",
> + "[NC]",
> + "P1.34",
> + "P2.19",
> + "[NC]",
> + "[NC]",
> + "P2.05 [UART4_RX]",
> + "P2.07 [UART4_TX]";
> +};
> +
> +&gpio1 {
> + gpio-line-names =
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "P1.06 [SPI0_CS]",
> + "P1.06 [SPI0_CS]",
> + "P2.27 [SPI1_MISO]",
> + "P2.25 [SPI1_MOSI]",
> + "P1.32 [UART0_RX]",
> + "P1.30 [UART0_TX]",
> + "P2.24",
> + "P2.33",
> + "P2.22",
> + "P2.18",
> + "[NC]",
> + "[NC]",
> + "P2.01 [PWM1A]",
> + "[NC]",
> + "P2.10",
> + "[user led 0]",
> + "[user led 1]",
> + "[user led 2]",
> + "[user led 3]",
> + "P2.06",
> + "P2.04",
> + "P2.02",
> + "P2.08",
> + "[NC]",
> + "[NC]",
> + "[NC]";
> +};
> +
> +&gpio2 {
> + gpio-line-names =
> + "[NC]",
> + "P2.17",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[EEPROM_WP]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "P2.35 [AIN5]",
> + "P1.02 [AIN6]",
> + "P1.35 [PRU1.10]",
> + "P1.04 [PRU1.11]",
> + "[MMC0_DAT3]",
> + "[MMC0_DAT2]",
> + "[MMC0_DAT1]",
> + "[MMC0_DAT0]",
> + "[MMC0_CLK]",
> + "[MMC0_CMD]";
> +};
> +
> +&gpio3 {
> + gpio-line-names =
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[I2C0_SDA]",
> + "[I2C0_SCL]",
> + "[JTAG]",
> + "[JTAG]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "P1.03 [USB1]",
> + "P1.36 [PWM0A]",
> + "P1.33 [PRU0.1]",
> + "P2.32 [PRU0.2]",
> + "P2.30 [PRU0.3]",
> + "P1.31 [PRU0.4]",
> + "P2.34 [PRU0.5]",
> + "P2.28 [PRU0.6]",
> + "P1.29 [PRU0.7]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]",
> + "[NC]";
> +};
> +
> &am33xx_pinmux {
> i2c2_pins: pinmux-i2c2-pins {
> pinctrl-single,pins = <
> --
> 2.25.1
>

Tony - does this look ok for 5.9?

If so, I might start making other variants like BeagleBone Blue and
BeagleBone {Green,Black} Wireless and submit those when ready.

thanks,
drew