1*4882a593SmuzhiyunFreescale Asynchronous Sample Rate Converter (ASRC) Controller 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunThe Asynchronous Sample Rate Converter (ASRC) converts the sampling rate of a 4*4882a593Smuzhiyunsignal associated with an input clock into a signal associated with a different 5*4882a593Smuzhiyunoutput clock. The driver currently works as a Front End of DPCM with other Back 6*4882a593SmuzhiyunEnds Audio controller such as ESAI, SSI and SAI. It has three pairs to support 7*4882a593Smuzhiyunthree substreams within totally 10 channels. 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunRequired properties: 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun - compatible : Compatible list, should contain one of the following 12*4882a593Smuzhiyun compatibles: 13*4882a593Smuzhiyun "fsl,imx35-asrc", 14*4882a593Smuzhiyun "fsl,imx53-asrc", 15*4882a593Smuzhiyun "fsl,imx8qm-asrc", 16*4882a593Smuzhiyun "fsl,imx8qxp-asrc", 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun - reg : Offset and length of the register set for the device. 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun - interrupts : Contains the spdif interrupt. 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun - dmas : Generic dma devicetree binding as described in 23*4882a593Smuzhiyun Documentation/devicetree/bindings/dma/dma.txt. 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun - dma-names : Contains "rxa", "rxb", "rxc", "txa", "txb" and "txc". 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun - clocks : Contains an entry for each entry in clock-names. 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun - clock-names : Contains the following entries 30*4882a593Smuzhiyun "mem" Peripheral access clock to access registers. 31*4882a593Smuzhiyun "ipg" Peripheral clock to driver module. 32*4882a593Smuzhiyun "asrck_<0-f>" Clock sources for input and output clock. 33*4882a593Smuzhiyun "spba" The spba clock is required when ASRC is placed as a 34*4882a593Smuzhiyun bus slave of the Shared Peripheral Bus and when two 35*4882a593Smuzhiyun or more bus masters (CPU, DMA or DSP) try to access 36*4882a593Smuzhiyun it. This property is optional depending on the SoC 37*4882a593Smuzhiyun design. 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun - fsl,asrc-rate : Defines a mutual sample rate used by DPCM Back Ends. 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun - fsl,asrc-width : Defines a mutual sample width used by DPCM Back Ends. 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun - fsl,asrc-clk-map : Defines clock map used in driver. which is required 44*4882a593Smuzhiyun by imx8qm/imx8qxp platform 45*4882a593Smuzhiyun <0> - select the map for asrc0 in imx8qm/imx8qxp 46*4882a593Smuzhiyun <1> - select the map for asrc1 in imx8qm/imx8qxp 47*4882a593Smuzhiyun 48*4882a593SmuzhiyunOptional properties: 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun - big-endian : If this property is absent, the little endian mode 51*4882a593Smuzhiyun will be in use as default. Otherwise, the big endian 52*4882a593Smuzhiyun mode will be in use for all the device registers. 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun - fsl,asrc-format : Defines a mutual sample format used by DPCM Back 55*4882a593Smuzhiyun Ends, which can replace the fsl,asrc-width. 56*4882a593Smuzhiyun The value is 2 (S16_LE), or 6 (S24_LE). 57*4882a593Smuzhiyun 58*4882a593SmuzhiyunExample: 59*4882a593Smuzhiyun 60*4882a593Smuzhiyunasrc: asrc@2034000 { 61*4882a593Smuzhiyun compatible = "fsl,imx53-asrc"; 62*4882a593Smuzhiyun reg = <0x02034000 0x4000>; 63*4882a593Smuzhiyun interrupts = <0 50 IRQ_TYPE_LEVEL_HIGH>; 64*4882a593Smuzhiyun clocks = <&clks 107>, <&clks 107>, <&clks 0>, 65*4882a593Smuzhiyun <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>, 66*4882a593Smuzhiyun <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>, 67*4882a593Smuzhiyun <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>, 68*4882a593Smuzhiyun <&clks 107>, <&clks 0>, <&clks 0>; 69*4882a593Smuzhiyun clock-names = "mem", "ipg", "asrck0", 70*4882a593Smuzhiyun "asrck_1", "asrck_2", "asrck_3", "asrck_4", 71*4882a593Smuzhiyun "asrck_5", "asrck_6", "asrck_7", "asrck_8", 72*4882a593Smuzhiyun "asrck_9", "asrck_a", "asrck_b", "asrck_c", 73*4882a593Smuzhiyun "asrck_d", "asrck_e", "asrck_f"; 74*4882a593Smuzhiyun dmas = <&sdma 17 23 1>, <&sdma 18 23 1>, <&sdma 19 23 1>, 75*4882a593Smuzhiyun <&sdma 20 23 1>, <&sdma 21 23 1>, <&sdma 22 23 1>; 76*4882a593Smuzhiyun dma-names = "rxa", "rxb", "rxc", 77*4882a593Smuzhiyun "txa", "txb", "txc"; 78*4882a593Smuzhiyun fsl,asrc-rate = <48000>; 79*4882a593Smuzhiyun fsl,asrc-width = <16>; 80*4882a593Smuzhiyun}; 81