* Rockchip I2S controller The I2S bus (Inter-IC sound bus) is a serial link for digital audio data transfer between devices in the system. Required properties: - compatible: should be one of the following: - "rockchip,rk3066-i2s": for rk3066 - "rockchip,px30-i2s", "rockchip,rk3066-i2s": for px30 - "rockchip,rk1808-i2s", "rockchip,rk3066-i2s": for rk1808 - "rockchip,rk3036-i2s", "rockchip,rk3066-i2s": for rk3036 - "rockchip,rk3128-i2s", "rockchip,rk3066-i2s": for rk3128 - "rockchip,rk3188-i2s", "rockchip,rk3066-i2s": for rk3188 - "rockchip,rk3228-i2s", "rockchip,rk3066-i2s": for rk3228 - "rockchip,rk3288-i2s", "rockchip,rk3066-i2s": for rk3288 - "rockchip,rk3308-i2s", "rockchip,rk3066-i2s": for rk3308 - "rockchip,rk3328-i2s", "rockchip,rk3066-i2s": for rk3328 - "rockchip,rk3366-i2s", "rockchip,rk3066-i2s": for rk3366 - "rockchip,rk3368-i2s", "rockchip,rk3066-i2s": for rk3368 - "rockchip,rk3399-i2s", "rockchip,rk3066-i2s": for rk3399 - "rockchip,rv1126-i2s", "rockchip,rk3066-i2s": for rv1126 - reg: physical base address of the controller and length of memory mapped region. - interrupts: should contain the I2S interrupt. - dmas: DMA specifiers for tx and rx dma. See the DMA client binding, Documentation/devicetree/bindings/dma/dma.txt - dma-names: should include "tx" and "rx". - clocks: a list of phandle + clock-specifer pairs, one for each entry in clock-names. - clock-names: should contain the following: - "i2s_hclk": clock for I2S BUS - "i2s_clk" : clock for I2S controller - resets: a list of phandle + reset-specifer paris, one for each entry in reset-names. - reset-names: reset names, should include "reset-m", "reset-h", there may be only "reset-m" on some platforms. - rockchip,playback-channels: max playback channels, if not set, 8 channels default. - rockchip,capture-channels: max capture channels, if not set, 2 channels default. - rockchip,bclk-fs: configure the i2s bclk fs. - rockchip,clk-trcm: tx and rx lrck/bclk common use. - 0: both tx_lrck/bclk and rx_lrck/bclk are used - 1: only tx_lrck/bclk is used - 2: only rx_lrck/bclk is used - rockchip,no-dmaengine: This is a boolean property. If present, driver will do not register pcm dmaengine, only just register dai. if the dai is part of multi-dais, the property should be present. Please refer to rockchip,multidais.txt about multi-dais usage. - rockchip,playback-only: Specify that the controller only has playback capability. - rockchip,capture-only: Specify that the controller only has capture capability. Required properties for controller which support multi channels playback/capture: - rockchip,grf: the phandle of the syscon node for GRF register. Optional properties: - rockchip,mclk-calibrate: This is a boolean value, if present, enable clk calibrate and compenation. note: the corresponding property 'i2s_clk_root' should be assigned. Example for rk3288 I2S controller: i2s@ff890000 { compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s"; reg = <0xff890000 0x10000>; interrupts = ; dmas = <&pdma1 0>, <&pdma1 1>; dma-names = "tx", "rx"; clock-names = "i2s_hclk", "i2s_clk"; clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>; rockchip,playback-channels = <8>; rockchip,capture-channels = <2>; rockchip,bclk-fs = <64>; }; Example for RV1126 I2S controller with mclk-calibrate: &i2s1_2ch { status = "okay"; clocks = <&cru MCLK_I2S1>, <&cru HCLK_I2S1>, <&cru PLL_CPLL>; clock-names = "i2s_clk", "i2s_hclk", "i2s_clk_root"; rockchip,mclk-calibrate; };