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 <ja...@beagleboard.org>
> Reviewed-by: Robert Nelson <robertcnel...@gmail.com>
> Signed-off-by: Drew Fustini <d...@beagleboard.org>
> ---
>  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

Reply via email to