blob: 234490d3ee683a520e0d7c795e09f8bed9d1ba6c [file] [log] [blame]
Neil Armstrong5b3da7f2018-06-05 10:10:44 +02001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
Beniamino Galvanibfcef282016-05-08 08:30:16 +02002/*
3 * Copyright (c) 2016 Andreas Färber
Beniamino Galvanibfcef282016-05-08 08:30:16 +02004 */
5
Heiner Kallweita3b02a12017-04-12 20:28:36 +02006#include "meson-gx.dtsi"
Beniamino Galvanidd838402016-08-16 11:49:48 +02007#include <dt-bindings/gpio/meson-gxbb-gpio.h>
8#include <dt-bindings/reset/amlogic,meson-gxbb-reset.h>
Heiner Kallweita3b02a12017-04-12 20:28:36 +02009#include <dt-bindings/clock/gxbb-clkc.h>
10#include <dt-bindings/clock/gxbb-aoclkc.h>
11#include <dt-bindings/reset/gxbb-aoclkc.h>
Beniamino Galvanibfcef282016-05-08 08:30:16 +020012
13/ {
14 compatible = "amlogic,meson-gxbb";
Beniamino Galvanibfcef282016-05-08 08:30:16 +020015
16 soc {
Heiner Kallweita3b02a12017-04-12 20:28:36 +020017 usb0_phy: phy@c0000000 {
18 compatible = "amlogic,meson-gxbb-usb2-phy";
19 #phy-cells = <0>;
20 reg = <0x0 0xc0000000 0x0 0x20>;
21 resets = <&reset RESET_USB_OTG>;
22 clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB0>;
23 clock-names = "usb_general", "usb";
24 status = "disabled";
25 };
26
27 usb1_phy: phy@c0000020 {
28 compatible = "amlogic,meson-gxbb-usb2-phy";
29 #phy-cells = <0>;
30 reg = <0x0 0xc0000020 0x0 0x20>;
31 resets = <&reset RESET_USB_OTG>;
32 clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1>;
33 clock-names = "usb_general", "usb";
34 status = "disabled";
35 };
36
37 usb0: usb@c9000000 {
38 compatible = "amlogic,meson-gxbb-usb", "snps,dwc2";
39 reg = <0x0 0xc9000000 0x0 0x40000>;
40 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
41 clocks = <&clkc CLKID_USB0_DDR_BRIDGE>;
42 clock-names = "otg";
43 phys = <&usb0_phy>;
44 phy-names = "usb2-phy";
45 dr_mode = "host";
46 status = "disabled";
47 };
48
49 usb1: usb@c9100000 {
50 compatible = "amlogic,meson-gxbb-usb", "snps,dwc2";
51 reg = <0x0 0xc9100000 0x0 0x40000>;
52 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
53 clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
54 clock-names = "otg";
55 phys = <&usb1_phy>;
56 phy-names = "usb2-phy";
57 dr_mode = "host";
58 status = "disabled";
59 };
60 };
61};
62
Neil Armstrong4e7b0a32020-09-10 10:48:12 +020063&aiu {
64 compatible = "amlogic,aiu-gxbb", "amlogic,aiu";
65 clocks = <&clkc CLKID_AIU_GLUE>,
66 <&clkc CLKID_I2S_OUT>,
67 <&clkc CLKID_AOCLK_GATE>,
68 <&clkc CLKID_CTS_AMCLK>,
69 <&clkc CLKID_MIXER_IFACE>,
70 <&clkc CLKID_IEC958>,
71 <&clkc CLKID_IEC958_GATE>,
72 <&clkc CLKID_CTS_MCLK_I958>,
73 <&clkc CLKID_CTS_I958>;
74 clock-names = "pclk",
75 "i2s_pclk",
76 "i2s_aoclk",
77 "i2s_mclk",
78 "i2s_mixer",
79 "spdif_pclk",
80 "spdif_aoclk",
81 "spdif_mclk",
82 "spdif_mclk_sel";
83 resets = <&reset RESET_AIU>;
84};
85
Heiner Kallweita3b02a12017-04-12 20:28:36 +020086&aobus {
87 pinctrl_aobus: pinctrl@14 {
88 compatible = "amlogic,meson-gxbb-aobus-pinctrl";
Beniamino Galvanibfcef282016-05-08 08:30:16 +020089 #address-cells = <2>;
90 #size-cells = <2>;
91 ranges;
92
Heiner Kallweita3b02a12017-04-12 20:28:36 +020093 gpio_ao: bank@14 {
94 reg = <0x0 0x00014 0x0 0x8>,
95 <0x0 0x0002c 0x0 0x4>,
96 <0x0 0x00024 0x0 0x8>;
97 reg-names = "mux", "pull", "gpio";
98 gpio-controller;
99 #gpio-cells = <2>;
Beniamino Galvani4a63a752017-07-10 00:30:03 +0200100 gpio-ranges = <&pinctrl_aobus 0 0 14>;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200101 };
Beniamino Galvanibfcef282016-05-08 08:30:16 +0200102
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200103 uart_ao_a_pins: uart_ao_a {
104 mux {
105 groups = "uart_tx_ao_a", "uart_rx_ao_a";
106 function = "uart_ao";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100107 bias-disable;
Beniamino Galvanidd838402016-08-16 11:49:48 +0200108 };
Beniamino Galvanibfcef282016-05-08 08:30:16 +0200109 };
110
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200111 uart_ao_a_cts_rts_pins: uart_ao_a_cts_rts {
112 mux {
113 groups = "uart_cts_ao_a",
114 "uart_rts_ao_a";
115 function = "uart_ao";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100116 bias-disable;
Beniamino Galvanibfcef282016-05-08 08:30:16 +0200117 };
118 };
119
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200120 uart_ao_b_pins: uart_ao_b {
121 mux {
122 groups = "uart_tx_ao_b", "uart_rx_ao_b";
123 function = "uart_ao_b";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100124 bias-disable;
Beniamino Galvanidd838402016-08-16 11:49:48 +0200125 };
126 };
127
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200128 uart_ao_b_cts_rts_pins: uart_ao_b_cts_rts {
129 mux {
130 groups = "uart_cts_ao_b",
131 "uart_rts_ao_b";
132 function = "uart_ao_b";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100133 bias-disable;
Beniamino Galvanidd838402016-08-16 11:49:48 +0200134 };
135 };
136
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200137 remote_input_ao_pins: remote_input_ao {
138 mux {
139 groups = "remote_input_ao";
140 function = "remote_input_ao";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100141 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200142 };
Beniamino Galvanibfcef282016-05-08 08:30:16 +0200143 };
Beniamino Galvanidd838402016-08-16 11:49:48 +0200144
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200145 i2c_ao_pins: i2c_ao {
146 mux {
147 groups = "i2c_sck_ao",
148 "i2c_sda_ao";
149 function = "i2c_ao";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100150 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200151 };
152 };
153
154 pwm_ao_a_3_pins: pwm_ao_a_3 {
155 mux {
156 groups = "pwm_ao_a_3";
157 function = "pwm_ao_a_3";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100158 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200159 };
160 };
161
162 pwm_ao_a_6_pins: pwm_ao_a_6 {
163 mux {
164 groups = "pwm_ao_a_6";
165 function = "pwm_ao_a_6";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100166 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200167 };
168 };
169
170 pwm_ao_a_12_pins: pwm_ao_a_12 {
171 mux {
172 groups = "pwm_ao_a_12";
173 function = "pwm_ao_a_12";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100174 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200175 };
176 };
177
178 pwm_ao_b_pins: pwm_ao_b {
179 mux {
180 groups = "pwm_ao_b";
181 function = "pwm_ao_b";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100182 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200183 };
Beniamino Galvanidd838402016-08-16 11:49:48 +0200184 };
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200185
Beniamino Galvani4a63a752017-07-10 00:30:03 +0200186 i2s_am_clk_pins: i2s_am_clk {
187 mux {
188 groups = "i2s_am_clk";
189 function = "i2s_out_ao";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100190 bias-disable;
Beniamino Galvani4a63a752017-07-10 00:30:03 +0200191 };
192 };
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200193
Beniamino Galvani4a63a752017-07-10 00:30:03 +0200194 i2s_out_ao_clk_pins: i2s_out_ao_clk {
195 mux {
196 groups = "i2s_out_ao_clk";
197 function = "i2s_out_ao";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100198 bias-disable;
Beniamino Galvani4a63a752017-07-10 00:30:03 +0200199 };
200 };
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200201
Beniamino Galvani4a63a752017-07-10 00:30:03 +0200202 i2s_out_lr_clk_pins: i2s_out_lr_clk {
203 mux {
204 groups = "i2s_out_lr_clk";
205 function = "i2s_out_ao";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100206 bias-disable;
Beniamino Galvani4a63a752017-07-10 00:30:03 +0200207 };
208 };
209
210 i2s_out_ch01_ao_pins: i2s_out_ch01_ao {
211 mux {
212 groups = "i2s_out_ch01_ao";
213 function = "i2s_out_ao";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100214 bias-disable;
Beniamino Galvani4a63a752017-07-10 00:30:03 +0200215 };
216 };
217
218 i2s_out_ch23_ao_pins: i2s_out_ch23_ao {
219 mux {
220 groups = "i2s_out_ch23_ao";
221 function = "i2s_out_ao";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100222 bias-disable;
Beniamino Galvani4a63a752017-07-10 00:30:03 +0200223 };
224 };
225
226 i2s_out_ch45_ao_pins: i2s_out_ch45_ao {
227 mux {
228 groups = "i2s_out_ch45_ao";
229 function = "i2s_out_ao";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100230 bias-disable;
Beniamino Galvani4a63a752017-07-10 00:30:03 +0200231 };
232 };
233
234 spdif_out_ao_6_pins: spdif_out_ao_6 {
235 mux {
236 groups = "spdif_out_ao_6";
237 function = "spdif_out_ao";
238 };
239 };
240
241 spdif_out_ao_13_pins: spdif_out_ao_13 {
242 mux {
243 groups = "spdif_out_ao_13";
244 function = "spdif_out_ao";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100245 bias-disable;
Beniamino Galvani4a63a752017-07-10 00:30:03 +0200246 };
247 };
Neil Armstrong48622152017-10-12 15:50:30 +0200248
249 ao_cec_pins: ao_cec {
250 mux {
251 groups = "ao_cec";
252 function = "cec_ao";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100253 bias-disable;
Neil Armstrong48622152017-10-12 15:50:30 +0200254 };
255 };
256
257 ee_cec_pins: ee_cec {
258 mux {
259 groups = "ee_cec";
260 function = "cec_ao";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100261 bias-disable;
Neil Armstrong48622152017-10-12 15:50:30 +0200262 };
263 };
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200264 };
265};
266
Neil Armstrong48622152017-10-12 15:50:30 +0200267&apb {
268 mali: gpu@c0000 {
269 compatible = "amlogic,meson-gxbb-mali", "arm,mali-450";
270 reg = <0x0 0xc0000 0x0 0x40000>;
271 interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
272 <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
273 <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
274 <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
275 <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
276 <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
277 <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>,
278 <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
279 <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
280 <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
281 interrupt-names = "gp", "gpmmu", "pp", "pmu",
282 "pp0", "ppmmu0", "pp1", "ppmmu1",
283 "pp2", "ppmmu2";
284 clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>;
285 clock-names = "bus", "core";
286
287 /*
288 * Mali clocking is provided by two identical clock paths
289 * MALI_0 and MALI_1 muxed to a single clock by a glitch
290 * free mux to safely change frequency while running.
291 */
Neil Armstrong5b3da7f2018-06-05 10:10:44 +0200292 assigned-clocks = <&clkc CLKID_GP0_PLL>,
293 <&clkc CLKID_MALI_0_SEL>,
Neil Armstrong48622152017-10-12 15:50:30 +0200294 <&clkc CLKID_MALI_0>,
295 <&clkc CLKID_MALI>; /* Glitch free mux */
Neil Armstrong5b3da7f2018-06-05 10:10:44 +0200296 assigned-clock-parents = <0>, /* Do Nothing */
297 <&clkc CLKID_GP0_PLL>,
Neil Armstrong48622152017-10-12 15:50:30 +0200298 <0>, /* Do Nothing */
299 <&clkc CLKID_MALI_0>;
Neil Armstrong5b3da7f2018-06-05 10:10:44 +0200300 assigned-clock-rates = <744000000>,
301 <0>, /* Do Nothing */
302 <744000000>,
Neil Armstrong48622152017-10-12 15:50:30 +0200303 <0>; /* Do Nothing */
304 };
305};
306
307&cbus {
308 spifc: spi@8c80 {
309 compatible = "amlogic,meson-gxbb-spifc";
310 reg = <0x0 0x08c80 0x0 0x80>;
311 #address-cells = <1>;
312 #size-cells = <0>;
313 clocks = <&clkc CLKID_SPI>;
314 status = "disabled";
315 };
316};
317
Neil Armstrong7d750c32018-04-11 17:40:40 +0200318&cec_AO {
319 clocks = <&clkc_AO CLKID_AO_CEC_32K>;
320 clock-names = "core";
321};
322
323&clkc_AO {
324 compatible = "amlogic,meson-gxbb-aoclkc", "amlogic,meson-gx-aoclkc";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100325 clocks = <&xtal>, <&clkc CLKID_CLK81>;
326 clock-names = "xtal", "mpeg-clk";
327};
328
329&efuse {
330 clocks = <&clkc CLKID_EFUSE>;
Neil Armstrong7d750c32018-04-11 17:40:40 +0200331};
332
Neil Armstrong48622152017-10-12 15:50:30 +0200333&ethmac {
334 clocks = <&clkc CLKID_ETH>,
335 <&clkc CLKID_FCLK_DIV2>,
336 <&clkc CLKID_MPLL2>;
337 clock-names = "stmmaceth", "clkin0", "clkin1";
338};
339
Neil Armstrong7d750c32018-04-11 17:40:40 +0200340&gpio_intc {
341 compatible = "amlogic,meson-gpio-intc",
342 "amlogic,meson-gxbb-gpio-intc";
343 status = "okay";
344};
345
Neil Armstrong48622152017-10-12 15:50:30 +0200346&hdmi_tx {
347 compatible = "amlogic,meson-gxbb-dw-hdmi", "amlogic,meson-gx-dw-hdmi";
348 resets = <&reset RESET_HDMITX_CAPB3>,
349 <&reset RESET_HDMI_SYSTEM_RESET>,
350 <&reset RESET_HDMI_TX>;
351 reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
352 clocks = <&clkc CLKID_HDMI_PCLK>,
353 <&clkc CLKID_CLK81>,
354 <&clkc CLKID_GCLK_VENCI_INT0>;
355 clock-names = "isfr", "iahb", "venci";
356};
357
Loic Devulder8973d812018-11-27 17:41:18 +0100358&sysctrl {
359 clkc: clock-controller {
Neil Armstrong48622152017-10-12 15:50:30 +0200360 compatible = "amlogic,gxbb-clkc";
361 #clock-cells = <1>;
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100362 clocks = <&xtal>;
363 clock-names = "xtal";
Neil Armstrong48622152017-10-12 15:50:30 +0200364 };
365};
366
367&hwrng {
368 clocks = <&clkc CLKID_RNG0>;
369 clock-names = "core";
370};
371
372&i2c_A {
373 clocks = <&clkc CLKID_I2C>;
374};
375
376&i2c_AO {
377 clocks = <&clkc CLKID_AO_I2C>;
378};
379
380&i2c_B {
381 clocks = <&clkc CLKID_I2C>;
382};
383
384&i2c_C {
385 clocks = <&clkc CLKID_I2C>;
386};
387
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200388&periphs {
389 pinctrl_periphs: pinctrl@4b0 {
390 compatible = "amlogic,meson-gxbb-periphs-pinctrl";
391 #address-cells = <2>;
392 #size-cells = <2>;
393 ranges;
394
395 gpio: bank@4b0 {
396 reg = <0x0 0x004b0 0x0 0x28>,
397 <0x0 0x004e8 0x0 0x14>,
Neil Armstrong48622152017-10-12 15:50:30 +0200398 <0x0 0x00520 0x0 0x14>,
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200399 <0x0 0x00430 0x0 0x40>;
400 reg-names = "mux", "pull", "pull-enable", "gpio";
401 gpio-controller;
402 #gpio-cells = <2>;
Neil Armstrong7d750c32018-04-11 17:40:40 +0200403 gpio-ranges = <&pinctrl_periphs 0 0 119>;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200404 };
405
406 emmc_pins: emmc {
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100407 mux-0 {
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200408 groups = "emmc_nand_d07",
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100409 "emmc_cmd";
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200410 function = "emmc";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100411 bias-pull-up;
412 };
413
414 mux-1 {
415 groups = "emmc_clk";
416 function = "emmc";
417 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200418 };
419 };
420
Neil Armstrong7d750c32018-04-11 17:40:40 +0200421 emmc_ds_pins: emmc-ds {
422 mux {
423 groups = "emmc_ds";
424 function = "emmc";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100425 bias-pull-down;
Neil Armstrong7d750c32018-04-11 17:40:40 +0200426 };
427 };
428
429 emmc_clk_gate_pins: emmc_clk_gate {
430 mux {
431 groups = "BOOT_8";
432 function = "gpio_periphs";
Neil Armstrong7d750c32018-04-11 17:40:40 +0200433 bias-pull-down;
434 };
435 };
436
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200437 nor_pins: nor {
438 mux {
439 groups = "nor_d",
440 "nor_q",
441 "nor_c",
442 "nor_cs";
443 function = "nor";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100444 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200445 };
446 };
447
Loic Devulder8973d812018-11-27 17:41:18 +0100448 spi_pins: spi-pins {
Neil Armstrong48622152017-10-12 15:50:30 +0200449 mux {
450 groups = "spi_miso",
451 "spi_mosi",
452 "spi_sclk";
453 function = "spi";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100454 bias-disable;
Neil Armstrong48622152017-10-12 15:50:30 +0200455 };
456 };
457
458 spi_ss0_pins: spi-ss0 {
459 mux {
460 groups = "spi_ss0";
461 function = "spi";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100462 bias-disable;
Neil Armstrong48622152017-10-12 15:50:30 +0200463 };
464 };
465
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200466 sdcard_pins: sdcard {
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100467 mux-0 {
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200468 groups = "sdcard_d0",
469 "sdcard_d1",
470 "sdcard_d2",
471 "sdcard_d3",
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100472 "sdcard_cmd";
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200473 function = "sdcard";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100474 bias-pull-up;
475 };
476
477 mux-1 {
478 groups = "sdcard_clk";
479 function = "sdcard";
480 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200481 };
482 };
483
Neil Armstrong7d750c32018-04-11 17:40:40 +0200484 sdcard_clk_gate_pins: sdcard_clk_gate {
485 mux {
486 groups = "CARD_2";
487 function = "gpio_periphs";
Neil Armstrong7d750c32018-04-11 17:40:40 +0200488 bias-pull-down;
489 };
490 };
491
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200492 sdio_pins: sdio {
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100493 mux-0 {
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200494 groups = "sdio_d0",
495 "sdio_d1",
496 "sdio_d2",
497 "sdio_d3",
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100498 "sdio_cmd";
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200499 function = "sdio";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100500 bias-pull-up;
501 };
502
503 mux-1 {
504 groups = "sdio_clk";
505 function = "sdio";
506 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200507 };
508 };
509
Neil Armstrong7d750c32018-04-11 17:40:40 +0200510 sdio_clk_gate_pins: sdio_clk_gate {
511 mux {
512 groups = "GPIOX_4";
513 function = "gpio_periphs";
Neil Armstrong7d750c32018-04-11 17:40:40 +0200514 bias-pull-down;
515 };
516 };
517
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200518 sdio_irq_pins: sdio_irq {
519 mux {
520 groups = "sdio_irq";
521 function = "sdio";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100522 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200523 };
524 };
525
526 uart_a_pins: uart_a {
527 mux {
528 groups = "uart_tx_a",
529 "uart_rx_a";
530 function = "uart_a";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100531 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200532 };
533 };
534
535 uart_a_cts_rts_pins: uart_a_cts_rts {
536 mux {
537 groups = "uart_cts_a",
538 "uart_rts_a";
539 function = "uart_a";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100540 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200541 };
542 };
543
544 uart_b_pins: uart_b {
545 mux {
546 groups = "uart_tx_b",
547 "uart_rx_b";
548 function = "uart_b";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100549 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200550 };
551 };
552
553 uart_b_cts_rts_pins: uart_b_cts_rts {
554 mux {
555 groups = "uart_cts_b",
556 "uart_rts_b";
557 function = "uart_b";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100558 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200559 };
560 };
561
562 uart_c_pins: uart_c {
563 mux {
564 groups = "uart_tx_c",
565 "uart_rx_c";
566 function = "uart_c";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100567 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200568 };
569 };
570
571 uart_c_cts_rts_pins: uart_c_cts_rts {
572 mux {
573 groups = "uart_cts_c",
574 "uart_rts_c";
575 function = "uart_c";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100576 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200577 };
578 };
579
580 i2c_a_pins: i2c_a {
581 mux {
582 groups = "i2c_sck_a",
583 "i2c_sda_a";
584 function = "i2c_a";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100585 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200586 };
587 };
588
589 i2c_b_pins: i2c_b {
590 mux {
591 groups = "i2c_sck_b",
592 "i2c_sda_b";
593 function = "i2c_b";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100594 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200595 };
596 };
597
598 i2c_c_pins: i2c_c {
599 mux {
600 groups = "i2c_sck_c",
601 "i2c_sda_c";
602 function = "i2c_c";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100603 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200604 };
605 };
606
607 eth_rgmii_pins: eth-rgmii {
608 mux {
609 groups = "eth_mdio",
610 "eth_mdc",
611 "eth_clk_rx_clk",
612 "eth_rx_dv",
613 "eth_rxd0",
614 "eth_rxd1",
615 "eth_rxd2",
616 "eth_rxd3",
617 "eth_rgmii_tx_clk",
618 "eth_tx_en",
619 "eth_txd0",
620 "eth_txd1",
621 "eth_txd2",
622 "eth_txd3";
623 function = "eth";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100624 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200625 };
626 };
627
628 eth_rmii_pins: eth-rmii {
629 mux {
630 groups = "eth_mdio",
631 "eth_mdc",
632 "eth_clk_rx_clk",
633 "eth_rx_dv",
634 "eth_rxd0",
635 "eth_rxd1",
636 "eth_tx_en",
637 "eth_txd0",
638 "eth_txd1";
639 function = "eth";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100640 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200641 };
642 };
643
644 pwm_a_x_pins: pwm_a_x {
645 mux {
646 groups = "pwm_a_x";
647 function = "pwm_a_x";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100648 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200649 };
650 };
651
652 pwm_a_y_pins: pwm_a_y {
653 mux {
654 groups = "pwm_a_y";
655 function = "pwm_a_y";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100656 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200657 };
658 };
659
660 pwm_b_pins: pwm_b {
661 mux {
662 groups = "pwm_b";
663 function = "pwm_b";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100664 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200665 };
666 };
667
668 pwm_d_pins: pwm_d {
669 mux {
670 groups = "pwm_d";
671 function = "pwm_d";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100672 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200673 };
674 };
675
676 pwm_e_pins: pwm_e {
677 mux {
678 groups = "pwm_e";
679 function = "pwm_e";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100680 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200681 };
682 };
683
684 pwm_f_x_pins: pwm_f_x {
685 mux {
686 groups = "pwm_f_x";
687 function = "pwm_f_x";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100688 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200689 };
690 };
691
692 pwm_f_y_pins: pwm_f_y {
693 mux {
694 groups = "pwm_f_y";
695 function = "pwm_f_y";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100696 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200697 };
698 };
699
700 hdmi_hpd_pins: hdmi_hpd {
701 mux {
702 groups = "hdmi_hpd";
703 function = "hdmi_hpd";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100704 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200705 };
706 };
707
708 hdmi_i2c_pins: hdmi_i2c {
709 mux {
710 groups = "hdmi_sda", "hdmi_scl";
711 function = "hdmi_i2c";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100712 bias-disable;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200713 };
714 };
Beniamino Galvani4a63a752017-07-10 00:30:03 +0200715
716 i2sout_ch23_y_pins: i2sout_ch23_y {
717 mux {
718 groups = "i2sout_ch23_y";
719 function = "i2s_out";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100720 bias-disable;
Beniamino Galvani4a63a752017-07-10 00:30:03 +0200721 };
722 };
723
724 i2sout_ch45_y_pins: i2sout_ch45_y {
725 mux {
726 groups = "i2sout_ch45_y";
727 function = "i2s_out";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100728 bias-disable;
Beniamino Galvani4a63a752017-07-10 00:30:03 +0200729 };
730 };
731
732 i2sout_ch67_y_pins: i2sout_ch67_y {
733 mux {
734 groups = "i2sout_ch67_y";
735 function = "i2s_out";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100736 bias-disable;
Beniamino Galvani4a63a752017-07-10 00:30:03 +0200737 };
738 };
739
740 spdif_out_y_pins: spdif_out_y {
741 mux {
742 groups = "spdif_out_y";
743 function = "spdif_out";
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100744 bias-disable;
Beniamino Galvani4a63a752017-07-10 00:30:03 +0200745 };
746 };
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200747 };
748};
749
Neil Armstrong7d750c32018-04-11 17:40:40 +0200750&pwrc_vpu {
751 resets = <&reset RESET_VIU>,
752 <&reset RESET_VENC>,
753 <&reset RESET_VCBUS>,
754 <&reset RESET_BT656>,
755 <&reset RESET_DVIN_RESET>,
756 <&reset RESET_RDMA>,
757 <&reset RESET_VENCI>,
758 <&reset RESET_VENCP>,
759 <&reset RESET_VDAC>,
760 <&reset RESET_VDI6>,
761 <&reset RESET_VENCL>,
762 <&reset RESET_VID_LOCK>;
763 clocks = <&clkc CLKID_VPU>,
764 <&clkc CLKID_VAPB>;
765 clock-names = "vpu", "vapb";
766 /*
767 * VPU clocking is provided by two identical clock paths
768 * VPU_0 and VPU_1 muxed to a single clock by a glitch
769 * free mux to safely change frequency while running.
770 * Same for VAPB but with a final gate after the glitch free mux.
771 */
772 assigned-clocks = <&clkc CLKID_VPU_0_SEL>,
773 <&clkc CLKID_VPU_0>,
774 <&clkc CLKID_VPU>, /* Glitch free mux */
775 <&clkc CLKID_VAPB_0_SEL>,
776 <&clkc CLKID_VAPB_0>,
777 <&clkc CLKID_VAPB_SEL>; /* Glitch free mux */
778 assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
779 <0>, /* Do Nothing */
780 <&clkc CLKID_VPU_0>,
781 <&clkc CLKID_FCLK_DIV4>,
782 <0>, /* Do Nothing */
783 <&clkc CLKID_VAPB_0>;
784 assigned-clock-rates = <0>, /* Do Nothing */
785 <666666666>,
786 <0>, /* Do Nothing */
787 <0>, /* Do Nothing */
788 <250000000>,
789 <0>; /* Do Nothing */
790};
791
Beniamino Galvani4a63a752017-07-10 00:30:03 +0200792&saradc {
793 compatible = "amlogic,meson-gxbb-saradc", "amlogic,meson-saradc";
794 clocks = <&xtal>,
795 <&clkc CLKID_SAR_ADC>,
Beniamino Galvani4a63a752017-07-10 00:30:03 +0200796 <&clkc CLKID_SAR_ADC_CLK>,
797 <&clkc CLKID_SAR_ADC_SEL>;
Neil Armstrong7d750c32018-04-11 17:40:40 +0200798 clock-names = "clkin", "core", "adc_clk", "adc_sel";
Beniamino Galvani4a63a752017-07-10 00:30:03 +0200799};
800
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200801&sd_emmc_a {
802 clocks = <&clkc CLKID_SD_EMMC_A>,
Neil Armstrong7d750c32018-04-11 17:40:40 +0200803 <&clkc CLKID_SD_EMMC_A_CLK0>,
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200804 <&clkc CLKID_FCLK_DIV2>;
805 clock-names = "core", "clkin0", "clkin1";
Loic Devulder8973d812018-11-27 17:41:18 +0100806 resets = <&reset RESET_SD_EMMC_A>;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200807};
808
809&sd_emmc_b {
810 clocks = <&clkc CLKID_SD_EMMC_B>,
Neil Armstrong7d750c32018-04-11 17:40:40 +0200811 <&clkc CLKID_SD_EMMC_B_CLK0>,
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200812 <&clkc CLKID_FCLK_DIV2>;
813 clock-names = "core", "clkin0", "clkin1";
Loic Devulder8973d812018-11-27 17:41:18 +0100814 resets = <&reset RESET_SD_EMMC_B>;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200815};
816
817&sd_emmc_c {
818 clocks = <&clkc CLKID_SD_EMMC_C>,
Neil Armstrong7d750c32018-04-11 17:40:40 +0200819 <&clkc CLKID_SD_EMMC_C_CLK0>,
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200820 <&clkc CLKID_FCLK_DIV2>;
821 clock-names = "core", "clkin0", "clkin1";
Loic Devulder8973d812018-11-27 17:41:18 +0100822 resets = <&reset RESET_SD_EMMC_C>;
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200823};
824
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100825&simplefb_hdmi {
826 clocks = <&clkc CLKID_HDMI_PCLK>,
827 <&clkc CLKID_CLK81>,
828 <&clkc CLKID_GCLK_VENCI_INT0>;
829};
830
Neil Armstrong48622152017-10-12 15:50:30 +0200831&spicc {
832 clocks = <&clkc CLKID_SPICC>;
833 clock-names = "core";
834 resets = <&reset RESET_PERIPHS_SPICC>;
835 num-cs = <1>;
836};
837
Beniamino Galvani4a63a752017-07-10 00:30:03 +0200838&spifc {
839 clocks = <&clkc CLKID_SPI>;
840};
841
Neil Armstrong7d750c32018-04-11 17:40:40 +0200842&uart_A {
843 clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
844 clock-names = "xtal", "pclk", "baud";
845};
846
847&uart_AO {
Loic Devulder8973d812018-11-27 17:41:18 +0100848 clocks = <&xtal>, <&clkc_AO CLKID_AO_UART1>, <&xtal>;
Neil Armstrong7d750c32018-04-11 17:40:40 +0200849 clock-names = "xtal", "pclk", "baud";
850};
851
852&uart_AO_B {
Loic Devulder8973d812018-11-27 17:41:18 +0100853 clocks = <&xtal>, <&clkc_AO CLKID_AO_UART2>, <&xtal>;
Neil Armstrong7d750c32018-04-11 17:40:40 +0200854 clock-names = "xtal", "pclk", "baud";
855};
856
857&uart_B {
858 clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
859 clock-names = "xtal", "pclk", "baud";
860};
861
862&uart_C {
863 clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>;
864 clock-names = "xtal", "pclk", "baud";
865};
866
Heiner Kallweita3b02a12017-04-12 20:28:36 +0200867&vpu {
868 compatible = "amlogic,meson-gxbb-vpu", "amlogic,meson-gx-vpu";
Neil Armstrong7d750c32018-04-11 17:40:40 +0200869 power-domains = <&pwrc_vpu>;
Beniamino Galvanibfcef282016-05-08 08:30:16 +0200870};
Jerome Brunetdd5f2352020-03-05 12:12:38 +0100871
872&vdec {
873 compatible = "amlogic,gxbb-vdec", "amlogic,gx-vdec";
874 clocks = <&clkc CLKID_DOS_PARSER>,
875 <&clkc CLKID_DOS>,
876 <&clkc CLKID_VDEC_1>,
877 <&clkc CLKID_VDEC_HEVC>;
878 clock-names = "dos_parser", "dos", "vdec_1", "vdec_hevc";
879 resets = <&reset RESET_PARSER>;
880 reset-names = "esparser";
881};