We use cookies to provide our visitors with an optimal site experience. View our privacy notice and cookie notice to learn more about how we use cookies and how to manage your settings. By proceeding on our website you consent to the use of cookies.
We have made a custom board from beagle bone black. We have a requirement to use I2C1 on E17 and E18 pins of MPU. However, we see that all pins are reference w.r.t port 8 or port 9 in dts files.
I am using kernel_version of “4.14.108-ti-r140”, Debian 10 Root File System. The MPU is am3358bzcz100
I also have following questions :
The device tree files that is used by beagle bone black is taken from “ti-linux-kernel-dev/KERNEL/arch/arm/boot/dts”?
How can i modify the device tree so that i2c1 is enabled and available on E17 and E18 pins of MPU?
Thanks a lot for the specific inputs. I used the TI’s pinmux tool to verify this on P9 of beagle-bone black since E17 and E18 are not accessible. And it is working as expected.
@RobertCNelson : However, in my last kernel build a virtual COM port was showing up when i booted the BBB (USB used for powering the BBB). Is there some specific kernel module that i need to select for this feature? Actually we require a COM port through USB for testing purposes.
I think there is some problem. The older image used “4.14.108-ti-r127” and i could see “[ OK ] Found device /dev/ttyGS0.” message. But its timing out in “4.14.108-ti-r140”. Please check the screenshot below.
Hi @kiranbv i have not completely fixed the /dev/ttyGS0 issue… It’s a USB gadget driver we load at boot time, to provide a connection point between your pc and the board. systemd see’s it’s enabled, but is waiting for it to load…
I used the pins A16 and B16 to verify this in beaglebone black since one of the pins (E18) is left open. And it worked as expected. However, our custom boards have come and when i used the code with A16 and B16 code modification, the i2c signals are not coming. Also, i have tried to probe TP9 test point to see if any i2c1 signals are coming on beaglebone black. Unfortunately, i do not see anything. In contrast, i can see the i2c signals on D17 and D18 (i2c2 module) pins with a oscilloscope.
I can confirm the default version of u-boot we use on teh BBB show’s that same info…
Press SPACE to abort autoboot in 0 seconds
=> i2c dev 2
Setting bus to 2
=> i2c md.0 0x68 1
i2c_read: error waiting for addr ACK (status=0x116)
Error reading the chip: 1
=> i2c dev 1
Setting bus to 1
=> i2c md.0 0x68 1
i2c_read (addr phase): pads on bus probably not configured (status=0x10)
Error reading the chip: 2
=> i2c dev 0
Setting bus to 0
=> i2c md.0 0x68 1
i2c_read: error waiting for addr ACK (status=0x116)
Error reading the chip: 1
=> version
U-Boot 2019.04-00004-g72e2ec7 (Jun 23 2021 - 14:54:50 -0500)
=> i2c bus
Bus 0: omap24_0
Bus 1: omap24_1
Bus 2: omap24_2
=> i2c probe
Valid chip addresses: 24 34 50
=> i2c dev 1
Setting bus to 1
=> i2c probe
Valid chip addresses:i2c_probe: pads on bus probably not configured (status=0x10)
i2c_probe: pads on bus probably not configured (status=0x10)
i2c_probe: pads on bus probably not configured (status=0x10)
I think if we configure pinmux for i2c1 in u-boot, the conflict will get resolved. I am trying to find where this config is done, but not successful so far. Please help
I found some fix. Posting here so that its useful for others. I am not sure if its the right way of doing it. Please suggest improvements.
Following changes in am335x-bone-common-univ.dtsi fixed the issue. Also, “sudo config-pin p9.17 i2cMod” and “config-pin p9.18 i2cMod” must be given before using the pins as i2c1.