I have Debian 12.6, uname 5.10.168-ti-r78;
I cannot access gpiochip1 for sure P9_14, P9_12. I can access some gpiochip2 gpio’s.
I think some uboot overlay is missing, but I cannot find anything useful on Beaglebone instructions.
How to provide access to more GPIO pins?
gpiochip0 - 32 lines:
line 0: "P8_25 [mmc1_dat0]" input
line 1: "[mmc1_dat1]" input
line 2: "P8_5 [mmc1_dat2]" input
line 3: "P8_6 [mmc1_dat3]" input
line 4: "P8_23 [mmc1_dat4]" input
line 5: "P8_22 [mmc1_dat5]" input
line 6: "P8_3 [mmc1_dat6]" input
line 7: "P8_4 [mmc1_dat7]" input
line 8: "NC" output active-low consumer="PHY reset"
line 9: "NC" input
line 10: "NC" input
line 11: "NC" input
line 12: "P8_12" input
line 13: "P8_11" input
line 14: "P8_16" input
line 15: "P8_15" input
line 16: "P9_15A" input
line 17: "P9_23" input
line 18: "P9_14 [ehrpwm1a]" input
line 19: "P9_16 [ehrpwm1b]" input
line 20: "[emmc rst]" input
line 21: "[usr0 led]" output consumer="beaglebone:green:usr0"
line 22: "[usr1 led]" output consumer="beaglebone:green:usr1"
line 23: "[usr2 led]" output consumer="beaglebone:green:usr2"
line 24: "[usr3 led]" output consumer="beaglebone:green:usr3"
line 25: "[hdmi irq]" input
line 26: "[usb vbus oc]" input
line 27: "[hdmi audio]" input
line 28: "P9_12" input
line 29: "P8_26" input
line 30: "P8_21 [emmc]" input
line 31: "P8_20 [emmc]" input
gpiochip1 - 32 lines:
line 0: "P9_15B" input
line 1: "P8_18" input
line 2: "P8_7" input
line 3: "P8_8" input
line 4: "P8_10" input
line 5: "P8_9" input
line 6: "P8_45 [hdmi]" input
line 7: "P8_46 [hdmi]" input
line 8: "P8_43 [hdmi]" input
line 9: "P8_44 [hdmi]" input
line 10: "P8_41 [hdmi]" input
line 11: "P8_42 [hdmi]" input
line 12: "P8_39 [hdmi]" input
line 13: "P8_40 [hdmi]" input
line 14: "P8_37 [hdmi]" input
line 15: "P8_38 [hdmi]" input
line 16: "P8_36 [hdmi]" input
line 17: "P8_34 [hdmi]" input
line 18: "[rmii1_rxd3]" input
line 19: "[rmii1_rxd2]" input
line 20: "[rmii1_rxd1]" input
line 21: "[rmii1_rxd0]" input
line 22: "P8_27 [hdmi]" input
line 23: "P8_29 [hdmi]" input
line 24: "P8_28 [hdmi]" input
line 25: "P8_30 [hdmi]" input
line 26: "[mmc0_dat3]" input
line 27: "[mmc0_dat2]" input
line 28: "[mmc0_dat1]" input
line 29: "[mmc0_dat0]" input
line 30: "[mmc0_clk]" input
line 31: "[mmc0_cmd]" input
gpiochip2 - 32 lines:
line 0: "[mii col]" input
line 1: "[mii crs]" input
line 2: "[mii rx err]" input
line 3: "[mii tx en]" input
line 4: "[mii rx dv]" input
line 5: "[i2c0 sda]" input
line 6: "[i2c0 scl]" input
line 7: "[jtag emu0]" input
line 8: "[jtag emu1]" input
line 9: "[mii tx clk]" input
line 10: "[mii rx clk]" input
line 11: "NC" input
line 12: "NC" input
line 13: "[usb vbus en]" input
line 14: "P9_31 [spi1_sclk]" input
line 15: "P9_29 [spi1_d0]" input
line 16: "P9_30 [spi1_d1]" input
line 17: "P9_28 [spi1_cs0]" input
line 18: "P9_42B [ecappwm0]" input
line 19: "P9_27" input
line 20: "P9_41A" input
line 21: "P9_25" input
line 22: "NC" input
line 23: "NC" input
line 24: "NC" input
line 25: "NC" input
line 26: "NC" input
line 27: "NC" input
line 28: "NC" input
line 29: "NC" input
line 30: "NC" input
line 31: "NC" input
gpiochip3 - 32 lines:
line 0: "[mdio_data]" input
line 1: "[mdio_clk]" input
line 2: "P9_22 [spi0_sclk]" input
line 3: "P9_21 [spi0_d0]" input
line 4: "P9_18 [spi0_d1]" input
line 5: "P9_17 [spi0_cs0]" input
line 6: "[mmc0_cd]" input active-low consumer="cd"
line 7: "P9_42A [ecappwm0]" input
line 8: "P8_35 [lcd d12]" input
line 9: "P8_33 [lcd d13]" input
line 10: "P8_31 [lcd d14]" input
line 11: "P8_32 [lcd d15]" input
line 12: "P9_20 [i2c2_sda]" input
line 13: "P9_19 [i2c2_scl]" input
line 14: "P9_26 [uart1_rxd]" input
line 15: "P9_24 [uart1_txd]" input
line 16: "[rmii1_txd3]" input
line 17: "[rmii1_txd2]" input
line 18: "[usb0_drvvbus]" input
line 19: "[hdmi cec]" input
line 20: "P9_41B" input
line 21: "[rmii1_txd1]" input
line 22: "P8_19 [ehrpwm2a]" input
line 23: "P8_13 [ehrpwm2b]" input
line 24: "NC" input
line 25: "NC" input
line 26: "P8_14" input
line 27: "P8_17" input
line 28: "[rmii1_txd0]" input
line 29: "[rmii1_refclk]" input
line 30: "P9_11 [uart4_rxd]" input
line 31: "P9_13 [uart4_txd]" input
This is on kernel 6.10 I’m testing.
on 5.10 there are number of inputs input consumer and those I can use as user successfully.
I am running the load cape on this, looks like mine is one release back. Might try to back peddle to same release and see if it works.
fred@bbbi1:~$ gpioinfo
gpiochip0 - 32 lines:
line 0: "[mdio_data]" unused input active-high
line 1: "[mdio_clk]" unused input active-high
line 2: "P9_22 [spi0_sclk]" "P9_22" input active-high [used]
line 3: "P9_21 [spi0_d0]" "P9_21" input active-high [used]
line 4: "P9_18 [spi0_d1]" "P9_18" input active-high [used]
line 5: "P9_17 [spi0_cs0]" "P9_17" input active-high [used]
line 6: "[mmc0_cd]" "cd" input active-low [used]
line 7: "P8_42A [ecappwm0]" unused output active-high
line 8: "P8_35 [lcd d12]" "P8_35" input active-high [used]
line 9: "P8_33 [lcd d13]" "P8_33" input active-high [used]
line 10: "P8_31 [lcd d14]" "P8_31" input active-high [used]
line 11: "P8_32 [lcd d15]" "P8_32" input active-high [used]
line 12: "P9_20 [i2c2_sda]" "P9_20" input active-high [used]
line 13: "P9_19 [i2c2_scl]" "P9_19" input active-high [used]
line 14: "P9_26 [uart1_rxd]" "P9_26" input active-high [used]
line 15: "P9_24 [uart1_txd]" "P9_24" input active-high [used]
line 16: "[rmii1_txd3]" unused input active-high
line 17: "[rmii1_txd2]" unused input active-high
line 18: "[usb0_drvvbus]" unused input active-high
line 19: "[hdmi cec]" unused input active-high
line 20: "P9_41B" unused output active-high
line 21: "[rmii1_txd1]" unused input active-high
line 22: "P8_19 [ehrpwm2a]" "P8_19" input active-high [used]
line 23: "P8_13 [ehrpwm2b]" "P8_13" input active-high [used]
line 24: "NC" unused input active-high
line 25: "NC" unused input active-high
line 26: "P8_14" "P8_14" input active-high [used]
line 27: "P8_17" unused output active-high
line 28: "[rmii1_txd0]" unused input active-high
line 29: "[rmii1_refclk]" unused input active-high
line 30: "P9_11 [uart4_rxd]" "P9_11" input active-high [used]
line 31: "P9_13 [uart4_txd]" "P9_13" input active-high [used]
gpiochip1 - 32 lines:
line 0: "P8_25 [mmc1_dat0]" "P8_25" input active-high [used]
line 1: "[mmc1_dat1]" "P8_24" input active-high [used]
line 2: "P8_5 [mmc1_dat2]" "P8_05" input active-high [used]
line 3: "P8_6 [mmc1_dat3]" "P8_06" input active-high [used]
line 4: "P8_23 [mmc1_dat4]" "P8_23" input active-high [used]
line 5: "P8_22 [mmc1_dat5]" "P8_22" input active-high [used]
line 6: "P8_3 [mmc1_dat6]" "P8_03" input active-high [used]
line 7: "P8_4 [mmc1_dat7]" "P8_04" input active-high [used]
line 8: "NC" "PHY reset" output active-low [used]
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 output active-high
line 13: "P8_11" unused output active-high
line 14: "P8_16" "P8_16" input active-high [used]
line 15: "P8_15" unused output active-high
line 16: "P9_15A" "P9_15" input active-high [used]
line 17: "P9_23" "P9_23" input active-high [used]
line 18: "P9_14 [ehrpwm1a]" "P9_14" input active-high [used]
line 19: "P9_16 [ehrpwm1b]" "P9_16" input active-high [used]
line 20: "[emmc rst]" unused input active-high
line 21: "[usr0 led]" unused input active-high
line 22: "[usr1 led]" unused input active-high
line 23: "[usr2 led]" unused input active-high
line 24: "[usr3 led]" unused input active-high
line 25: "[hdmi irq]" "interrupt" input active-high [used]
line 26: "[usb vbus oc]" unused input active-high
line 27: "[hdmi audio]" "enable" output active-high [used]
line 28: "P9_12" "P9_12" input active-high [used]
line 29: "P8_26" "P8_26" input active-high [used]
line 30: "P8_21 [emmc]" "P8_21" input active-high [used]
line 31: "P8_20 [emmc]" "P8_20" input active-high [used]
gpiochip2 - 32 lines:
line 0: "P9_15B" unused input active-high
line 1: "P8_18" "P8_18" input active-high [used]
line 2: "P8_7" "P8_07" input active-high [used]
line 3: "P8_8" "P8_08" input active-high [used]
line 4: "P8_10" "P8_10" input active-high [used]
line 5: "P8_9" "P8_09" input active-high [used]
line 6: "P8_45 [hdmi]" "P8_45" input active-high [used]
line 7: "P8_46 [hdmi]" "P8_46" input active-high [used]
line 8: "P8_43 [hdmi]" "P8_43" input active-high [used]
line 9: "P8_44 [hdmi]" "P8_44" input active-high [used]
line 10: "P8_41 [hdmi]" "P8_41" input active-high [used]
line 11: "P8_42 [hdmi]" "P8_42" input active-high [used]
line 12: "P8_39 [hdmi]" "P8_39" input active-high [used]
line 13: "P8_40 [hdmi]" "P8_40" input active-high [used]
line 14: "P8_37 [hdmi]" "P8_37" input active-high [used]
line 15: "P8_38 [hdmi]" "P8_38" input active-high [used]
line 16: "P8_36 [hdmi]" "P8_36" input active-high [used]
line 17: "P8_34 [hdmi]" "P8_34" input active-high [used]
line 18: "[rmii1_rxd3]" unused input active-high
line 19: "[rmii1_rxd2]" unused input active-high
line 20: "[rmii1_rxd1]" unused input active-high
line 21: "[rmii1_rxd0]" unused input active-high
line 22: "P8_27 [hdmi]" "P8_27" input active-high [used]
line 23: "P8_29 [hdmi]" "P8_29" input active-high [used]
line 24: "P8_28 [hdmi]" "P8_28" input active-high [used]
line 25: "P8_30 [hdmi]" "P8_30" input active-high [used]
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: "[mii col]" unused input active-high
line 1: "[mii crs]" unused input active-high
line 2: "[mii rx err]" unused input active-high
line 3: "[mii tx en]" unused input active-high
line 4: "[mii rx dv]" unused input active-high
line 5: "[i2c0 sda]" unused input active-high
line 6: "[i2c0 scl]" unused input active-high
line 7: "[jtag emu0]" unused input active-high
line 8: "[jtag emu1]" unused input active-high
line 9: "[mii tx clk]" unused input active-high
line 10: "[mii rx clk]" unused input active-high
line 11: "NC" unused input active-high
line 12: "NC" unused input active-high
line 13: "[usb vbus en]" unused input active-high
line 14: "P9_31 [spi1_sclk]" "P9_31" input active-high [used]
line 15: "P9_29 [spi1_d0]" "P9_29" input active-high [used]
line 16: "P9_30 [spi1_d1]" unused output active-high
line 17: "P9_28 [spi1_cs0]" "P9_28" input active-high [used]
line 18: "P9_42B [ecappwm0]" "P9_92" input active-high [used]
line 19: "P9_27" unused output active-high
line 20: "P9_41A" "P9_91" input active-high [used]
line 21: "P9_25" "P9_25" input active-high [used]
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
fred@bbbi1:~$ uname -r
5.10.168-ti-r77
Here is my .conf
fred@bbbi1:/boot$ cat uEnv.txt
Docs: http://elinux.org/Beagleboard:U-boot_partitioning_layout_2.0
uname_r=5.10.168-ti-r77
#uuid=
#dtb=
###U-Boot Overlays###
###Documentation: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_Overlays
###Master Enable
enable_uboot_overlays=1
###
###Overide capes with eeprom
uboot_overlay_addr0=LOAD-CAPE-uart-i2c.dtbo /BBORG_LOAD-GPIO-6-00A2.dtbo
#uboot_overlay_addr1=/boot/dtbs/5.10.168-ti-r77/overlays/BBORG_LOAD-GPIO-6-00A2.dtbo
#uboot_overlay_addr0=<file0>.dtbo
#uboot_overlay_addr1=<file1>.dtbo
#uboot_overlay_addr2=<file2>.dtbo
#uboot_overlay_addr3=<file3>.dtbo
###
###Additional custom capes
#uboot_overlay_addr4=<file4>.dtbo
#uboot_overlay_addr5=<file5>.dtbo
#uboot_overlay_addr6=<file6>.dtbo
#uboot_overlay_addr7=<file7>.dtbo
###
###Custom Cape
#dtb_overlay=<file8>.dtbo
###
###Disable auto loading of virtual capes (emmc/video/wireless/adc)
#disable_uboot_overlay_emmc=1
#disable_uboot_overlay_video=1
#disable_uboot_overlay_audio=1
#disable_uboot_overlay_wireless=1
#disable_uboot_overlay_adc=1
###
###Cape Universal Enable
enable_uboot_cape_universal=1
###
###Debug: disable uboot autoload of Cape
#disable_uboot_overlay_addr0=1
#disable_uboot_overlay_addr1=1
#disable_uboot_overlay_addr2=1
#disable_uboot_overlay_addr3=1
###
###U-Boot fdt tweaks... (60000 = 384KB)
#uboot_fdt_buffer=0x60000
###U-Boot Overlays###
console=ttyS0,115200n8
cmdline=coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet
#In the event of edid real failures, uncomment this next line:
#cmdline=coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet video=HDMI-A-1:1024x768@60e
#Use an overlayfs on top of a read-only root filesystem:
#cmdline=coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet overlayroot=tmpfs
##enable Generic eMMC Flasher:
#cmdline=init=/usr/sbin/init-beagle-flasher
Try toggling line
One is spi and the other is for an “lcd”
If you have open pins try to toggle it
$gpiochip<n> <line>=0
$gpiochip<n> <line>=1
I don’t know what is on your bus so pick something unused, your pin should line up.
Also
$groups
You must be in gpio
Post your .dts and your base .dts/.dtsi
Update,
Never mind this, mine is on 5.x. If memory is correct the 6.x has some issues. If the 5.x works that will be your only option unless you are ready to spend countless hours trying to track it down. When it has an issue with the kernel modules I run in the opposite direction.
6.x is fine on arm64, I am running the 3 relay RPI board on the Beagley-ai
Hi, 5.x kernel is ok. I just need to use those PINS P8_32 and P9_29 as in Debian 10 I used those and I cannot change pcb layout because of the update.
I’ll try 5.10 once again and let you know
If you post a link to the exact image you are using I will install that on SD and test it with my known working source code.
Just did a totally factory setup using the 4 relay cape and BBB with an official image(curret IoT 5.x series). Both are untouched by me and I have verified my source code used for testing runs the cape without any problems.
We are not on the same page with this, my yocto build could be a problem that was self induced and not any fault of Ti or the 6.1 kernel.
All I use is c and c++. I know enough python to say that’s python. Is the unittest in public or is that proprietary?
I can say that the IoT image (5.x) regarding the gpio pins is functional using lgpiod, so if it does not work it would be in the code.
The sys config access is who knows where, one place states it is, its going be, it works, who knows. I can say that the kernel config still had it as an option. I don’t recall digging in that direction in the 6.x so that might something to look into.