beaglebone black GPIO pinout and FreeBSD 11
Isaac (.ike) Levy
ike at blackskyresearch.net
Sat Mar 4 17:28:00 UTC 2017
Hi All,
I'm a total noob with GPIO, but an oldschool FreeBSD user.
For FreeBSD 11, the GPIO pinout on a Beaglebone appears to be different that the documentation I've found:
https://wiki.freebsd.org/FreeBSD/arm/BeagleBoneBlack
https://lists.freebsd.org/pipermail/freebsd-arm/2014-May/008461.html
Does anyone know how I can go about finding the physical mapping of the gpio pins on the BeagleBone Black? I'm looking to learn how to get some simple analog inputs/outputs and i2c going... Blinking lights and toggle switches kind of basics fun...
Thanks!
Best,
.ike
p.s.: just for the record, gpioctl appears to let me touch four separate gpio controllers, (which I assume are each one row of the pinouts on the BBB?) This is quite different than all other documentation I've found online, which appears to reference 10.x era GPIO:
# uname -a
FreeBSD beaglebone 11.0-RELEASE-p1 FreeBSD 11.0-RELEASE-p1 #0 r306420: Thu Sep 29 09:23:20 UTC 2016 root at releng2.nyi.freebsd.org:/usr/obj/arm.armv6/usr/src/sys/BEAGLEBONE arm
# dmesg | grep gpio
gpio0: <TI AM335x General Purpose I/O (GPIO)> mem 0x44e07000-0x44e07fff on simplebus0
gpiobus0: <OFW GPIO bus> on gpio0
gpioc0: <GPIO controller> on gpio0
gpio1: <TI AM335x General Purpose I/O (GPIO)> mem 0x4804c000-0x4804cfff on simplebus0
gpiobus1: <OFW GPIO bus> on gpio1
gpioled0: <GPIO led> at pin 21 on gpiobus1
gpioled1: <GPIO led> at pin 22 on gpiobus1
gpioled2: <GPIO led> at pin 23 on gpiobus1
gpioled3: <GPIO led> at pin 24 on gpiobus1
gpioc1: <GPIO controller> on gpio1
gpio2: <TI AM335x General Purpose I/O (GPIO)> mem 0x481ac000-0x481acfff on simplebus0
gpiobus2: <OFW GPIO bus> on gpio2
gpioc2: <GPIO controller> on gpio2
gpio3: <TI AM335x General Purpose I/O (GPIO)> mem 0x481ae000-0x481aefff on simplebus0
gpiobus3: <OFW GPIO bus> on gpio3
gpioc3: <GPIO controller> on gpio3
#
# for i in `jot - 0 3` ; do echo "## gpioc${i}" ; gpioctl -f "/dev/gpioc${i}" -l ; done
## gpioc0
pin 00: 0 gpio_0<>
pin 01: 0 gpio_1<>
pin 02: 1 gpio_2<IN,PU>
pin 03: 1 gpio_3<IN,PU>
pin 04: 0 gpio_4<>
pin 05: 0 gpio_5<>
pin 06: 0 gpio_6<IN>
pin 07: 0 gpio_7<>
pin 08: 0 gpio_8<>
pin 09: 0 gpio_9<>
pin 10: 0 gpio_10<>
pin 11: 0 gpio_11<>
pin 12: 0 gpio_12<>
pin 13: 0 gpio_13<>
pin 14: 1 gpio_14<IN,PU>
pin 15: 1 gpio_15<IN,PU>
pin 16: 0 gpio_16<>
pin 17: 0 gpio_17<>
pin 18: 0 gpio_18<>
pin 19: 0 gpio_19<>
pin 20: 0 gpio_20<>
pin 21: 0 gpio_21<>
pin 22: 0 gpio_22<IN,PD>
pin 23: 0 gpio_23<IN,PD>
pin 24: 0 gpio_24<>
pin 25: 0 gpio_25<>
pin 26: 0 gpio_26<IN,PD>
pin 27: 0 gpio_27<IN,PD>
pin 28: 0 gpio_28<>
pin 29: 0 gpio_29<IN,PD>
pin 30: 1 gpio_30<IN,PU>
pin 31: 1 gpio_31<IN,PU>
## gpioc1
pin 00: 0 gpio_0<>
pin 01: 0 gpio_1<>
pin 02: 0 gpio_2<>
pin 03: 0 gpio_3<>
pin 04: 0 gpio_4<>
pin 05: 0 gpio_5<>
pin 06: 0 gpio_6<>
pin 07: 0 gpio_7<>
pin 08: 1 gpio_8<IN,PU>
pin 09: 1 gpio_9<IN,PU>
pin 10: 0 gpio_10<>
pin 11: 0 gpio_11<>
pin 12: 0 gpio_12<IN,PD>
pin 13: 0 gpio_13<IN,PD>
pin 14: 0 gpio_14<IN,PD>
pin 15: 0 gpio_15<IN,PD>
pin 16: 1 gpio_16<IN,PD>
pin 17: 0 gpio_17<IN,PD>
pin 18: 0 gpio_18<IN,PD>
pin 19: 0 gpio_19<IN,PD>
pin 20: 0 gpio_20<IN,PD>
pin 21: 0 gpioled0<OUT>
pin 22: 0 gpioled1<OUT>
pin 23: 0 gpioled2<OUT>
pin 24: 0 gpioled3<OUT>
pin 25: 1 gpio_25<IN,PD>
pin 26: 1 gpio_26<IN,PD>
pin 27: 0 gpio_27<IN,PD>
pin 28: 1 gpio_28<IN,PU>
pin 29: 1 gpio_29<IN,PU>
pin 30: 0 gpio_30<>
pin 31: 0 gpio_31<>
## gpioc2
pin 00: 1 gpio_0<IN,PU>
pin 01: 0 gpio_1<IN,PD>
pin 02: 1 gpio_2<IN,PU>
pin 03: 1 gpio_3<IN,PU>
pin 04: 1 gpio_4<IN,PU>
pin 05: 1 gpio_5<>
pin 06: 0 gpio_6<>
pin 07: 0 gpio_7<>
pin 08: 0 gpio_8<>
pin 09: 0 gpio_9<>
pin 10: 0 gpio_10<>
pin 11: 0 gpio_11<>
pin 12: 0 gpio_12<>
pin 13: 0 gpio_13<>
pin 14: 0 gpio_14<>
pin 15: 0 gpio_15<>
pin 16: 0 gpio_16<>
pin 17: 0 gpio_17<>
pin 18: 0 gpio_18<>
pin 19: 0 gpio_19<>
pin 20: 0 gpio_20<>
pin 21: 0 gpio_21<>
pin 22: 0 gpio_22<>
pin 23: 0 gpio_23<>
pin 24: 0 gpio_24<>
pin 25: 0 gpio_25<>
pin 26: 0 gpio_26<>
pin 27: 0 gpio_27<>
pin 28: 0 gpio_28<>
pin 29: 0 gpio_29<>
pin 30: 0 gpio_30<>
pin 31: 0 gpio_31<>
## gpioc3
pin 00: 0 gpio_0<IN,PD>
pin 01: 0 gpio_1<IN,PD>
pin 02: 0 gpio_2<>
pin 03: 0 gpio_3<>
pin 04: 0 gpio_4<>
pin 05: 0 gpio_5<>
pin 06: 0 gpio_6<>
pin 07: 0 gpio_7<>
pin 08: 0 gpio_8<IN,PU>
pin 09: 0 gpio_9<>
pin 10: 0 gpio_10<>
pin 11: 0 gpio_11<>
pin 12: 0 gpio_12<>
pin 13: 0 gpio_13<>
pin 14: 0 gpio_14<>
pin 15: 0 gpio_15<>
pin 16: 0 gpio_16<>
pin 17: 0 gpio_17<>
pin 18: 0 gpio_18<>
pin 19: 0 gpio_19<IN,PD>
pin 20: 0 gpio_20<IN,PD>
pin 21: 0 gpio_21<IN,PD>
pin 22: 0 gpio_22<>
pin 23: 0 gpio_23<>
pin 24: 0 gpio_24<>
pin 25: 0 gpio_25<>
pin 26: 0 gpio_26<>
pin 27: 0 gpio_27<>
pin 28: 0 gpio_28<>
pin 29: 0 gpio_29<>
pin 30: 0 gpio_30<>
pin 31: 0 gpio_31<>
#
More information about the freebsd-arm
mailing list