AnsweredAssumed Answered

ADI axi-i2s vs axi-i2s-adi?

Question asked by Stevo on Nov 13, 2015
Latest reply on Nov 17, 2015 by Stevo

I am developing an ALSA soundcard driver for a picozed mounted on an in-house designed carrier card.  I am at a point where I'm trying to get the DAI links (I2S between the codecs and the Zynq) working.


The FPGA uses the axi-i2s-adi IP core from ADI, used in the zedboard (zed_adau1761).  The only AXI I2S driver I've found is axi_i2s.c, also from ADI, available in many linux source distributions.   The problem seems to be due to incompatibility between them.  The DTS that Vivado generates from the axi-i2s-adi core is:

     axi_i2s_adi_0: axi_i2s_adi@43c20000 {
         compatible = "xlnx,axi-i2s-adi-1.0";
         reg = <0x43c20000 0x10000>;
         xlnx,bclk-pol = <0x0>;
         xlnx,dma-type = <0x1>;
         xlnx,has-rx = <0x1>;
         xlnx,has-tx = <0x1>;
         xlnx,lrclk-pol = <0x1>;
         xlnx,num-ch = <0x4>;
         xlnx,slot-width = <0x18>;


but the example DTS from the linux source Documentation/devicetree/bindings/sound/adi,axi-i2s.txt is:

     i2s: i2s@0x77600000 {
         compatible = "adi,axi-i2s-1.00.a";
         reg = <0x77600000 0x1000>;
         clocks = <&clk 15>, <&audio_clock>;
         clock-names = "axi", "ref";
         dmas = <&ps7_dma 0>, <&ps7_dma 1>;
         dma-names = "tx", "rx";


It seems that there is a driver that goes with the axi-i2s-adi IP core that I can't find (compatible = "xlnx,axi-i2s-adi-1.0"), and an IP core that goes with the axi_i2s.c driver that I also can't find (compatible = "adi,axi-i2s-1.00.a").  Either that or I'm missing something.


Is anyone able to help here?