Loading Documentation/devicetree/bindings/sound/samsung,smdk-wm8994.txt 0 → 100644 +14 −0 Original line number Diff line number Diff line Samsung SMDK audio complex Required properties: - compatible : "samsung,smdk-wm8994" - samsung,i2s-controller: The phandle of the Samsung I2S0 controller - samsung,audio-codec: The phandle of the WM8994 audio codec Example: sound { compatible = "samsung,smdk-wm8994"; samsung,i2s-controller = <&i2s0>; samsung,audio-codec = <&wm8994>; }; Documentation/devicetree/bindings/sound/samsung-i2s.txt 0 → 100644 +63 −0 Original line number Diff line number Diff line * Samsung I2S controller Required SoC Specific Properties: - compatible : "samsung,i2s-v5" - 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. Optional SoC Specific Properties: - samsung,supports-6ch: If the I2S Primary sound source has 5.1 Channel support, this flag is enabled. - samsung,supports-rstclr: This flag should be set if I2S software reset bit control is required. When this flag is set I2S software reset bit will be enabled or disabled based on need. - samsung,supports-secdai:If I2S block has a secondary FIFO and internal DMA, then this flag is enabled. - samsung,idma-addr: Internal DMA register base address of the audio sub system(used in secondary sound source). Required Board Specific Properties: - gpios: The gpio specifier for data out,data in, LRCLK, CDCLK and SCLK interface lines. The format of the gpio specifier depends on the gpio controller. The syntax of samsung gpio specifier is <[phandle of the gpio controller node] [pin number within the gpio controller] [mux function] [flags and pull up/down] [drive strength]> Example: - SoC Specific Portion: i2s@03830000 { compatible = "samsung,i2s-v5"; reg = <0x03830000 0x100>; dmas = <&pdma0 10 &pdma0 9 &pdma0 8>; dma-names = "tx", "rx", "tx-sec"; samsung,supports-6ch; samsung,supports-rstclr; samsung,supports-secdai; samsung,idma-addr = <0x03000000>; }; - Board Specific Portion: i2s@03830000 { gpios = <&gpz 0 2 0 0>, /* I2S_0_SCLK */ <&gpz 1 2 0 0>, /* I2S_0_CDCLK */ <&gpz 2 2 0 0>, /* I2S_0_LRCK */ <&gpz 3 2 0 0>, /* I2S_0_SDI */ <&gpz 4 2 0 0>, /* I2S_0_SDO[1] */ <&gpz 5 2 0 0>, /* I2S_0_SDO[2] */ <&gpz 6 2 0 0>; /* I2S_0_SDO[3] */ }; arch/arm/boot/dts/exynos5250-smdk5250.dts +26 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,11 @@ compatible = "samsung,s524ad0xd1"; reg = <0x51>; }; wm8994: wm8994@1a { compatible = "wlf,wm8994"; reg = <0x1a>; }; }; i2c@121D0000 { Loading Loading @@ -204,4 +209,25 @@ samsung,mfc-r = <0x43000000 0x800000>; samsung,mfc-l = <0x51000000 0x800000>; }; i2s0: i2s@03830000 { gpios = <&gpz 0 2 0 0>, <&gpz 1 2 0 0>, <&gpz 2 2 0 0>, <&gpz 3 2 0 0>, <&gpz 4 2 0 0>, <&gpz 5 2 0 0>, <&gpz 6 2 0 0>; }; i2s1: i2s@12D60000 { status = "disabled"; }; i2s2: i2s@12D70000 { status = "disabled"; }; sound { compatible = "samsung,smdk-wm8994"; samsung,i2s-controller = <&i2s0>; samsung,audio-codec = <&wm8994>; }; }; arch/arm/boot/dts/exynos5250.dtsi +38 −6 Original line number Diff line number Diff line Loading @@ -211,8 +211,9 @@ compatible = "samsung,exynos4210-spi"; reg = <0x12d20000 0x100>; interrupts = <0 66 0>; tx-dma-channel = <&pdma0 5>; /* preliminary */ rx-dma-channel = <&pdma0 4>; /* preliminary */ dmas = <&pdma0 5 &pdma0 4>; dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; }; Loading @@ -221,8 +222,9 @@ compatible = "samsung,exynos4210-spi"; reg = <0x12d30000 0x100>; interrupts = <0 67 0>; tx-dma-channel = <&pdma1 5>; /* preliminary */ rx-dma-channel = <&pdma1 4>; /* preliminary */ dmas = <&pdma1 5 &pdma1 4>; dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; }; Loading @@ -231,8 +233,9 @@ compatible = "samsung,exynos4210-spi"; reg = <0x12d40000 0x100>; interrupts = <0 68 0>; tx-dma-channel = <&pdma0 7>; /* preliminary */ rx-dma-channel = <&pdma0 6>; /* preliminary */ dmas = <&pdma0 7 &pdma0 6>; dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; }; Loading Loading @@ -269,6 +272,35 @@ #size-cells = <0>; }; i2s0: i2s@03830000 { compatible = "samsung,i2s-v5"; reg = <0x03830000 0x100>; dmas = <&pdma0 10 &pdma0 9 &pdma0 8>; dma-names = "tx", "rx", "tx-sec"; samsung,supports-6ch; samsung,supports-rstclr; samsung,supports-secdai; samsung,idma-addr = <0x03000000>; }; i2s1: i2s@12D60000 { compatible = "samsung,i2s-v5"; reg = <0x12D60000 0x100>; dmas = <&pdma1 12 &pdma1 11>; dma-names = "tx", "rx"; }; i2s2: i2s@12D70000 { compatible = "samsung,i2s-v5"; reg = <0x12D70000 0x100>; dmas = <&pdma0 12 &pdma0 11>; dma-names = "tx", "rx"; }; amba { #address-cells = <1>; #size-cells = <1>; Loading arch/arm/mach-exynos/mach-exynos5-dt.c +6 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,12 @@ static const struct of_dev_auxdata exynos5250_auxdata_lookup[] __initconst = { OF_DEV_AUXDATA("samsung,mfc-v6", 0x11000000, "s5p-mfc-v6", NULL), OF_DEV_AUXDATA("samsung,exynos5250-tmu", 0x10060000, "exynos-tmu", NULL), OF_DEV_AUXDATA("samsung,i2s-v5", 0x03830000, "samsung-i2s.0", NULL), OF_DEV_AUXDATA("samsung,i2s-v5", 0x12D60000, "samsung-i2s.1", NULL), OF_DEV_AUXDATA("samsung,i2s-v5", 0x12D70000, "samsung-i2s.2", NULL), {}, }; Loading Loading
Documentation/devicetree/bindings/sound/samsung,smdk-wm8994.txt 0 → 100644 +14 −0 Original line number Diff line number Diff line Samsung SMDK audio complex Required properties: - compatible : "samsung,smdk-wm8994" - samsung,i2s-controller: The phandle of the Samsung I2S0 controller - samsung,audio-codec: The phandle of the WM8994 audio codec Example: sound { compatible = "samsung,smdk-wm8994"; samsung,i2s-controller = <&i2s0>; samsung,audio-codec = <&wm8994>; };
Documentation/devicetree/bindings/sound/samsung-i2s.txt 0 → 100644 +63 −0 Original line number Diff line number Diff line * Samsung I2S controller Required SoC Specific Properties: - compatible : "samsung,i2s-v5" - 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. Optional SoC Specific Properties: - samsung,supports-6ch: If the I2S Primary sound source has 5.1 Channel support, this flag is enabled. - samsung,supports-rstclr: This flag should be set if I2S software reset bit control is required. When this flag is set I2S software reset bit will be enabled or disabled based on need. - samsung,supports-secdai:If I2S block has a secondary FIFO and internal DMA, then this flag is enabled. - samsung,idma-addr: Internal DMA register base address of the audio sub system(used in secondary sound source). Required Board Specific Properties: - gpios: The gpio specifier for data out,data in, LRCLK, CDCLK and SCLK interface lines. The format of the gpio specifier depends on the gpio controller. The syntax of samsung gpio specifier is <[phandle of the gpio controller node] [pin number within the gpio controller] [mux function] [flags and pull up/down] [drive strength]> Example: - SoC Specific Portion: i2s@03830000 { compatible = "samsung,i2s-v5"; reg = <0x03830000 0x100>; dmas = <&pdma0 10 &pdma0 9 &pdma0 8>; dma-names = "tx", "rx", "tx-sec"; samsung,supports-6ch; samsung,supports-rstclr; samsung,supports-secdai; samsung,idma-addr = <0x03000000>; }; - Board Specific Portion: i2s@03830000 { gpios = <&gpz 0 2 0 0>, /* I2S_0_SCLK */ <&gpz 1 2 0 0>, /* I2S_0_CDCLK */ <&gpz 2 2 0 0>, /* I2S_0_LRCK */ <&gpz 3 2 0 0>, /* I2S_0_SDI */ <&gpz 4 2 0 0>, /* I2S_0_SDO[1] */ <&gpz 5 2 0 0>, /* I2S_0_SDO[2] */ <&gpz 6 2 0 0>; /* I2S_0_SDO[3] */ };
arch/arm/boot/dts/exynos5250-smdk5250.dts +26 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,11 @@ compatible = "samsung,s524ad0xd1"; reg = <0x51>; }; wm8994: wm8994@1a { compatible = "wlf,wm8994"; reg = <0x1a>; }; }; i2c@121D0000 { Loading Loading @@ -204,4 +209,25 @@ samsung,mfc-r = <0x43000000 0x800000>; samsung,mfc-l = <0x51000000 0x800000>; }; i2s0: i2s@03830000 { gpios = <&gpz 0 2 0 0>, <&gpz 1 2 0 0>, <&gpz 2 2 0 0>, <&gpz 3 2 0 0>, <&gpz 4 2 0 0>, <&gpz 5 2 0 0>, <&gpz 6 2 0 0>; }; i2s1: i2s@12D60000 { status = "disabled"; }; i2s2: i2s@12D70000 { status = "disabled"; }; sound { compatible = "samsung,smdk-wm8994"; samsung,i2s-controller = <&i2s0>; samsung,audio-codec = <&wm8994>; }; };
arch/arm/boot/dts/exynos5250.dtsi +38 −6 Original line number Diff line number Diff line Loading @@ -211,8 +211,9 @@ compatible = "samsung,exynos4210-spi"; reg = <0x12d20000 0x100>; interrupts = <0 66 0>; tx-dma-channel = <&pdma0 5>; /* preliminary */ rx-dma-channel = <&pdma0 4>; /* preliminary */ dmas = <&pdma0 5 &pdma0 4>; dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; }; Loading @@ -221,8 +222,9 @@ compatible = "samsung,exynos4210-spi"; reg = <0x12d30000 0x100>; interrupts = <0 67 0>; tx-dma-channel = <&pdma1 5>; /* preliminary */ rx-dma-channel = <&pdma1 4>; /* preliminary */ dmas = <&pdma1 5 &pdma1 4>; dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; }; Loading @@ -231,8 +233,9 @@ compatible = "samsung,exynos4210-spi"; reg = <0x12d40000 0x100>; interrupts = <0 68 0>; tx-dma-channel = <&pdma0 7>; /* preliminary */ rx-dma-channel = <&pdma0 6>; /* preliminary */ dmas = <&pdma0 7 &pdma0 6>; dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; }; Loading Loading @@ -269,6 +272,35 @@ #size-cells = <0>; }; i2s0: i2s@03830000 { compatible = "samsung,i2s-v5"; reg = <0x03830000 0x100>; dmas = <&pdma0 10 &pdma0 9 &pdma0 8>; dma-names = "tx", "rx", "tx-sec"; samsung,supports-6ch; samsung,supports-rstclr; samsung,supports-secdai; samsung,idma-addr = <0x03000000>; }; i2s1: i2s@12D60000 { compatible = "samsung,i2s-v5"; reg = <0x12D60000 0x100>; dmas = <&pdma1 12 &pdma1 11>; dma-names = "tx", "rx"; }; i2s2: i2s@12D70000 { compatible = "samsung,i2s-v5"; reg = <0x12D70000 0x100>; dmas = <&pdma0 12 &pdma0 11>; dma-names = "tx", "rx"; }; amba { #address-cells = <1>; #size-cells = <1>; Loading
arch/arm/mach-exynos/mach-exynos5-dt.c +6 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,12 @@ static const struct of_dev_auxdata exynos5250_auxdata_lookup[] __initconst = { OF_DEV_AUXDATA("samsung,mfc-v6", 0x11000000, "s5p-mfc-v6", NULL), OF_DEV_AUXDATA("samsung,exynos5250-tmu", 0x10060000, "exynos-tmu", NULL), OF_DEV_AUXDATA("samsung,i2s-v5", 0x03830000, "samsung-i2s.0", NULL), OF_DEV_AUXDATA("samsung,i2s-v5", 0x12D60000, "samsung-i2s.1", NULL), OF_DEV_AUXDATA("samsung,i2s-v5", 0x12D70000, "samsung-i2s.2", NULL), {}, }; Loading