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
--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/beagleboard/a5e40037-01d2-4f4b-a6b6-98889d57796f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.