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

Commit d95ed430 authored by Klaus Goger's avatar Klaus Goger Committed by Heiko Stuebner
Browse files

arm64: dts: rockchip: enable I2S codec on rk3399-puma-haikou



Enable the NXP SGTL5000 audio codec on the RK3399-Q7 EVK baseboard
Haikou.

Signed-off-by: default avatarKlaus Goger <klaus.goger@theobroma-systems.com>
Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
parent 139eabec
Loading
Loading
Loading
Loading
+63 −0
Original line number Diff line number Diff line
@@ -61,6 +61,30 @@
		};
	};

	i2s0-sound {
		compatible = "simple-audio-card";
		simple-audio-card,format = "i2s";
		simple-audio-card,name = "Haikou,I2S-codec";
		simple-audio-card,mclk-fs = <512>;

		simple-audio-card,codec {
			clocks = <&sgtl5000_clk>;
			sound-dai = <&sgtl5000>;
		};

		simple-audio-card,cpu {
			bitclock-master;
			frame-master;
			sound-dai = <&i2s0>;
		};
	};

	sgtl5000_clk: sgtl5000-oscillator  {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency  = <24576000>;
	};

	dc_12v: dc-12v {
		compatible = "regulator-fixed";
		regulator-name = "dc_12v";
@@ -80,6 +104,16 @@
		vin-supply = <&dc_12v>;
	};

	vcc5v0_baseboard: vcc5v0-baseboard {
		compatible = "regulator-fixed";
		regulator-name = "vcc5v0_baseboard";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		vin-supply = <&dc_12v>;
	};

	vcc5v0_otg: vcc5v0-otg-regulator {
		compatible = "regulator-fixed";
		enable-active-high;
@@ -89,6 +123,24 @@
		regulator-name = "vcc5v0_otg";
		regulator-always-on;
	};

	vdda_codec: vdda-codec {
		compatible = "regulator-fixed";
		regulator-name = "vdda_codec";
		regulator-boot-on;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&vcc5v0_baseboard>;
	};

	vddd_codec: vddd-codec {
		compatible = "regulator-fixed";
		regulator-name = "vddd_codec";
		regulator-boot-on;
		regulator-min-microvolt = <1600000>;
		regulator-max-microvolt = <1600000>;
		vin-supply = <&vcc5v0_baseboard>;
	};
};

&i2c1 {
@@ -110,6 +162,17 @@
&i2c4 {
	status = "okay";
	clock-frequency = <400000>;

	sgtl5000: codec@0a {
		compatible = "fsl,sgtl5000";
		reg = <0x0a>;
		clocks = <&sgtl5000_clk>;
		#sound-dai-cells = <0>;
		VDDA-supply = <&vdda_codec>;
		VDDIO-supply = <&vdda_codec>;
		VDDD-supply = <&vddd_codec>;
		status = "okay";
	};
};

&i2c6 {
+14 −0
Original line number Diff line number Diff line
@@ -443,6 +443,20 @@
	status = "okay";
};

/*
 * As Q7 does not specify neither a global nor a RX clock for I2S these
 * signals are not used. Furthermore I2S0_LRCK_RX is used as GPIO.
 * Therefore we have to redefine the i2s0_2ch_bus definition to prevent
 * conflicts.
 */
&i2s0_2ch_bus {
	rockchip,pins =
		<RK_GPIO3 RK_PD0 RK_FUNC_1 &pcfg_pull_none>,
		<RK_GPIO3 RK_PD2 RK_FUNC_1 &pcfg_pull_none>,
		<RK_GPIO3 RK_PD3 RK_FUNC_1 &pcfg_pull_none>,
		<RK_GPIO3 RK_PD7 RK_FUNC_1 &pcfg_pull_none>;
};

&io_domains {
	status = "okay";
	bt656-supply = <&vcc_1v8>;