Difference between revisions of "Beagleboard:BeagleBone cape interface spec"

From eLinux.org
Jump to: navigation, search
(I2C: Keep directory structure.)
(Keep the /dev/bone directory to be browsable)
Line 52: Line 52:
  
 
= SPI =
 
= SPI =
== /dev/spi/0.''x'' ==
+
Need to add a symlink from /dev/spi to /dev/bone/spi.
 +
 
 +
== /dev/bone/spi/0.''x'' ==
 
AM3358 SPI0<br>
 
AM3358 SPI0<br>
 
AM5729 SPI2
 
AM5729 SPI2
Line 59: Line 61:
 
* P9.22 - CLK
 
* P9.22 - CLK
  
=== /dev/spi/0.0 ===
+
=== /dev/bone/spi/0.0 ===
 
AM3358 SPI0 CS0<br>
 
AM3358 SPI0 CS0<br>
 
AM5729 SPI2 CS0
 
AM5729 SPI2 CS0
 
* P9.17 - CS
 
* P9.17 - CS
  
== /dev/spi/1.''x'' ==
+
== /dev/bone/spi/1.''x'' ==
 
AM3358 SPI1<br>
 
AM3358 SPI1<br>
 
AM5729 SPI3
 
AM5729 SPI3
Line 71: Line 73:
 
* P9.31 - CLK
 
* P9.31 - CLK
  
=== /dev/spi/1.0 ===
+
=== /dev/bone/spi/1.0 ===
 
AM3358 SPI1 CS0<br>
 
AM3358 SPI1 CS0<br>
 
AM5729 SPI3 CS0  
 
AM5729 SPI3 CS0  
 
* P9.28 - CS
 
* P9.28 - CS
  
=== /dev/spi/1.1 ===
+
=== /dev/bone/spi/1.1 ===
 
AM3358 SPI1 CS1<br>
 
AM3358 SPI1 CS1<br>
 
AM5729 SPI3 CS1  
 
AM5729 SPI3 CS1  
 
* P9.42 - CS
 
* P9.42 - CS
  
=== /dev/spi/1.2 ===
+
=== /dev/bone/spi/1.2 ===
 
AM3358 SPI1 GPIO1_17<br>
 
AM3358 SPI1 GPIO1_17<br>
 
AM5729 SPI3 GPIO7_11  
 
AM5729 SPI3 GPIO7_11  
Line 87: Line 89:
  
 
= UART =
 
= UART =
=== /dev/bone-uart0 ===
+
=== /dev/bone/uart/0 ===
 
AM3358 UART0<br>
 
AM3358 UART0<br>
 
AM5729 UART1
 
AM5729 UART1
 
* console debug header pins
 
* console debug header pins
  
=== /dev/bone-uart1 ===
+
=== /dev/bone/uart/1 ===
 
AM3358 UART1<br>
 
AM3358 UART1<br>
 
AM5729 UART10
 
AM5729 UART10
Line 98: Line 100:
 
* P9.26 - RX
 
* P9.26 - RX
  
=== /dev/bone-uart2 ===
+
=== /dev/bone/uart/2 ===
 
AM3358 UART2<br>
 
AM3358 UART2<br>
 
AM5729 UART3
 
AM5729 UART3
Line 104: Line 106:
 
* P9.22 - RX
 
* P9.22 - RX
  
=== /dev/bone-uart3 ===
+
=== /dev/bone/uart/3 ===
 
AM3358 UART3<br>
 
AM3358 UART3<br>
 
AM5729 ''N/A''
 
AM5729 ''N/A''
 
* P9.42 - TX
 
* P9.42 - TX
  
=== /dev/bone-uart4 ===
+
=== /dev/bone/uart/4 ===
 
AM3358 UART4<br>
 
AM3358 UART4<br>
 
AM5729 UART5
 
AM5729 UART5
Line 115: Line 117:
 
* P9.11 - RX
 
* P9.11 - RX
  
=== /dev/bone-uart5 ===
+
=== /dev/bone/uart/5 ===
 
AM3358 UART5<br>
 
AM3358 UART5<br>
 
AM5729 UART8
 
AM5729 UART8
Line 122: Line 124:
  
 
= CAN =
 
= CAN =
=== /dev/bone-can0 ===
+
=== /dev/bone/can/0 ===
 
AM3358 CAN0<br>
 
AM3358 CAN0<br>
 
AM5729 N/A
 
AM5729 N/A
Line 128: Line 130:
 
* P9.20 - TX
 
