Updated to 4.14.26-bone13 and cannot get PCA9544 I2C-mux to initialize, ideas?

12 views
Skip to first unread message

bglaz...@gmail.com

unread,
Mar 30, 2018, 4:24:25 PM3/30/18
to BeagleBoard
We have had a solution running on 4.1.19-bone20 kernel for over a year. Now I am trying to add battery controlled shutdown to the Bone but came to the conclusion that the unit treats power removal as a push button event and immediately powers down. This doesn't work for our application, we need to be able to control the shutdown. After some scrounging around Groups I saw the (https://groups.google.com/forum/#!topic/beagleboard/DfkWz9qlqA8) problem was that the tps65217 kernel code needed modification. I decided to update to the latest kernel (4.14.26-bone13) to see if it was resolved. I did that and it is indeed fixed. Now I have to re-work my Device Tree Blob for this kernel.

No problem, I downloaded the kernel source and made by changes and compiled it. I moved the dtb to the Bone and rebooted. Everything comes online as expected except the PCA9544 I2C mux.
I checked dmesg and there are no entries, good or bad, relating to the mux.

According to /Kernel/Documentation/devicetree/bindings/i2c/i2c-mux.txt, nothing should have dramatically changed between the two kernels. 
After much experimentation, trying the various options, etc, I've decided to seek help.

Here is my entry made in am335x-bone-common.dtsi.
&i2c1 {
#address-cells = <1>;
#size-cells = <0>;
clock-frequency = <400000>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c1_pins>;
mux@70 {
    #address-cells = <1>;
    #size-cells = <0>;
    compatible = "nxp,pca9544";
    reg = <0x70>;
    i2c@3 {
        #address-cells = <1>;
        #size-cells = <0>;
reg = <0x03>;
};
    i2c@4 {
#address-cells = <1>;
        #size-cells = <0>;
reg = <0x04>;
};
    i2c@5 {
#address-cells = <1>;
        #size-cells = <0>;
reg = <0x05>; 
    };
    i2c@6 {
#address-cells = <1>;
        #size-cells = <0>;
reg = <0x06>;
    };
    };
};

I can confirm that the mux is available and functioning using i2cget/set commands.
Can anyone recommend an approach to troubleshoot this further? Any useful logs that I am not seeing?

Also just for reference, this is how I had the entry structured on 4.1.19-bone20 before changing it to what is shown above.
&i2c1 {
pinctrl-names = "default";
pinctrl-0 = <&i2c1_pins>;
status = "okay";
clock-frequency = <400000>;
mux@70 {
compatible = "nxp,pca9544";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x70>;
};
};


Thank you!
Bruce

Graham

unread,
Mar 30, 2018, 4:59:54 PM3/30/18
to BeagleBoard
Which bus and I-O pins is your Mux located on?

--- Graham

==
Reply all
Reply to author
Forward
0 new messages