]>
Commit | Line | Data |
---|---|---|
53633a89 TR |
1 | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) |
2 | /* | |
3 | * Copyright (c) 2016 Endless Computers, Inc. | |
4 | * Author: Carlo Caione <carlo@endlessm.com> | |
5 | */ | |
6 | ||
7 | /* Common DTSI for same Amlogic Q200/Q201 and P230/P231 boards using either | |
8 | * the pin-compatible S912 (GXM) or S905D (GXL) SoCs. | |
9 | */ | |
10 | ||
11 | #include <dt-bindings/sound/meson-aiu.h> | |
12 | ||
13 | / { | |
14 | aliases { | |
15 | serial0 = &uart_AO; | |
16 | ethernet0 = ðmac; | |
17 | }; | |
18 | ||
19 | dio2133: analog-amplifier { | |
20 | compatible = "simple-audio-amplifier"; | |
21 | sound-name-prefix = "AU2"; | |
22 | VCC-supply = <&hdmi_5v>; | |
23 | enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; | |
24 | }; | |
25 | ||
26 | spdif_dit: audio-codec-0 { | |
27 | #sound-dai-cells = <0>; | |
28 | compatible = "linux,spdif-dit"; | |
53633a89 TR |
29 | sound-name-prefix = "DIT"; |
30 | }; | |
31 | ||
32 | chosen { | |
33 | stdout-path = "serial0:115200n8"; | |
34 | }; | |
35 | ||
36 | memory@0 { | |
37 | device_type = "memory"; | |
38 | reg = <0x0 0x0 0x0 0x80000000>; | |
39 | }; | |
40 | ||
41 | hdmi_5v: regulator-hdmi-5v { | |
42 | compatible = "regulator-fixed"; | |
43 | ||
44 | regulator-name = "HDMI_5V"; | |
45 | regulator-min-microvolt = <5000000>; | |
46 | regulator-max-microvolt = <5000000>; | |
47 | ||
48 | gpio = <&gpio GPIOH_3 GPIO_ACTIVE_HIGH>; | |
49 | enable-active-high; | |
50 | regulator-always-on; | |
51 | }; | |
52 | ||
53 | vddio_ao18: regulator-vddio_ao18 { | |
54 | compatible = "regulator-fixed"; | |
55 | regulator-name = "VDDIO_AO18"; | |
56 | regulator-min-microvolt = <1800000>; | |
57 | regulator-max-microvolt = <1800000>; | |
58 | }; | |
59 | ||
60 | vddio_boot: regulator-vddio_boot { | |
61 | compatible = "regulator-fixed"; | |
62 | regulator-name = "VDDIO_BOOT"; | |
63 | regulator-min-microvolt = <1800000>; | |
64 | regulator-max-microvolt = <1800000>; | |
65 | }; | |
66 | ||
67 | vddao_3v3: regulator-vddao_3v3 { | |
68 | compatible = "regulator-fixed"; | |
69 | regulator-name = "VDDAO_3V3"; | |
70 | regulator-min-microvolt = <3300000>; | |
71 | regulator-max-microvolt = <3300000>; | |
72 | }; | |
73 | ||
74 | vcc_3v3: regulator-vcc_3v3 { | |
75 | compatible = "regulator-fixed"; | |
76 | regulator-name = "VCC_3V3"; | |
77 | regulator-min-microvolt = <3300000>; | |
78 | regulator-max-microvolt = <3300000>; | |
79 | }; | |
80 | ||
81 | emmc_pwrseq: emmc-pwrseq { | |
82 | compatible = "mmc-pwrseq-emmc"; | |
83 | reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; | |
84 | }; | |
85 | ||
86 | wifi32k: wifi32k { | |
87 | compatible = "pwm-clock"; | |
88 | #clock-cells = <0>; | |
89 | clock-frequency = <32768>; | |
90 | pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ | |
91 | }; | |
92 | ||
93 | sdio_pwrseq: sdio-pwrseq { | |
94 | compatible = "mmc-pwrseq-simple"; | |
95 | reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; | |
96 | clocks = <&wifi32k>; | |
97 | clock-names = "ext_clock"; | |
98 | }; | |
99 | ||
100 | cvbs-connector { | |
101 | compatible = "composite-video-connector"; | |
102 | ||
103 | port { | |
104 | cvbs_connector_in: endpoint { | |
105 | remote-endpoint = <&cvbs_vdac_out>; | |
106 | }; | |
107 | }; | |
108 | }; | |
109 | ||
110 | hdmi-connector { | |
111 | compatible = "hdmi-connector"; | |
112 | type = "a"; | |
113 | ||
114 | port { | |
115 | hdmi_connector_in: endpoint { | |
116 | remote-endpoint = <&hdmi_tx_tmds_out>; | |
117 | }; | |
118 | }; | |
119 | }; | |
120 | ||
121 | sound { | |
122 | compatible = "amlogic,gx-sound-card"; | |
123 | model = "P230-Q200"; | |
124 | audio-aux-devs = <&dio2133>; | |
125 | audio-widgets = "Line", "Lineout"; | |
126 | audio-routing = "AU2 INL", "ACODEC LOLP", | |
127 | "AU2 INR", "ACODEC LORP", | |
128 | "AU2 INL", "ACODEC LOLN", | |
129 | "AU2 INR", "ACODEC LORN", | |
130 | "Lineout", "AU2 OUTL", | |
131 | "Lineout", "AU2 OUTR"; | |
132 | assigned-clocks = <&clkc CLKID_MPLL0>, | |
133 | <&clkc CLKID_MPLL1>, | |
134 | <&clkc CLKID_MPLL2>; | |
135 | assigned-clock-parents = <0>, <0>, <0>; | |
136 | assigned-clock-rates = <294912000>, | |
137 | <270950400>, | |
138 | <393216000>; | |
139 | dai-link-0 { | |
140 | sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; | |
141 | }; | |
142 | ||
143 | dai-link-1 { | |
144 | sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>; | |
145 | }; | |
146 | ||
147 | dai-link-2 { | |
148 | sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; | |
149 | dai-format = "i2s"; | |
150 | mclk-fs = <256>; | |
151 | ||
152 | codec-0 { | |
153 | sound-dai = <&aiu AIU_HDMI CTRL_I2S>; | |
154 | }; | |
155 | ||
156 | codec-1 { | |
157 | sound-dai = <&aiu AIU_ACODEC CTRL_I2S>; | |
158 | }; | |
159 | }; | |
160 | ||
161 | dai-link-3 { | |
162 | sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>; | |
163 | ||
164 | codec-0 { | |
165 | sound-dai = <&spdif_dit>; | |
166 | }; | |
167 | }; | |
168 | ||
169 | dai-link-4 { | |
170 | sound-dai = <&aiu AIU_HDMI CTRL_OUT>; | |
171 | ||
172 | codec-0 { | |
173 | sound-dai = <&hdmi_tx>; | |
174 | }; | |
175 | }; | |
176 | ||
177 | dai-link-5 { | |
178 | sound-dai = <&aiu AIU_ACODEC CTRL_OUT>; | |
179 | ||
180 | codec-0 { | |
181 | sound-dai = <&acodec>; | |
182 | }; | |
183 | }; | |
184 | }; | |
185 | }; | |
186 | ||
187 | &acodec { | |
188 | AVDD-supply = <&vddio_ao18>; | |
189 | status = "okay"; | |
190 | }; | |
191 | ||
192 | &aiu { | |
193 | status = "okay"; | |
194 | pinctrl-0 = <&spdif_out_h_pins>; | |
195 | pinctrl-names = "default"; | |
196 | ||
197 | }; | |
198 | ||
199 | &cec_AO { | |
200 | status = "okay"; | |
201 | pinctrl-0 = <&ao_cec_pins>; | |
202 | pinctrl-names = "default"; | |
203 | hdmi-phandle = <&hdmi_tx>; | |
204 | }; | |
205 | ||
206 | &cvbs_vdac_port { | |
207 | cvbs_vdac_out: endpoint { | |
208 | remote-endpoint = <&cvbs_connector_in>; | |
209 | }; | |
210 | }; | |
211 | ||
212 | ðmac { | |
213 | status = "okay"; | |
214 | }; | |
215 | ||
216 | &hdmi_tx { | |
217 | status = "okay"; | |
218 | pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; | |
219 | pinctrl-names = "default"; | |
220 | hdmi-supply = <&hdmi_5v>; | |
221 | }; | |
222 | ||
223 | &hdmi_tx_tmds_port { | |
224 | hdmi_tx_tmds_out: endpoint { | |
225 | remote-endpoint = <&hdmi_connector_in>; | |
226 | }; | |
227 | }; | |
228 | ||
229 | &ir { | |
230 | status = "okay"; | |
231 | pinctrl-0 = <&remote_input_ao_pins>; | |
232 | pinctrl-names = "default"; | |
233 | }; | |
234 | ||
235 | &pwm_ef { | |
236 | status = "okay"; | |
237 | pinctrl-0 = <&pwm_e_pins>; | |
238 | pinctrl-names = "default"; | |
239 | clocks = <&clkc CLKID_FCLK_DIV4>; | |
240 | clock-names = "clkin0"; | |
241 | }; | |
242 | ||
243 | &saradc { | |
244 | status = "okay"; | |
245 | vref-supply = <&vddio_ao18>; | |
246 | }; | |
247 | ||
248 | /* Wireless SDIO Module */ | |
249 | &sd_emmc_a { | |
250 | status = "okay"; | |
251 | pinctrl-0 = <&sdio_pins>; | |
252 | pinctrl-1 = <&sdio_clk_gate_pins>; | |
253 | pinctrl-names = "default", "clk-gate"; | |
254 | #address-cells = <1>; | |
255 | #size-cells = <0>; | |
256 | ||
257 | bus-width = <4>; | |
258 | cap-sd-highspeed; | |
259 | max-frequency = <50000000>; | |
260 | ||
261 | non-removable; | |
262 | disable-wp; | |
263 | ||
264 | /* WiFi firmware requires power to be kept while in suspend */ | |
265 | keep-power-in-suspend; | |
266 | ||
267 | mmc-pwrseq = <&sdio_pwrseq>; | |
268 | ||
269 | vmmc-supply = <&vddao_3v3>; | |
270 | vqmmc-supply = <&vddio_boot>; | |
271 | }; | |
272 | ||
273 | /* SD card */ | |
274 | &sd_emmc_b { | |
275 | status = "okay"; | |
276 | pinctrl-0 = <&sdcard_pins>; | |
277 | pinctrl-1 = <&sdcard_clk_gate_pins>; | |
278 | pinctrl-names = "default", "clk-gate"; | |
279 | ||
280 | bus-width = <4>; | |
281 | cap-sd-highspeed; | |
282 | max-frequency = <50000000>; | |
283 | disable-wp; | |
284 | ||
285 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; | |
286 | ||
287 | vmmc-supply = <&vddao_3v3>; | |
288 | vqmmc-supply = <&vddio_boot>; | |
289 | }; | |
290 | ||
291 | /* eMMC */ | |
292 | &sd_emmc_c { | |
293 | status = "okay"; | |
294 | pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; | |
295 | pinctrl-1 = <&emmc_clk_gate_pins>; | |
296 | pinctrl-names = "default", "clk-gate"; | |
297 | ||
298 | bus-width = <8>; | |
299 | cap-mmc-highspeed; | |
300 | max-frequency = <200000000>; | |
301 | non-removable; | |
302 | disable-wp; | |
303 | mmc-ddr-1_8v; | |
304 | mmc-hs200-1_8v; | |
305 | ||
306 | mmc-pwrseq = <&emmc_pwrseq>; | |
307 | vmmc-supply = <&vcc_3v3>; | |
308 | vqmmc-supply = <&vddio_boot>; | |
309 | }; | |
310 | ||
311 | /* This UART is brought out to the DB9 connector */ | |
312 | &uart_AO { | |
313 | status = "okay"; | |
314 | pinctrl-0 = <&uart_ao_a_pins>; | |
315 | pinctrl-names = "default"; | |
316 | }; | |
317 | ||
318 | &usb { | |
319 | status = "okay"; | |
320 | dr_mode = "otg"; | |
321 | }; |