PCA9555 on I2C3

Hi Team,

We have our customize design board mostly based on Colibri Evaluation board. We have couple of PCA9555 connected with I2C bus (PIN_196/I2C_SCL, PIN_194/I2C_SDA).

Device tree:

+ aliases {
 + 	i2c0 = &i2cddc;
 + 	i2c1 = &i2c2;
 + 	i2c2 = &i2c3;
 + };
 + List item

 &i2c3 {
 + status = "okay";

+  pca9555_in: pca9555@20 {
 + 	compatible = "nxp,pca9555";
 + 	gpio-controller;
 + 	#gpio-cells = <2>;
 + 	reg = <0x20>;
 + };
 +  + pca9555_out: pca9555@21 {
 + 	compatible = "nxp,pca9555";
 + 	gpio-controller;
 + 	#gpio-cells = <2>;
 + 	reg = <0x21>;
 + };
 + 

kernel driver for PCA9555 is:

CONFIG_GPIO_PCA953X=m

I can see PCA9555 at cat /sys/bus/i2c/devices/2-0020(/21)/modalias and with I2Cdetect. But somehow I am not able to toggle PCA pins.
I want to make sure if my pin assignment and above dts setting is correct? What all I can do to verify it?
Also, at the time of bootup, I see supply vcc not found warning baffling me too.

[    3.099086] 2-0041 supply vcc not found, using dummy regulator
[    3.118007] 2-0020 supply vcc not found, using dummy regulator
[    3.160441] pca953x 2-0020: interrupt support not compiled in
[    3.173526] 2-0021 supply vcc not found, using dummy regulator
[    3.204518] pca953x 2-0021: interrupt support not compiled in

Any help would be appreciated.

Hi @Toradex_h83

Thanks for writing to the Toradex Community!

We don’t have experience with this device, but checking the device-tree files on mainline kernel, your device-tree entries seems to be correct. Could you share all the changes you have done to the git branch ( git branch )?

But somehow I am not able to toggle PCA pins

How do you do this? Which commands did you use?

Best regards,
Jaski

Hi @jaski.tx

Thanks for your reply.

  1. The mentioned changes is what I added to the git branch.

  2. I am using echo commands to export, set direction (out) and assign the values.

Do you also have any comments on “no Vcc found, using dummy regulator”

You are welcome.

Which file did you change?
What is the output of cat /sys/kernel/debug/gpio?

You can ignore the warning about no Vcc found....

Best regards,
Jaski

hi @jaski.tx
Here is the output of cat /sys/kernel.debug/gpio and it seems to be correct. I can toggle this pin with I2Cset command but not with echo command. Any idea?

gpiochip9: GPIOs 476-491, parent: i2c/2-0021, pca9555, can sleep:
 gpio-481 (                    |sysfs               ) out hi
 gpio-482 (                    |sysfs               ) out hi
 gpio-483 (                    |sysfs               ) out lo
 gpio-484 (                    |sysfs               ) out hi
 gpio-485 (                    |sysfs               ) out lo
 gpio-486 (                    |sysfs               ) out lo

gpiochip8: GPIOs 492-507, parent: i2c/2-0020, pca9555, can sleep:
 gpio-496 (                    |sysfs               ) in  hi
 gpio-497 (                    |sysfs               ) in  hi
 gpio-498 (                    |sysfs               ) in  hi
 gpio-499 (                    |sysfs               ) in  hi
 gpio-500 (                    |sysfs               ) in  hi

Hi @Toradex_h83

Could you try to use the gpio-line-names Property as described in this Documentation?

Best regards,
Jaski