Hi,
I am trying to interface a new Analog Devices DAC AD5693R to the imx28evk board.
I have connected I2C SDA and SCL pins on the imx28EVK board to the SDA and SCL pins on the Analog Device EVAL-AD5693RSDZ board. I am using the jumper pins IO5, IO6 and IO7 (J88) on the IMX28EVK board to connect to the SDA , SCL and GND pins on the Analog Devices reference board.
I am not getting the AD5963 board detected by i2cdetect tool from i2c-tools package running on imx28EVK board. I am running Angstrom Linux distribution 2016.12 version running 4.8.17-fslc kernel.
I have added the device tree entires for the AD5693R device and my driver gets loaded successfully using the below mentioned device tree entries.
i2c0: i2c@80058000 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins_a>;
status = "okay";
sgtl5000: codec@0a {
compatible = "fsl,sgtl5000";
reg = <0x0a>;
VDDA-supply = <®_3p3v>;
VDDIO-supply = <®_3p3v>;
clocks = <&saif0>;
};
at24@51 {
compatible = "at24,24c32";
pagesize = <32>;
reg = <0x51>;
};
ad5693@4c {
compatible = "adi,ad5693";
reg = <0x4c>;
};
};
When I try to run i2cdetect -a -q 0 from the imx28evk board login,I get the following output
root@imx28evk:~# i2cdetect -a -q 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0 using quick write commands.
I will probe address range 0x00-0x7f.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- --
50: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
When i remove my driver and run the same command I get the below output
root@imx28evk:~# i2cdetect -a -q 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0 using quick write commands.
I will probe address range 0x00-0x7f.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
I have the following doubts regarding the Analog Device AD5693 device detection.
1) Why is i2cdetect tool returning UU instead of 4C for my DAC at address 0x4C .
2) Is a slave device driver required for device detection to happen with i2cdetect tool ? ie can i expect a response of 4C without my driver for the AD5693 loaded ?
3) Is there any further changes required in the device tree to support device detection.
Thanks in advance.
Sonu Abraham
Hi Sonu
just for hardware testing one can try to detect device with obds i2c test,
also please check with oscillocope i2c signals.
Lab and Test Software (1)
On-Board Diagnostic Suit for the i.MX28
http://www.nxp.com/products/software-and-tools/software-development-tools/i.mx-software-and-tools/i....
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------