• Drew Fustini's avatar
    ARM: dts: am335x-boneblack: add gpio-line-names · aafd897a
    Drew Fustini authored
    The BeagleBone Black has 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:
    
    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"       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:       "[NC]"       unused   input  active-high
    	line  25:       "[NC]"       unused   input  active-high
    	line  26:      "P8_14"       unused   input  active-high
    	line  27:      "P8_17"       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:       "[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:      "P8_12"       unused   input  active-high
    	line  13:      "P8_11"       unused   input  active-high
    	line  14:      "P8_16"       unused   input  active-high
    	line  15:      "P8_15"       unused   input  active-high
    	line  16:     "P9_15A"       unused   input  active-high
    	line  17:      "P9_23"       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:heartbeat" 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"       unused   input  active-high
    	line  29:      "P8_26"       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"       unused   input  active-high
    	line   1:      "P8_18"       unused   input  active-high
    	line   2:       "P8_7"       unused   input  active-high
    	line   3:       "P8_8"       unused   input  active-high
    	line   4:      "P8_10"       unused   input  active-high
    	line   5:       "P8_9"       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:       "[NC]"       unused   input  active-high
    	line  12:       "[NC]"       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"       unused   input  active-high
    	line  20:     "P9_41A"       unused   input  active-high
    	line  21:      "P9_25"       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://git.io/JfgOd
    [1] https://beagleboard.org/capes
    [1] https://beagleboard.org/Support/bone101
    [2] https://beagleboard.org/static/images/cape-headers.pngReviewed-by: default avatarJason Kridner <jason@beagleboard.org>
    Reviewed-by: default avatarRobert Nelson <robertcnelson@gmail.com>
    Signed-off-by: default avatarDrew Fustini <drew@beagleboard.org>
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    aafd897a
am335x-boneblack.dts 2.64 KB