Commit 513cea27 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Geert Uytterhoeven
Browse files

arm64: dts: renesas: r8a77995: draak: Add R-Car Sound support

parent 5d78c97b
Loading
Loading
Loading
Loading
+121 −0
Original line number Diff line number Diff line
@@ -20,6 +20,16 @@ aliases {
		ethernet0 = &avb;
	};

	audio_clkout: audio-clkout {
		/*
		 * This is same as <&rcar_sound 0>
		 * but needed to avoid cs2000/rcar_sound probe dead-lock
		 */
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <12288000>;
	};

	backlight: backlight {
		compatible = "pwm-backlight";
		pwms = <&pwm1 0 50000>;
@@ -161,6 +171,14 @@ reg_12p0v: regulator-12p0v {
		regulator-always-on;
	};

	sound_card: sound {
		compatible = "audio-graph-card";

		dais = <&rsnd_port0	/* ak4613 */
			/* HDMI is not yet supported */
		>;
	};

	vga {
		compatible = "vga-connector";

@@ -198,6 +216,25 @@ x12_clk: x12 {
		#clock-cells = <0>;
		clock-frequency = <74250000>;
	};

	x19_clk: x19 {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <24576000>;
	};
};

&audio_clk_b {
	/*
	 * X11 is connected to VI4_FIELD/SCIF_CLK/AUDIO_CLKB,
	 * and R-Car Sound uses AUDIO_CLKB.
	 * Note is that schematic indicates VI4_FIELD conection only
	 * not AUDIO_CLKB at SoC page.
	 * And this VI4_FIELD/SCIF_CLK/AUDIO_CLKB is connected to SW60.
	 * SW60 should be 1-2.
	 */

	clock-frequency = <22579200>;
};

&avb {
@@ -273,6 +310,28 @@ &i2c0 {
	pinctrl-names = "default";
	status = "okay";

	ak4613: codec@10 {
		compatible = "asahi-kasei,ak4613";
		#sound-dai-cells = <0>;
		reg = <0x10>;
		clocks = <&rcar_sound 0>; /* audio_clkout */

		asahi-kasei,in1-single-end;
		asahi-kasei,in2-single-end;
		asahi-kasei,out1-single-end;
		asahi-kasei,out2-single-end;
		asahi-kasei,out3-single-end;
		asahi-kasei,out4-single-end;
		asahi-kasei,out5-single-end;
		asahi-kasei,out6-single-end;

		port {
			ak4613_endpoint: endpoint {
				remote-endpoint = <&rsnd_for_ak4613>;
			};
		};
	};

	composite-in@20 {
		compatible = "adi,adv7180cp";
		reg = <0x20>;
@@ -375,6 +434,17 @@ adv7612_out: endpoint {
		};
	};

	cs2000: clk-multiplier@4f {
		#clock-cells = <0>;
		compatible = "cirrus,cs2000-cp";
		reg = <0x4f>;
		clocks = <&audio_clkout>, <&x19_clk>; /* audio_clkout_1, x19 */
		clock-names = "clk_in", "ref_clk";

		assigned-clocks = <&cs2000>;
		assigned-clock-rates = <24576000>; /* 1/1 divide */
	};

	eeprom@50 {
		compatible = "rohm,br24t01", "atmel,24c01";
		reg = <0x50>;
@@ -487,6 +557,17 @@ sdhi2_pins_uhs: sd2_uhs {
		power-source = <1800>;
	};

	sound_pins: sound {
		groups = "ssi34_ctrl", "ssi3_data", "ssi4_data_a";
		function = "ssi";
	};

	sound_clk_pins: sound-clk {
		groups = "audio_clk_a", "audio_clk_b",
			 "audio_clkout", "audio_clkout1";
		function = "audio_clk";
	};

	usb0_pins: usb0 {
		groups = "usb0";
		function = "usb0";
@@ -512,6 +593,42 @@ &pwm1 {
	status = "okay";
};

&rcar_sound {
	pinctrl-0 = <&sound_pins>, <&sound_clk_pins>;
	pinctrl-names = "default";

	/* Single DAI */
	#sound-dai-cells = <0>;

	/* audio_clkout0/1 */
	#clock-cells = <1>;
	clock-frequency = <12288000 11289600>;

	status = "okay";

	clocks = <&cpg CPG_MOD 1005>,
		 <&cpg CPG_MOD 1011>, <&cpg CPG_MOD 1012>,
		 <&cpg CPG_MOD 1025>, <&cpg CPG_MOD 1026>,
		 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>,
		 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>,
		 <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>,
		 <&cs2000>, <&audio_clk_b>,
		 <&cpg CPG_CORE R8A77995_CLK_ZA2>;

	ports {
		rsnd_port0: port {
			rsnd_for_ak4613: endpoint {
				remote-endpoint = <&ak4613_endpoint>;
				dai-format = "left_j";
				bitclock-master = <&rsnd_for_ak4613>;
				frame-master = <&rsnd_for_ak4613>;
				playback = <&ssi3>, <&src5>, <&dvc0>;
				capture  = <&ssi4>, <&src6>, <&dvc1>;
			};
		};
	};
};

&rwdt {
	timeout-sec = <60>;
	status = "okay";
@@ -540,6 +657,10 @@ &sdhi2 {
	status = "okay";
};

&ssi4 {
	shared-pin;
};

&usb2_phy0 {
	pinctrl-0 = <&usb0_pins>;
	pinctrl-names = "default";