We are using the PMOD-IOXP from Digilent containing the ADP5589 chip, for interfacing a 4*4 Matrix Keypad with the Zynq running on Petalinux.
ADP5589
Production
The ADP5589 is a 19 channel GPIO (General Purpose Input/Output) port expander with built-in keypad matrix decoder, programmable logic, reset logic, and...
Datasheet
ADP5589 on Analog.com
We are using the PMOD-IOXP from Digilent containing the ADP5589 chip, for interfacing a 4*4 Matrix Keypad with the Zynq running on Petalinux.
Hi Nagesn,
you just need to register the I2C address in the device tree and rebuild the kernel.
registration should be something like this. ( This is just a sample )
IIC: i2c@e0004000 {
compatible = "xlnx,xps-iic-2.00.a";
interrupt-parent = <&xps_intc_0>;
interrupts = < 6 2 >;
#address-cells = <1>;
#size-cells = <0>;
BNO055@28 {
compatible = "at,24c08";
reg = <0x28>;
};
};
you need to correctly register the I2C address.
For our Driver, it is intended to be accessed using IOCTL.
if you intend to access it using Sysfs you need to update it.
to confirm you can install the I2C detect app of linux.
here's the manual below:
https://linux.die.net/man/8/i2cdetect
I hope it helps.Hi Nageshn,
You just need to register the device I2C Address to the device tree then rebuild the kernel.
here's a sample of registering the code to the device tree.
Please take note of the "BNO055@28" and the "reg" where it is tie up to the address. compatible tag is for the driver.
IIC: i2c@e0004000 {
compatible = "xlnx,xps-iic-2.00.a";
interrupt-parent = <&xps_intc_0>;
interrupts = < 6 2 >;
#address-cells = <1>;
#size-cells = <0>;
BNO055@28 {
compatible = "at,24c08";
reg = <0x28>;
};
};
for the driver in the link you provide, it is intended to access the device using IOCTL, if you intend to access is via
sysfs you need to update the driver.
to confirm the driver you can install the I2Cdetect app using apt-get and check if it is already detected by the kernel.
I hope this helps.