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

Skip to first unread message

Beagle Boner

Jan 9, 2018, 4:24:04 AM1/9/18
to BeagleBoard

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?




Jan 9, 2018, 2:00:10 PM1/9/18
to BeagleBoard
Search for emails with topic "BBB without Cape Manager"
--- Graham


Beagle Boner

Jan 10, 2018, 4:15:19 AM1/10/18
to BeagleBoard
Hey Graham,

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




Oct 31, 2018, 10:43:23 AM10/31/18
to BeagleBoard
@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
Reply all
Reply to author
0 new messages