2013-01-18 19:47:01 +08:00
|
|
|
* Samsung I2S controller
|
|
|
|
|
|
|
|
Required SoC Specific Properties:
|
|
|
|
|
2013-08-12 17:49:51 +08:00
|
|
|
- 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.
|
2013-08-12 17:49:52 +08:00
|
|
|
- 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.
|
2013-08-12 17:49:51 +08:00
|
|
|
|
2013-01-18 19:47:01 +08:00
|
|
|
- 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.
|
2013-06-17 23:02:31 +08:00
|
|
|
- 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.
|
2013-01-18 19:47:01 +08:00
|
|
|
|
|
|
|
Optional SoC Specific Properties:
|
|
|
|
|
|
|
|
- samsung,idma-addr: Internal DMA register base address of the audio
|
|
|
|
sub system(used in secondary sound source).
|
2013-06-17 23:02:31 +08:00
|
|
|
- pinctrl-0: Should specify pin control groups used for this controller.
|
|
|
|
- pinctrl-names: Should contain only one value - "default".
|
2013-01-18 19:47:01 +08:00
|
|
|
|
|
|
|
Example:
|
|
|
|
|
2013-06-17 23:02:31 +08:00
|
|
|
i2s0: i2s@03830000 {
|
2013-08-12 17:49:51 +08:00
|
|
|
compatible = "samsung,s5pv210-i2s";
|
2013-01-18 19:47:01 +08:00
|
|
|
reg = <0x03830000 0x100>;
|
|
|
|
dmas = <&pdma0 10
|
|
|
|
&pdma0 9
|
|
|
|
&pdma0 8>;
|
|
|
|
dma-names = "tx", "rx", "tx-sec";
|
2013-06-17 23:02:31 +08:00
|
|
|
clocks = <&clock_audss EXYNOS_I2S_BUS>,
|
|
|
|
<&clock_audss EXYNOS_I2S_BUS>,
|
|
|
|
<&clock_audss EXYNOS_SCLK_I2S>;
|
|
|
|
clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
|
2013-01-18 19:47:01 +08:00
|
|
|
samsung,idma-addr = <0x03000000>;
|
2013-06-17 23:02:31 +08:00
|
|
|
pinctrl-names = "default";
|
|
|
|
pinctrl-0 = <&i2s0_bus>;
|
2013-01-18 19:47:01 +08:00
|
|
|
};
|