| * Samsung I2S controller |
| |
| Required SoC Specific Properties: |
| |
| - compatible : should be one of the following. |
| - samsung,s3c6410-i2s: for 8/16/24bit stereo I2S. |
| - samsung,s5pv210-i2s: for 8/16/24bit multichannel(5.1) I2S with |
| secondary fifo, s/w reset control and internal mux for root clk src. |
| - samsung,exynos5420-i2s: for 8/16/24bit multichannel(7.1) I2S with |
| secondary fifo, s/w reset control, internal mux for root clk src and |
| TDM support. TDM (Time division multiplexing) is to allow transfer of |
| multiple channel audio data on single data line. |
| |
| - reg: physical base address of the controller and length of memory mapped |
| region. |
| - dmas: list of DMA controller phandle and DMA request line ordered pairs. |
| - dma-names: identifier string for each DMA request line in the dmas property. |
| These strings correspond 1:1 with the ordered pairs in dmas. |
| - clocks: Handle to iis clock and RCLK source clk. |
| - clock-names: |
| i2s0 uses some base clks from CMU and some are from audio subsystem internal |
| clock controller. The clock names for i2s0 should be "iis", "i2s_opclk0" and |
| "i2s_opclk1" as shown in the example below. |
| i2s1 and i2s2 uses clocks from CMU. The clock names for i2s1 and i2s2 should |
| be "iis" and "i2s_opclk0". |
| "iis" is the i2s bus clock and i2s_opclk0, i2s_opclk1 are sources of the root |
| clk. i2s0 has internal mux to select the source of root clk and i2s1 and i2s2 |
| doesn't have any such mux. |
| |
| Optional SoC Specific Properties: |
| |
| - samsung,idma-addr: Internal DMA register base address of the audio |
| sub system(used in secondary sound source). |
| - pinctrl-0: Should specify pin control groups used for this controller. |
| - pinctrl-names: Should contain only one value - "default". |
| |
| Example: |
| |
| i2s0: i2s@03830000 { |
| compatible = "samsung,s5pv210-i2s"; |
| reg = <0x03830000 0x100>; |
| dmas = <&pdma0 10 |
| &pdma0 9 |
| &pdma0 8>; |
| dma-names = "tx", "rx", "tx-sec"; |
| clocks = <&clock_audss EXYNOS_I2S_BUS>, |
| <&clock_audss EXYNOS_I2S_BUS>, |
| <&clock_audss EXYNOS_SCLK_I2S>; |
| clock-names = "iis", "i2s_opclk0", "i2s_opclk1"; |
| samsung,idma-addr = <0x03000000>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&i2s0_bus>; |
| }; |