blob: c0d6eb55100af166fc2ff10ebb2de6c8353431db [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2018 BayLibre, SAS.
4 * Author: Neil Armstrong <narmstrong@baylibre.com>
5 * Author: Jerome Brunet <jbrunet@baylibre.com>
6 */
7
8/dts-v1/;
9
10#include <dt-bindings/input/input.h>
11#include <dt-bindings/sound/meson-aiu.h>
12
13#include "meson-gxl-s805x.dtsi"
14
15/ {
16 compatible = "amlogic,p241", "amlogic,s805x", "amlogic,meson-gxl";
17 model = "Amlogic Meson GXL (S805X) P241 Development Board";
18
19 aliases {
20 serial0 = &uart_AO;
21 serial1 = &uart_A;
22 ethernet0 = &ethmac;
23 };
24
25 au2: analog-amplifier {
26 compatible = "simple-audio-amplifier";
27 sound-name-prefix = "AU2";
28 VCC-supply = <&vcc_5v>;
29 enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
30 };
31
32 chosen {
33 stdout-path = "serial0:115200n8";
34 };
35
36 cvbs-connector {
37 compatible = "composite-video-connector";
38
39 port {
40 cvbs_connector_in: endpoint {
41 remote-endpoint = <&cvbs_vdac_out>;
42 };
43 };
44 };
45
46 emmc_pwrseq: emmc-pwrseq {
47 compatible = "mmc-pwrseq-emmc";
48 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
49 };
50
51 hdmi-connector {
52 compatible = "hdmi-connector";
53 type = "a";
54
55 port {
56 hdmi_connector_in: endpoint {
57 remote-endpoint = <&hdmi_tx_tmds_out>;
58 };
59 };
60 };
61
62 memory@0 {
63 device_type = "memory";
64 reg = <0x0 0x0 0x0 0x20000000>;
65 };
66
67 vddio_boot: regulator-vddio_boot {
68 compatible = "regulator-fixed";
69 regulator-name = "VDDIO_BOOT";
70 regulator-min-microvolt = <1800000>;
71 regulator-max-microvolt = <1800000>;
72 };
73
74 vddao_3v3: regulator-vddao_3v3 {
75 compatible = "regulator-fixed";
76 regulator-name = "VDDAO_3V3";
77 regulator-min-microvolt = <3300000>;
78 regulator-max-microvolt = <3300000>;
79 };
80
81 vddio_ao18: regulator-vddio_ao18 {
82 compatible = "regulator-fixed";
83 regulator-name = "VDDIO_AO18";
84 regulator-min-microvolt = <1800000>;
85 regulator-max-microvolt = <1800000>;
86 };
87
88 vcc_3v3: regulator-vcc_3v3 {
89 compatible = "regulator-fixed";
90 regulator-name = "VCC_3V3";
91 regulator-min-microvolt = <3300000>;
92 regulator-max-microvolt = <3300000>;
93 };
94
95 vcc_5v: regulator-vcc-5v {
96 compatible = "regulator-fixed";
97 regulator-name = "VCC_5V";
98 regulator-min-microvolt = <5000000>;
99 regulator-max-microvolt = <5000000>;
100 };
101
102
103 emmc_pwrseq: emmc-pwrseq {
104 compatible = "mmc-pwrseq-emmc";
105 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
106 };
107
108 wifi32k: wifi32k {
109 compatible = "pwm-clock";
110 #clock-cells = <0>;
111 clock-frequency = <32768>;
112 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
113 };
114
115 sdio_pwrseq: sdio-pwrseq {
116 compatible = "mmc-pwrseq-simple";
117 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
118 clocks = <&wifi32k>;
119 clock-names = "ext_clock";
120 };
121
122 sound {
123 compatible = "amlogic,gx-sound-card";
124 model = "GXL-P241";
125 audio-aux-devs = <&au2>;
126 audio-widgets = "Line", "Lineout";
127 audio-routing = "AU2 INL", "ACODEC LOLN",
128 "AU2 INR", "ACODEC LORN",
129 "Lineout", "AU2 OUTL",
130 "Lineout", "AU2 OUTR";
131 assigned-clocks = <&clkc CLKID_MPLL0>,
132 <&clkc CLKID_MPLL1>,
133 <&clkc CLKID_MPLL2>;
134 assigned-clock-parents = <0>, <0>, <0>;
135 assigned-clock-rates = <294912000>,
136 <270950400>,
137 <393216000>;
138
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_I2S_ENCODER>;
145 dai-format = "i2s";
146 mclk-fs = <256>;
147
148 codec-0 {
149 sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
150 };
151
152 codec-1 {
153 sound-dai = <&aiu AIU_ACODEC CTRL_I2S>;
154 };
155 };
156
157 dai-link-2 {
158 sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
159
160 codec-0 {
161 sound-dai = <&hdmi_tx>;
162 };
163 };
164
165 dai-link-3 {
166 sound-dai = <&aiu AIU_ACODEC CTRL_OUT>;
167
168 codec-0 {
169 sound-dai = <&acodec>;
170 };
171 };
172 };
173};
174
175&acodec {
176 AVDD-supply = <&vddio_ao18>;
177 status = "okay";
178};
179
180&aiu {
181 status = "okay";
182};
183
184&cec_AO {
185 status = "okay";
186 pinctrl-0 = <&ao_cec_pins>;
187 pinctrl-names = "default";
188 hdmi-phandle = <&hdmi_tx>;
189};
190
191&cvbs_vdac_port {
192 cvbs_vdac_out: endpoint {
193 remote-endpoint = <&cvbs_connector_in>;
194 };
195};
196
197&ethmac {
198 status = "okay";
199};
200
201&internal_phy {
202 pinctrl-0 = <&eth_link_led_pins>, <&eth_act_led_pins>;
203 pinctrl-names = "default";
204};
205
206&ir {
207 status = "okay";
208 pinctrl-0 = <&remote_input_ao_pins>;
209 pinctrl-names = "default";
210};
211
212&hdmi_tx {
213 status = "okay";
214 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
215 pinctrl-names = "default";
216 hdmi-supply = <&vcc_5v>;
217};
218
219&hdmi_tx_tmds_port {
220 hdmi_tx_tmds_out: endpoint {
221 remote-endpoint = <&hdmi_connector_in>;
222 };
223};
224
225&saradc {
226 status = "okay";
227 vref-supply = <&vddio_ao18>;
228};
229
230/* Wireless SDIO Module */
231&sd_emmc_a {
232 status = "okay";
233 pinctrl-0 = <&sdio_pins>;
234 pinctrl-1 = <&sdio_clk_gate_pins>;
235 pinctrl-names = "default", "clk-gate";
236 #address-cells = <1>;
237 #size-cells = <0>;
238
239 bus-width = <4>;
240 cap-sd-highspeed;
241 max-frequency = <50000000>;
242
243 non-removable;
244 disable-wp;
245
246 /* WiFi firmware requires power to be kept while in suspend */
247 keep-power-in-suspend;
248
249 mmc-pwrseq = <&sdio_pwrseq>;
250
251 vmmc-supply = <&vddao_3v3>;
252 vqmmc-supply = <&vddio_boot>;
253};
254
255/* eMMC */
256&sd_emmc_c {
257 status = "okay";
258 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
259 pinctrl-1 = <&emmc_clk_gate_pins>;
260 pinctrl-names = "default", "clk-gate";
261
262 bus-width = <8>;
263 cap-mmc-highspeed;
264 max-frequency = <200000000>;
265 non-removable;
266 disable-wp;
267 mmc-ddr-1_8v;
268 mmc-hs200-1_8v;
269
270 mmc-pwrseq = <&emmc_pwrseq>;
271 vmmc-supply = <&vcc_3v3>;
272 vqmmc-supply = <&vddio_boot>;
273};
274
275&pwm_ef {
276 status = "okay";
277 pinctrl-0 = <&pwm_e_pins>;
278 pinctrl-names = "default";
279 clocks = <&clkc CLKID_FCLK_DIV4>;
280 clock-names = "clkin0";
281};
282
283/* This is connected to the Bluetooth module: */
284&uart_A {
285 status = "okay";
286 pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
287 pinctrl-names = "default";
288 uart-has-rtscts;
289};
290
291&uart_AO {
292 status = "okay";
293 pinctrl-0 = <&uart_ao_a_pins>;
294 pinctrl-names = "default";
295};
296
297&usb {
298 status = "okay";
299 dr_mode = "host";
300};
301
302&usb2_phy0 {
303 phy-supply = <&vcc_5v>;
304};