blob: 259d8639939059fd1e6bd3ca1e7563caec4c0c21 [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 {
17 usb0: usb@c9000000 {
18 status = "disabled";
19 compatible = "amlogic,meson-gxl-dwc3";
20 #address-cells = <2>;
21 #size-cells = <2>;
22 ranges;
23
24 clocks = <&clkc CLKID_USB>;
25 clock-names = "usb_general";
26 resets = <&reset RESET_USB_OTG>;
27 reset-names = "usb_otg";
28
29 dwc3: dwc3@c9000000 {
30 compatible = "snps,dwc3";
31 reg = <0x0 0xc9000000 0x0 0x100000>;
32 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
33 dr_mode = "host";
34 maximum-speed = "high-speed";
35 snps,dis_u2_susphy_quirk;
36 phys = <&usb3_phy>, <&usb2_phy0>, <&usb2_phy1>;
37 };
38 };
Jerome Brunetd34d5ef2020-03-05 12:12:38 +010039
40 crypto: crypto@c883e000 {
41 compatible = "amlogic,gxl-crypto";
42 reg = <0x0 0xc883e000 0x0 0x36>;
43 interrupts = <GIC_SPI 188 IRQ_TYPE_EDGE_RISING>,
44 <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>;
45 clocks = <&clkc CLKID_BLKMV>;
46 clock-names = "blkmv";
47 status = "okay";
48 };
Neil Armstrong8e8aec22018-06-05 10:10:44 +020049 };
50};
51
52&apb {
53 usb2_phy0: phy@78000 {
54 compatible = "amlogic,meson-gxl-usb2-phy";
55 #phy-cells = <0>;
56 reg = <0x0 0x78000 0x0 0x20>;
57 clocks = <&clkc CLKID_USB>;
58 clock-names = "phy";
59 resets = <&reset RESET_USB_OTG>;
60 reset-names = "phy";
61 status = "okay";
62 };
63
64 usb2_phy1: phy@78020 {
65 compatible = "amlogic,meson-gxl-usb2-phy";
66 #phy-cells = <0>;
67 reg = <0x0 0x78020 0x0 0x20>;
68 clocks = <&clkc CLKID_USB>;
69 clock-names = "phy";
70 resets = <&reset RESET_USB_OTG>;
71 reset-names = "phy";
72 status = "okay";
73 };
74
75 usb3_phy: phy@78080 {
76 compatible = "amlogic,meson-gxl-usb3-phy";
77 #phy-cells = <0>;
78 reg = <0x0 0x78080 0x0 0x20>;
79 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
80 clocks = <&clkc CLKID_USB>, <&clkc_AO CLKID_AO_CEC_32K>;
81 clock-names = "phy", "peripheral";
82 resets = <&reset RESET_USB_OTG>, <&reset RESET_USB_OTG>;
83 reset-names = "phy", "peripheral";
84 status = "okay";
85 };
Neil Armstronga4cf3922017-10-12 15:50:30 +020086};
87
Neil Armstrongb95305a2019-03-26 11:20:34 +010088&efuse {
89 clocks = <&clkc CLKID_EFUSE>;
90};
91
Neil Armstronga4cf3922017-10-12 15:50:30 +020092&ethmac {
Neil Armstronga4cf3922017-10-12 15:50:30 +020093 clocks = <&clkc CLKID_ETH>,
94 <&clkc CLKID_FCLK_DIV2>,
95 <&clkc CLKID_MPLL2>;
96 clock-names = "stmmaceth", "clkin0", "clkin1";
97
98 mdio0: mdio {
99 #address-cells = <1>;
100 #size-cells = <0>;
101 compatible = "snps,dwmac-mdio";
102 };
103};
104
105&aobus {
106 pinctrl_aobus: pinctrl@14 {
107 compatible = "amlogic,meson-gxl-aobus-pinctrl";
108 #address-cells = <2>;
109 #size-cells = <2>;
110 ranges;
111
112 gpio_ao: bank@14 {
113 reg = <0x0 0x00014 0x0 0x8>,
114 <0x0 0x0002c 0x0 0x4>,
115 <0x0 0x00024 0x0 0x8>;
116 reg-names = "mux", "pull", "gpio";
117 gpio-controller;
118 #gpio-cells = <2>;
119 gpio-ranges = <&pinctrl_aobus 0 0 14>;
120 };
121
122 uart_ao_a_pins: uart_ao_a {
123 mux {
124 groups = "uart_tx_ao_a", "uart_rx_ao_a";
125 function = "uart_ao";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100126 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200127 };
128 };
129
130 uart_ao_a_cts_rts_pins: uart_ao_a_cts_rts {
131 mux {
132 groups = "uart_cts_ao_a",
133 "uart_rts_ao_a";
134 function = "uart_ao";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100135 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200136 };
137 };
138
139 uart_ao_b_pins: uart_ao_b {
140 mux {
141 groups = "uart_tx_ao_b", "uart_rx_ao_b";
142 function = "uart_ao_b";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100143 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200144 };
145 };
146
147 uart_ao_b_0_1_pins: uart_ao_b_0_1 {
148 mux {
149 groups = "uart_tx_ao_b_0", "uart_rx_ao_b_1";
150 function = "uart_ao_b";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100151 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200152 };
153 };
154
155 uart_ao_b_cts_rts_pins: uart_ao_b_cts_rts {
156 mux {
157 groups = "uart_cts_ao_b",
158 "uart_rts_ao_b";
159 function = "uart_ao_b";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100160 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200161 };
162 };
163
164 remote_input_ao_pins: remote_input_ao {
165 mux {
166 groups = "remote_input_ao";
167 function = "remote_input_ao";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100168 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200169 };
170 };
171
172 i2c_ao_pins: i2c_ao {
173 mux {
174 groups = "i2c_sck_ao",
175 "i2c_sda_ao";
176 function = "i2c_ao";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100177 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200178 };
179 };
180
181 pwm_ao_a_3_pins: pwm_ao_a_3 {
182 mux {
183 groups = "pwm_ao_a_3";
184 function = "pwm_ao_a";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100185 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200186 };
187 };
188
189 pwm_ao_a_8_pins: pwm_ao_a_8 {
190 mux {
191 groups = "pwm_ao_a_8";
192 function = "pwm_ao_a";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100193 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200194 };
195 };
196
197 pwm_ao_b_pins: pwm_ao_b {
198 mux {
199 groups = "pwm_ao_b";
200 function = "pwm_ao_b";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100201 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200202 };
203 };
204
205 pwm_ao_b_6_pins: pwm_ao_b_6 {
206 mux {
207 groups = "pwm_ao_b_6";
208 function = "pwm_ao_b";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100209 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200210 };
211 };
212
213 i2s_out_ch23_ao_pins: i2s_out_ch23_ao {
214 mux {
215 groups = "i2s_out_ch23_ao";
216 function = "i2s_out_ao";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100217 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200218 };
219 };
220
221 i2s_out_ch45_ao_pins: i2s_out_ch45_ao {
222 mux {
223 groups = "i2s_out_ch45_ao";
224 function = "i2s_out_ao";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100225 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200226 };
227 };
228
229 spdif_out_ao_6_pins: spdif_out_ao_6 {
230 mux {
231 groups = "spdif_out_ao_6";
232 function = "spdif_out_ao";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100233 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200234 };
235 };
236
237 spdif_out_ao_9_pins: spdif_out_ao_9 {
238 mux {
239 groups = "spdif_out_ao_9";
240 function = "spdif_out_ao";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100241 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200242 };
243 };
244
245 ao_cec_pins: ao_cec {
246 mux {
247 groups = "ao_cec";
248 function = "cec_ao";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100249 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200250 };
251 };
252
253 ee_cec_pins: ee_cec {
254 mux {
255 groups = "ee_cec";
256 function = "cec_ao";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100257 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200258 };
259 };
260 };
261};
262
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200263&cec_AO {
264 clocks = <&clkc_AO CLKID_AO_CEC_32K>;
265 clock-names = "core";
266};
267
268&clkc_AO {
269 compatible = "amlogic,meson-gxl-aoclkc", "amlogic,meson-gx-aoclkc";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100270 clocks = <&xtal>, <&clkc CLKID_CLK81>;
271 clock-names = "xtal", "mpeg-clk";
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200272};
273
274&gpio_intc {
275 compatible = "amlogic,meson-gpio-intc",
276 "amlogic,meson-gxl-gpio-intc";
277 status = "okay";
278};
279
Neil Armstronga4cf3922017-10-12 15:50:30 +0200280&hdmi_tx {
281 compatible = "amlogic,meson-gxl-dw-hdmi", "amlogic,meson-gx-dw-hdmi";
282 resets = <&reset RESET_HDMITX_CAPB3>,
283 <&reset RESET_HDMI_SYSTEM_RESET>,
284 <&reset RESET_HDMI_TX>;
285 reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
286 clocks = <&clkc CLKID_HDMI_PCLK>,
287 <&clkc CLKID_CLK81>,
288 <&clkc CLKID_GCLK_VENCI_INT0>;
289 clock-names = "isfr", "iahb", "venci";
290};
291
Loic Devulderc0379032018-11-27 17:41:18 +0100292&sysctrl {
293 clkc: clock-controller {
294 compatible = "amlogic,gxl-clkc";
Neil Armstronga4cf3922017-10-12 15:50:30 +0200295 #clock-cells = <1>;
Neil Armstrongb95305a2019-03-26 11:20:34 +0100296 clocks = <&xtal>;
297 clock-names = "xtal";
Neil Armstronga4cf3922017-10-12 15:50:30 +0200298 };
299};
300
301&i2c_A {
302 clocks = <&clkc CLKID_I2C>;
303};
304
305&i2c_AO {
306 clocks = <&clkc CLKID_AO_I2C>;
307};
308
309&i2c_B {
310 clocks = <&clkc CLKID_I2C>;
311};
312
313&i2c_C {
314 clocks = <&clkc CLKID_I2C>;
315};
316
317&periphs {
318 pinctrl_periphs: pinctrl@4b0 {
319 compatible = "amlogic,meson-gxl-periphs-pinctrl";
320 #address-cells = <2>;
321 #size-cells = <2>;
322 ranges;
323
324 gpio: bank@4b0 {
325 reg = <0x0 0x004b0 0x0 0x28>,
326 <0x0 0x004e8 0x0 0x14>,
327 <0x0 0x00520 0x0 0x14>,
328 <0x0 0x00430 0x0 0x40>;
329 reg-names = "mux", "pull", "pull-enable", "gpio";
330 gpio-controller;
331 #gpio-cells = <2>;
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200332 gpio-ranges = <&pinctrl_periphs 0 0 100>;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200333 };
334
335 emmc_pins: emmc {
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100336 mux-0 {
Neil Armstronga4cf3922017-10-12 15:50:30 +0200337 groups = "emmc_nand_d07",
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100338 "emmc_cmd";
339 function = "emmc";
340 bias-pull-up;
341 };
342
343 mux-1 {
344 groups = "emmc_clk";
Neil Armstronga4cf3922017-10-12 15:50:30 +0200345 function = "emmc";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100346 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200347 };
348 };
349
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200350 emmc_ds_pins: emmc-ds {
351 mux {
352 groups = "emmc_ds";
353 function = "emmc";
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100354 bias-pull-down;
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200355 };
356 };
357
358 emmc_clk_gate_pins: emmc_clk_gate {
359 mux {
360 groups = "BOOT_8";
361 function = "gpio_periphs";
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200362 bias-pull-down;
363 };
364 };
365
Neil Armstronga4cf3922017-10-12 15:50:30 +0200366 nor_pins: nor {
367 mux {
368 groups = "nor_d",
369 "nor_q",
370 "nor_c",
371 "nor_cs";
372 function = "nor";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100373 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200374 };
375 };
376
Loic Devulderc0379032018-11-27 17:41:18 +0100377 spi_pins: spi-pins {
Neil Armstronga4cf3922017-10-12 15:50:30 +0200378 mux {
379 groups = "spi_miso",
380 "spi_mosi",
381 "spi_sclk";
382 function = "spi";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100383 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200384 };
385 };
386
387 spi_ss0_pins: spi-ss0 {
388 mux {
389 groups = "spi_ss0";
390 function = "spi";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100391 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200392 };
393 };
394
395 sdcard_pins: sdcard {
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100396 mux-0 {
Neil Armstronga4cf3922017-10-12 15:50:30 +0200397 groups = "sdcard_d0",
398 "sdcard_d1",
399 "sdcard_d2",
400 "sdcard_d3",
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100401 "sdcard_cmd";
402 function = "sdcard";
403 bias-pull-up;
404 };
405
406 mux-1 {
407 groups = "sdcard_clk";
Neil Armstronga4cf3922017-10-12 15:50:30 +0200408 function = "sdcard";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100409 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200410 };
411 };
412
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200413 sdcard_clk_gate_pins: sdcard_clk_gate {
414 mux {
415 groups = "CARD_2";
416 function = "gpio_periphs";
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200417 bias-pull-down;
418 };
419 };
420
Neil Armstronga4cf3922017-10-12 15:50:30 +0200421 sdio_pins: sdio {
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100422 mux-0 {
Neil Armstronga4cf3922017-10-12 15:50:30 +0200423 groups = "sdio_d0",
424 "sdio_d1",
425 "sdio_d2",
426 "sdio_d3",
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100427 "sdio_cmd";
428 function = "sdio";
429 bias-pull-up;
430 };
431
432 mux-1 {
433 groups = "sdio_clk";
Neil Armstronga4cf3922017-10-12 15:50:30 +0200434 function = "sdio";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100435 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200436 };
437 };
438
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200439 sdio_clk_gate_pins: sdio_clk_gate {
440 mux {
441 groups = "GPIOX_4";
442 function = "gpio_periphs";
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200443 bias-pull-down;
444 };
445 };
446
Neil Armstronga4cf3922017-10-12 15:50:30 +0200447 sdio_irq_pins: sdio_irq {
448 mux {
449 groups = "sdio_irq";
450 function = "sdio";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100451 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200452 };
453 };
454
455 uart_a_pins: uart_a {
456 mux {
457 groups = "uart_tx_a",
458 "uart_rx_a";
459 function = "uart_a";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100460 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200461 };
462 };
463
464 uart_a_cts_rts_pins: uart_a_cts_rts {
465 mux {
466 groups = "uart_cts_a",
467 "uart_rts_a";
468 function = "uart_a";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100469 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200470 };
471 };
472
473 uart_b_pins: uart_b {
474 mux {
475 groups = "uart_tx_b",
476 "uart_rx_b";
477 function = "uart_b";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100478 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200479 };
480 };
481
482 uart_b_cts_rts_pins: uart_b_cts_rts {
483 mux {
484 groups = "uart_cts_b",
485 "uart_rts_b";
486 function = "uart_b";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100487 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200488 };
489 };
490
491 uart_c_pins: uart_c {
492 mux {
493 groups = "uart_tx_c",
494 "uart_rx_c";
495 function = "uart_c";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100496 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200497 };
498 };
499
500 uart_c_cts_rts_pins: uart_c_cts_rts {
501 mux {
502 groups = "uart_cts_c",
503 "uart_rts_c";
504 function = "uart_c";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100505 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200506 };
507 };
508
509 i2c_a_pins: i2c_a {
510 mux {
511 groups = "i2c_sck_a",
512 "i2c_sda_a";
513 function = "i2c_a";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100514 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200515 };
516 };
517
518 i2c_b_pins: i2c_b {
519 mux {
520 groups = "i2c_sck_b",
521 "i2c_sda_b";
522 function = "i2c_b";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100523 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200524 };
525 };
526
527 i2c_c_pins: i2c_c {
528 mux {
529 groups = "i2c_sck_c",
530 "i2c_sda_c";
531 function = "i2c_c";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100532 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200533 };
534 };
535
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100536 i2c_c_dv18_pins: i2c_c_dv18 {
537 mux {
538 groups = "i2c_sck_c_dv19",
539 "i2c_sda_c_dv18";
540 function = "i2c_c";
541 bias-disable;
542 };
543 };
544
Neil Armstronga4cf3922017-10-12 15:50:30 +0200545 eth_pins: eth_c {
546 mux {
547 groups = "eth_mdio",
548 "eth_mdc",
549 "eth_clk_rx_clk",
550 "eth_rx_dv",
551 "eth_rxd0",
552 "eth_rxd1",
553 "eth_rxd2",
554 "eth_rxd3",
555 "eth_rgmii_tx_clk",
556 "eth_tx_en",
557 "eth_txd0",
558 "eth_txd1",
559 "eth_txd2",
560 "eth_txd3";
561 function = "eth";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100562 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200563 };
564 };
565
566 eth_link_led_pins: eth_link_led {
567 mux {
568 groups = "eth_link_led";
569 function = "eth_led";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100570 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200571 };
572 };
573
574 eth_act_led_pins: eth_act_led {
575 mux {
576 groups = "eth_act_led";
577 function = "eth_led";
578 };
579 };
580
581 pwm_a_pins: pwm_a {
582 mux {
583 groups = "pwm_a";
584 function = "pwm_a";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100585 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200586 };
587 };
588
589 pwm_b_pins: pwm_b {
590 mux {
591 groups = "pwm_b";
592 function = "pwm_b";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100593 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200594 };
595 };
596
597 pwm_c_pins: pwm_c {
598 mux {
599 groups = "pwm_c";
600 function = "pwm_c";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100601 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200602 };
603 };
604
605 pwm_d_pins: pwm_d {
606 mux {
607 groups = "pwm_d";
608 function = "pwm_d";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100609 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200610 };
611 };
612
613 pwm_e_pins: pwm_e {
614 mux {
615 groups = "pwm_e";
616 function = "pwm_e";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100617 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200618 };
619 };
620
621 pwm_f_clk_pins: pwm_f_clk {
622 mux {
623 groups = "pwm_f_clk";
624 function = "pwm_f";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100625 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200626 };
627 };
628
629 pwm_f_x_pins: pwm_f_x {
630 mux {
631 groups = "pwm_f_x";
632 function = "pwm_f";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100633 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200634 };
635 };
636
637 hdmi_hpd_pins: hdmi_hpd {
638 mux {
639 groups = "hdmi_hpd";
640 function = "hdmi_hpd";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100641 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200642 };
643 };
644
645 hdmi_i2c_pins: hdmi_i2c {
646 mux {
647 groups = "hdmi_sda", "hdmi_scl";
648 function = "hdmi_i2c";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100649 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200650 };
651 };
652
653 i2s_am_clk_pins: i2s_am_clk {
654 mux {
655 groups = "i2s_am_clk";
656 function = "i2s_out";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100657 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200658 };
659 };
660
661 i2s_out_ao_clk_pins: i2s_out_ao_clk {
662 mux {
663 groups = "i2s_out_ao_clk";
664 function = "i2s_out";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100665 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200666 };
667 };
668
669 i2s_out_lr_clk_pins: i2s_out_lr_clk {
670 mux {
671 groups = "i2s_out_lr_clk";
672 function = "i2s_out";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100673 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200674 };
675 };
676
677 i2s_out_ch01_pins: i2s_out_ch01 {
678 mux {
679 groups = "i2s_out_ch01";
680 function = "i2s_out";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100681 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200682 };
683 };
684 i2sout_ch23_z_pins: i2sout_ch23_z {
685 mux {
686 groups = "i2sout_ch23_z";
687 function = "i2s_out";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100688 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200689 };
690 };
691
692 i2sout_ch45_z_pins: i2sout_ch45_z {
693 mux {
694 groups = "i2sout_ch45_z";
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 i2sout_ch67_z_pins: i2sout_ch67_z {
701 mux {
702 groups = "i2sout_ch67_z";
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 spdif_out_h_pins: spdif_out_ao_h {
709 mux {
710 groups = "spdif_out_h";
711 function = "spdif_out";
Neil Armstrongb95305a2019-03-26 11:20:34 +0100712 bias-disable;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200713 };
714 };
715 };
716
717 eth-phy-mux {
718 compatible = "mdio-mux-mmioreg", "mdio-mux";
719 #address-cells = <1>;
720 #size-cells = <0>;
721 reg = <0x0 0x55c 0x0 0x4>;
722 mux-mask = <0xffffffff>;
723 mdio-parent-bus = <&mdio0>;
724
725 internal_mdio: mdio@e40908ff {
726 reg = <0xe40908ff>;
727 #address-cells = <1>;
728 #size-cells = <0>;
729
730 internal_phy: ethernet-phy@8 {
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100731 compatible = "ethernet-phy-id0181.4400";
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200732 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200733 reg = <8>;
734 max-speed = <100>;
735 };
736 };
737
738 external_mdio: mdio@2009087f {
739 reg = <0x2009087f>;
740 #address-cells = <1>;
741 #size-cells = <0>;
742 };
743 };
744};
745
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200746&pwrc_vpu {
747 resets = <&reset RESET_VIU>,
748 <&reset RESET_VENC>,
749 <&reset RESET_VCBUS>,
750 <&reset RESET_BT656>,
751 <&reset RESET_DVIN_RESET>,
752 <&reset RESET_RDMA>,
753 <&reset RESET_VENCI>,
754 <&reset RESET_VENCP>,
755 <&reset RESET_VDAC>,
756 <&reset RESET_VDI6>,
757 <&reset RESET_VENCL>,
758 <&reset RESET_VID_LOCK>;
759 clocks = <&clkc CLKID_VPU>,
760 <&clkc CLKID_VAPB>;
761 clock-names = "vpu", "vapb";
762 /*
763 * VPU clocking is provided by two identical clock paths
764 * VPU_0 and VPU_1 muxed to a single clock by a glitch
765 * free mux to safely change frequency while running.
766 * Same for VAPB but with a final gate after the glitch free mux.
767 */
768 assigned-clocks = <&clkc CLKID_VPU_0_SEL>,
769 <&clkc CLKID_VPU_0>,
770 <&clkc CLKID_VPU>, /* Glitch free mux */
771 <&clkc CLKID_VAPB_0_SEL>,
772 <&clkc CLKID_VAPB_0>,
773 <&clkc CLKID_VAPB_SEL>; /* Glitch free mux */
774 assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
775 <0>, /* Do Nothing */
776 <&clkc CLKID_VPU_0>,
777 <&clkc CLKID_FCLK_DIV4>,
778 <0>, /* Do Nothing */
779 <&clkc CLKID_VAPB_0>;
780 assigned-clock-rates = <0>, /* Do Nothing */
781 <666666666>,
782 <0>, /* Do Nothing */
783 <0>, /* Do Nothing */
784 <250000000>,
785 <0>; /* Do Nothing */
786};
787
Neil Armstronga4cf3922017-10-12 15:50:30 +0200788&saradc {
789 compatible = "amlogic,meson-gxl-saradc", "amlogic,meson-saradc";
790 clocks = <&xtal>,
791 <&clkc CLKID_SAR_ADC>,
Neil Armstronga4cf3922017-10-12 15:50:30 +0200792 <&clkc CLKID_SAR_ADC_CLK>,
793 <&clkc CLKID_SAR_ADC_SEL>;
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200794 clock-names = "clkin", "core", "adc_clk", "adc_sel";
Neil Armstronga4cf3922017-10-12 15:50:30 +0200795};
796
797&sd_emmc_a {
798 clocks = <&clkc CLKID_SD_EMMC_A>,
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200799 <&clkc CLKID_SD_EMMC_A_CLK0>,
Neil Armstronga4cf3922017-10-12 15:50:30 +0200800 <&clkc CLKID_FCLK_DIV2>;
801 clock-names = "core", "clkin0", "clkin1";
Loic Devulderc0379032018-11-27 17:41:18 +0100802 resets = <&reset RESET_SD_EMMC_A>;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200803};
804
805&sd_emmc_b {
806 clocks = <&clkc CLKID_SD_EMMC_B>,
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200807 <&clkc CLKID_SD_EMMC_B_CLK0>,
Neil Armstronga4cf3922017-10-12 15:50:30 +0200808 <&clkc CLKID_FCLK_DIV2>;
Loic Devulderc0379032018-11-27 17:41:18 +0100809 clock-names = "core", "clkin0", "clkin1";
810 resets = <&reset RESET_SD_EMMC_B>;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200811};
812
813&sd_emmc_c {
814 clocks = <&clkc CLKID_SD_EMMC_C>,
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200815 <&clkc CLKID_SD_EMMC_C_CLK0>,
Neil Armstronga4cf3922017-10-12 15:50:30 +0200816 <&clkc CLKID_FCLK_DIV2>;
817 clock-names = "core", "clkin0", "clkin1";
Loic Devulderc0379032018-11-27 17:41:18 +0100818 resets = <&reset RESET_SD_EMMC_C>;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200819};
820
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100821&simplefb_hdmi {
822 clocks = <&clkc CLKID_HDMI_PCLK>,
823 <&clkc CLKID_CLK81>,
824 <&clkc CLKID_GCLK_VENCI_INT0>;
825};
826
Neil Armstronga4cf3922017-10-12 15:50:30 +0200827&spicc {
828 clocks = <&clkc CLKID_SPICC>;
829 clock-names = "core";
830 resets = <&reset RESET_PERIPHS_SPICC>;
831 num-cs = <1>;
832};
833
834&spifc {
835 clocks = <&clkc CLKID_SPI>;
836};
837
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200838&uart_A {
839 clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
840 clock-names = "xtal", "pclk", "baud";
841};
842
843&uart_AO {
Loic Devulderc0379032018-11-27 17:41:18 +0100844 clocks = <&xtal>, <&clkc_AO CLKID_AO_UART1>, <&xtal>;
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200845 clock-names = "xtal", "pclk", "baud";
846};
847
848&uart_AO_B {
Loic Devulderc0379032018-11-27 17:41:18 +0100849 clocks = <&xtal>, <&clkc_AO CLKID_AO_UART2>, <&xtal>;
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200850 clock-names = "xtal", "pclk", "baud";
851};
852
853&uart_B {
854 clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
855 clock-names = "xtal", "pclk", "baud";
856};
857
858&uart_C {
859 clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>;
860 clock-names = "xtal", "pclk", "baud";
861};
862
Neil Armstronga4cf3922017-10-12 15:50:30 +0200863&vpu {
864 compatible = "amlogic,meson-gxl-vpu", "amlogic,meson-gx-vpu";
Neil Armstrong5d54d1b2018-04-11 17:40:40 +0200865 power-domains = <&pwrc_vpu>;
Neil Armstronga4cf3922017-10-12 15:50:30 +0200866};
Jerome Brunetd34d5ef2020-03-05 12:12:38 +0100867
868&vdec {
869 compatible = "amlogic,gxl-vdec", "amlogic,gx-vdec";
870 clocks = <&clkc CLKID_DOS_PARSER>,
871 <&clkc CLKID_DOS>,
872 <&clkc CLKID_VDEC_1>,
873 <&clkc CLKID_VDEC_HEVC>;
874 clock-names = "dos_parser", "dos", "vdec_1", "vdec_hevc";
875 resets = <&reset RESET_PARSER>;
876 reset-names = "esparser";
877};