* P9.20 - TX
  
=== /dev/bone-can1 ===
+
=== /dev/bone/can/1 ===
 
AM3358 CAN1<br>
 
AM3358 CAN1<br>
 
AM5729 CAN2
 
AM5729 CAN2
Line 135: Line 137:
  
 
= ADC =
 
= ADC =
=== /dev/bone-adc0 ===
+
=== /dev/bone/adc ===
 
* AIN0 - AM3358 in_voltage0_raw, AM5729 in_voltage0_raw
 
* AIN0 - AM3358 in_voltage0_raw, AM5729 in_voltage0_raw
 
* AIN1 - AM3358 in_voltage1_raw, AM5729 in_voltage1_raw
 
* AIN1 - AM3358 in_voltage1_raw, AM5729 in_voltage1_raw
Line 145: Line 147:
  
 
= PWM/TIMER =
 
= PWM/TIMER =
=== /dev/bone-timer0 ===
+
=== /dev/bone/timer/0 ===
 
AM3358 TIMER4<br>
 
AM3358 TIMER4<br>
 
AM5729 TIMER11
 
AM5729 TIMER11
 
* P8.7
 
* P8.7
  
=== /dev/bone-timer1 ===
+
=== /dev/bone/timer/1 ===
 
AM3358 TIMER5<br>
 
AM3358 TIMER5<br>
 
AM5729 TIMER14
 
AM5729 TIMER14
 
* P8.9
 
* P8.9
  
=== /dev/bone-timer2 ===
+
=== /dev/bone/timer/2 ===
 
AM3358 TIMER6<br>
 
AM3358 TIMER6<br>
 
AM5729 TIMER10
 
AM5729 TIMER10
 
* P8.10
 
* P8.10
  
=== /dev/bone-timer3 ===
+
=== /dev/bone/timer/3 ===
 
AM3358 TIMER7<br>
 
AM3358 TIMER7<br>
 
AM5729 TIMER12
 
AM5729 TIMER12
Line 166: Line 168:
  
 
= MMC =
 
= MMC =
=== /dev/bone-mmc2 ===
+
=== /dev/bone/mmc/2 ===
 
AM3358 MMC2<br>
 
AM3358 MMC2<br>
 
AM5729 MMC3
 
AM5729 MMC3
Line 183: Line 185:
  
 
= eQEP =
 
= eQEP =
=== /dev/bone-eqep0 ===
+
=== /dev/bone/eqep/0 ===
 
AM3358 eQEP0<br>
 
AM3358 eQEP0<br>
 
AM5729 eQEP3
 
AM5729 eQEP3
Line 190: Line 192:
 
* P9.25 - STROBE (AM3358-only)
 
* P9.25 - STROBE (AM3358-only)
  
=== /dev/bone-eqep1 ===
+
=== /dev/bone/eqep/1 ===
 
AM3358 eQEP1<br>
 
AM3358 eQEP1<br>
 
AM5729 eQEP1
 
AM5729 eQEP1
Line 196: Line 198:
 
* P8.36 - B
 
* P8.36 - B
  
=== /dev/bone-eqep2 ===
+
=== /dev/bone/eqep/2 ===
 
AM3358 eQEP2<br>
 
AM3358 eQEP2<br>
 
AM5729 eQEP2
 
AM5729 eQEP2

Revision as of 10:29, 31 March 2020

This is a list of symlink interfaces based on BeagleBone Cape header pins.

I2C

/dev/bone/i2c/0

AM3358 I2C0
AM5729 I2C1

  • On-board peripherals

/dev/bone/i2c/1

AM3358 I2C1
AM5729 I2C5

  • P9.17 - SCL
  • P9.18 - SDA

/dev/bone/i2c/2

AM3358 I2C2
AM5729 I2C4

  • P9.19 - SCL
  • P9.20 - SDA

/dev/bone/i2c/3

AM3358 N/A
AM5729 I2C3

  • P9.24 - SCL
  • P9.26 - SDA


SPI

Need to add a symlink from /dev/spi to /dev/bone/spi.

/dev/bone/spi/0.x

AM3358 SPI0
AM5729 SPI2

  • P9.18 - MOSI
  • P9.21 - MISO
  • P9.22 - CLK

/dev/bone/spi/0.0

AM3358 SPI0 CS0
AM5729 SPI2 CS0

  • P9.17 - CS

/dev/bone/spi/1.x

AM3358 SPI1
AM5729 SPI3

  • P9.30 - MOSI
  • P9.29 - MISO
  • P9.31 - CLK

