How to deactivate automatic cape detection to free addresses on I2C-2


i am using Debian Jessie on my BBB. I need to connect a I²C device to it. Unfortunatly it has a fixed address at 0x54, which is one of the addresses used to read the epromdata on capes for automatic dto loading. I can´t use the other I²C-1 for this project, so I am forced to disable the eprom reading and address reservation somehow. Do you guys have any ideas how I could achieve that? Do I need to make my own device tree for that or is there a way more simple?



Search for emails with topic “BBB without Cape Manager”
— Graham

Hey Graham,

thanks for the hint. I decompiled the dtb, commented the lines on i2c-2 section, recompiled and it works.



@Beagle Boner If you can please post how you managed to move past this that would be very helpful. I have the same issue and I need to disable i2c-2 line to use 0x57 address. I tried disbling the universal_cape in uboot/uEnv.txt but no luck. Based on your post I managed to go and get /boot/dts/4.14.67-ti-r73/am335x-boneblack.dtb. decompile it, comment out the i2c2 in the following places:

aliases {
i2c0 = "/ocp/i2c@44e0b000";
i2c1 = "/ocp/i2c@4802a000";
//i2c2 = "/ocp/i2c@4819c000";
serial0 = "/ocp/serial@44e09000";
serial1 = "/ocp/serial@48022000";
serial2 = "/ocp/serial@48024000";
serial3 = "/ocp/serial@481a6000";
serial4 = "/ocp/serial@481a8000";
serial5 = "/ocp/serial@481aa000";
d_can0 = "/ocp/can@481cc000";
d_can1 = "/ocp/can@481d0000";
usb0 = "/ocp/usb@47400000/usb@47401000";
usb1 = "/ocp/usb@47400000/usb@47401800";
phy0 = "/ocp/usb@47400000/usb-phy@47401300";
phy1 = "/ocp/usb@47400000/usb-phy@47401b00";
ethernet0 = "/ocp/ethernet@4a100000/slave@4a100200";
ethernet1 = "/ocp/ethernet@4a100000/slave@4a100300";
spi1 = "/ocp/spi@48030000";
spi2 = "/ocp/spi@481a0000";
phandle = <0x70>;

//i2c@4802a000 {
// compatible = "ti,omap4-i2c";
// #address-cells = <0x1>;
// #size-cells = <0x0>;
// ti,hwmods = "i2c2";
// reg = <0x4802a000 0x1000>;
// interrupts = <0x47>;
// status = "disabled";
// phandle = <0xb4>;


i2c1 = "/ocp/i2c@4802a000";
//i2c2 = "/ocp/i2c@4819c000";
cape_eeprom0 = "/ocp/i2c@4819c000/cape_eeprom0@54";
cape0_data = "/ocp/i2c@4819c000/cape_eeprom0@54/cape_data@0";
cape_eeprom1 = "/ocp/i2c@4819c000/cape_eeprom1@55";

but still no luck, when I boot I can still see U under i2c2 addresses of 0x54-0x57. Please share your solution