1*114abfe1SNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
215abee8aSCarlo Caione/*
315abee8aSCarlo Caione * Copyright (c) 2016 Endless Computers, Inc.
415abee8aSCarlo Caione * Author: Carlo Caione <carlo@endlessm.com>
515abee8aSCarlo Caione */
615abee8aSCarlo Caione
715abee8aSCarlo Caione#include "meson-gx.dtsi"
8973fbd55SNeil Armstrong#include <dt-bindings/clock/gxbb-clkc.h>
9b16c71c9SNeil Armstrong#include <dt-bindings/clock/gxbb-aoclkc.h>
101cf3df8aSKevin Hilman#include <dt-bindings/gpio/meson-gxl-gpio.h>
116939db7eSNeil Armstrong#include <dt-bindings/reset/amlogic,meson-gxbb-reset.h>
1215abee8aSCarlo Caione
1315abee8aSCarlo Caione/ {
1415abee8aSCarlo Caione	compatible = "amlogic,meson-gxl";
154ee8e51bSNeil Armstrong
164ee8e51bSNeil Armstrong	reserved-memory {
174ee8e51bSNeil Armstrong		/* Alternate 3 MiB reserved for ARM Trusted Firmware (BL31) */
18a5494aedSArnd Bergmann		secmon_reserved_alt: secmon@5000000 {
194ee8e51bSNeil Armstrong			reg = <0x0 0x05000000 0x0 0x300000>;
204ee8e51bSNeil Armstrong			no-map;
214ee8e51bSNeil Armstrong		};
224ee8e51bSNeil Armstrong	};
2315abee8aSCarlo Caione};
24fb0fe922SNeil Armstrong
25e9e27c64SNeil Armstrong&ethmac {
26e9e27c64SNeil Armstrong	reg = <0x0 0xc9410000 0x0 0x10000
27e9e27c64SNeil Armstrong	       0x0 0xc8834540 0x0 0x4>;
28e9e27c64SNeil Armstrong
29e9e27c64SNeil Armstrong	clocks = <&clkc CLKID_ETH>,
30e9e27c64SNeil Armstrong		 <&clkc CLKID_FCLK_DIV2>,
31e9e27c64SNeil Armstrong		 <&clkc CLKID_MPLL2>;
32e9e27c64SNeil Armstrong	clock-names = "stmmaceth", "clkin0", "clkin1";
33e9e27c64SNeil Armstrong
34e9e27c64SNeil Armstrong	mdio0: mdio {
35e9e27c64SNeil Armstrong		#address-cells = <1>;
36e9e27c64SNeil Armstrong		#size-cells = <0>;
37e9e27c64SNeil Armstrong		compatible = "snps,dwmac-mdio";
38e9e27c64SNeil Armstrong	};
39e9e27c64SNeil Armstrong};
40e9e27c64SNeil Armstrong
41fb0fe922SNeil Armstrong&aobus {
42fb0fe922SNeil Armstrong	pinctrl_aobus: pinctrl@14 {
43fb0fe922SNeil Armstrong		compatible = "amlogic,meson-gxl-aobus-pinctrl";
44fb0fe922SNeil Armstrong		#address-cells = <2>;
45fb0fe922SNeil Armstrong		#size-cells = <2>;
46fb0fe922SNeil Armstrong		ranges;
47fb0fe922SNeil Armstrong
48fb0fe922SNeil Armstrong		gpio_ao: bank@14 {
49fb0fe922SNeil Armstrong			reg = <0x0 0x00014 0x0 0x8>,
50fb0fe922SNeil Armstrong			      <0x0 0x0002c 0x0 0x4>,
51fb0fe922SNeil Armstrong			      <0x0 0x00024 0x0 0x8>;
52fb0fe922SNeil Armstrong			reg-names = "mux", "pull", "gpio";
53fb0fe922SNeil Armstrong			gpio-controller;
54fb0fe922SNeil Armstrong			#gpio-cells = <2>;
5584412e4eSNeil Armstrong			gpio-ranges = <&pinctrl_aobus 0 0 14>;
56fb0fe922SNeil Armstrong		};
57fb0fe922SNeil Armstrong
58fb0fe922SNeil Armstrong		uart_ao_a_pins: uart_ao_a {
59fb0fe922SNeil Armstrong			mux {
60fb0fe922SNeil Armstrong				groups = "uart_tx_ao_a", "uart_rx_ao_a";
61fb0fe922SNeil Armstrong				function = "uart_ao";
62fb0fe922SNeil Armstrong			};
63fb0fe922SNeil Armstrong		};
64fb0fe922SNeil Armstrong
65261e1d5cSMartin Blumenstingl		uart_ao_a_cts_rts_pins: uart_ao_a_cts_rts {
66261e1d5cSMartin Blumenstingl			mux {
67261e1d5cSMartin Blumenstingl				groups = "uart_cts_ao_a",
68261e1d5cSMartin Blumenstingl				       "uart_rts_ao_a";
69261e1d5cSMartin Blumenstingl				function = "uart_ao";
70261e1d5cSMartin Blumenstingl			};
71261e1d5cSMartin Blumenstingl		};
72261e1d5cSMartin Blumenstingl
73890a96a2SMartin Blumenstingl		uart_ao_b_pins: uart_ao_b {
74890a96a2SMartin Blumenstingl			mux {
75890a96a2SMartin Blumenstingl				groups = "uart_tx_ao_b", "uart_rx_ao_b";
76890a96a2SMartin Blumenstingl				function = "uart_ao_b";
77890a96a2SMartin Blumenstingl			};
78890a96a2SMartin Blumenstingl		};
79890a96a2SMartin Blumenstingl
80ca02e3f9SNeil Armstrong		uart_ao_b_0_1_pins: uart_ao_b_0_1 {
81ca02e3f9SNeil Armstrong			mux {
82ca02e3f9SNeil Armstrong				groups = "uart_tx_ao_b_0", "uart_rx_ao_b_1";
83ca02e3f9SNeil Armstrong				function = "uart_ao_b";
84ca02e3f9SNeil Armstrong			};
85ca02e3f9SNeil Armstrong		};
86ca02e3f9SNeil Armstrong
87261e1d5cSMartin Blumenstingl		uart_ao_b_cts_rts_pins: uart_ao_b_cts_rts {
88261e1d5cSMartin Blumenstingl			mux {
89261e1d5cSMartin Blumenstingl				groups = "uart_cts_ao_b",
90261e1d5cSMartin Blumenstingl				       "uart_rts_ao_b";
91261e1d5cSMartin Blumenstingl				function = "uart_ao_b";
92261e1d5cSMartin Blumenstingl			};
93261e1d5cSMartin Blumenstingl		};
94261e1d5cSMartin Blumenstingl
95fb0fe922SNeil Armstrong		remote_input_ao_pins: remote_input_ao {
96fb0fe922SNeil Armstrong			mux {
97fb0fe922SNeil Armstrong				groups = "remote_input_ao";
98fb0fe922SNeil Armstrong				function = "remote_input_ao";
99fb0fe922SNeil Armstrong			};
100fb0fe922SNeil Armstrong		};
101249a2243SMartin Blumenstingl
102ca02e3f9SNeil Armstrong		i2c_ao_pins: i2c_ao {
103ca02e3f9SNeil Armstrong			mux {
104ca02e3f9SNeil Armstrong				groups = "i2c_sck_ao",
105ca02e3f9SNeil Armstrong				       "i2c_sda_ao";
106ca02e3f9SNeil Armstrong				function = "i2c_ao";
107ca02e3f9SNeil Armstrong			};
108ca02e3f9SNeil Armstrong		};
109ca02e3f9SNeil Armstrong
110e98fd134SMartin Blumenstingl		pwm_ao_a_3_pins: pwm_ao_a_3 {
111e98fd134SMartin Blumenstingl			mux {
112e98fd134SMartin Blumenstingl				groups = "pwm_ao_a_3";
113e98fd134SMartin Blumenstingl				function = "pwm_ao_a";
114e98fd134SMartin Blumenstingl			};
115e98fd134SMartin Blumenstingl		};
116e98fd134SMartin Blumenstingl
117e98fd134SMartin Blumenstingl		pwm_ao_a_8_pins: pwm_ao_a_8 {
118e98fd134SMartin Blumenstingl			mux {
119e98fd134SMartin Blumenstingl				groups = "pwm_ao_a_8";
120e98fd134SMartin Blumenstingl				function = "pwm_ao_a";
121e98fd134SMartin Blumenstingl			};
122e98fd134SMartin Blumenstingl		};
123e98fd134SMartin Blumenstingl
124249a2243SMartin Blumenstingl		pwm_ao_b_pins: pwm_ao_b {
125249a2243SMartin Blumenstingl			mux {
126249a2243SMartin Blumenstingl				groups = "pwm_ao_b";
127249a2243SMartin Blumenstingl				function = "pwm_ao_b";
128249a2243SMartin Blumenstingl			};
129249a2243SMartin Blumenstingl		};
130ca02e3f9SNeil Armstrong
131ca02e3f9SNeil Armstrong		pwm_ao_b_6_pins: pwm_ao_b_6 {
132ca02e3f9SNeil Armstrong			mux {
133ca02e3f9SNeil Armstrong				groups = "pwm_ao_b_6";
134ca02e3f9SNeil Armstrong				function = "pwm_ao_b";
135ca02e3f9SNeil Armstrong			};
136ca02e3f9SNeil Armstrong		};
137c16fe9a1Sjbrunet
138c16fe9a1Sjbrunet		i2s_out_ch23_ao_pins: i2s_out_ch23_ao {
139c16fe9a1Sjbrunet			mux {
140c16fe9a1Sjbrunet				groups = "i2s_out_ch23_ao";
141c16fe9a1Sjbrunet				function = "i2s_out_ao";
142c16fe9a1Sjbrunet			};
143c16fe9a1Sjbrunet		};
144c16fe9a1Sjbrunet
145c16fe9a1Sjbrunet		i2s_out_ch45_ao_pins: i2s_out_ch45_ao {
146c16fe9a1Sjbrunet			mux {
147c16fe9a1Sjbrunet				groups = "i2s_out_ch45_ao";
148c16fe9a1Sjbrunet				function = "i2s_out_ao";
149c16fe9a1Sjbrunet			};
150c16fe9a1Sjbrunet		};
1519503062dSjbrunet
1529503062dSjbrunet		spdif_out_ao_6_pins: spdif_out_ao_6 {
1539503062dSjbrunet			mux {
1549503062dSjbrunet				groups = "spdif_out_ao_6";
1559503062dSjbrunet				function = "spdif_out_ao";
1569503062dSjbrunet			};
1579503062dSjbrunet		};
1589503062dSjbrunet
1599503062dSjbrunet		spdif_out_ao_9_pins: spdif_out_ao_9 {
1609503062dSjbrunet			mux {
1619503062dSjbrunet				groups = "spdif_out_ao_9";
1629503062dSjbrunet				function = "spdif_out_ao";
1639503062dSjbrunet			};
1649503062dSjbrunet		};
1656d717619SNeil Armstrong
1666d717619SNeil Armstrong		ao_cec_pins: ao_cec {
1676d717619SNeil Armstrong			mux {
1686d717619SNeil Armstrong				groups = "ao_cec";
1696d717619SNeil Armstrong				function = "cec_ao";
1706d717619SNeil Armstrong			};
1716d717619SNeil Armstrong		};
1726d717619SNeil Armstrong
1736d717619SNeil Armstrong		ee_cec_pins: ee_cec {
1746d717619SNeil Armstrong			mux {
1756d717619SNeil Armstrong				groups = "ee_cec";
1766d717619SNeil Armstrong				function = "cec_ao";
1776d717619SNeil Armstrong			};
1786d717619SNeil Armstrong		};
179fb0fe922SNeil Armstrong	};
180fb0fe922SNeil Armstrong};
181fb0fe922SNeil Armstrong
182b16c71c9SNeil Armstrong&cec_AO {
183b16c71c9SNeil Armstrong	clocks = <&clkc_AO CLKID_AO_CEC_32K>;
184b16c71c9SNeil Armstrong	clock-names = "core";
185b16c71c9SNeil Armstrong};
186b16c71c9SNeil Armstrong
1877fd2c355SNeil Armstrong&clkc_AO {
1887fd2c355SNeil Armstrong	compatible = "amlogic,meson-gxl-aoclkc", "amlogic,meson-gx-aoclkc";
1897fd2c355SNeil Armstrong};
1907fd2c355SNeil Armstrong
1919dbb56eaSJerome Brunet&gpio_intc {
1929dbb56eaSJerome Brunet	compatible = "amlogic,meson-gpio-intc",
1939dbb56eaSJerome Brunet		     "amlogic,meson-gxl-gpio-intc";
1949dbb56eaSJerome Brunet	status = "okay";
1959dbb56eaSJerome Brunet};
1969dbb56eaSJerome Brunet
1976a573c4eSAndreas Färber&hdmi_tx {
1986a573c4eSAndreas Färber	compatible = "amlogic,meson-gxl-dw-hdmi", "amlogic,meson-gx-dw-hdmi";
1996a573c4eSAndreas Färber	resets = <&reset RESET_HDMITX_CAPB3>,
2006a573c4eSAndreas Färber		 <&reset RESET_HDMI_SYSTEM_RESET>,
2016a573c4eSAndreas Färber		 <&reset RESET_HDMI_TX>;
2026a573c4eSAndreas Färber	reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
2036a573c4eSAndreas Färber	clocks = <&clkc CLKID_HDMI_PCLK>,
2046a573c4eSAndreas Färber		 <&clkc CLKID_CLK81>,
2056a573c4eSAndreas Färber		 <&clkc CLKID_GCLK_VENCI_INT0>;
2066a573c4eSAndreas Färber	clock-names = "isfr", "iahb", "venci";
2076a573c4eSAndreas Färber};
2086a573c4eSAndreas Färber
2096a573c4eSAndreas Färber&hiubus {
2106a573c4eSAndreas Färber	clkc: clock-controller@0 {
2116a573c4eSAndreas Färber		compatible = "amlogic,gxl-clkc", "amlogic,gxbb-clkc";
2126a573c4eSAndreas Färber		#clock-cells = <1>;
2136a573c4eSAndreas Färber		reg = <0x0 0x0 0x0 0x3db>;
2146a573c4eSAndreas Färber	};
2156a573c4eSAndreas Färber};
2166a573c4eSAndreas Färber
2176a573c4eSAndreas Färber&i2c_A {
2186a573c4eSAndreas Färber	clocks = <&clkc CLKID_I2C>;
2196a573c4eSAndreas Färber};
2206a573c4eSAndreas Färber
2216a573c4eSAndreas Färber&i2c_AO {
2226a573c4eSAndreas Färber	clocks = <&clkc CLKID_AO_I2C>;
2236a573c4eSAndreas Färber};
2246a573c4eSAndreas Färber
2256a573c4eSAndreas Färber&i2c_B {
2266a573c4eSAndreas Färber	clocks = <&clkc CLKID_I2C>;
2276a573c4eSAndreas Färber};
2286a573c4eSAndreas Färber
2296a573c4eSAndreas Färber&i2c_C {
2306a573c4eSAndreas Färber	clocks = <&clkc CLKID_I2C>;
2316a573c4eSAndreas Färber};
2326a573c4eSAndreas Färber
233fb0fe922SNeil Armstrong&periphs {
234fb0fe922SNeil Armstrong	pinctrl_periphs: pinctrl@4b0 {
235fb0fe922SNeil Armstrong		compatible = "amlogic,meson-gxl-periphs-pinctrl";
236fb0fe922SNeil Armstrong		#address-cells = <2>;
237fb0fe922SNeil Armstrong		#size-cells = <2>;
238fb0fe922SNeil Armstrong		ranges;
239fb0fe922SNeil Armstrong
240fb0fe922SNeil Armstrong		gpio: bank@4b0 {
241fb0fe922SNeil Armstrong			reg = <0x0 0x004b0 0x0 0x28>,
242fb0fe922SNeil Armstrong			      <0x0 0x004e8 0x0 0x14>,
243f4c406d5SNeil Armstrong			      <0x0 0x00520 0x0 0x14>,
244fb0fe922SNeil Armstrong			      <0x0 0x00430 0x0 0x40>;
245fb0fe922SNeil Armstrong			reg-names = "mux", "pull", "pull-enable", "gpio";
246fb0fe922SNeil Armstrong			gpio-controller;
247fb0fe922SNeil Armstrong			#gpio-cells = <2>;
2487dbe78e5SJerome Brunet			gpio-ranges = <&pinctrl_periphs 0 0 100>;
249fb0fe922SNeil Armstrong		};
250fb0fe922SNeil Armstrong
251fb0fe922SNeil Armstrong		emmc_pins: emmc {
252fb0fe922SNeil Armstrong			mux {
253fb0fe922SNeil Armstrong				groups = "emmc_nand_d07",
254fb0fe922SNeil Armstrong				       "emmc_cmd",
255ab36be66SNeil Armstrong				       "emmc_clk";
256ab36be66SNeil Armstrong				function = "emmc";
257ab36be66SNeil Armstrong			};
258ab36be66SNeil Armstrong		};
259ab36be66SNeil Armstrong
260ab36be66SNeil Armstrong		emmc_ds_pins: emmc-ds {
261ab36be66SNeil Armstrong			mux {
262ab36be66SNeil Armstrong				groups = "emmc_ds";
263fb0fe922SNeil Armstrong				function = "emmc";
264fb0fe922SNeil Armstrong			};
265fb0fe922SNeil Armstrong		};
266fb0fe922SNeil Armstrong
26767e7607fSJerome Brunet		emmc_clk_gate_pins: emmc_clk_gate {
26867e7607fSJerome Brunet			mux {
26967e7607fSJerome Brunet				groups = "BOOT_8";
27067e7607fSJerome Brunet				function = "gpio_periphs";
27167e7607fSJerome Brunet			};
27267e7607fSJerome Brunet			cfg-pull-down {
27367e7607fSJerome Brunet				pins = "BOOT_8";
27467e7607fSJerome Brunet				bias-pull-down;
27567e7607fSJerome Brunet			};
27667e7607fSJerome Brunet		};
27767e7607fSJerome Brunet
278ca02e3f9SNeil Armstrong		nor_pins: nor {
279ca02e3f9SNeil Armstrong			mux {
280ca02e3f9SNeil Armstrong				groups = "nor_d",
281ca02e3f9SNeil Armstrong				       "nor_q",
282ca02e3f9SNeil Armstrong				       "nor_c",
283ca02e3f9SNeil Armstrong				       "nor_cs";
284ca02e3f9SNeil Armstrong				function = "nor";
285ca02e3f9SNeil Armstrong			};
286ca02e3f9SNeil Armstrong		};
287ca02e3f9SNeil Armstrong
28885b2e743SNeil Armstrong		spi_pins: spi {
28985b2e743SNeil Armstrong			mux {
29085b2e743SNeil Armstrong				groups = "spi_miso",
29185b2e743SNeil Armstrong					"spi_mosi",
29285b2e743SNeil Armstrong					"spi_sclk";
29385b2e743SNeil Armstrong				function = "spi";
29485b2e743SNeil Armstrong			};
29585b2e743SNeil Armstrong		};
29685b2e743SNeil Armstrong
29785b2e743SNeil Armstrong		spi_ss0_pins: spi-ss0 {
29885b2e743SNeil Armstrong			mux {
29985b2e743SNeil Armstrong				groups = "spi_ss0";
30085b2e743SNeil Armstrong				function = "spi";
30185b2e743SNeil Armstrong			};
30285b2e743SNeil Armstrong		};
30385b2e743SNeil Armstrong
304fb0fe922SNeil Armstrong		sdcard_pins: sdcard {
305fb0fe922SNeil Armstrong			mux {
306fb0fe922SNeil Armstrong				groups = "sdcard_d0",
307fb0fe922SNeil Armstrong				       "sdcard_d1",
308fb0fe922SNeil Armstrong				       "sdcard_d2",
309fb0fe922SNeil Armstrong				       "sdcard_d3",
310fb0fe922SNeil Armstrong				       "sdcard_cmd",
311fb0fe922SNeil Armstrong				       "sdcard_clk";
312fb0fe922SNeil Armstrong				function = "sdcard";
313fb0fe922SNeil Armstrong			};
314fb0fe922SNeil Armstrong		};
315fb0fe922SNeil Armstrong
31667e7607fSJerome Brunet		sdcard_clk_gate_pins: sdcard_clk_gate {
31767e7607fSJerome Brunet			mux {
31867e7607fSJerome Brunet				groups = "CARD_2";
31967e7607fSJerome Brunet				function = "gpio_periphs";
32067e7607fSJerome Brunet			};
32167e7607fSJerome Brunet			cfg-pull-down {
32267e7607fSJerome Brunet				pins = "CARD_2";
32367e7607fSJerome Brunet				bias-pull-down;
32467e7607fSJerome Brunet			};
32567e7607fSJerome Brunet		};
32667e7607fSJerome Brunet
327fb0fe922SNeil Armstrong		sdio_pins: sdio {
328fb0fe922SNeil Armstrong			mux {
329fb0fe922SNeil Armstrong				groups = "sdio_d0",
330fb0fe922SNeil Armstrong				       "sdio_d1",
331fb0fe922SNeil Armstrong				       "sdio_d2",
332fb0fe922SNeil Armstrong				       "sdio_d3",
333fb0fe922SNeil Armstrong				       "sdio_cmd",
334fb0fe922SNeil Armstrong				       "sdio_clk";
335fb0fe922SNeil Armstrong				function = "sdio";
336fb0fe922SNeil Armstrong			};
337fb0fe922SNeil Armstrong		};
338fb0fe922SNeil Armstrong
33967e7607fSJerome Brunet		sdio_clk_gate_pins: sdio_clk_gate {
34067e7607fSJerome Brunet			mux {
34167e7607fSJerome Brunet				groups = "GPIOX_4";
34267e7607fSJerome Brunet				function = "gpio_periphs";
34367e7607fSJerome Brunet			};
34467e7607fSJerome Brunet			cfg-pull-down {
34567e7607fSJerome Brunet				pins = "GPIOX_4";
34667e7607fSJerome Brunet				bias-pull-down;
34767e7607fSJerome Brunet			};
34867e7607fSJerome Brunet		};
34967e7607fSJerome Brunet
350fb0fe922SNeil Armstrong		sdio_irq_pins: sdio_irq {
351fb0fe922SNeil Armstrong			mux {
352fb0fe922SNeil Armstrong				groups = "sdio_irq";
353fb0fe922SNeil Armstrong				function = "sdio";
354fb0fe922SNeil Armstrong			};
355fb0fe922SNeil Armstrong		};
356fb0fe922SNeil Armstrong
357fb0fe922SNeil Armstrong		uart_a_pins: uart_a {
358fb0fe922SNeil Armstrong			mux {
359fb0fe922SNeil Armstrong				groups = "uart_tx_a",
360fb0fe922SNeil Armstrong				       "uart_rx_a";
361fb0fe922SNeil Armstrong				function = "uart_a";
362fb0fe922SNeil Armstrong			};
363fb0fe922SNeil Armstrong		};
364fb0fe922SNeil Armstrong
365261e1d5cSMartin Blumenstingl		uart_a_cts_rts_pins: uart_a_cts_rts {
366261e1d5cSMartin Blumenstingl			mux {
367261e1d5cSMartin Blumenstingl				groups = "uart_cts_a",
368261e1d5cSMartin Blumenstingl				       "uart_rts_a";
369261e1d5cSMartin Blumenstingl				function = "uart_a";
370261e1d5cSMartin Blumenstingl			};
371261e1d5cSMartin Blumenstingl		};
372261e1d5cSMartin Blumenstingl
373fb0fe922SNeil Armstrong		uart_b_pins: uart_b {
374fb0fe922SNeil Armstrong			mux {
375fb0fe922SNeil Armstrong				groups = "uart_tx_b",
376fb0fe922SNeil Armstrong				       "uart_rx_b";
377fb0fe922SNeil Armstrong				function = "uart_b";
378fb0fe922SNeil Armstrong			};
379fb0fe922SNeil Armstrong		};
380fb0fe922SNeil Armstrong
381261e1d5cSMartin Blumenstingl		uart_b_cts_rts_pins: uart_b_cts_rts {
382261e1d5cSMartin Blumenstingl			mux {
383261e1d5cSMartin Blumenstingl				groups = "uart_cts_b",
384261e1d5cSMartin Blumenstingl				       "uart_rts_b";
385261e1d5cSMartin Blumenstingl				function = "uart_b";
386261e1d5cSMartin Blumenstingl			};
387261e1d5cSMartin Blumenstingl		};
388261e1d5cSMartin Blumenstingl
389fb0fe922SNeil Armstrong		uart_c_pins: uart_c {
390fb0fe922SNeil Armstrong			mux {
391fb0fe922SNeil Armstrong				groups = "uart_tx_c",
392fb0fe922SNeil Armstrong				       "uart_rx_c";
393fb0fe922SNeil Armstrong				function = "uart_c";
394fb0fe922SNeil Armstrong			};
395fb0fe922SNeil Armstrong		};
396fb0fe922SNeil Armstrong
397261e1d5cSMartin Blumenstingl		uart_c_cts_rts_pins: uart_c_cts_rts {
398261e1d5cSMartin Blumenstingl			mux {
399261e1d5cSMartin Blumenstingl				groups = "uart_cts_c",
400261e1d5cSMartin Blumenstingl				       "uart_rts_c";
401261e1d5cSMartin Blumenstingl				function = "uart_c";
402261e1d5cSMartin Blumenstingl			};
403261e1d5cSMartin Blumenstingl		};
404261e1d5cSMartin Blumenstingl
405fb0fe922SNeil Armstrong		i2c_a_pins: i2c_a {
406fb0fe922SNeil Armstrong			mux {
407fb0fe922SNeil Armstrong				groups = "i2c_sck_a",
408fb0fe922SNeil Armstrong				     "i2c_sda_a";
409fb0fe922SNeil Armstrong				function = "i2c_a";
410fb0fe922SNeil Armstrong			};
411fb0fe922SNeil Armstrong		};
412fb0fe922SNeil Armstrong
413fb0fe922SNeil Armstrong		i2c_b_pins: i2c_b {
414fb0fe922SNeil Armstrong			mux {
415fb0fe922SNeil Armstrong				groups = "i2c_sck_b",
416fb0fe922SNeil Armstrong				      "i2c_sda_b";
417fb0fe922SNeil Armstrong				function = "i2c_b";
418fb0fe922SNeil Armstrong			};
419fb0fe922SNeil Armstrong		};
420fb0fe922SNeil Armstrong
421fb0fe922SNeil Armstrong		i2c_c_pins: i2c_c {
422fb0fe922SNeil Armstrong			mux {
423fb0fe922SNeil Armstrong				groups = "i2c_sck_c",
424fb0fe922SNeil Armstrong				      "i2c_sda_c";
425fb0fe922SNeil Armstrong				function = "i2c_c";
426fb0fe922SNeil Armstrong			};
427fb0fe922SNeil Armstrong		};
428fb0fe922SNeil Armstrong
429fb0fe922SNeil Armstrong		eth_pins: eth_c {
430fb0fe922SNeil Armstrong			mux {
431fb0fe922SNeil Armstrong				groups = "eth_mdio",
432fb0fe922SNeil Armstrong				       "eth_mdc",
433fb0fe922SNeil Armstrong				       "eth_clk_rx_clk",
434fb0fe922SNeil Armstrong				       "eth_rx_dv",
435fb0fe922SNeil Armstrong				       "eth_rxd0",
436fb0fe922SNeil Armstrong				       "eth_rxd1",
437fb0fe922SNeil Armstrong				       "eth_rxd2",
438fb0fe922SNeil Armstrong				       "eth_rxd3",
439fb0fe922SNeil Armstrong				       "eth_rgmii_tx_clk",
440fb0fe922SNeil Armstrong				       "eth_tx_en",
441fb0fe922SNeil Armstrong				       "eth_txd0",
442fb0fe922SNeil Armstrong				       "eth_txd1",
443fb0fe922SNeil Armstrong				       "eth_txd2",
444fb0fe922SNeil Armstrong				       "eth_txd3";
445fb0fe922SNeil Armstrong				function = "eth";
446fb0fe922SNeil Armstrong			};
447fb0fe922SNeil Armstrong		};
448fb0fe922SNeil Armstrong
44944ddadc3SNeil Armstrong		eth_link_led_pins: eth_link_led {
45044ddadc3SNeil Armstrong			mux {
45144ddadc3SNeil Armstrong				groups = "eth_link_led";
45244ddadc3SNeil Armstrong				function = "eth_led";
45344ddadc3SNeil Armstrong			};
45444ddadc3SNeil Armstrong		};
45544ddadc3SNeil Armstrong
45644ddadc3SNeil Armstrong		eth_act_led_pins: eth_act_led {
45744ddadc3SNeil Armstrong			mux {
45844ddadc3SNeil Armstrong				groups = "eth_act_led";
45944ddadc3SNeil Armstrong				function = "eth_led";
46044ddadc3SNeil Armstrong			};
46144ddadc3SNeil Armstrong		};
46244ddadc3SNeil Armstrong
463e98fd134SMartin Blumenstingl		pwm_a_pins: pwm_a {
464e98fd134SMartin Blumenstingl			mux {
465e98fd134SMartin Blumenstingl				groups = "pwm_a";
466e98fd134SMartin Blumenstingl				function = "pwm_a";
467e98fd134SMartin Blumenstingl			};
468e98fd134SMartin Blumenstingl		};
469e98fd134SMartin Blumenstingl
470e98fd134SMartin Blumenstingl		pwm_b_pins: pwm_b {
471e98fd134SMartin Blumenstingl			mux {
472e98fd134SMartin Blumenstingl				groups = "pwm_b";
473e98fd134SMartin Blumenstingl				function = "pwm_b";
474e98fd134SMartin Blumenstingl			};
475e98fd134SMartin Blumenstingl		};
476e98fd134SMartin Blumenstingl
477e98fd134SMartin Blumenstingl		pwm_c_pins: pwm_c {
478e98fd134SMartin Blumenstingl			mux {
479e98fd134SMartin Blumenstingl				groups = "pwm_c";
480e98fd134SMartin Blumenstingl				function = "pwm_c";
481e98fd134SMartin Blumenstingl			};
482e98fd134SMartin Blumenstingl		};
483e98fd134SMartin Blumenstingl
484e98fd134SMartin Blumenstingl		pwm_d_pins: pwm_d {
485e98fd134SMartin Blumenstingl			mux {
486e98fd134SMartin Blumenstingl				groups = "pwm_d";
487e98fd134SMartin Blumenstingl				function = "pwm_d";
488e98fd134SMartin Blumenstingl			};
489e98fd134SMartin Blumenstingl		};
490e98fd134SMartin Blumenstingl
491fb0fe922SNeil Armstrong		pwm_e_pins: pwm_e {
492fb0fe922SNeil Armstrong			mux {
493fb0fe922SNeil Armstrong				groups = "pwm_e";
494fb0fe922SNeil Armstrong				function = "pwm_e";
495fb0fe922SNeil Armstrong			};
496fb0fe922SNeil Armstrong		};
497b949165cSNeil Armstrong
498e98fd134SMartin Blumenstingl		pwm_f_clk_pins: pwm_f_clk {
499e98fd134SMartin Blumenstingl			mux {
500e98fd134SMartin Blumenstingl				groups = "pwm_f_clk";
501e98fd134SMartin Blumenstingl				function = "pwm_f";
502e98fd134SMartin Blumenstingl			};
503e98fd134SMartin Blumenstingl		};
504e98fd134SMartin Blumenstingl
505e98fd134SMartin Blumenstingl		pwm_f_x_pins: pwm_f_x {
506e98fd134SMartin Blumenstingl			mux {
507e98fd134SMartin Blumenstingl				groups = "pwm_f_x";
508e98fd134SMartin Blumenstingl				function = "pwm_f";
509e98fd134SMartin Blumenstingl			};
510e98fd134SMartin Blumenstingl		};
511e98fd134SMartin Blumenstingl
512b949165cSNeil Armstrong		hdmi_hpd_pins: hdmi_hpd {
513b949165cSNeil Armstrong			mux {
514b949165cSNeil Armstrong				groups = "hdmi_hpd";
515b949165cSNeil Armstrong				function = "hdmi_hpd";
516b949165cSNeil Armstrong			};
517b949165cSNeil Armstrong		};
518b949165cSNeil Armstrong
519b949165cSNeil Armstrong		hdmi_i2c_pins: hdmi_i2c {
520b949165cSNeil Armstrong			mux {
521b949165cSNeil Armstrong				groups = "hdmi_sda", "hdmi_scl";
522b949165cSNeil Armstrong				function = "hdmi_i2c";
523b949165cSNeil Armstrong			};
524b949165cSNeil Armstrong		};
525c16fe9a1Sjbrunet
526c16fe9a1Sjbrunet		i2s_am_clk_pins: i2s_am_clk {
527c16fe9a1Sjbrunet			mux {
528c16fe9a1Sjbrunet				groups = "i2s_am_clk";
529c16fe9a1Sjbrunet				function = "i2s_out";
530c16fe9a1Sjbrunet			};
531c16fe9a1Sjbrunet		};
532c16fe9a1Sjbrunet
533c16fe9a1Sjbrunet		i2s_out_ao_clk_pins: i2s_out_ao_clk {
534c16fe9a1Sjbrunet			mux {
535c16fe9a1Sjbrunet				groups = "i2s_out_ao_clk";
536c16fe9a1Sjbrunet				function = "i2s_out";
537c16fe9a1Sjbrunet			};
538c16fe9a1Sjbrunet		};
539c16fe9a1Sjbrunet
540c16fe9a1Sjbrunet		i2s_out_lr_clk_pins: i2s_out_lr_clk {
541c16fe9a1Sjbrunet			mux {
542c16fe9a1Sjbrunet				groups = "i2s_out_lr_clk";
543c16fe9a1Sjbrunet				function = "i2s_out";
544c16fe9a1Sjbrunet			};
545c16fe9a1Sjbrunet		};
546c16fe9a1Sjbrunet
547c16fe9a1Sjbrunet		i2s_out_ch01_pins: i2s_out_ch01 {
548c16fe9a1Sjbrunet			mux {
549c16fe9a1Sjbrunet				groups = "i2s_out_ch01";
550c16fe9a1Sjbrunet				function = "i2s_out";
551c16fe9a1Sjbrunet			};
552c16fe9a1Sjbrunet		};
553c16fe9a1Sjbrunet		i2sout_ch23_z_pins: i2sout_ch23_z {
554c16fe9a1Sjbrunet			mux {
555c16fe9a1Sjbrunet				groups = "i2sout_ch23_z";
556c16fe9a1Sjbrunet				function = "i2s_out";
557c16fe9a1Sjbrunet			};
558c16fe9a1Sjbrunet		};
559c16fe9a1Sjbrunet
560c16fe9a1Sjbrunet		i2sout_ch45_z_pins: i2sout_ch45_z {
561c16fe9a1Sjbrunet			mux {
562c16fe9a1Sjbrunet				groups = "i2sout_ch45_z";
563c16fe9a1Sjbrunet				function = "i2s_out";
564c16fe9a1Sjbrunet			};
565c16fe9a1Sjbrunet		};
566c16fe9a1Sjbrunet
567c16fe9a1Sjbrunet		i2sout_ch67_z_pins: i2sout_ch67_z {
568c16fe9a1Sjbrunet			mux {
569c16fe9a1Sjbrunet				groups = "i2sout_ch67_z";
570c16fe9a1Sjbrunet				function = "i2s_out";
571c16fe9a1Sjbrunet			};
572c16fe9a1Sjbrunet		};
5739503062dSjbrunet
5749503062dSjbrunet		spdif_out_h_pins: spdif_out_ao_h {
5759503062dSjbrunet			mux {
5769503062dSjbrunet				groups = "spdif_out_h";
5779503062dSjbrunet				function = "spdif_out";
5789503062dSjbrunet			};
5799503062dSjbrunet		};
580fb0fe922SNeil Armstrong	};
581e9e27c64SNeil Armstrong
582e9e27c64SNeil Armstrong	eth-phy-mux {
583e9e27c64SNeil Armstrong		compatible = "mdio-mux-mmioreg", "mdio-mux";
584e9e27c64SNeil Armstrong		#address-cells = <1>;
585e9e27c64SNeil Armstrong		#size-cells = <0>;
586e9e27c64SNeil Armstrong		reg = <0x0 0x55c 0x0 0x4>;
587e9e27c64SNeil Armstrong		mux-mask = <0xffffffff>;
588e9e27c64SNeil Armstrong		mdio-parent-bus = <&mdio0>;
589e9e27c64SNeil Armstrong
590e9e27c64SNeil Armstrong		internal_mdio: mdio@e40908ff {
591e9e27c64SNeil Armstrong			reg = <0xe40908ff>;
592e9e27c64SNeil Armstrong			#address-cells = <1>;
593e9e27c64SNeil Armstrong			#size-cells = <0>;
594e9e27c64SNeil Armstrong
595e9e27c64SNeil Armstrong			internal_phy: ethernet-phy@8 {
596e9e27c64SNeil Armstrong				compatible = "ethernet-phy-id0181.4400", "ethernet-phy-ieee802.3-c22";
5972363ec93SJerome Brunet				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
598e9e27c64SNeil Armstrong				reg = <8>;
599e9e27c64SNeil Armstrong				max-speed = <100>;
600e9e27c64SNeil Armstrong			};
601e9e27c64SNeil Armstrong		};
602e9e27c64SNeil Armstrong
603e9e27c64SNeil Armstrong		external_mdio: mdio@2009087f {
604e9e27c64SNeil Armstrong			reg = <0x2009087f>;
605e9e27c64SNeil Armstrong			#address-cells = <1>;
606e9e27c64SNeil Armstrong			#size-cells = <0>;
607e9e27c64SNeil Armstrong		};
608e9e27c64SNeil Armstrong	};
609fb0fe922SNeil Armstrong};
610973fbd55SNeil Armstrong
61174d1c6e9SNeil Armstrong&pwrc_vpu {
61274d1c6e9SNeil Armstrong	resets = <&reset RESET_VIU>,
61374d1c6e9SNeil Armstrong		 <&reset RESET_VENC>,
61474d1c6e9SNeil Armstrong		 <&reset RESET_VCBUS>,
61574d1c6e9SNeil Armstrong		 <&reset RESET_BT656>,
61674d1c6e9SNeil Armstrong		 <&reset RESET_DVIN_RESET>,
61774d1c6e9SNeil Armstrong		 <&reset RESET_RDMA>,
61874d1c6e9SNeil Armstrong		 <&reset RESET_VENCI>,
61974d1c6e9SNeil Armstrong		 <&reset RESET_VENCP>,
62074d1c6e9SNeil Armstrong		 <&reset RESET_VDAC>,
62174d1c6e9SNeil Armstrong		 <&reset RESET_VDI6>,
62274d1c6e9SNeil Armstrong		 <&reset RESET_VENCL>,
62374d1c6e9SNeil Armstrong		 <&reset RESET_VID_LOCK>;
62474d1c6e9SNeil Armstrong	clocks = <&clkc CLKID_VPU>,
62574d1c6e9SNeil Armstrong	         <&clkc CLKID_VAPB>;
62674d1c6e9SNeil Armstrong	clock-names = "vpu", "vapb";
62774d1c6e9SNeil Armstrong	/*
62874d1c6e9SNeil Armstrong	 * VPU clocking is provided by two identical clock paths
62974d1c6e9SNeil Armstrong	 * VPU_0 and VPU_1 muxed to a single clock by a glitch
63074d1c6e9SNeil Armstrong	 * free mux to safely change frequency while running.
63174d1c6e9SNeil Armstrong	 * Same for VAPB but with a final gate after the glitch free mux.
63274d1c6e9SNeil Armstrong	 */
63374d1c6e9SNeil Armstrong	assigned-clocks = <&clkc CLKID_VPU_0_SEL>,
63474d1c6e9SNeil Armstrong			  <&clkc CLKID_VPU_0>,
63574d1c6e9SNeil Armstrong			  <&clkc CLKID_VPU>, /* Glitch free mux */
63674d1c6e9SNeil Armstrong			  <&clkc CLKID_VAPB_0_SEL>,
63774d1c6e9SNeil Armstrong			  <&clkc CLKID_VAPB_0>,
63874d1c6e9SNeil Armstrong			  <&clkc CLKID_VAPB_SEL>; /* Glitch free mux */
63974d1c6e9SNeil Armstrong	assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
64074d1c6e9SNeil Armstrong				 <0>, /* Do Nothing */
64174d1c6e9SNeil Armstrong				 <&clkc CLKID_VPU_0>,
64274d1c6e9SNeil Armstrong				 <&clkc CLKID_FCLK_DIV4>,
64374d1c6e9SNeil Armstrong				 <0>, /* Do Nothing */
64474d1c6e9SNeil Armstrong				 <&clkc CLKID_VAPB_0>;
64574d1c6e9SNeil Armstrong	assigned-clock-rates = <0>, /* Do Nothing */
64674d1c6e9SNeil Armstrong			       <666666666>,
64774d1c6e9SNeil Armstrong			       <0>, /* Do Nothing */
64874d1c6e9SNeil Armstrong			       <0>, /* Do Nothing */
64974d1c6e9SNeil Armstrong			       <250000000>,
65074d1c6e9SNeil Armstrong			       <0>; /* Do Nothing */
65174d1c6e9SNeil Armstrong};
65274d1c6e9SNeil Armstrong
653bd80ef5eSMartin Blumenstingl&saradc {
654bd80ef5eSMartin Blumenstingl	compatible = "amlogic,meson-gxl-saradc", "amlogic,meson-saradc";
655bd80ef5eSMartin Blumenstingl	clocks = <&xtal>,
656bd80ef5eSMartin Blumenstingl		 <&clkc CLKID_SAR_ADC>,
657bd80ef5eSMartin Blumenstingl		 <&clkc CLKID_SAR_ADC_CLK>,
658bd80ef5eSMartin Blumenstingl		 <&clkc CLKID_SAR_ADC_SEL>;
659e102da49SXingyu Chen	clock-names = "clkin", "core", "adc_clk", "adc_sel";
660bd80ef5eSMartin Blumenstingl};
661bd80ef5eSMartin Blumenstingl
6626d489dc8SNeil Armstrong&sd_emmc_a {
6636d489dc8SNeil Armstrong	clocks = <&clkc CLKID_SD_EMMC_A>,
66450662499SJerome Brunet		 <&clkc CLKID_SD_EMMC_A_CLK0>,
6656d489dc8SNeil Armstrong		 <&clkc CLKID_FCLK_DIV2>;
6666d489dc8SNeil Armstrong	clock-names = "core", "clkin0", "clkin1";
6676d489dc8SNeil Armstrong};
6686d489dc8SNeil Armstrong
6696d489dc8SNeil Armstrong&sd_emmc_b {
6706d489dc8SNeil Armstrong	clocks = <&clkc CLKID_SD_EMMC_B>,
67150662499SJerome Brunet		 <&clkc CLKID_SD_EMMC_B_CLK0>,
6726d489dc8SNeil Armstrong		 <&clkc CLKID_FCLK_DIV2>;
6736d489dc8SNeil Armstrong       clock-names = "core", "clkin0", "clkin1";
6746d489dc8SNeil Armstrong};
6756d489dc8SNeil Armstrong
6766d489dc8SNeil Armstrong&sd_emmc_c {
6776d489dc8SNeil Armstrong	clocks = <&clkc CLKID_SD_EMMC_C>,
67850662499SJerome Brunet		 <&clkc CLKID_SD_EMMC_C_CLK0>,
6796d489dc8SNeil Armstrong		 <&clkc CLKID_FCLK_DIV2>;
6806d489dc8SNeil Armstrong	clock-names = "core", "clkin0", "clkin1";
6816d489dc8SNeil Armstrong};
682fafdbdf7SNeil Armstrong
683fa808631SNeil Armstrong&spicc {
684fa808631SNeil Armstrong	clocks = <&clkc CLKID_SPICC>;
685fa808631SNeil Armstrong	clock-names = "core";
686fa808631SNeil Armstrong	resets = <&reset RESET_PERIPHS_SPICC>;
687fa808631SNeil Armstrong	num-cs = <1>;
688fa808631SNeil Armstrong};
689fa808631SNeil Armstrong
69004b36df4SNeil Armstrong&spifc {
69104b36df4SNeil Armstrong	clocks = <&clkc CLKID_SPI>;
69204b36df4SNeil Armstrong};
69304b36df4SNeil Armstrong
694f72d6f60SHelmut Klein&uart_A {
695f72d6f60SHelmut Klein	clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
69639005e56SNeil Armstrong	clock-names = "xtal", "pclk", "baud";
697f72d6f60SHelmut Klein};
698f72d6f60SHelmut Klein
699f72d6f60SHelmut Klein&uart_AO {
700f72d6f60SHelmut Klein	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&xtal>;
701f72d6f60SHelmut Klein	clock-names = "xtal", "pclk", "baud";
702f72d6f60SHelmut Klein};
703f72d6f60SHelmut Klein
704f72d6f60SHelmut Klein&uart_AO_B {
705f72d6f60SHelmut Klein	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&xtal>;
706f72d6f60SHelmut Klein	clock-names = "xtal", "pclk", "baud";
707f72d6f60SHelmut Klein};
708f72d6f60SHelmut Klein
709f72d6f60SHelmut Klein&uart_B {
710f72d6f60SHelmut Klein	clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
71139005e56SNeil Armstrong	clock-names = "xtal", "pclk", "baud";
712f72d6f60SHelmut Klein};
713f72d6f60SHelmut Klein
714f72d6f60SHelmut Klein&uart_C {
715f72d6f60SHelmut Klein	clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>;
71639005e56SNeil Armstrong	clock-names = "xtal", "pclk", "baud";
717f72d6f60SHelmut Klein};
718f72d6f60SHelmut Klein
719fafdbdf7SNeil Armstrong&vpu {
720fafdbdf7SNeil Armstrong	compatible = "amlogic,meson-gxl-vpu", "amlogic,meson-gx-vpu";
72174d1c6e9SNeil Armstrong	power-domains = <&pwrc_vpu>;
722fafdbdf7SNeil Armstrong};
723