/dev/bone/spi/1.0

AM3358 SPI1 CS0
AM5729 SPI3 CS0

  • P9.28 - CS

/dev/bone/spi/1.1

AM3358 SPI1 CS1
AM5729 SPI3 CS1

  • P9.42 - CS

/dev/bone/spi/1.2

AM3358 SPI1 GPIO1_17
AM5729 SPI3 GPIO7_11

  • P9.23 - CS

UART

/dev/bone/uart/0

AM3358 UART0
AM5729 UART1

  • console debug header pins

/dev/bone/uart/1

AM3358 UART1
AM5729 UART10

  • P9.24 - TX
  • P9.26 - RX

/dev/bone/uart/2

AM3358 UART2
AM5729 UART3

  • P9.21 - TX
  • P9.22 - RX

/dev/bone/uart/3

AM3358 UART3
AM5729 N/A

  • P9.42 - TX

/dev/bone/uart/4

AM3358 UART4
AM5729 UART5

  • P9.13 - TX
  • P9.11 - RX

/dev/bone/uart/5

AM3358 UART5
AM5729 UART8

  • P8.37 - TX
  • P8.38 - RX

CAN

/dev/bone/can/0

AM3358 CAN0
AM5729 N/A

  • P9.19 - RX
  • P9.20 - TX

/dev/bone/can/1

AM3358 CAN1
AM5729 CAN2

  • P9.24 - RX
  • P9.26 - TX

ADC

/dev/bone/adc

  • AIN0 - AM3358 in_voltage0_raw, AM5729 in_voltage0_raw
  • AIN1 - AM3358 in_voltage1_raw, AM5729 in_voltage1_raw
  • AIN2 - AM3358 in_voltage2_raw, AM5729 in_voltage3_raw
  • AIN3 - AM3358 in_voltage3_raw, AM5729 in_voltage2_raw
  • AIN4 - AM3358 in_voltage4_raw, AM5729 in_voltage7_raw
  • AIN5 - AM3358 in_voltage5_raw, AM5729 in_voltage6_raw
  • AIN6 - AM3358 in_voltage6_raw, AM5729 in_voltage4_raw

PWM/TIMER

/dev/bone/timer/0

AM3358 TIMER4
AM5729 TIMER11

  • P8.7

/dev/bone/timer/1

AM3358 TIMER5
AM5729 TIMER14

  • P8.9

/dev/bone/timer/2

AM3358 TIMER6
AM5729 TIMER10

  • P8.10

/dev/bone/timer/3

AM3358 TIMER7
AM5729 TIMER12

  • P8.8

MMC

/dev/bone/mmc/2

AM3358 MMC2
AM5729 MMC3

  • P8.21 - CLK
  • P8.20 - CMD
  • P8.25 - DAT0
  • P8.24 - DAT1
  • P8.5 - DAT2
  • P8.6 - DAT3
  • P8.23 - DAT4
  • P8.22 - DAT5
  • P8.4 - DAT7
  • P8.3 - DAT6

LCD

eQEP

/dev/bone/eqep/0

AM3358 eQEP0
AM5729 eQEP3

  • P9.42 - A
  • P9.27 - B
  • P9.25 - STROBE (AM3358-only)

/dev/bone/eqep/1

AM3358 eQEP1
AM5729 eQEP1

  • P8.34 - A
  • P8.36 - B

/dev/bone/eqep/2

AM3358 eQEP2
AM5729 eQEP2

  • P8.12 - A
  • P8.11 - B

McASP

Methodology

udev rules

10-of-symlink.rules

#From: https://github.com/mvduin/py-uio/blob/master/etc/udev/rules.d/10-of-symlink.rules
# allow declaring a symlink for a device in DT
ATTR{device/of_node/symlink}!="", \
	ENV{OF_SYMLINK}="%s{device/of_node/symlink}"

ENV{OF_SYMLINK}!="", ENV{DEVNAME}!="", \
	SYMLINK+="%E{OF_SYMLINK}", \
	TAG+="systemd", ENV{SYSTEMD_ALIAS}+="/dev/%E{OF_SYMLINK}"

TBD

#Also courtesy of mvduin
# create symlinks for gpios exported to sysfs by DT
SUBSYSTEM=="gpio", ACTION=="add", TEST=="value", ATTR{label}!="sysfs", \
        RUN+="/bin/mkdir -p /dev/gpio", \
        RUN+="/bin/ln -sT '/sys/class/gpio/%k' /dev/gpio/%s{label}"