1c6d29c66SChristian Hewitt// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2c6d29c66SChristian Hewitt/*
3c6d29c66SChristian Hewitt * Copyright (c) 2019 BayLibre, SAS
4c6d29c66SChristian Hewitt * Author: Neil Armstrong <narmstrong@baylibre.com>
5c6d29c66SChristian Hewitt * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
6c6d29c66SChristian Hewitt */
7c6d29c66SChristian Hewitt
8c6d29c66SChristian Hewitt#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
9c6d29c66SChristian Hewitt
10c6d29c66SChristian Hewitt/ {
111f685750SChristian Hewitt	model = "Khadas VIM3";
121f685750SChristian Hewitt
13c6d29c66SChristian Hewitt	vddcpu_a: regulator-vddcpu-a {
14c6d29c66SChristian Hewitt		/*
15c6d29c66SChristian Hewitt		 * MP8756GD Regulator.
16c6d29c66SChristian Hewitt		 */
17c6d29c66SChristian Hewitt		compatible = "pwm-regulator";
18c6d29c66SChristian Hewitt
19c6d29c66SChristian Hewitt		regulator-name = "VDDCPU_A";
20c6d29c66SChristian Hewitt		regulator-min-microvolt = <690000>;
21c6d29c66SChristian Hewitt		regulator-max-microvolt = <1050000>;
22c6d29c66SChristian Hewitt
23c6d29c66SChristian Hewitt		vin-supply = <&dc_in>;
24c6d29c66SChristian Hewitt
25c6d29c66SChristian Hewitt		pwms = <&pwm_ab 0 1250 0>;
26c6d29c66SChristian Hewitt		pwm-dutycycle-range = <100 0>;
27c6d29c66SChristian Hewitt
28c6d29c66SChristian Hewitt		regulator-boot-on;
29c6d29c66SChristian Hewitt		regulator-always-on;
30c6d29c66SChristian Hewitt	};
31c6d29c66SChristian Hewitt
32c6d29c66SChristian Hewitt	vddcpu_b: regulator-vddcpu-b {
33c6d29c66SChristian Hewitt		/*
34c6d29c66SChristian Hewitt		 * Silergy SY8030DEC Regulator.
35c6d29c66SChristian Hewitt		 */
36c6d29c66SChristian Hewitt		compatible = "pwm-regulator";
37c6d29c66SChristian Hewitt
38c6d29c66SChristian Hewitt		regulator-name = "VDDCPU_B";
39c6d29c66SChristian Hewitt		regulator-min-microvolt = <690000>;
40c6d29c66SChristian Hewitt		regulator-max-microvolt = <1050000>;
41c6d29c66SChristian Hewitt
42c6d29c66SChristian Hewitt		vin-supply = <&vsys_3v3>;
43c6d29c66SChristian Hewitt
44c6d29c66SChristian Hewitt		pwms = <&pwm_AO_cd 1 1250 0>;
45c6d29c66SChristian Hewitt		pwm-dutycycle-range = <100 0>;
46c6d29c66SChristian Hewitt
47c6d29c66SChristian Hewitt		regulator-boot-on;
48c6d29c66SChristian Hewitt		regulator-always-on;
49c6d29c66SChristian Hewitt	};
50c6d29c66SChristian Hewitt
51c6d29c66SChristian Hewitt	sound {
52c6d29c66SChristian Hewitt		compatible = "amlogic,axg-sound-card";
5357b57ebcSChristian Hewitt		model = "G12B-KHADAS-VIM3";
54c6d29c66SChristian Hewitt		audio-aux-devs = <&tdmout_b>;
55c6d29c66SChristian Hewitt		audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
56c6d29c66SChristian Hewitt				"TDMOUT_B IN 1", "FRDDR_B OUT 1",
57c6d29c66SChristian Hewitt				"TDMOUT_B IN 2", "FRDDR_C OUT 1",
58c6d29c66SChristian Hewitt				"TDM_B Playback", "TDMOUT_B OUT";
59c6d29c66SChristian Hewitt
60c6d29c66SChristian Hewitt		assigned-clocks = <&clkc CLKID_MPLL2>,
61c6d29c66SChristian Hewitt				  <&clkc CLKID_MPLL0>,
62c6d29c66SChristian Hewitt				  <&clkc CLKID_MPLL1>;
63c6d29c66SChristian Hewitt		assigned-clock-parents = <0>, <0>, <0>;
64c6d29c66SChristian Hewitt		assigned-clock-rates = <294912000>,
65c6d29c66SChristian Hewitt				       <270950400>,
66c6d29c66SChristian Hewitt				       <393216000>;
67c6d29c66SChristian Hewitt		status = "okay";
68c6d29c66SChristian Hewitt
69c6d29c66SChristian Hewitt		dai-link-0 {
70c6d29c66SChristian Hewitt			sound-dai = <&frddr_a>;
71c6d29c66SChristian Hewitt		};
72c6d29c66SChristian Hewitt
73c6d29c66SChristian Hewitt		dai-link-1 {
74c6d29c66SChristian Hewitt			sound-dai = <&frddr_b>;
75c6d29c66SChristian Hewitt		};
76c6d29c66SChristian Hewitt
77c6d29c66SChristian Hewitt		dai-link-2 {
78c6d29c66SChristian Hewitt			sound-dai = <&frddr_c>;
79c6d29c66SChristian Hewitt		};
80c6d29c66SChristian Hewitt
81c6d29c66SChristian Hewitt		/* 8ch hdmi interface */
82c6d29c66SChristian Hewitt		dai-link-3 {
83c6d29c66SChristian Hewitt			sound-dai = <&tdmif_b>;
84c6d29c66SChristian Hewitt			dai-format = "i2s";
85c6d29c66SChristian Hewitt			dai-tdm-slot-tx-mask-0 = <1 1>;
86c6d29c66SChristian Hewitt			dai-tdm-slot-tx-mask-1 = <1 1>;
87c6d29c66SChristian Hewitt			dai-tdm-slot-tx-mask-2 = <1 1>;
88c6d29c66SChristian Hewitt			dai-tdm-slot-tx-mask-3 = <1 1>;
89c6d29c66SChristian Hewitt			mclk-fs = <256>;
90c6d29c66SChristian Hewitt
91c6d29c66SChristian Hewitt			codec {
92c6d29c66SChristian Hewitt				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
93c6d29c66SChristian Hewitt			};
94c6d29c66SChristian Hewitt		};
95c6d29c66SChristian Hewitt
96c6d29c66SChristian Hewitt		/* hdmi glue */
97c6d29c66SChristian Hewitt		dai-link-4 {
98c6d29c66SChristian Hewitt			sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
99c6d29c66SChristian Hewitt
100c6d29c66SChristian Hewitt			codec {
101c6d29c66SChristian Hewitt				sound-dai = <&hdmi_tx>;
102c6d29c66SChristian Hewitt			};
103c6d29c66SChristian Hewitt		};
104c6d29c66SChristian Hewitt	};
105c6d29c66SChristian Hewitt};
106c6d29c66SChristian Hewitt
107c6d29c66SChristian Hewitt&arb {
108c6d29c66SChristian Hewitt	status = "okay";
109c6d29c66SChristian Hewitt};
110c6d29c66SChristian Hewitt
111c6d29c66SChristian Hewitt&clkc_audio {
112c6d29c66SChristian Hewitt	status = "okay";
113c6d29c66SChristian Hewitt};
114c6d29c66SChristian Hewitt
115c6d29c66SChristian Hewitt&cpu0 {
116c6d29c66SChristian Hewitt	cpu-supply = <&vddcpu_b>;
117c6d29c66SChristian Hewitt	operating-points-v2 = <&cpu_opp_table_0>;
118c6d29c66SChristian Hewitt	clocks = <&clkc CLKID_CPU_CLK>;
119c6d29c66SChristian Hewitt	clock-latency = <50000>;
120c6d29c66SChristian Hewitt};
121c6d29c66SChristian Hewitt
122c6d29c66SChristian Hewitt&cpu1 {
123c6d29c66SChristian Hewitt	cpu-supply = <&vddcpu_b>;
124c6d29c66SChristian Hewitt	operating-points-v2 = <&cpu_opp_table_0>;
125c6d29c66SChristian Hewitt	clocks = <&clkc CLKID_CPU_CLK>;
126c6d29c66SChristian Hewitt	clock-latency = <50000>;
127c6d29c66SChristian Hewitt};
128c6d29c66SChristian Hewitt
129c6d29c66SChristian Hewitt&cpu100 {
130c6d29c66SChristian Hewitt	cpu-supply = <&vddcpu_a>;
131c6d29c66SChristian Hewitt	operating-points-v2 = <&cpub_opp_table_1>;
132c6d29c66SChristian Hewitt	clocks = <&clkc CLKID_CPUB_CLK>;
133c6d29c66SChristian Hewitt	clock-latency = <50000>;
134c6d29c66SChristian Hewitt};
135c6d29c66SChristian Hewitt
136c6d29c66SChristian Hewitt&cpu101 {
137c6d29c66SChristian Hewitt	cpu-supply = <&vddcpu_a>;
138c6d29c66SChristian Hewitt	operating-points-v2 = <&cpub_opp_table_1>;
139c6d29c66SChristian Hewitt	clocks = <&clkc CLKID_CPUB_CLK>;
140c6d29c66SChristian Hewitt	clock-latency = <50000>;
141c6d29c66SChristian Hewitt};
142c6d29c66SChristian Hewitt
143c6d29c66SChristian Hewitt&cpu102 {
144c6d29c66SChristian Hewitt	cpu-supply = <&vddcpu_a>;
145c6d29c66SChristian Hewitt	operating-points-v2 = <&cpub_opp_table_1>;
146c6d29c66SChristian Hewitt	clocks = <&clkc CLKID_CPUB_CLK>;
147c6d29c66SChristian Hewitt	clock-latency = <50000>;
148c6d29c66SChristian Hewitt};
149c6d29c66SChristian Hewitt
150c6d29c66SChristian Hewitt&cpu103 {
151c6d29c66SChristian Hewitt	cpu-supply = <&vddcpu_a>;
152c6d29c66SChristian Hewitt	operating-points-v2 = <&cpub_opp_table_1>;
153c6d29c66SChristian Hewitt	clocks = <&clkc CLKID_CPUB_CLK>;
154c6d29c66SChristian Hewitt	clock-latency = <50000>;
155c6d29c66SChristian Hewitt};
156c6d29c66SChristian Hewitt
157c6d29c66SChristian Hewitt&frddr_b {
158c6d29c66SChristian Hewitt	status = "okay";
159c6d29c66SChristian Hewitt};
160c6d29c66SChristian Hewitt
161c6d29c66SChristian Hewitt&frddr_c {
162c6d29c66SChristian Hewitt	status = "okay";
163c6d29c66SChristian Hewitt};
164c6d29c66SChristian Hewitt
165c6d29c66SChristian Hewitt&pwm_ab {
166c6d29c66SChristian Hewitt	pinctrl-0 = <&pwm_a_e_pins>;
167c6d29c66SChristian Hewitt	pinctrl-names = "default";
168c6d29c66SChristian Hewitt	clocks = <&xtal>;
169c6d29c66SChristian Hewitt	clock-names = "clkin0";
170c6d29c66SChristian Hewitt	status = "okay";
171c6d29c66SChristian Hewitt};
172c6d29c66SChristian Hewitt
173c6d29c66SChristian Hewitt&pwm_AO_cd {
174c6d29c66SChristian Hewitt	pinctrl-0 = <&pwm_ao_d_e_pins>;
175c6d29c66SChristian Hewitt	pinctrl-names = "default";
176c6d29c66SChristian Hewitt	clocks = <&xtal>;
177c6d29c66SChristian Hewitt	clock-names = "clkin1";
178c6d29c66SChristian Hewitt	status = "okay";
179c6d29c66SChristian Hewitt};
180c6d29c66SChristian Hewitt
181c6d29c66SChristian Hewitt&tdmif_b {
182c6d29c66SChristian Hewitt	status = "okay";
183c6d29c66SChristian Hewitt};
184c6d29c66SChristian Hewitt
185c6d29c66SChristian Hewitt&tdmout_b {
186c6d29c66SChristian Hewitt	status = "okay";
187c6d29c66SChristian Hewitt};
188c6d29c66SChristian Hewitt
189c6d29c66SChristian Hewitt&tohdmitx {
190c6d29c66SChristian Hewitt	status = "okay";
191c6d29c66SChristian Hewitt};
192