blob: fc59c8534c0f7dcaad2c8f4ca1d4b4b16c695636 [file] [log] [blame]
Neil Armstrong8e8aec22018-06-05 10:10:44 +02001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
Neil Armstronga4cf3922017-10-12 15:50:30 +02002/*
3 * Copyright (c) 2016 Endless Computers, Inc.
4 * Author: Carlo Caione <carlo@endlessm.com>
Neil Armstronga4cf3922017-10-12 15:50:30 +02005 */
6
7#include "meson-gx.dtsi"
8#include <dt-bindings/clock/gxbb-clkc.h>
Neil Armstrong5d54d1b2018-04-11 17:40:40 +02009#include <dt-bindings/clock/gxbb-aoclkc.h>
Neil Armstronga4cf3922017-10-12 15:50:30 +020010#include <dt-bindings/gpio/meson-gxl-gpio.h>
11#include <dt-bindings/reset/amlogic,meson-gxbb-reset.h>
12
13/ {
14 compatible = "amlogic,meson-gxl";
Neil Armstrong5d54d1b2018-04-11 17:40:40 +020015
Neil Armstrong8e8aec22018-06-05 10:10:44 +020016 soc {
Neil Armstrong14708b12020-09-10 10:48:12 +020017 usb: usb@d0078080 {
18 compatible = "amlogic,meson-gxl-usb-ctrl";
19 reg = <0x0 0xd0078080 0x0 0x20>;
20 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
Neil Armstrong8e8aec22018-06-05 10:10:44 +020021 #address-cells = <2>;
22 #size-cells = <2>;
23 ranges;
24
Neil Armstrong14708b12020-09-10 10:48:12 +020025 clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1_DDR_BRIDGE>;
26 clock-names = "usb_ctrl", "ddr";
Neil Armstrong8e8aec22018-06-05 10:10:44 +020027 resets = <&reset RESET_USB_OTG>;
Neil Armstrong14708b12020-09-10 10:48:12 +020028
29 dr_mode = "otg";
Neil Armstrong8e8aec22018-06-05 10:10:44 +020030
Neil Armstrong14708b12020-09-10 10:48:12 +020031 phys = <&usb2_phy0>, <&usb2_phy1>;
32 phy-names = "usb2-phy0", "usb2-phy1";
33
34 dwc2: usb@c9100000 {
35 compatible = "amlogic,meson-g12a-usb", "snps,dwc2";
36 reg = <0x0 0xc9100000 0x0 0x40000>;
37 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
38 clocks = <&clkc CLKID_USB1>;
39 clock-names = "otg";
40 phys = <&usb2_phy1>;
41 dr_mode = "peripheral";
42 g-rx-fifo-size = <192>;
43 g-np-tx-fifo-size = <128>;
44 g-tx-fifo-size = <128 128 16 16 16>;
45 };
46
47 dwc3: usb@c9000000 {
Neil Armstrong8e8aec22018-06-05 10:10:44 +020048 compatible = "snps,dwc3";
49 reg = <0x0 0xc9000000 0x0 0x100000>;
50 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
51 dr_mode = "host";
52 maximum-speed = "high-speed";
53 snps,dis_u2_susphy_quirk;
Neil Armstrong8e8aec22018-06-05 10:10:44 +020054 };
55 };
Jerome Brunetd34d5ef2020-03-05 12:12:38 +010056
Neil Armstrong14708b12020-09-10 10:48:12 +020057 acodec: audio-controller@c8832000 {
58 compatible = "amlogic,t9015";
59 reg = <0x0 0xc8832000 0x0 0x14>;
60 #sound-dai-cells = <0>;
61 sound-name-prefix = "ACODEC";
62 clocks = <&clkc CLKID_ACODEC>;
63 clock-names = "pclk";
64 resets = <&reset RESET_ACODEC>;
65 status = "disabled";
66 };
67
Jerome Brunetd34d5ef2020-03-05 12:12:38 +010068 crypto: crypto@c883e000 {
69 compatible = "amlogic,gxl-crypto";
70 reg = <0x0 0xc883e000 0x0 0x36>;
71 interrupts = <GIC_SPI 188 IRQ_TYPE_EDGE_RISING>,
72 <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>;
73 clocks = <&clkc CLKID_BLKMV>;
74 clock-names = "blkmv";
75 status = "okay";
76 };
Neil Armstrong8e8aec22018-06-05 10:10:44 +020077 };
78};
79
Neil Armstrong14708b12020-09-10 10:48:12 +020080&aiu {
81 compatible = "amlogic,aiu-gxl", "amlogic,aiu";
82 clocks = <&clkc CLKID_AIU_GLUE>,
83 <&clkc CLKID_I2S_OUT>,
84 <&clkc CLKID_AOCLK_GATE>,
85 <&clkc CLKID_CTS_AMCLK>,
86 <&clkc CLKID_MIXER_IFACE>,
87 <&clkc CLKID_IEC958>,
88 <&clkc CLKID_IEC958_GATE>,
89 <&clkc CLKID_CTS_MCLK_I958>,
90 <&clkc CLKID_CTS_I958>;
91 clock-names = "pclk",
92 "i2s_pclk",
93 "i2s_aoclk",
94 "i2s_mclk",
95 "i2s_mixer",
96 "spdif_pclk",
97 "spdif_aoclk",
98 "spdif_mclk",
99 "spdif_mclk_sel";
100 resets = <&reset RESET_AIU>;
101};
102
Neil Armstrong8e8aec22018-06-05 10:10:44 +0200103&apb {
104 usb2_phy0: phy@78000 {
105 compatible = "amlogic,meson-gxl-usb2-phy";
106 #phy-cells = <0>;
107 reg = <0x0 0x78000 0x0 0x20>;
108 clocks = <&clkc CLKID_USB>;
109 clock-names = "phy";
110 resets = <&reset RESET_USB_OTG>;
111 reset-names = "phy";
112 status = "okay";
113 };
114
115 usb2_phy1: phy@78020 {
116 compatible = "amlogic,meson-gxl-usb2-phy";
117 #phy-cells = <0>;
118 reg = <0x0 0x78020 0x0 0x20>;
119 clocks = <&clkc CLKID_USB>;
120 clock-names = "phy";
121 resets = <&reset RESET_USB_OTG>;
122 reset-names = "phy";
123 status = "okay";
124 };
Neil Armstronga4cf3922017-10-12 15:50:30 +0200125};
126
Neil Armstrongb95305a2019-03-26 11:20:34 +0100127&efuse {
128 clocks = <&clkc CLKID_EFUSE>;
129};
130
Neil Armstronga4cf3922017-10-12 15:50:30 +0200131&ethmac {
Neil Armstronga4cf3922017-10-12 15:50:30 +0200132 clocks = <&clkc CLKID_ETH>,
133 <&clkc CLKID_FCLK_DIV2>,
134 <&clkc CLKID_MPLL2>;
135 clock-names = "stmmaceth", "clkin0", "clkin1";
136
137 mdio0: mdio {
138 #address-cells = <1>;
139 #size-cells = <0>;
140 compatible = "snps,dwmac-mdio";
141 };
142};
143
144&aobus {
145 pinctrl_aobus: pinctrl@14 {
146 compatible = "amlogic,meson-gxl-aobus-pinctrl";
147 #address-cells = <2>;
148 #size-cells = <2>;
149 ranges;
150
151 gpio_ao: bank@14 {
152 reg = <0x0 0x00014 0x0 0x8>,
153 <0x0 0x0002c 0x0 0x4>,
154 <0x0 0x00024 0x0 0x8>;
155 reg-names = "mux", "pull", "gpio";
156 gpio-controller;
157 #gpio-cells = <2>;
158 gpio-ranges = <&pinctrl_aobus 0 0 14>;
159 };
160
161 uart_ao_a_pins: uart_ao_a {
162 mux {
163 groups = "uart_tx_ao_a", "uart_rx_ao_a";
164 function = "uart_ao";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100165 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200166 };
167 };
168
169 uart_ao_a_cts_rts_pins: uart_ao_a_cts_rts {
170 mux {
171 groups = "uart_cts_ao_a",
172 "uart_rts_ao_a";
173 function = "uart_ao";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100174 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200175 };
176 };
177
178 uart_ao_b_pins: uart_ao_b {
179 mux {
180 groups = "uart_tx_ao_b", "uart_rx_ao_b";
181 function = "uart_ao_b";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100182 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200183 };
184 };
185
186 uart_ao_b_0_1_pins: uart_ao_b_0_1 {
187 mux {
188 groups = "uart_tx_ao_b_0", "uart_rx_ao_b_1";
189 function = "uart_ao_b";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100190 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200191 };
192 };
193
194 uart_ao_b_cts_rts_pins: uart_ao_b_cts_rts {
195 mux {
196 groups = "uart_cts_ao_b",
197 "uart_rts_ao_b";
198 function = "uart_ao_b";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100199 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200200 };
201 };
202
203 remote_input_ao_pins: remote_input_ao {
204 mux {
205 groups = "remote_input_ao";
206 function = "remote_input_ao";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100207 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200208 };
209 };
210
211 i2c_ao_pins: i2c_ao {
212 mux {
213 groups = "i2c_sck_ao",
214 "i2c_sda_ao";
215 function = "i2c_ao";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100216 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200217 };
218 };
219
220 pwm_ao_a_3_pins: pwm_ao_a_3 {
221 mux {
222 groups = "pwm_ao_a_3";
223 function = "pwm_ao_a";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100224 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200225 };
226 };
227
228 pwm_ao_a_8_pins: pwm_ao_a_8 {
229 mux {
230 groups = "pwm_ao_a_8";
231 function = "pwm_ao_a";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100232 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200233 };
234 };
235
236 pwm_ao_b_pins: pwm_ao_b {
237 mux {
238 groups = "pwm_ao_b";
239 function = "pwm_ao_b";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100240 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200241 };
242 };
243
244 pwm_ao_b_6_pins: pwm_ao_b_6 {
245 mux {
246 groups = "pwm_ao_b_6";
247 function = "pwm_ao_b";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100248 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200249 };
250 };
251
252 i2s_out_ch23_ao_pins: i2s_out_ch23_ao {
253 mux {
254 groups = "i2s_out_ch23_ao";
255 function = "i2s_out_ao";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100256 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200257 };
258 };
259
260 i2s_out_ch45_ao_pins: i2s_out_ch45_ao {
261 mux {
262 groups = "i2s_out_ch45_ao";
263 function = "i2s_out_ao";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100264 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200265 };
266 };
267
268 spdif_out_ao_6_pins: spdif_out_ao_6 {
269 mux {
270 groups = "spdif_out_ao_6";
271 function = "spdif_out_ao";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100272 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200273 };
274 };
275
276 spdif_out_ao_9_pins: spdif_out_ao_9 {
277 mux {
278 groups = "spdif_out_ao_9";
279 function = "spdif_out_ao";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100280 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200281 };
282 };
283
284 ao_cec_pins: ao_cec {
285 mux {
286 groups = "ao_cec";
287 function = "cec_ao";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100288 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200289 };
290 };
291
292 ee_cec_pins: ee_cec {
293 mux {
294 groups = "ee_cec";
295 function = "cec_ao";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100296 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200297 };
298 };
299 };
300};
301
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200302&cec_AO {
303 clocks = <&clkc_AO CLKID_AO_CEC_32K>;
304 clock-names = "core";
305};
306
307&clkc_AO {
308 compatible = "amlogic,meson-gxl-aoclkc", "amlogic,meson-gx-aoclkc";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100309 clocks = <&xtal>, <&clkc CLKID_CLK81>;
310 clock-names = "xtal", "mpeg-clk";
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200311};
312
313&gpio_intc {
314 compatible = "amlogic,meson-gpio-intc",
315 "amlogic,meson-gxl-gpio-intc";
316 status = "okay";
317};
318
Neil Armstronga4cf3922017-10-12 15:50:30 +0200319&hdmi_tx {
320 compatible = "amlogic,meson-gxl-dw-hdmi", "amlogic,meson-gx-dw-hdmi";
321 resets = <&reset RESET_HDMITX_CAPB3>,
322 <&reset RESET_HDMI_SYSTEM_RESET>,
323 <&reset RESET_HDMI_TX>;
324 reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
325 clocks = <&clkc CLKID_HDMI_PCLK>,
326 <&clkc CLKID_CLK81>,
327 <&clkc CLKID_GCLK_VENCI_INT0>;
328 clock-names = "isfr", "iahb", "venci";
329};
330
Loic Devulderc0379032018-11-27 17:41:18 +0100331&sysctrl {
332 clkc: clock-controller {
333 compatible = "amlogic,gxl-clkc";
Neil Armstronga4cf3922017-10-12 15:50:30 +0200334 #clock-cells = <1>;
Neil Armstrongb95305a2019-03-26 11:20:34 +0100335 clocks = <&xtal>;
336 clock-names = "xtal";
Neil Armstronga4cf3922017-10-12 15:50:30 +0200337 };
338};
339
340&i2c_A {
341 clocks = <&clkc CLKID_I2C>;
342};
343
344&i2c_AO {
345 clocks = <&clkc CLKID_AO_I2C>;
346};
347
348&i2c_B {
349 clocks = <&clkc CLKID_I2C>;
350};
351
352&i2c_C {
353 clocks = <&clkc CLKID_I2C>;
354};
355
356&periphs {
357 pinctrl_periphs: pinctrl@4b0 {
358 compatible = "amlogic,meson-gxl-periphs-pinctrl";
359 #address-cells = <2>;
360 #size-cells = <2>;
361 ranges;
362
363 gpio: bank@4b0 {
364 reg = <0x0 0x004b0 0x0 0x28>,
365 <0x0 0x004e8 0x0 0x14>,
366 <0x0 0x00520 0x0 0x14>,
367 <0x0 0x00430 0x0 0x40>;
368 reg-names = "mux", "pull", "pull-enable", "gpio";
369 gpio-controller;
370 #gpio-cells = <2>;
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200371 gpio-ranges = <&pinctrl_periphs 0 0 100>;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200372 };
373
374 emmc_pins: emmc {
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100375 mux-0 {
Neil Armstronga4cf3922017-10-12 15:50:30 +0200376 groups = "emmc_nand_d07",
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100377 "emmc_cmd";
378 function = "emmc";
379 bias-pull-up;
380 };
381
382 mux-1 {
383 groups = "emmc_clk";
Neil Armstronga4cf3922017-10-12 15:50:30 +0200384 function = "emmc";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100385 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200386 };
387 };
388
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200389 emmc_ds_pins: emmc-ds {
390 mux {
391 groups = "emmc_ds";
392 function = "emmc";
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100393 bias-pull-down;
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200394 };
395 };
396
397 emmc_clk_gate_pins: emmc_clk_gate {
398 mux {
399 groups = "BOOT_8";
400 function = "gpio_periphs";
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200401 bias-pull-down;
402 };
403 };
404
Neil Armstronga4cf3922017-10-12 15:50:30 +0200405 nor_pins: nor {
406 mux {
407 groups = "nor_d",
408 "nor_q",
409 "nor_c",
410 "nor_cs";
411 function = "nor";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100412 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200413 };
414 };
415
Loic Devulderc0379032018-11-27 17:41:18 +0100416 spi_pins: spi-pins {
Neil Armstronga4cf3922017-10-12 15:50:30 +0200417 mux {
418 groups = "spi_miso",
419 "spi_mosi",
420 "spi_sclk";
421 function = "spi";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100422 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200423 };
424 };
425
426 spi_ss0_pins: spi-ss0 {
427 mux {
428 groups = "spi_ss0";
429 function = "spi";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100430 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200431 };
432 };
433
434 sdcard_pins: sdcard {
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100435 mux-0 {
Neil Armstronga4cf3922017-10-12 15:50:30 +0200436 groups = "sdcard_d0",
437 "sdcard_d1",
438 "sdcard_d2",
439 "sdcard_d3",
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100440 "sdcard_cmd";
441 function = "sdcard";
442 bias-pull-up;
443 };
444
445 mux-1 {
446 groups = "sdcard_clk";
Neil Armstronga4cf3922017-10-12 15:50:30 +0200447 function = "sdcard";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100448 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200449 };
450 };
451
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200452 sdcard_clk_gate_pins: sdcard_clk_gate {
453 mux {
454 groups = "CARD_2";
455 function = "gpio_periphs";
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200456 bias-pull-down;
457 };
458 };
459
Neil Armstronga4cf3922017-10-12 15:50:30 +0200460 sdio_pins: sdio {
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100461 mux-0 {
Neil Armstronga4cf3922017-10-12 15:50:30 +0200462 groups = "sdio_d0",
463 "sdio_d1",
464 "sdio_d2",
465 "sdio_d3",
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100466 "sdio_cmd";
467 function = "sdio";
468 bias-pull-up;
469 };
470
471 mux-1 {
472 groups = "sdio_clk";
Neil Armstronga4cf3922017-10-12 15:50:30 +0200473 function = "sdio";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100474 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200475 };
476 };
477
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200478 sdio_clk_gate_pins: sdio_clk_gate {
479 mux {
480 groups = "GPIOX_4";
481 function = "gpio_periphs";
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200482 bias-pull-down;
483 };
484 };
485
Neil Armstronga4cf3922017-10-12 15:50:30 +0200486 sdio_irq_pins: sdio_irq {
487 mux {
488 groups = "sdio_irq";
489 function = "sdio";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100490 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200491 };
492 };
493
494 uart_a_pins: uart_a {
495 mux {
496 groups = "uart_tx_a",
497 "uart_rx_a";
498 function = "uart_a";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100499 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200500 };
501 };
502
503 uart_a_cts_rts_pins: uart_a_cts_rts {
504 mux {
505 groups = "uart_cts_a",
506 "uart_rts_a";
507 function = "uart_a";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100508 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200509 };
510 };
511
512 uart_b_pins: uart_b {
513 mux {
514 groups = "uart_tx_b",
515 "uart_rx_b";
516 function = "uart_b";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100517 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200518 };
519 };
520
521 uart_b_cts_rts_pins: uart_b_cts_rts {
522 mux {
523 groups = "uart_cts_b",
524 "uart_rts_b";
525 function = "uart_b";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100526 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200527 };
528 };
529
530 uart_c_pins: uart_c {
531 mux {
532 groups = "uart_tx_c",
533 "uart_rx_c";
534 function = "uart_c";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100535 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200536 };
537 };
538
539 uart_c_cts_rts_pins: uart_c_cts_rts {
540 mux {
541 groups = "uart_cts_c",
542 "uart_rts_c";
543 function = "uart_c";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100544 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200545 };
546 };
547
548 i2c_a_pins: i2c_a {
549 mux {
550 groups = "i2c_sck_a",
551 "i2c_sda_a";
552 function = "i2c_a";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100553 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200554 };
555 };
556
557 i2c_b_pins: i2c_b {
558 mux {
559 groups = "i2c_sck_b",
560 "i2c_sda_b";
561 function = "i2c_b";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100562 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200563 };
564 };
565
566 i2c_c_pins: i2c_c {
567 mux {
568 groups = "i2c_sck_c",
569 "i2c_sda_c";
570 function = "i2c_c";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100571 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200572 };
573 };
574
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100575 i2c_c_dv18_pins: i2c_c_dv18 {
576 mux {
577 groups = "i2c_sck_c_dv19",
578 "i2c_sda_c_dv18";
579 function = "i2c_c";
580 bias-disable;
581 };
582 };
583
Neil Armstronga4cf3922017-10-12 15:50:30 +0200584 eth_pins: eth_c {
585 mux {
586 groups = "eth_mdio",
587 "eth_mdc",
588 "eth_clk_rx_clk",
589 "eth_rx_dv",
590 "eth_rxd0",
591 "eth_rxd1",
592 "eth_rxd2",
593 "eth_rxd3",
594 "eth_rgmii_tx_clk",
595 "eth_tx_en",
596 "eth_txd0",
597 "eth_txd1",
598 "eth_txd2",
599 "eth_txd3";
600 function = "eth";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100601 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200602 };
603 };
604
605 eth_link_led_pins: eth_link_led {
606 mux {
607 groups = "eth_link_led";
608 function = "eth_led";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100609 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200610 };
611 };
612
613 eth_act_led_pins: eth_act_led {
614 mux {
615 groups = "eth_act_led";
616 function = "eth_led";
617 };
618 };
619
620 pwm_a_pins: pwm_a {
621 mux {
622 groups = "pwm_a";
623 function = "pwm_a";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100624 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200625 };
626 };
627
628 pwm_b_pins: pwm_b {
629 mux {
630 groups = "pwm_b";
631 function = "pwm_b";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100632 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200633 };
634 };
635
636 pwm_c_pins: pwm_c {
637 mux {
638 groups = "pwm_c";
639 function = "pwm_c";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100640 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200641 };
642 };
643
644 pwm_d_pins: pwm_d {
645 mux {
646 groups = "pwm_d";
647 function = "pwm_d";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100648 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200649 };
650 };
651
652 pwm_e_pins: pwm_e {
653 mux {
654 groups = "pwm_e";
655 function = "pwm_e";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100656 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200657 };
658 };
659
660 pwm_f_clk_pins: pwm_f_clk {
661 mux {
662 groups = "pwm_f_clk";
663 function = "pwm_f";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100664 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200665 };
666 };
667
668 pwm_f_x_pins: pwm_f_x {
669 mux {
670 groups = "pwm_f_x";
671 function = "pwm_f";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100672 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200673 };
674 };
675
676 hdmi_hpd_pins: hdmi_hpd {
677 mux {
678 groups = "hdmi_hpd";
679 function = "hdmi_hpd";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100680 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200681 };
682 };
683
684 hdmi_i2c_pins: hdmi_i2c {
685 mux {
686 groups = "hdmi_sda", "hdmi_scl";
687 function = "hdmi_i2c";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100688 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200689 };
690 };
691
692 i2s_am_clk_pins: i2s_am_clk {
693 mux {
694 groups = "i2s_am_clk";
695 function = "i2s_out";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100696 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200697 };
698 };
699
700 i2s_out_ao_clk_pins: i2s_out_ao_clk {
701 mux {
702 groups = "i2s_out_ao_clk";
703 function = "i2s_out";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100704 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200705 };
706 };
707
708 i2s_out_lr_clk_pins: i2s_out_lr_clk {
709 mux {
710 groups = "i2s_out_lr_clk";
711 function = "i2s_out";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100712 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200713 };
714 };
715
716 i2s_out_ch01_pins: i2s_out_ch01 {
717 mux {
718 groups = "i2s_out_ch01";
719 function = "i2s_out";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100720 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200721 };
722 };
723 i2sout_ch23_z_pins: i2sout_ch23_z {
724 mux {
725 groups = "i2sout_ch23_z";
726 function = "i2s_out";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100727 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200728 };
729 };
730
731 i2sout_ch45_z_pins: i2sout_ch45_z {
732 mux {
733 groups = "i2sout_ch45_z";
734 function = "i2s_out";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100735 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200736 };
737 };
738
739 i2sout_ch67_z_pins: i2sout_ch67_z {
740 mux {
741 groups = "i2sout_ch67_z";
742 function = "i2s_out";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100743 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200744 };
745 };
746
747 spdif_out_h_pins: spdif_out_ao_h {
748 mux {
749 groups = "spdif_out_h";
750 function = "spdif_out";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100751 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200752 };
753 };
754 };
755
756 eth-phy-mux {
757 compatible = "mdio-mux-mmioreg", "mdio-mux";
758 #address-cells = <1>;
759 #size-cells = <0>;
760 reg = <0x0 0x55c 0x0 0x4>;
761 mux-mask = <0xffffffff>;
762 mdio-parent-bus = <&mdio0>;
763
764 internal_mdio: mdio@e40908ff {
765 reg = <0xe40908ff>;
766 #address-cells = <1>;
767 #size-cells = <0>;
768
769 internal_phy: ethernet-phy@8 {
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100770 compatible = "ethernet-phy-id0181.4400";
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200771 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200772 reg = <8>;
773 max-speed = <100>;
774 };
775 };
776
777 external_mdio: mdio@2009087f {
778 reg = <0x2009087f>;
779 #address-cells = <1>;
780 #size-cells = <0>;
781 };
782 };
783};
784
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200785&pwrc_vpu {
786 resets = <&reset RESET_VIU>,
787 <&reset RESET_VENC>,
788 <&reset RESET_VCBUS>,
789 <&reset RESET_BT656>,
790 <&reset RESET_DVIN_RESET>,
791 <&reset RESET_RDMA>,
792 <&reset RESET_VENCI>,
793 <&reset RESET_VENCP>,
794 <&reset RESET_VDAC>,
795 <&reset RESET_VDI6>,
796 <&reset RESET_VENCL>,
797 <&reset RESET_VID_LOCK>;
798 clocks = <&clkc CLKID_VPU>,
799 <&clkc CLKID_VAPB>;
800 clock-names = "vpu", "vapb";
801 /*
802 * VPU clocking is provided by two identical clock paths
803 * VPU_0 and VPU_1 muxed to a single clock by a glitch
804 * free mux to safely change frequency while running.
805 * Same for VAPB but with a final gate after the glitch free mux.
806 */
807 assigned-clocks = <&clkc CLKID_VPU_0_SEL>,
808 <&clkc CLKID_VPU_0>,
809 <&clkc CLKID_VPU>, /* Glitch free mux */
810 <&clkc CLKID_VAPB_0_SEL>,
811 <&clkc CLKID_VAPB_0>,
812 <&clkc CLKID_VAPB_SEL>; /* Glitch free mux */
813 assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
814 <0>, /* Do Nothing */
815 <&clkc CLKID_VPU_0>,
816 <&clkc CLKID_FCLK_DIV4>,
817 <0>, /* Do Nothing */
818 <&clkc CLKID_VAPB_0>;
819 assigned-clock-rates = <0>, /* Do Nothing */
820 <666666666>,
821 <0>, /* Do Nothing */
822 <0>, /* Do Nothing */
823 <250000000>,
824 <0>; /* Do Nothing */
825};
826
Neil Armstronga4cf3922017-10-12 15:50:30 +0200827&saradc {
828 compatible = "amlogic,meson-gxl-saradc", "amlogic,meson-saradc";
829 clocks = <&xtal>,
830 <&clkc CLKID_SAR_ADC>,
Neil Armstronga4cf3922017-10-12 15:50:30 +0200831 <&clkc CLKID_SAR_ADC_CLK>,
832 <&clkc CLKID_SAR_ADC_SEL>;
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200833 clock-names = "clkin", "core", "adc_clk", "adc_sel";
Neil Armstronga4cf3922017-10-12 15:50:30 +0200834};
835
836&sd_emmc_a {
837 clocks = <&clkc CLKID_SD_EMMC_A>,
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200838 <&clkc CLKID_SD_EMMC_A_CLK0>,
Neil Armstronga4cf3922017-10-12 15:50:30 +0200839 <&clkc CLKID_FCLK_DIV2>;
840 clock-names = "core", "clkin0", "clkin1";
Loic Devulderc0379032018-11-27 17:41:18 +0100841 resets = <&reset RESET_SD_EMMC_A>;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200842};
843
844&sd_emmc_b {
845 clocks = <&clkc CLKID_SD_EMMC_B>,
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200846 <&clkc CLKID_SD_EMMC_B_CLK0>,
Neil Armstronga4cf3922017-10-12 15:50:30 +0200847 <&clkc CLKID_FCLK_DIV2>;
Loic Devulderc0379032018-11-27 17:41:18 +0100848 clock-names = "core", "clkin0", "clkin1";
849 resets = <&reset RESET_SD_EMMC_B>;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200850};
851
852&sd_emmc_c {
853 clocks = <&clkc CLKID_SD_EMMC_C>,
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200854 <&clkc CLKID_SD_EMMC_C_CLK0>,
Neil Armstronga4cf3922017-10-12 15:50:30 +0200855 <&clkc CLKID_FCLK_DIV2>;
856 clock-names = "core", "clkin0", "clkin1";
Loic Devulderc0379032018-11-27 17:41:18 +0100857 resets = <&reset RESET_SD_EMMC_C>;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200858};
859
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100860&simplefb_hdmi {
861 clocks = <&clkc CLKID_HDMI_PCLK>,
862 <&clkc CLKID_CLK81>,
863 <&clkc CLKID_GCLK_VENCI_INT0>;
864};
865
Neil Armstronga4cf3922017-10-12 15:50:30 +0200866&spicc {
867 clocks = <&clkc CLKID_SPICC>;
868 clock-names = "core";
869 resets = <&reset RESET_PERIPHS_SPICC>;
870 num-cs = <1>;
871};
872
873&spifc {
874 clocks = <&clkc CLKID_SPI>;
875};
876
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200877&uart_A {
878 clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
879 clock-names = "xtal", "pclk", "baud";
880};
881
882&uart_AO {
Loic Devulderc0379032018-11-27 17:41:18 +0100883 clocks = <&xtal>, <&clkc_AO CLKID_AO_UART1>, <&xtal>;
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200884 clock-names = "xtal", "pclk", "baud";
885};
886
887&uart_AO_B {
Loic Devulderc0379032018-11-27 17:41:18 +0100888 clocks = <&xtal>, <&clkc_AO CLKID_AO_UART2>, <&xtal>;
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200889 clock-names = "xtal", "pclk", "baud";
890};
891
892&uart_B {
893 clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
894 clock-names = "xtal", "pclk", "baud";
895};
896
897&uart_C {
898 clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>;
899 clock-names = "xtal", "pclk", "baud";
900};
901
Neil Armstronga4cf3922017-10-12 15:50:30 +0200902&vpu {
903 compatible = "amlogic,meson-gxl-vpu", "amlogic,meson-gx-vpu";
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200904 power-domains = <&pwrc_vpu>;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200905};
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100906
907&vdec {
908 compatible = "amlogic,gxl-vdec", "amlogic,gx-vdec";
909 clocks = <&clkc CLKID_DOS_PARSER>,
910 <&clkc CLKID_DOS>,
911 <&clkc CLKID_VDEC_1>,
912 <&clkc CLKID_VDEC_HEVC>;
913 clock-names = "dos_parser", "dos", "vdec_1", "vdec_hevc";
914 resets = <&reset RESET_PARSER>;
915 reset-names = "esparser";
916};