162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci *
462306a36Sopenharmony_ci * This file defines the common audio settings for the child boards
562306a36Sopenharmony_ci * using rt5682 codec.
662306a36Sopenharmony_ci *
762306a36Sopenharmony_ci * Copyright 2022 Google LLC.
862306a36Sopenharmony_ci */
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci/ {
1162306a36Sopenharmony_ci	/* BOARD-SPECIFIC TOP LEVEL NODES */
1262306a36Sopenharmony_ci	sound: sound {
1362306a36Sopenharmony_ci		compatible = "google,sc7280-herobrine";
1462306a36Sopenharmony_ci		model = "sc7280-rt5682-max98360a-1mic";
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci		audio-routing = "Headphone Jack", "HPOL",
1762306a36Sopenharmony_ci				"Headphone Jack", "HPOR";
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci		#address-cells = <1>;
2062306a36Sopenharmony_ci		#size-cells = <0>;
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci		dai-link@0 {
2362306a36Sopenharmony_ci			link-name = "MAX98360";
2462306a36Sopenharmony_ci			reg = <0>;
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci			cpu {
2762306a36Sopenharmony_ci				sound-dai = <&lpass_cpu MI2S_SECONDARY>;
2862306a36Sopenharmony_ci			};
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci			codec {
3162306a36Sopenharmony_ci				sound-dai = <&max98360a>;
3262306a36Sopenharmony_ci			};
3362306a36Sopenharmony_ci		};
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci		dai-link@1 {
3662306a36Sopenharmony_ci			link-name = "DisplayPort";
3762306a36Sopenharmony_ci			reg = <1>;
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci			cpu {
4062306a36Sopenharmony_ci				sound-dai = <&lpass_cpu LPASS_DP_RX>;
4162306a36Sopenharmony_ci			};
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci			codec {
4462306a36Sopenharmony_ci				sound-dai = <&mdss_dp>;
4562306a36Sopenharmony_ci			};
4662306a36Sopenharmony_ci		};
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci		dai-link@2 {
4962306a36Sopenharmony_ci			link-name = "ALC5682";
5062306a36Sopenharmony_ci			reg = <2>;
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci			cpu {
5362306a36Sopenharmony_ci				sound-dai = <&lpass_cpu MI2S_PRIMARY>;
5462306a36Sopenharmony_ci			};
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci			codec {
5762306a36Sopenharmony_ci				sound-dai = <&alc5682 0 /* aif1 */>;
5862306a36Sopenharmony_ci			};
5962306a36Sopenharmony_ci		};
6062306a36Sopenharmony_ci	};
6162306a36Sopenharmony_ci};
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_cihp_i2c: &i2c2 {
6462306a36Sopenharmony_ci	clock-frequency = <400000>;
6562306a36Sopenharmony_ci	status = "okay";
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci	alc5682: codec@1a {
6862306a36Sopenharmony_ci		compatible = "realtek,rt5682s";
6962306a36Sopenharmony_ci		reg = <0x1a>;
7062306a36Sopenharmony_ci		pinctrl-names = "default";
7162306a36Sopenharmony_ci		pinctrl-0 = <&hp_irq>;
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci		#sound-dai-cells = <1>;
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci		interrupt-parent = <&tlmm>;
7662306a36Sopenharmony_ci		interrupts = <101 IRQ_TYPE_EDGE_BOTH>;
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ci		AVDD-supply = <&pp1800_alc5682>;
7962306a36Sopenharmony_ci		DBVDD-supply = <&pp1800_alc5682>;
8062306a36Sopenharmony_ci		LDO1-IN-supply = <&pp1800_alc5682>;
8162306a36Sopenharmony_ci		MICVDD-supply = <&pp3300_codec>;
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci		realtek,dmic1-data-pin = <1>;
8462306a36Sopenharmony_ci		realtek,dmic1-clk-pin = <2>;
8562306a36Sopenharmony_ci		realtek,jd-src = <1>;
8662306a36Sopenharmony_ci		realtek,dmic-clk-rate-hz = <2048000>;
8762306a36Sopenharmony_ci	};
8862306a36Sopenharmony_ci};
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci&lpass_cpu {
9162306a36Sopenharmony_ci	pinctrl-names = "default";
9262306a36Sopenharmony_ci	pinctrl-0 = <&mi2s0_data0>, <&mi2s0_data1>, <&mi2s0_mclk>, <&mi2s0_sclk>, <&mi2s0_ws>,
9362306a36Sopenharmony_ci			<&mi2s1_data0>, <&mi2s1_sclk>, <&mi2s1_ws>;
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci	#address-cells = <1>;
9662306a36Sopenharmony_ci	#size-cells = <0>;
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci	status = "okay";
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci	dai-link@0 {
10162306a36Sopenharmony_ci		reg = <MI2S_PRIMARY>;
10262306a36Sopenharmony_ci		qcom,playback-sd-lines = <1>;
10362306a36Sopenharmony_ci		qcom,capture-sd-lines = <0>;
10462306a36Sopenharmony_ci	};
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci	dai-link@1 {
10762306a36Sopenharmony_ci		reg = <MI2S_SECONDARY>;
10862306a36Sopenharmony_ci		qcom,playback-sd-lines = <0>;
10962306a36Sopenharmony_ci	};
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci	dai-link@5 {
11262306a36Sopenharmony_ci		reg = <LPASS_DP_RX>;
11362306a36Sopenharmony_ci	};
11462306a36Sopenharmony_ci};
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci/* PINCTRL - ADDITIONS TO NODES IN PARENT DEVICE TREE FILES */
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ci&mi2s0_data0 {
11962306a36Sopenharmony_ci	drive-strength = <6>;
12062306a36Sopenharmony_ci	bias-disable;
12162306a36Sopenharmony_ci};
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_ci&mi2s0_data1 {
12462306a36Sopenharmony_ci	drive-strength = <6>;
12562306a36Sopenharmony_ci	bias-disable;
12662306a36Sopenharmony_ci};
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci&mi2s0_mclk {
12962306a36Sopenharmony_ci	drive-strength = <6>;
13062306a36Sopenharmony_ci	bias-disable;
13162306a36Sopenharmony_ci};
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci&mi2s0_sclk {
13462306a36Sopenharmony_ci	drive-strength = <6>;
13562306a36Sopenharmony_ci	bias-disable;
13662306a36Sopenharmony_ci};
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ci&mi2s0_ws {
13962306a36Sopenharmony_ci	drive-strength = <6>;
14062306a36Sopenharmony_ci	bias-disable;
14162306a36Sopenharmony_ci};
142