Now, I would like to get the same example working using the Linux Kernel.
However, I can't seem to be able to access the I2C bus.
The bus appears to be there, but denies access.
zynq> i2cdetect -y 0
Error: Can't use SMBus Quick Write command on this bus
From looking at the SDK, the I2C appears to be at 0xe0004000
Has any one got any suggestions, or point me in the right direction to find the correct settings..?
Everywhere I have googled seem to provide i2c solutions for different boards, or bespoke platform setups.
What I don't understand is why it just doesn't work "out-of-the-box" with the default settings.
Or perhaps, i have missed something.
I am using Xilinx SDK 2018.3, and the Xilinx kernel
Question
djc678
Hi,
I am relatively new to working with the Zedboard.
I've managed to get an I2C/I2S audio example working (using bare-metal) , that i've downloaded from here.
http://www.zynqbook.com/download-tuts.html
Now, I would like to get the same example working using the Linux Kernel.
However, I can't seem to be able to access the I2C bus.
The bus appears to be there, but denies access.
zynq> i2cdetect -l
i2c-0 i2c Cadence I2C at e0004000 I2C adapter
zynq> i2cdetect -y 0
Error: Can't use SMBus Quick Write command on this bus
From looking at the SDK, the I2C appears to be at 0xe0004000
Has any one got any suggestions, or point me in the right direction to find the correct settings..?
Everywhere I have googled seem to provide i2c solutions for different boards, or bespoke platform setups.
What I don't understand is why it just doesn't work "out-of-the-box" with the default settings.
Or perhaps, i have missed something.
I am using Xilinx SDK 2018.3, and the Xilinx kernel
My kernel settings are these:
CONFIG_REGMAP_I2C=y
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_MUX=y
CONFIG_I2C_MUX_PCA954x=y
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_ALGOBIT=y
CONFIG_I2C_CADENCE=y
CONFIG_VIDEO_IR_I2C=y
CONFIG_SND_SOC_I2C_AND_SPI=y
CONFIG_RTC_I2C_AND_SPI=y
My device tree looks like this:
i2c@e0004000 {
compatible = "cdns,i2c-r1p10";
clocks = <0x1 0x26>;
interrupt-parent = <0x4>;
/*interrupts = <0x0 0x25 0x4>;*/
interrupts = <0x0 0x19 0x4>;
reg = <0xe0004000 0x1000>;
i2c-clk = <0x61a80>;
#address-cells = <0x1>;
#size-cells = <0x0>;
};
The default device tree entry for i2c was disabled, so i've tried different combinations.
Any help would be gratefully received
Dave
Link to comment
Share on other sites
2 answers to this question
Recommended Posts
Archived
This topic is now archived and is closed to further replies.