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