* 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(5.1) I2S for
     playback, sterio channel capture, secondary fifo using internal
     or external dma, s/w reset control, internal mux for root clk src
     and 7.1 channel TDM support for playback. TDM (Time division multiplexing)
     is to allow transfer of multiple channel audio data on single data line.
   - samsung,exynos7-i2s: with all the available features of exynos5 i2s,
     exynos7 I2S has 7.1 channel TDM support for capture, secondary fifo
     with only external dma and more no.of root clk sampling frequencies.
   - samsung,exynos7-i2s1: I2S1 on previous samsung platforms supports
     stereo channels. exynos7 i2s1 upgraded to 5.1 multichannel with
     slightly modified bit offsets.

- 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>;
};
