1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2019 BayLibre, SAS
4 * Author: Neil Armstrong <narmstrong@baylibre.com>
5 * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
6 */
7
8/dts-v1/;
9
10#include "meson-g12b-w400.dtsi"
11#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
12
13/ {
14	compatible = "ugoos,am6", "amlogic,s922x", "amlogic,g12b";
15	model = "Ugoos AM6";
16
17	spdif_dit: audio-codec-1 {
18		#sound-dai-cells = <0>;
19		compatible = "linux,spdif-dit";
20		sound-name-prefix = "DIT";
21	};
22
23	sound {
24		compatible = "amlogic,axg-sound-card";
25		model = "UGOOS-AM6";
26		audio-aux-devs = <&tdmout_b>;
27		audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
28				"TDMOUT_B IN 1", "FRDDR_B OUT 1",
29				"TDMOUT_B IN 2", "FRDDR_C OUT 1",
30				"TDM_B Playback", "TDMOUT_B OUT",
31				"SPDIFOUT_A IN 0", "FRDDR_A OUT 3",
32				"SPDIFOUT_A IN 1", "FRDDR_B OUT 3",
33				"SPDIFOUT_A IN 2", "FRDDR_C OUT 3";
34
35		clocks = <&clkc CLKID_MPLL2>,
36			 <&clkc CLKID_MPLL0>,
37			 <&clkc CLKID_MPLL1>;
38
39		assigned-clocks = <&clkc CLKID_MPLL2>,
40				  <&clkc CLKID_MPLL0>,
41				  <&clkc CLKID_MPLL1>;
42		assigned-clock-parents = <0>, <0>, <0>;
43		assigned-clock-rates = <294912000>,
44				       <270950400>,
45				       <393216000>;
46
47		dai-link-0 {
48			sound-dai = <&frddr_a>;
49		};
50
51		dai-link-1 {
52			sound-dai = <&frddr_b>;
53		};
54
55		dai-link-2 {
56			sound-dai = <&frddr_c>;
57		};
58
59		/* 8ch hdmi interface */
60		dai-link-3 {
61			sound-dai = <&tdmif_b>;
62			dai-format = "i2s";
63			dai-tdm-slot-tx-mask-0 = <1 1>;
64			dai-tdm-slot-tx-mask-1 = <1 1>;
65			dai-tdm-slot-tx-mask-2 = <1 1>;
66			dai-tdm-slot-tx-mask-3 = <1 1>;
67			mclk-fs = <256>;
68
69			codec {
70				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
71			};
72		};
73
74		/* spdif hdmi or toslink interface */
75		dai-link-4 {
76			sound-dai = <&spdifout_a>;
77
78			codec-0 {
79				sound-dai = <&spdif_dit>;
80			};
81
82			codec-1 {
83				sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_A>;
84			};
85		};
86
87		/* spdif hdmi interface */
88		dai-link-5 {
89			sound-dai = <&spdifout_b>;
90
91			codec {
92				sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_B>;
93			};
94		};
95
96		/* hdmi glue */
97		dai-link-6 {
98			sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
99
100			codec {
101				sound-dai = <&hdmi_tx>;
102			};
103		};
104	};
105};
106
107&arb {
108	status = "okay";
109};
110
111&clkc_audio {
112	status = "okay";
113};
114
115&frddr_a {
116	status = "okay";
117};
118
119&frddr_b {
120	status = "okay";
121};
122
123&frddr_c {
124	status = "okay";
125};
126
127&ir {
128	linux,rc-map-name = "rc-khadas";
129};
130
131&spdifout_a {
132	pinctrl-0 = <&spdif_out_h_pins>;
133	pinctrl-names = "default";
134	status = "okay";
135};
136
137&spdifout_b {
138	status = "okay";
139};
140
141&tdmif_b {
142	status = "okay";
143};
144
145&tdmout_b {
146	status = "okay";
147};
148
149&tohdmitx {
150	status = "okay";
151};
152
153&uart_A {
154	status = "okay";
155	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
156	pinctrl-names = "default";
157	uart-has-rtscts;
158
159	bluetooth {
160		compatible = "brcm,bcm43438-bt";
161		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
162		max-speed = <2000000>;
163		clocks = <&wifi32k>;
164	clock-names = "lpo";
165	};
166};
167
168&uart_AO {
169	status = "okay";
170	pinctrl-0 = <&uart_ao_a_pins>;
171	pinctrl-names = "default";
172};
173
174&usb {
175	status = "okay";
176	dr_mode = "host";
177	vbus-supply = <&usb_pwr_en>;
178};
179
180&usb2_phy0 {
181	phy-supply = <&usb1_pow>;
182};
183
184&usb2_phy1 {
185	phy-supply = <&usb1_pow>;
186};
187