i2cdetect -y -r 2 always ignores a working i2c device

I have a working I2C device at address 0x60.

uname -a yields:
Linux bbb 4.9.105-ti-r113 #1 SMP PREEMPT Sat jun 16 01:46:52 UTE 2018 armv7l GNU/Linux

(if I copied that off correctly.)

I have updated the kernel.

i2cdetect -y -r 2
takes a LONG time – when it completes it acts like the device is not there.
(It’s a TEA5767 chip.) The device is located by my Raspberry Pi – and it works.
This did work, once, on the BBB. I know, because I had to change the device
being opened by my C program to /dev/i2c-2 . I compiled it, it worked, once.
I collected a small amount of data from that program. So, the point is, this
did work, once.

But after many reboots, now I constantly get (from my C program)

“device or resource busy”

I read somewhere that “rmmod ___” would fix this – but I don’t
know what goes in the blank.

I do not know how to proceed.

Thanks,
j.

Use the fast i2c-2 overlay:

https://github.com/beagleboard/bb.org-overlays/blob/master/src/arm/BB-I2C2-FAST-00A0.dts

https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_Overlays

uboot_overlay_addr4=/lib/firmware/BB-I2C2-FAST-00A0.dtbo

Regards,

I put BB-I2C2-FAST-00A0.dts in /opt/source/bb.org-overlays/src/arm
and then did

cd /opt/source/bb.org-overlays
make
make install

which did put a .dtbo file in /lib/firmware

I modified /boot/uEnv.txt

uboot_overlay_addr4=/lib/firmware/BB-I2C2-FAST-00a0.dtbo

The uboot*addr[0123] are still commented out.

I rebooted.

No joy. The I2C chip is still not being found.

journalctl -b | grep i2c
reveals many (122) lines like:
… omap_i2c … : timeout waiting for bus ready

I don’t see anything else in the /var/log/* files that helps
(that helps me, anyway).

j.

I put BB-I2C2-FAST-00A0.dts in /opt/source/bb.org-overlays/src/arm
and then did

cd /opt/source/bb.org-overlays

or just "git pull"

make
make install

which did put a .dtbo file in /lib/firmware

I modified /boot/uEnv.txt

uboot_overlay_addr4=/lib/firmware/BB-I2C2-FAST-00a0.dtbo

The uboot*addr[0123] are still commented out.

I rebooted.
No joy. The I2C chip is still not being found.

journalctl -b | grep i2c
reveals many (122) lines like:
.... omap_i2c ... : timeout waiting for bus ready

I don't see anything else in the /var/log/* files that helps
(that helps me, anyway).

sudo /opt/scripts/tools/version.sh

Regards,

Aha! Yes, now I’m making progress. The device is now found.
I sense that I was more of a newbie than I thought. I will start
over on a new SD card and try to document the streamlined
correct procedure and post it for other relative beginners.

Thanks!