Jump to content
  • 0

can't access I2C through Linux Kernel on Zedboard


djc678

Question

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.

×
×
  • Create New...