Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ddaaeee0 authored by Mark Brown's avatar Mark Brown
Browse files

Merge remote-tracking branches 'asoc/topic/rt5670', 'asoc/topic/rt5677',...

Merge remote-tracking branches 'asoc/topic/rt5670', 'asoc/topic/rt5677', 'asoc/topic/rx51', 'asoc/topic/samsung' and 'asoc/topic/sh' into asoc-next
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -33,6 +33,25 @@ Required SoC Specific Properties:
  "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.
- #clock-cells: should be 1, this property must be present if the I2S device
  is a clock provider in terms of the common clock bindings, described in
  ../clock/clock-bindings.txt.
- clock-output-names: from the common clock bindings, names of the CDCLK
  I2S output clocks, suggested values are "i2s_cdclk0", "i2s_cdclk1",
  "i2s_cdclk3" for the I2S0, I2S1, I2S2 devices recpectively.

There are following clocks available at the I2S device nodes:
 CLK_I2S_CDCLK    - the CDCLK (CODECLKO) gate clock,
 CLK_I2S_RCLK_PSR - the RCLK prescaler divider clock (corresponding to the
		    IISPSR register),
 CLK_I2S_RCLK_SRC - the RCLKSRC mux clock (corresponding to RCLKSRC bit in
		    IISMOD register).

Refer to the SoC datasheet for availability of the above clocks.
The CLK_I2S_RCLK_PSR and CLK_I2S_RCLK_SRC clocks are usually only available
in the IIS Multi Audio Interface (I2S0).
Note: Old DTs may not have the #clock-cells, clock-output-names properties
and then not use the I2S node as a clock supplier.

Optional SoC Specific Properties:

@@ -41,6 +60,7 @@ Optional SoC Specific Properties:
- pinctrl-0: Should specify pin control groups used for this controller.
- pinctrl-names: Should contain only one value - "default".


Example:

i2s0: i2s@03830000 {
@@ -54,6 +74,8 @@ i2s0: i2s@03830000 {
		<&clock_audss EXYNOS_I2S_BUS>,
		<&clock_audss EXYNOS_SCLK_I2S>;
	clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
	#clock-cells;
	clock-output-names = "i2s_cdclk0";
	samsung,idma-addr = <0x03000000>;
	pinctrl-names = "default";
	pinctrl-0 = <&i2s0_bus>;
+9 −0
Original line number Diff line number Diff line
@@ -61,9 +61,12 @@
		reg = <0x03830000 0x100>;
		clocks = <&clock_audss EXYNOS_I2S_BUS>;
		clock-names = "iis";
		#clock-cells = <1>;
		clock-output-names = "i2s_cdclk0";
		dmas = <&pdma0 12>, <&pdma0 11>, <&pdma0 10>;
		dma-names = "tx", "rx", "tx-sec";
		samsung,idma-addr = <0x03000000>;
		#sound-dai-cells = <1>;
		status = "disabled";
	};

@@ -372,8 +375,11 @@
		reg = <0x13960000 0x100>;
		clocks = <&clock CLK_I2S1>;
		clock-names = "iis";
		#clock-cells = <1>;
		clock-output-names = "i2s_cdclk1";
		dmas = <&pdma1 12>, <&pdma1 11>;
		dma-names = "tx", "rx";
		#sound-dai-cells = <1>;
		status = "disabled";
	};

@@ -382,8 +388,11 @@
		reg = <0x13970000 0x100>;
		clocks = <&clock CLK_I2S2>;
		clock-names = "iis";
		#clock-cells = <1>;
		clock-output-names = "i2s_cdclk2";
		dmas = <&pdma0 14>, <&pdma0 13>;
		dma-names = "tx", "rx";
		#sound-dai-cells = <1>;
		status = "disabled";
	};

+22 −5
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@
 * published by the Free Software Foundation.
*/

#include <dt-bindings/sound/samsung-i2s.h>
#include <dt-bindings/input/input.h>
#include "exynos4412.dtsi"

@@ -37,14 +38,13 @@
		pinctrl-names = "default";
		status = "okay";
		clocks = <&clock_audss EXYNOS_I2S_BUS>,
			 <&clock_audss EXYNOS_DOUT_AUD_BUS>;
		clock-names = "iis", "i2s_opclk0";
			 <&clock_audss EXYNOS_DOUT_AUD_BUS>,
			 <&clock_audss EXYNOS_SCLK_I2S>;
		clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
	};

	sound: sound {
		compatible = "samsung,odroidx2-audio";
		samsung,i2s-controller = <&i2s0>;
		samsung,audio-codec = <&max98090>;
		compatible = "simple-audio-card";
		assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
				<&clock_audss EXYNOS_MOUT_I2S>,
				<&clock_audss EXYNOS_DOUT_SRP>,
@@ -55,6 +55,20 @@
				<0>,
				<192000000>,
				<19200000>;

		simple-audio-card,format = "i2s";
		simple-audio-card,bitclock-master = <&link0_codec>;
		simple-audio-card,frame-master = <&link0_codec>;

		simple-audio-card,cpu {
			sound-dai = <&i2s0 0>;
			system-clock-frequency = <19200000>;
		};

		link0_codec: simple-audio-card,codec {
			sound-dai = <&max98090>;
			clocks = <&i2s0 CLK_I2S_CDCLK>;
		};
	};

	mmc@12550000 {
@@ -373,6 +387,9 @@
			reg = <0x10>;
			interrupt-parent = <&gpx0>;
			interrupts = <0 0>;
			clocks = <&i2s0 CLK_I2S_CDCLK>;
			clock-names = "mclk";
			#sound-dai-cells = <0>;
		};
	};

+5 −3
Original line number Diff line number Diff line
@@ -49,9 +49,11 @@
};

&sound {
	compatible = "samsung,odroidu3-audio";
	samsung,model = "Odroid-U3";
	samsung,audio-routing =
	simple-audio-card,name = "Odroid-U3";
	simple-audio-card,widgets =
		"Headphone", "Headphone Jack",
		"Speakers", "Speakers";
	simple-audio-card,routing =
		"Headphone Jack", "HPL",
		"Headphone Jack", "HPR",
		"Headphone Jack", "MICBIAS",
+6 −2
Original line number Diff line number Diff line
@@ -23,8 +23,12 @@
};

&sound {
	samsung,model = "Odroid-X2";
	samsung,audio-routing =
	simple-audio-card,name = "Odroid-X2";
	simple-audio-card,widgets =
		"Headphone", "Headphone Jack",
		"Microphone", "Mic Jack",
		"Microphone", "DMIC";
	simple-audio-card,routing =
		"Headphone Jack", "HPL",
		"Headphone Jack", "HPR",
		"IN1", "Mic Jack",
Loading