xref: /freebsd-src/sys/contrib/device-tree/src/arm64/amlogic/meson-gxl.dtsi (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2c66ec88fSEmmanuel Vadot/*
3c66ec88fSEmmanuel Vadot * Copyright (c) 2016 Endless Computers, Inc.
4c66ec88fSEmmanuel Vadot * Author: Carlo Caione <carlo@endlessm.com>
5c66ec88fSEmmanuel Vadot */
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadot#include "meson-gx.dtsi"
8c66ec88fSEmmanuel Vadot#include <dt-bindings/clock/gxbb-clkc.h>
9c66ec88fSEmmanuel Vadot#include <dt-bindings/clock/gxbb-aoclkc.h>
10c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/meson-gxl-gpio.h>
11c66ec88fSEmmanuel Vadot#include <dt-bindings/reset/amlogic,meson-gxbb-reset.h>
12c66ec88fSEmmanuel Vadot
13c66ec88fSEmmanuel Vadot/ {
14c66ec88fSEmmanuel Vadot	compatible = "amlogic,meson-gxl";
15c66ec88fSEmmanuel Vadot
16c66ec88fSEmmanuel Vadot	soc {
17c66ec88fSEmmanuel Vadot		usb: usb@d0078080 {
18c66ec88fSEmmanuel Vadot			compatible = "amlogic,meson-gxl-usb-ctrl";
19c66ec88fSEmmanuel Vadot			reg = <0x0 0xd0078080 0x0 0x20>;
20c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
21c66ec88fSEmmanuel Vadot			#address-cells = <2>;
22c66ec88fSEmmanuel Vadot			#size-cells = <2>;
23c66ec88fSEmmanuel Vadot			ranges;
24c66ec88fSEmmanuel Vadot
25c66ec88fSEmmanuel Vadot			clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1_DDR_BRIDGE>;
26c66ec88fSEmmanuel Vadot			clock-names = "usb_ctrl", "ddr";
27c66ec88fSEmmanuel Vadot			resets = <&reset RESET_USB_OTG>;
28c66ec88fSEmmanuel Vadot
29c66ec88fSEmmanuel Vadot			dr_mode = "otg";
30c66ec88fSEmmanuel Vadot
31c66ec88fSEmmanuel Vadot			phys = <&usb2_phy0>, <&usb2_phy1>;
32c66ec88fSEmmanuel Vadot			phy-names = "usb2-phy0", "usb2-phy1";
33c66ec88fSEmmanuel Vadot
34c66ec88fSEmmanuel Vadot			dwc2: usb@c9100000 {
35c66ec88fSEmmanuel Vadot				compatible = "amlogic,meson-g12a-usb", "snps,dwc2";
36c66ec88fSEmmanuel Vadot				reg = <0x0 0xc9100000 0x0 0x40000>;
37c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
38c66ec88fSEmmanuel Vadot				clocks = <&clkc CLKID_USB1>;
39c66ec88fSEmmanuel Vadot				clock-names = "otg";
40c66ec88fSEmmanuel Vadot				phys = <&usb2_phy1>;
41c66ec88fSEmmanuel Vadot				dr_mode = "peripheral";
42c66ec88fSEmmanuel Vadot				g-rx-fifo-size = <192>;
43c66ec88fSEmmanuel Vadot				g-np-tx-fifo-size = <128>;
44c66ec88fSEmmanuel Vadot				g-tx-fifo-size = <128 128 16 16 16>;
45c66ec88fSEmmanuel Vadot			};
46c66ec88fSEmmanuel Vadot
47c66ec88fSEmmanuel Vadot			dwc3: usb@c9000000 {
48c66ec88fSEmmanuel Vadot				compatible = "snps,dwc3";
49c66ec88fSEmmanuel Vadot				reg = <0x0 0xc9000000 0x0 0x100000>;
50c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
51c66ec88fSEmmanuel Vadot				dr_mode = "host";
52c66ec88fSEmmanuel Vadot				maximum-speed = "high-speed";
53c66ec88fSEmmanuel Vadot				snps,dis_u2_susphy_quirk;
54c66ec88fSEmmanuel Vadot			};
55c66ec88fSEmmanuel Vadot		};
56c66ec88fSEmmanuel Vadot
57c66ec88fSEmmanuel Vadot		acodec: audio-controller@c8832000 {
58c66ec88fSEmmanuel Vadot			compatible = "amlogic,t9015";
59c66ec88fSEmmanuel Vadot			reg = <0x0 0xc8832000 0x0 0x14>;
60c66ec88fSEmmanuel Vadot			#sound-dai-cells = <0>;
61c66ec88fSEmmanuel Vadot			sound-name-prefix = "ACODEC";
62c66ec88fSEmmanuel Vadot			clocks = <&clkc CLKID_ACODEC>;
63c66ec88fSEmmanuel Vadot			clock-names = "pclk";
64c66ec88fSEmmanuel Vadot			resets = <&reset RESET_ACODEC>;
65c66ec88fSEmmanuel Vadot			status = "disabled";
66c66ec88fSEmmanuel Vadot		};
67c66ec88fSEmmanuel Vadot
68c66ec88fSEmmanuel Vadot		crypto: crypto@c883e000 {
69c66ec88fSEmmanuel Vadot			compatible = "amlogic,gxl-crypto";
70c66ec88fSEmmanuel Vadot			reg = <0x0 0xc883e000 0x0 0x36>;
71c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 188 IRQ_TYPE_EDGE_RISING>,
72c66ec88fSEmmanuel Vadot				     <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>;
73c66ec88fSEmmanuel Vadot			clocks = <&clkc CLKID_BLKMV>;
74c66ec88fSEmmanuel Vadot			clock-names = "blkmv";
75c66ec88fSEmmanuel Vadot			status = "okay";
76c66ec88fSEmmanuel Vadot		};
77c66ec88fSEmmanuel Vadot	};
78c66ec88fSEmmanuel Vadot};
79c66ec88fSEmmanuel Vadot
80c66ec88fSEmmanuel Vadot&aiu {
81c66ec88fSEmmanuel Vadot	compatible = "amlogic,aiu-gxl", "amlogic,aiu";
82c66ec88fSEmmanuel Vadot	clocks = <&clkc CLKID_AIU_GLUE>,
83c66ec88fSEmmanuel Vadot		 <&clkc CLKID_I2S_OUT>,
84c66ec88fSEmmanuel Vadot		 <&clkc CLKID_AOCLK_GATE>,
85c66ec88fSEmmanuel Vadot		 <&clkc CLKID_CTS_AMCLK>,
86c66ec88fSEmmanuel Vadot		 <&clkc CLKID_MIXER_IFACE>,
87c66ec88fSEmmanuel Vadot		 <&clkc CLKID_IEC958>,
88c66ec88fSEmmanuel Vadot		 <&clkc CLKID_IEC958_GATE>,
89c66ec88fSEmmanuel Vadot		 <&clkc CLKID_CTS_MCLK_I958>,
90c66ec88fSEmmanuel Vadot		 <&clkc CLKID_CTS_I958>;
91c66ec88fSEmmanuel Vadot	clock-names = "pclk",
92c66ec88fSEmmanuel Vadot		      "i2s_pclk",
93c66ec88fSEmmanuel Vadot		      "i2s_aoclk",
94c66ec88fSEmmanuel Vadot		      "i2s_mclk",
95c66ec88fSEmmanuel Vadot		      "i2s_mixer",
96c66ec88fSEmmanuel Vadot		      "spdif_pclk",
97c66ec88fSEmmanuel Vadot		      "spdif_aoclk",
98c66ec88fSEmmanuel Vadot		      "spdif_mclk",
99c66ec88fSEmmanuel Vadot		      "spdif_mclk_sel";
100c66ec88fSEmmanuel Vadot	resets = <&reset RESET_AIU>;
101c66ec88fSEmmanuel Vadot};
102c66ec88fSEmmanuel Vadot
103c66ec88fSEmmanuel Vadot&apb {
104c66ec88fSEmmanuel Vadot	usb2_phy0: phy@78000 {
105c66ec88fSEmmanuel Vadot		compatible = "amlogic,meson-gxl-usb2-phy";
106c66ec88fSEmmanuel Vadot		#phy-cells = <0>;
107c66ec88fSEmmanuel Vadot		reg = <0x0 0x78000 0x0 0x20>;
108c66ec88fSEmmanuel Vadot		clocks = <&clkc CLKID_USB>;
109c66ec88fSEmmanuel Vadot		clock-names = "phy";
110c66ec88fSEmmanuel Vadot		resets = <&reset RESET_USB_OTG>;
111c66ec88fSEmmanuel Vadot		reset-names = "phy";
112c66ec88fSEmmanuel Vadot		status = "okay";
113c66ec88fSEmmanuel Vadot	};
114c66ec88fSEmmanuel Vadot
115c66ec88fSEmmanuel Vadot	usb2_phy1: phy@78020 {
116c66ec88fSEmmanuel Vadot		compatible = "amlogic,meson-gxl-usb2-phy";
117c66ec88fSEmmanuel Vadot		#phy-cells = <0>;
118c66ec88fSEmmanuel Vadot		reg = <0x0 0x78020 0x0 0x20>;
119c66ec88fSEmmanuel Vadot		clocks = <&clkc CLKID_USB>;
120c66ec88fSEmmanuel Vadot		clock-names = "phy";
121c66ec88fSEmmanuel Vadot		resets = <&reset RESET_USB_OTG>;
122c66ec88fSEmmanuel Vadot		reset-names = "phy";
123c66ec88fSEmmanuel Vadot		status = "okay";
124c66ec88fSEmmanuel Vadot	};
125c66ec88fSEmmanuel Vadot};
126c66ec88fSEmmanuel Vadot
127c66ec88fSEmmanuel Vadot&efuse {
128c66ec88fSEmmanuel Vadot	clocks = <&clkc CLKID_EFUSE>;
129c66ec88fSEmmanuel Vadot};
130c66ec88fSEmmanuel Vadot
131c66ec88fSEmmanuel Vadot&ethmac {
132c66ec88fSEmmanuel Vadot	clocks = <&clkc CLKID_ETH>,
133c66ec88fSEmmanuel Vadot		 <&clkc CLKID_FCLK_DIV2>,
134c66ec88fSEmmanuel Vadot		 <&clkc CLKID_MPLL2>,
135c66ec88fSEmmanuel Vadot		 <&clkc CLKID_FCLK_DIV2>;
136c66ec88fSEmmanuel Vadot	clock-names = "stmmaceth", "clkin0", "clkin1", "timing-adjustment";
137c66ec88fSEmmanuel Vadot
138c66ec88fSEmmanuel Vadot	mdio0: mdio {
139c66ec88fSEmmanuel Vadot		#address-cells = <1>;
140c66ec88fSEmmanuel Vadot		#size-cells = <0>;
141c66ec88fSEmmanuel Vadot		compatible = "snps,dwmac-mdio";
142c66ec88fSEmmanuel Vadot	};
143c66ec88fSEmmanuel Vadot};
144c66ec88fSEmmanuel Vadot
145c66ec88fSEmmanuel Vadot&aobus {
146c66ec88fSEmmanuel Vadot	pinctrl_aobus: pinctrl@14 {
147c66ec88fSEmmanuel Vadot		compatible = "amlogic,meson-gxl-aobus-pinctrl";
148c66ec88fSEmmanuel Vadot		#address-cells = <2>;
149c66ec88fSEmmanuel Vadot		#size-cells = <2>;
150c66ec88fSEmmanuel Vadot		ranges;
151c66ec88fSEmmanuel Vadot
152c66ec88fSEmmanuel Vadot		gpio_ao: bank@14 {
153c66ec88fSEmmanuel Vadot			reg = <0x0 0x00014 0x0 0x8>,
154c66ec88fSEmmanuel Vadot			      <0x0 0x0002c 0x0 0x4>,
155c66ec88fSEmmanuel Vadot			      <0x0 0x00024 0x0 0x8>;
156c66ec88fSEmmanuel Vadot			reg-names = "mux", "pull", "gpio";
157c66ec88fSEmmanuel Vadot			gpio-controller;
158c66ec88fSEmmanuel Vadot			#gpio-cells = <2>;
159c66ec88fSEmmanuel Vadot			gpio-ranges = <&pinctrl_aobus 0 0 14>;
160c66ec88fSEmmanuel Vadot		};
161c66ec88fSEmmanuel Vadot
162c66ec88fSEmmanuel Vadot		uart_ao_a_pins: uart_ao_a {
163c66ec88fSEmmanuel Vadot			mux {
164c66ec88fSEmmanuel Vadot				groups = "uart_tx_ao_a", "uart_rx_ao_a";
165c66ec88fSEmmanuel Vadot				function = "uart_ao";
166c66ec88fSEmmanuel Vadot				bias-disable;
167c66ec88fSEmmanuel Vadot			};
168c66ec88fSEmmanuel Vadot		};
169c66ec88fSEmmanuel Vadot
170c66ec88fSEmmanuel Vadot		uart_ao_a_cts_rts_pins: uart_ao_a_cts_rts {
171c66ec88fSEmmanuel Vadot			mux {
172c66ec88fSEmmanuel Vadot				groups = "uart_cts_ao_a",
173c66ec88fSEmmanuel Vadot				       "uart_rts_ao_a";
174c66ec88fSEmmanuel Vadot				function = "uart_ao";
175c66ec88fSEmmanuel Vadot				bias-disable;
176c66ec88fSEmmanuel Vadot			};
177c66ec88fSEmmanuel Vadot		};
178c66ec88fSEmmanuel Vadot
179c66ec88fSEmmanuel Vadot		uart_ao_b_pins: uart_ao_b {
180c66ec88fSEmmanuel Vadot			mux {
181c66ec88fSEmmanuel Vadot				groups = "uart_tx_ao_b", "uart_rx_ao_b";
182c66ec88fSEmmanuel Vadot				function = "uart_ao_b";
183c66ec88fSEmmanuel Vadot				bias-disable;
184c66ec88fSEmmanuel Vadot			};
185c66ec88fSEmmanuel Vadot		};
186c66ec88fSEmmanuel Vadot
187c66ec88fSEmmanuel Vadot		uart_ao_b_0_1_pins: uart_ao_b_0_1 {
188c66ec88fSEmmanuel Vadot			mux {
189c66ec88fSEmmanuel Vadot				groups = "uart_tx_ao_b_0", "uart_rx_ao_b_1";
190c66ec88fSEmmanuel Vadot				function = "uart_ao_b";
191c66ec88fSEmmanuel Vadot				bias-disable;
192c66ec88fSEmmanuel Vadot			};
193c66ec88fSEmmanuel Vadot		};
194c66ec88fSEmmanuel Vadot
195c66ec88fSEmmanuel Vadot		uart_ao_b_cts_rts_pins: uart_ao_b_cts_rts {
196c66ec88fSEmmanuel Vadot			mux {
197c66ec88fSEmmanuel Vadot				groups = "uart_cts_ao_b",
198c66ec88fSEmmanuel Vadot				       "uart_rts_ao_b";
199c66ec88fSEmmanuel Vadot				function = "uart_ao_b";
200c66ec88fSEmmanuel Vadot				bias-disable;
201c66ec88fSEmmanuel Vadot			};
202c66ec88fSEmmanuel Vadot		};
203c66ec88fSEmmanuel Vadot
204c66ec88fSEmmanuel Vadot		remote_input_ao_pins: remote_input_ao {
205c66ec88fSEmmanuel Vadot			mux {
206c66ec88fSEmmanuel Vadot				groups = "remote_input_ao";
207c66ec88fSEmmanuel Vadot				function = "remote_input_ao";
208c66ec88fSEmmanuel Vadot				bias-disable;
209c66ec88fSEmmanuel Vadot			};
210c66ec88fSEmmanuel Vadot		};
211c66ec88fSEmmanuel Vadot
212c66ec88fSEmmanuel Vadot		i2c_ao_pins: i2c_ao {
213c66ec88fSEmmanuel Vadot			mux {
214c66ec88fSEmmanuel Vadot				groups = "i2c_sck_ao",
215c66ec88fSEmmanuel Vadot				       "i2c_sda_ao";
216c66ec88fSEmmanuel Vadot				function = "i2c_ao";
217c66ec88fSEmmanuel Vadot				bias-disable;
218c66ec88fSEmmanuel Vadot			};
219c66ec88fSEmmanuel Vadot		};
220c66ec88fSEmmanuel Vadot
221c66ec88fSEmmanuel Vadot		pwm_ao_a_3_pins: pwm_ao_a_3 {
222c66ec88fSEmmanuel Vadot			mux {
223c66ec88fSEmmanuel Vadot				groups = "pwm_ao_a_3";
224c66ec88fSEmmanuel Vadot				function = "pwm_ao_a";
225c66ec88fSEmmanuel Vadot				bias-disable;
226c66ec88fSEmmanuel Vadot			};
227c66ec88fSEmmanuel Vadot		};
228c66ec88fSEmmanuel Vadot
229c66ec88fSEmmanuel Vadot		pwm_ao_a_8_pins: pwm_ao_a_8 {
230c66ec88fSEmmanuel Vadot			mux {
231c66ec88fSEmmanuel Vadot				groups = "pwm_ao_a_8";
232c66ec88fSEmmanuel Vadot				function = "pwm_ao_a";
233c66ec88fSEmmanuel Vadot				bias-disable;
234c66ec88fSEmmanuel Vadot			};
235c66ec88fSEmmanuel Vadot		};
236c66ec88fSEmmanuel Vadot
237c66ec88fSEmmanuel Vadot		pwm_ao_b_pins: pwm_ao_b {
238c66ec88fSEmmanuel Vadot			mux {
239c66ec88fSEmmanuel Vadot				groups = "pwm_ao_b";
240c66ec88fSEmmanuel Vadot				function = "pwm_ao_b";
241c66ec88fSEmmanuel Vadot				bias-disable;
242c66ec88fSEmmanuel Vadot			};
243c66ec88fSEmmanuel Vadot		};
244c66ec88fSEmmanuel Vadot
245c66ec88fSEmmanuel Vadot		pwm_ao_b_6_pins: pwm_ao_b_6 {
246c66ec88fSEmmanuel Vadot			mux {
247c66ec88fSEmmanuel Vadot				groups = "pwm_ao_b_6";
248c66ec88fSEmmanuel Vadot				function = "pwm_ao_b";
249c66ec88fSEmmanuel Vadot				bias-disable;
250c66ec88fSEmmanuel Vadot			};
251c66ec88fSEmmanuel Vadot		};
252c66ec88fSEmmanuel Vadot
253c66ec88fSEmmanuel Vadot		i2s_out_ch23_ao_pins: i2s_out_ch23_ao {
254c66ec88fSEmmanuel Vadot			mux {
255c66ec88fSEmmanuel Vadot				groups = "i2s_out_ch23_ao";
256c66ec88fSEmmanuel Vadot				function = "i2s_out_ao";
257c66ec88fSEmmanuel Vadot				bias-disable;
258c66ec88fSEmmanuel Vadot			};
259c66ec88fSEmmanuel Vadot		};
260c66ec88fSEmmanuel Vadot
261c66ec88fSEmmanuel Vadot		i2s_out_ch45_ao_pins: i2s_out_ch45_ao {
262c66ec88fSEmmanuel Vadot			mux {
263c66ec88fSEmmanuel Vadot				groups = "i2s_out_ch45_ao";
264c66ec88fSEmmanuel Vadot				function = "i2s_out_ao";
265c66ec88fSEmmanuel Vadot				bias-disable;
266c66ec88fSEmmanuel Vadot			};
267c66ec88fSEmmanuel Vadot		};
268c66ec88fSEmmanuel Vadot
269c66ec88fSEmmanuel Vadot		spdif_out_ao_6_pins: spdif_out_ao_6 {
270c66ec88fSEmmanuel Vadot			mux {
271c66ec88fSEmmanuel Vadot				groups = "spdif_out_ao_6";
272c66ec88fSEmmanuel Vadot				function = "spdif_out_ao";
273c66ec88fSEmmanuel Vadot				bias-disable;
274c66ec88fSEmmanuel Vadot			};
275c66ec88fSEmmanuel Vadot		};
276c66ec88fSEmmanuel Vadot
277c66ec88fSEmmanuel Vadot		spdif_out_ao_9_pins: spdif_out_ao_9 {
278c66ec88fSEmmanuel Vadot			mux {
279c66ec88fSEmmanuel Vadot				groups = "spdif_out_ao_9";
280c66ec88fSEmmanuel Vadot				function = "spdif_out_ao";
281c66ec88fSEmmanuel Vadot				bias-disable;
282c66ec88fSEmmanuel Vadot			};
283c66ec88fSEmmanuel Vadot		};
284c66ec88fSEmmanuel Vadot
285c66ec88fSEmmanuel Vadot		ao_cec_pins: ao_cec {
286c66ec88fSEmmanuel Vadot			mux {
287c66ec88fSEmmanuel Vadot				groups = "ao_cec";
288c66ec88fSEmmanuel Vadot				function = "cec_ao";
289c66ec88fSEmmanuel Vadot				bias-disable;
290c66ec88fSEmmanuel Vadot			};
291c66ec88fSEmmanuel Vadot		};
292c66ec88fSEmmanuel Vadot
293c66ec88fSEmmanuel Vadot		ee_cec_pins: ee_cec {
294c66ec88fSEmmanuel Vadot			mux {
295c66ec88fSEmmanuel Vadot				groups = "ee_cec";
296c66ec88fSEmmanuel Vadot				function = "cec_ao";
297c66ec88fSEmmanuel Vadot				bias-disable;
298c66ec88fSEmmanuel Vadot			};
299c66ec88fSEmmanuel Vadot		};
300c66ec88fSEmmanuel Vadot	};
301c66ec88fSEmmanuel Vadot};
302c66ec88fSEmmanuel Vadot
303c66ec88fSEmmanuel Vadot&cec_AO {
304c66ec88fSEmmanuel Vadot	clocks = <&clkc_AO CLKID_AO_CEC_32K>;
305c66ec88fSEmmanuel Vadot	clock-names = "core";
306c66ec88fSEmmanuel Vadot};
307c66ec88fSEmmanuel Vadot
308c66ec88fSEmmanuel Vadot&clkc_AO {
309c66ec88fSEmmanuel Vadot	compatible = "amlogic,meson-gxl-aoclkc", "amlogic,meson-gx-aoclkc";
310c66ec88fSEmmanuel Vadot	clocks = <&xtal>, <&clkc CLKID_CLK81>;
311c66ec88fSEmmanuel Vadot	clock-names = "xtal", "mpeg-clk";
312c66ec88fSEmmanuel Vadot};
313c66ec88fSEmmanuel Vadot
314c66ec88fSEmmanuel Vadot&gpio_intc {
315fac71e4eSEmmanuel Vadot	compatible = "amlogic,meson-gxl-gpio-intc",
316fac71e4eSEmmanuel Vadot		     "amlogic,meson-gpio-intc";
317c66ec88fSEmmanuel Vadot	status = "okay";
318c66ec88fSEmmanuel Vadot};
319c66ec88fSEmmanuel Vadot
320c66ec88fSEmmanuel Vadot&hdmi_tx {
321c66ec88fSEmmanuel Vadot	compatible = "amlogic,meson-gxl-dw-hdmi", "amlogic,meson-gx-dw-hdmi";
322c66ec88fSEmmanuel Vadot	resets = <&reset RESET_HDMITX_CAPB3>,
323c66ec88fSEmmanuel Vadot		 <&reset RESET_HDMI_SYSTEM_RESET>,
324c66ec88fSEmmanuel Vadot		 <&reset RESET_HDMI_TX>;
325c66ec88fSEmmanuel Vadot	reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
326*0e8011faSEmmanuel Vadot	clocks = <&clkc CLKID_HDMI>,
327*0e8011faSEmmanuel Vadot		 <&clkc CLKID_HDMI_PCLK>,
328c66ec88fSEmmanuel Vadot		 <&clkc CLKID_GCLK_VENCI_INT0>;
329c66ec88fSEmmanuel Vadot	clock-names = "isfr", "iahb", "venci";
330*0e8011faSEmmanuel Vadot	power-domains = <&pwrc PWRC_GXBB_VPU_ID>;
331*0e8011faSEmmanuel Vadot
332*0e8011faSEmmanuel Vadot	assigned-clocks = <&clkc CLKID_HDMI_SEL>,
333*0e8011faSEmmanuel Vadot			  <&clkc CLKID_HDMI>;
334*0e8011faSEmmanuel Vadot	assigned-clock-parents = <&xtal>, <0>;
335*0e8011faSEmmanuel Vadot	assigned-clock-rates = <0>, <24000000>;
336c66ec88fSEmmanuel Vadot};
337c66ec88fSEmmanuel Vadot
338c66ec88fSEmmanuel Vadot&sysctrl {
339c66ec88fSEmmanuel Vadot	clkc: clock-controller {
340c66ec88fSEmmanuel Vadot		compatible = "amlogic,gxl-clkc";
341c66ec88fSEmmanuel Vadot		#clock-cells = <1>;
342c66ec88fSEmmanuel Vadot		clocks = <&xtal>;
343c66ec88fSEmmanuel Vadot		clock-names = "xtal";
344c66ec88fSEmmanuel Vadot	};
345c66ec88fSEmmanuel Vadot};
346c66ec88fSEmmanuel Vadot
347c66ec88fSEmmanuel Vadot&hwrng {
348c66ec88fSEmmanuel Vadot	clocks = <&clkc CLKID_RNG0>;
349c66ec88fSEmmanuel Vadot	clock-names = "core";
350c66ec88fSEmmanuel Vadot};
351c66ec88fSEmmanuel Vadot
352c66ec88fSEmmanuel Vadot&i2c_A {
353c66ec88fSEmmanuel Vadot	clocks = <&clkc CLKID_I2C>;
354c66ec88fSEmmanuel Vadot};
355c66ec88fSEmmanuel Vadot
356c66ec88fSEmmanuel Vadot&i2c_AO {
357c66ec88fSEmmanuel Vadot	clocks = <&clkc CLKID_AO_I2C>;
358c66ec88fSEmmanuel Vadot};
359c66ec88fSEmmanuel Vadot
360c66ec88fSEmmanuel Vadot&i2c_B {
361c66ec88fSEmmanuel Vadot	clocks = <&clkc CLKID_I2C>;
362c66ec88fSEmmanuel Vadot};
363c66ec88fSEmmanuel Vadot
364c66ec88fSEmmanuel Vadot&i2c_C {
365c66ec88fSEmmanuel Vadot	clocks = <&clkc CLKID_I2C>;
366c66ec88fSEmmanuel Vadot};
367c66ec88fSEmmanuel Vadot
368c66ec88fSEmmanuel Vadot&periphs {
369c66ec88fSEmmanuel Vadot	pinctrl_periphs: pinctrl@4b0 {
370c66ec88fSEmmanuel Vadot		compatible = "amlogic,meson-gxl-periphs-pinctrl";
371c66ec88fSEmmanuel Vadot		#address-cells = <2>;
372c66ec88fSEmmanuel Vadot		#size-cells = <2>;
373c66ec88fSEmmanuel Vadot		ranges;
374c66ec88fSEmmanuel Vadot
375c66ec88fSEmmanuel Vadot		gpio: bank@4b0 {
376c66ec88fSEmmanuel Vadot			reg = <0x0 0x004b0 0x0 0x28>,
377c66ec88fSEmmanuel Vadot			      <0x0 0x004e8 0x0 0x14>,
378c66ec88fSEmmanuel Vadot			      <0x0 0x00520 0x0 0x14>,
379c66ec88fSEmmanuel Vadot			      <0x0 0x00430 0x0 0x40>;
380c66ec88fSEmmanuel Vadot			reg-names = "mux", "pull", "pull-enable", "gpio";
381c66ec88fSEmmanuel Vadot			gpio-controller;
382c66ec88fSEmmanuel Vadot			#gpio-cells = <2>;
383c66ec88fSEmmanuel Vadot			gpio-ranges = <&pinctrl_periphs 0 0 100>;
384c66ec88fSEmmanuel Vadot		};
385c66ec88fSEmmanuel Vadot
386c66ec88fSEmmanuel Vadot		emmc_pins: emmc {
387c66ec88fSEmmanuel Vadot			mux-0 {
388c66ec88fSEmmanuel Vadot				groups = "emmc_nand_d07",
389c66ec88fSEmmanuel Vadot				       "emmc_cmd";
390c66ec88fSEmmanuel Vadot				function = "emmc";
391c66ec88fSEmmanuel Vadot				bias-pull-up;
392c66ec88fSEmmanuel Vadot			};
393c66ec88fSEmmanuel Vadot
394c66ec88fSEmmanuel Vadot			mux-1 {
395c66ec88fSEmmanuel Vadot				groups = "emmc_clk";
396c66ec88fSEmmanuel Vadot				function = "emmc";
397c66ec88fSEmmanuel Vadot				bias-disable;
398c66ec88fSEmmanuel Vadot			};
399c66ec88fSEmmanuel Vadot		};
400c66ec88fSEmmanuel Vadot
401c66ec88fSEmmanuel Vadot		emmc_ds_pins: emmc-ds {
402c66ec88fSEmmanuel Vadot			mux {
403c66ec88fSEmmanuel Vadot				groups = "emmc_ds";
404c66ec88fSEmmanuel Vadot				function = "emmc";
405c66ec88fSEmmanuel Vadot				bias-pull-down;
406c66ec88fSEmmanuel Vadot			};
407c66ec88fSEmmanuel Vadot		};
408c66ec88fSEmmanuel Vadot
409c66ec88fSEmmanuel Vadot		emmc_clk_gate_pins: emmc_clk_gate {
410c66ec88fSEmmanuel Vadot			mux {
411c66ec88fSEmmanuel Vadot				groups = "BOOT_8";
412c66ec88fSEmmanuel Vadot				function = "gpio_periphs";
413c66ec88fSEmmanuel Vadot				bias-pull-down;
414c66ec88fSEmmanuel Vadot			};
415c66ec88fSEmmanuel Vadot		};
416c66ec88fSEmmanuel Vadot
417c66ec88fSEmmanuel Vadot		nor_pins: nor {
418c66ec88fSEmmanuel Vadot			mux {
419c66ec88fSEmmanuel Vadot				groups = "nor_d",
420c66ec88fSEmmanuel Vadot				       "nor_q",
421c66ec88fSEmmanuel Vadot				       "nor_c",
422c66ec88fSEmmanuel Vadot				       "nor_cs";
423c66ec88fSEmmanuel Vadot				function = "nor";
424c66ec88fSEmmanuel Vadot				bias-disable;
425c66ec88fSEmmanuel Vadot			};
426c66ec88fSEmmanuel Vadot		};
427c66ec88fSEmmanuel Vadot
428c66ec88fSEmmanuel Vadot		spi_pins: spi-pins {
429c66ec88fSEmmanuel Vadot			mux {
430c66ec88fSEmmanuel Vadot				groups = "spi_miso",
431c66ec88fSEmmanuel Vadot					"spi_mosi",
432c66ec88fSEmmanuel Vadot					"spi_sclk";
433c66ec88fSEmmanuel Vadot				function = "spi";
434c66ec88fSEmmanuel Vadot				bias-disable;
435c66ec88fSEmmanuel Vadot			};
436c66ec88fSEmmanuel Vadot		};
437c66ec88fSEmmanuel Vadot
4388bab661aSEmmanuel Vadot		spi_idle_high_pins: spi-idle-high-pins {
4398bab661aSEmmanuel Vadot			mux {
4408bab661aSEmmanuel Vadot				groups = "spi_sclk";
4418bab661aSEmmanuel Vadot				bias-pull-up;
4428bab661aSEmmanuel Vadot			};
4438bab661aSEmmanuel Vadot		};
4448bab661aSEmmanuel Vadot
4458bab661aSEmmanuel Vadot		spi_idle_low_pins: spi-idle-low-pins {
4468bab661aSEmmanuel Vadot			mux {
4478bab661aSEmmanuel Vadot				groups = "spi_sclk";
4488bab661aSEmmanuel Vadot				bias-pull-down;
4498bab661aSEmmanuel Vadot			};
4508bab661aSEmmanuel Vadot		};
4518bab661aSEmmanuel Vadot
452c66ec88fSEmmanuel Vadot		spi_ss0_pins: spi-ss0 {
453c66ec88fSEmmanuel Vadot			mux {
454c66ec88fSEmmanuel Vadot				groups = "spi_ss0";
455c66ec88fSEmmanuel Vadot				function = "spi";
456c66ec88fSEmmanuel Vadot				bias-disable;
457c66ec88fSEmmanuel Vadot			};
458c66ec88fSEmmanuel Vadot		};
459c66ec88fSEmmanuel Vadot
460c66ec88fSEmmanuel Vadot		sdcard_pins: sdcard {
461c66ec88fSEmmanuel Vadot			mux-0 {
462c66ec88fSEmmanuel Vadot				groups = "sdcard_d0",
463c66ec88fSEmmanuel Vadot				       "sdcard_d1",
464c66ec88fSEmmanuel Vadot				       "sdcard_d2",
465c66ec88fSEmmanuel Vadot				       "sdcard_d3",
466c66ec88fSEmmanuel Vadot				       "sdcard_cmd";
467c66ec88fSEmmanuel Vadot				function = "sdcard";
468c66ec88fSEmmanuel Vadot				bias-pull-up;
469c66ec88fSEmmanuel Vadot			};
470c66ec88fSEmmanuel Vadot
471c66ec88fSEmmanuel Vadot			mux-1 {
472c66ec88fSEmmanuel Vadot				groups = "sdcard_clk";
473c66ec88fSEmmanuel Vadot				function = "sdcard";
474c66ec88fSEmmanuel Vadot				bias-disable;
475c66ec88fSEmmanuel Vadot			};
476c66ec88fSEmmanuel Vadot		};
477c66ec88fSEmmanuel Vadot
478c66ec88fSEmmanuel Vadot		sdcard_clk_gate_pins: sdcard_clk_gate {
479c66ec88fSEmmanuel Vadot			mux {
480c66ec88fSEmmanuel Vadot				groups = "CARD_2";
481c66ec88fSEmmanuel Vadot				function = "gpio_periphs";
482c66ec88fSEmmanuel Vadot				bias-pull-down;
483c66ec88fSEmmanuel Vadot			};
484c66ec88fSEmmanuel Vadot		};
485c66ec88fSEmmanuel Vadot
486c66ec88fSEmmanuel Vadot		sdio_pins: sdio {
487c66ec88fSEmmanuel Vadot			mux-0 {
488c66ec88fSEmmanuel Vadot				groups = "sdio_d0",
489c66ec88fSEmmanuel Vadot				       "sdio_d1",
490c66ec88fSEmmanuel Vadot				       "sdio_d2",
491c66ec88fSEmmanuel Vadot				       "sdio_d3",
492c66ec88fSEmmanuel Vadot				       "sdio_cmd";
493c66ec88fSEmmanuel Vadot				function = "sdio";
494c66ec88fSEmmanuel Vadot				bias-pull-up;
495c66ec88fSEmmanuel Vadot			};
496c66ec88fSEmmanuel Vadot
497c66ec88fSEmmanuel Vadot			mux-1 {
498c66ec88fSEmmanuel Vadot				groups = "sdio_clk";
499c66ec88fSEmmanuel Vadot				function = "sdio";
500c66ec88fSEmmanuel Vadot				bias-disable;
501c66ec88fSEmmanuel Vadot			};
502c66ec88fSEmmanuel Vadot		};
503c66ec88fSEmmanuel Vadot
504c66ec88fSEmmanuel Vadot		sdio_clk_gate_pins: sdio_clk_gate {
505c66ec88fSEmmanuel Vadot			mux {
506c66ec88fSEmmanuel Vadot				groups = "GPIOX_4";
507c66ec88fSEmmanuel Vadot				function = "gpio_periphs";
508c66ec88fSEmmanuel Vadot				bias-pull-down;
509c66ec88fSEmmanuel Vadot			};
510c66ec88fSEmmanuel Vadot		};
511c66ec88fSEmmanuel Vadot
512c66ec88fSEmmanuel Vadot		sdio_irq_pins: sdio_irq {
513c66ec88fSEmmanuel Vadot			mux {
514c66ec88fSEmmanuel Vadot				groups = "sdio_irq";
515c66ec88fSEmmanuel Vadot				function = "sdio";
516c66ec88fSEmmanuel Vadot				bias-disable;
517c66ec88fSEmmanuel Vadot			};
518c66ec88fSEmmanuel Vadot		};
519c66ec88fSEmmanuel Vadot
520c66ec88fSEmmanuel Vadot		uart_a_pins: uart_a {
521c66ec88fSEmmanuel Vadot			mux {
522c66ec88fSEmmanuel Vadot				groups = "uart_tx_a",
523c66ec88fSEmmanuel Vadot				       "uart_rx_a";
524c66ec88fSEmmanuel Vadot				function = "uart_a";
525c66ec88fSEmmanuel Vadot				bias-disable;
526c66ec88fSEmmanuel Vadot			};
527c66ec88fSEmmanuel Vadot		};
528c66ec88fSEmmanuel Vadot
529c66ec88fSEmmanuel Vadot		uart_a_cts_rts_pins: uart_a_cts_rts {
530c66ec88fSEmmanuel Vadot			mux {
531c66ec88fSEmmanuel Vadot				groups = "uart_cts_a",
532c66ec88fSEmmanuel Vadot				       "uart_rts_a";
533c66ec88fSEmmanuel Vadot				function = "uart_a";
534c66ec88fSEmmanuel Vadot				bias-disable;
535c66ec88fSEmmanuel Vadot			};
536c66ec88fSEmmanuel Vadot		};
537c66ec88fSEmmanuel Vadot
538c66ec88fSEmmanuel Vadot		uart_b_pins: uart_b {
539c66ec88fSEmmanuel Vadot			mux {
540c66ec88fSEmmanuel Vadot				groups = "uart_tx_b",
541c66ec88fSEmmanuel Vadot				       "uart_rx_b";
542c66ec88fSEmmanuel Vadot				function = "uart_b";
543c66ec88fSEmmanuel Vadot				bias-disable;
544c66ec88fSEmmanuel Vadot			};
545c66ec88fSEmmanuel Vadot		};
546c66ec88fSEmmanuel Vadot
547c66ec88fSEmmanuel Vadot		uart_b_cts_rts_pins: uart_b_cts_rts {
548c66ec88fSEmmanuel Vadot			mux {
549c66ec88fSEmmanuel Vadot				groups = "uart_cts_b",
550c66ec88fSEmmanuel Vadot				       "uart_rts_b";
551c66ec88fSEmmanuel Vadot				function = "uart_b";
552c66ec88fSEmmanuel Vadot				bias-disable;
553c66ec88fSEmmanuel Vadot			};
554c66ec88fSEmmanuel Vadot		};
555c66ec88fSEmmanuel Vadot
556c66ec88fSEmmanuel Vadot		uart_c_pins: uart_c {
557c66ec88fSEmmanuel Vadot			mux {
558c66ec88fSEmmanuel Vadot				groups = "uart_tx_c",
559c66ec88fSEmmanuel Vadot				       "uart_rx_c";
560c66ec88fSEmmanuel Vadot				function = "uart_c";
561c66ec88fSEmmanuel Vadot				bias-disable;
562c66ec88fSEmmanuel Vadot			};
563c66ec88fSEmmanuel Vadot		};
564c66ec88fSEmmanuel Vadot
565c66ec88fSEmmanuel Vadot		uart_c_cts_rts_pins: uart_c_cts_rts {
566c66ec88fSEmmanuel Vadot			mux {
567c66ec88fSEmmanuel Vadot				groups = "uart_cts_c",
568c66ec88fSEmmanuel Vadot				       "uart_rts_c";
569c66ec88fSEmmanuel Vadot				function = "uart_c";
570c66ec88fSEmmanuel Vadot				bias-disable;
571c66ec88fSEmmanuel Vadot			};
572c66ec88fSEmmanuel Vadot		};
573c66ec88fSEmmanuel Vadot
574c66ec88fSEmmanuel Vadot		i2c_a_pins: i2c_a {
575c66ec88fSEmmanuel Vadot			mux {
576c66ec88fSEmmanuel Vadot				groups = "i2c_sck_a",
577c66ec88fSEmmanuel Vadot				     "i2c_sda_a";
578c66ec88fSEmmanuel Vadot				function = "i2c_a";
579c66ec88fSEmmanuel Vadot				bias-disable;
580c66ec88fSEmmanuel Vadot			};
581c66ec88fSEmmanuel Vadot		};
582c66ec88fSEmmanuel Vadot
583c66ec88fSEmmanuel Vadot		i2c_b_pins: i2c_b {
584c66ec88fSEmmanuel Vadot			mux {
585c66ec88fSEmmanuel Vadot				groups = "i2c_sck_b",
586c66ec88fSEmmanuel Vadot				      "i2c_sda_b";
587c66ec88fSEmmanuel Vadot				function = "i2c_b";
588c66ec88fSEmmanuel Vadot				bias-disable;
589c66ec88fSEmmanuel Vadot			};
590c66ec88fSEmmanuel Vadot		};
591c66ec88fSEmmanuel Vadot
592c66ec88fSEmmanuel Vadot		i2c_c_pins: i2c_c {
593c66ec88fSEmmanuel Vadot			mux {
594c66ec88fSEmmanuel Vadot				groups = "i2c_sck_c",
595c66ec88fSEmmanuel Vadot				      "i2c_sda_c";
596c66ec88fSEmmanuel Vadot				function = "i2c_c";
597c66ec88fSEmmanuel Vadot				bias-disable;
598c66ec88fSEmmanuel Vadot			};
599c66ec88fSEmmanuel Vadot		};
600c66ec88fSEmmanuel Vadot
601c66ec88fSEmmanuel Vadot		i2c_c_dv18_pins: i2c_c_dv18 {
602c66ec88fSEmmanuel Vadot			mux {
603c66ec88fSEmmanuel Vadot				groups = "i2c_sck_c_dv19",
604c66ec88fSEmmanuel Vadot				      "i2c_sda_c_dv18";
605c66ec88fSEmmanuel Vadot				function = "i2c_c";
606c66ec88fSEmmanuel Vadot				bias-disable;
607c66ec88fSEmmanuel Vadot			};
608c66ec88fSEmmanuel Vadot		};
609c66ec88fSEmmanuel Vadot
610c66ec88fSEmmanuel Vadot		eth_pins: eth_c {
611c66ec88fSEmmanuel Vadot			mux {
612c66ec88fSEmmanuel Vadot				groups = "eth_mdio",
613c66ec88fSEmmanuel Vadot				       "eth_mdc",
614c66ec88fSEmmanuel Vadot				       "eth_clk_rx_clk",
615c66ec88fSEmmanuel Vadot				       "eth_rx_dv",
616c66ec88fSEmmanuel Vadot				       "eth_rxd0",
617c66ec88fSEmmanuel Vadot				       "eth_rxd1",
618c66ec88fSEmmanuel Vadot				       "eth_rxd2",
619c66ec88fSEmmanuel Vadot				       "eth_rxd3",
620c66ec88fSEmmanuel Vadot				       "eth_rgmii_tx_clk",
621c66ec88fSEmmanuel Vadot				       "eth_tx_en",
622c66ec88fSEmmanuel Vadot				       "eth_txd0",
623c66ec88fSEmmanuel Vadot				       "eth_txd1",
624c66ec88fSEmmanuel Vadot				       "eth_txd2",
625c66ec88fSEmmanuel Vadot				       "eth_txd3";
626c66ec88fSEmmanuel Vadot				function = "eth";
627c66ec88fSEmmanuel Vadot				bias-disable;
628c66ec88fSEmmanuel Vadot			};
629c66ec88fSEmmanuel Vadot		};
630c66ec88fSEmmanuel Vadot
631c66ec88fSEmmanuel Vadot		eth_link_led_pins: eth_link_led {
632c66ec88fSEmmanuel Vadot			mux {
633c66ec88fSEmmanuel Vadot				groups = "eth_link_led";
634c66ec88fSEmmanuel Vadot				function = "eth_led";
635c66ec88fSEmmanuel Vadot				bias-disable;
636c66ec88fSEmmanuel Vadot			};
637c66ec88fSEmmanuel Vadot		};
638c66ec88fSEmmanuel Vadot
639c66ec88fSEmmanuel Vadot		eth_act_led_pins: eth_act_led {
640c66ec88fSEmmanuel Vadot			mux {
641c66ec88fSEmmanuel Vadot				groups = "eth_act_led";
642c66ec88fSEmmanuel Vadot				function = "eth_led";
643c66ec88fSEmmanuel Vadot			};
644c66ec88fSEmmanuel Vadot		};
645c66ec88fSEmmanuel Vadot
646c66ec88fSEmmanuel Vadot		pwm_a_pins: pwm_a {
647c66ec88fSEmmanuel Vadot			mux {
648c66ec88fSEmmanuel Vadot				groups = "pwm_a";
649c66ec88fSEmmanuel Vadot				function = "pwm_a";
650c66ec88fSEmmanuel Vadot				bias-disable;
651c66ec88fSEmmanuel Vadot			};
652c66ec88fSEmmanuel Vadot		};
653c66ec88fSEmmanuel Vadot
654c66ec88fSEmmanuel Vadot		pwm_b_pins: pwm_b {
655c66ec88fSEmmanuel Vadot			mux {
656c66ec88fSEmmanuel Vadot				groups = "pwm_b";
657c66ec88fSEmmanuel Vadot				function = "pwm_b";
658c66ec88fSEmmanuel Vadot				bias-disable;
659c66ec88fSEmmanuel Vadot			};
660c66ec88fSEmmanuel Vadot		};
661c66ec88fSEmmanuel Vadot
662c66ec88fSEmmanuel Vadot		pwm_c_pins: pwm_c {
663c66ec88fSEmmanuel Vadot			mux {
664c66ec88fSEmmanuel Vadot				groups = "pwm_c";
665c66ec88fSEmmanuel Vadot				function = "pwm_c";
666c66ec88fSEmmanuel Vadot				bias-disable;
667c66ec88fSEmmanuel Vadot			};
668c66ec88fSEmmanuel Vadot		};
669c66ec88fSEmmanuel Vadot
670c66ec88fSEmmanuel Vadot		pwm_d_pins: pwm_d {
671c66ec88fSEmmanuel Vadot			mux {
672c66ec88fSEmmanuel Vadot				groups = "pwm_d";
673c66ec88fSEmmanuel Vadot				function = "pwm_d";
674c66ec88fSEmmanuel Vadot				bias-disable;
675c66ec88fSEmmanuel Vadot			};
676c66ec88fSEmmanuel Vadot		};
677c66ec88fSEmmanuel Vadot
678c66ec88fSEmmanuel Vadot		pwm_e_pins: pwm_e {
679c66ec88fSEmmanuel Vadot			mux {
680c66ec88fSEmmanuel Vadot				groups = "pwm_e";
681c66ec88fSEmmanuel Vadot				function = "pwm_e";
682c66ec88fSEmmanuel Vadot				bias-disable;
683c66ec88fSEmmanuel Vadot			};
684c66ec88fSEmmanuel Vadot		};
685c66ec88fSEmmanuel Vadot
686c66ec88fSEmmanuel Vadot		pwm_f_clk_pins: pwm_f_clk {
687c66ec88fSEmmanuel Vadot			mux {
688c66ec88fSEmmanuel Vadot				groups = "pwm_f_clk";
689c66ec88fSEmmanuel Vadot				function = "pwm_f";
690c66ec88fSEmmanuel Vadot				bias-disable;
691c66ec88fSEmmanuel Vadot			};
692c66ec88fSEmmanuel Vadot		};
693c66ec88fSEmmanuel Vadot
694c66ec88fSEmmanuel Vadot		pwm_f_x_pins: pwm_f_x {
695c66ec88fSEmmanuel Vadot			mux {
696c66ec88fSEmmanuel Vadot				groups = "pwm_f_x";
697c66ec88fSEmmanuel Vadot				function = "pwm_f";
698c66ec88fSEmmanuel Vadot				bias-disable;
699c66ec88fSEmmanuel Vadot			};
700c66ec88fSEmmanuel Vadot		};
701c66ec88fSEmmanuel Vadot
702c66ec88fSEmmanuel Vadot		hdmi_hpd_pins: hdmi_hpd {
703c66ec88fSEmmanuel Vadot			mux {
704c66ec88fSEmmanuel Vadot				groups = "hdmi_hpd";
705c66ec88fSEmmanuel Vadot				function = "hdmi_hpd";
706c66ec88fSEmmanuel Vadot				bias-disable;
707c66ec88fSEmmanuel Vadot			};
708c66ec88fSEmmanuel Vadot		};
709c66ec88fSEmmanuel Vadot
710c66ec88fSEmmanuel Vadot		hdmi_i2c_pins: hdmi_i2c {
711c66ec88fSEmmanuel Vadot			mux {
712c66ec88fSEmmanuel Vadot				groups = "hdmi_sda", "hdmi_scl";
713c66ec88fSEmmanuel Vadot				function = "hdmi_i2c";
714c66ec88fSEmmanuel Vadot				bias-disable;
715c66ec88fSEmmanuel Vadot			};
716c66ec88fSEmmanuel Vadot		};
717c66ec88fSEmmanuel Vadot
718c66ec88fSEmmanuel Vadot		i2s_am_clk_pins: i2s_am_clk {
719c66ec88fSEmmanuel Vadot			mux {
720c66ec88fSEmmanuel Vadot				groups = "i2s_am_clk";
721c66ec88fSEmmanuel Vadot				function = "i2s_out";
722c66ec88fSEmmanuel Vadot				bias-disable;
723c66ec88fSEmmanuel Vadot			};
724c66ec88fSEmmanuel Vadot		};
725c66ec88fSEmmanuel Vadot
726c66ec88fSEmmanuel Vadot		i2s_out_ao_clk_pins: i2s_out_ao_clk {
727c66ec88fSEmmanuel Vadot			mux {
728c66ec88fSEmmanuel Vadot				groups = "i2s_out_ao_clk";
729c66ec88fSEmmanuel Vadot				function = "i2s_out";
730c66ec88fSEmmanuel Vadot				bias-disable;
731c66ec88fSEmmanuel Vadot			};
732c66ec88fSEmmanuel Vadot		};
733c66ec88fSEmmanuel Vadot
734c66ec88fSEmmanuel Vadot		i2s_out_lr_clk_pins: i2s_out_lr_clk {
735c66ec88fSEmmanuel Vadot			mux {
736c66ec88fSEmmanuel Vadot				groups = "i2s_out_lr_clk";
737c66ec88fSEmmanuel Vadot				function = "i2s_out";
738c66ec88fSEmmanuel Vadot				bias-disable;
739c66ec88fSEmmanuel Vadot			};
740c66ec88fSEmmanuel Vadot		};
741c66ec88fSEmmanuel Vadot
742c66ec88fSEmmanuel Vadot		i2s_out_ch01_pins: i2s_out_ch01 {
743c66ec88fSEmmanuel Vadot			mux {
744c66ec88fSEmmanuel Vadot				groups = "i2s_out_ch01";
745c66ec88fSEmmanuel Vadot				function = "i2s_out";
746c66ec88fSEmmanuel Vadot				bias-disable;
747c66ec88fSEmmanuel Vadot			};
748c66ec88fSEmmanuel Vadot		};
749c66ec88fSEmmanuel Vadot		i2sout_ch23_z_pins: i2sout_ch23_z {
750c66ec88fSEmmanuel Vadot			mux {
751c66ec88fSEmmanuel Vadot				groups = "i2sout_ch23_z";
752c66ec88fSEmmanuel Vadot				function = "i2s_out";
753c66ec88fSEmmanuel Vadot				bias-disable;
754c66ec88fSEmmanuel Vadot			};
755c66ec88fSEmmanuel Vadot		};
756c66ec88fSEmmanuel Vadot
757c66ec88fSEmmanuel Vadot		i2sout_ch45_z_pins: i2sout_ch45_z {
758c66ec88fSEmmanuel Vadot			mux {
759c66ec88fSEmmanuel Vadot				groups = "i2sout_ch45_z";
760c66ec88fSEmmanuel Vadot				function = "i2s_out";
761c66ec88fSEmmanuel Vadot				bias-disable;
762c66ec88fSEmmanuel Vadot			};
763c66ec88fSEmmanuel Vadot		};
764c66ec88fSEmmanuel Vadot
765c66ec88fSEmmanuel Vadot		i2sout_ch67_z_pins: i2sout_ch67_z {
766c66ec88fSEmmanuel Vadot			mux {
767c66ec88fSEmmanuel Vadot				groups = "i2sout_ch67_z";
768c66ec88fSEmmanuel Vadot				function = "i2s_out";
769c66ec88fSEmmanuel Vadot				bias-disable;
770c66ec88fSEmmanuel Vadot			};
771c66ec88fSEmmanuel Vadot		};
772c66ec88fSEmmanuel Vadot
773c66ec88fSEmmanuel Vadot		spdif_out_h_pins: spdif_out_ao_h {
774c66ec88fSEmmanuel Vadot			mux {
775c66ec88fSEmmanuel Vadot				groups = "spdif_out_h";
776c66ec88fSEmmanuel Vadot				function = "spdif_out";
777c66ec88fSEmmanuel Vadot				bias-disable;
778c66ec88fSEmmanuel Vadot			};
779c66ec88fSEmmanuel Vadot		};
780c66ec88fSEmmanuel Vadot	};
781c66ec88fSEmmanuel Vadot
782fac71e4eSEmmanuel Vadot	eth_phy_mux: mdio@558 {
783fac71e4eSEmmanuel Vadot		reg = <0x0 0x558 0x0 0xc>;
784fac71e4eSEmmanuel Vadot		compatible = "amlogic,gxl-mdio-mux";
785c66ec88fSEmmanuel Vadot		#address-cells = <1>;
786c66ec88fSEmmanuel Vadot		#size-cells = <0>;
787fac71e4eSEmmanuel Vadot		clocks = <&clkc CLKID_FCLK_DIV4>;
788fac71e4eSEmmanuel Vadot		clock-names = "ref";
789c66ec88fSEmmanuel Vadot		mdio-parent-bus = <&mdio0>;
790c66ec88fSEmmanuel Vadot
791fac71e4eSEmmanuel Vadot		external_mdio: mdio@0 {
792fac71e4eSEmmanuel Vadot			reg = <0x0>;
793fac71e4eSEmmanuel Vadot			#address-cells = <1>;
794fac71e4eSEmmanuel Vadot			#size-cells = <0>;
795fac71e4eSEmmanuel Vadot		};
796fac71e4eSEmmanuel Vadot
797fac71e4eSEmmanuel Vadot		internal_mdio: mdio@1 {
798fac71e4eSEmmanuel Vadot			reg = <0x1>;
799c66ec88fSEmmanuel Vadot			#address-cells = <1>;
800c66ec88fSEmmanuel Vadot			#size-cells = <0>;
801c66ec88fSEmmanuel Vadot
802c66ec88fSEmmanuel Vadot			internal_phy: ethernet-phy@8 {
803c66ec88fSEmmanuel Vadot				compatible = "ethernet-phy-id0181.4400";
804c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
805c66ec88fSEmmanuel Vadot				reg = <8>;
806c66ec88fSEmmanuel Vadot				max-speed = <100>;
807c66ec88fSEmmanuel Vadot			};
808c66ec88fSEmmanuel Vadot		};
809c66ec88fSEmmanuel Vadot	};
810c66ec88fSEmmanuel Vadot};
811c66ec88fSEmmanuel Vadot
812c66ec88fSEmmanuel Vadot&pwrc {
813c66ec88fSEmmanuel Vadot	resets = <&reset RESET_VIU>,
814c66ec88fSEmmanuel Vadot		 <&reset RESET_VENC>,
815c66ec88fSEmmanuel Vadot		 <&reset RESET_VCBUS>,
816c66ec88fSEmmanuel Vadot		 <&reset RESET_BT656>,
817c66ec88fSEmmanuel Vadot		 <&reset RESET_DVIN_RESET>,
818c66ec88fSEmmanuel Vadot		 <&reset RESET_RDMA>,
819c66ec88fSEmmanuel Vadot		 <&reset RESET_VENCI>,
820c66ec88fSEmmanuel Vadot		 <&reset RESET_VENCP>,
821c66ec88fSEmmanuel Vadot		 <&reset RESET_VDAC>,
822c66ec88fSEmmanuel Vadot		 <&reset RESET_VDI6>,
823c66ec88fSEmmanuel Vadot		 <&reset RESET_VENCL>,
824c66ec88fSEmmanuel Vadot		 <&reset RESET_VID_LOCK>;
825c66ec88fSEmmanuel Vadot	reset-names = "viu", "venc", "vcbus", "bt656",
826c66ec88fSEmmanuel Vadot		      "dvin", "rdma", "venci", "vencp",
827c66ec88fSEmmanuel Vadot		      "vdac", "vdi6", "vencl", "vid_lock";
828c66ec88fSEmmanuel Vadot	clocks = <&clkc CLKID_VPU>,
829c66ec88fSEmmanuel Vadot	         <&clkc CLKID_VAPB>;
830c66ec88fSEmmanuel Vadot	clock-names = "vpu", "vapb";
831c66ec88fSEmmanuel Vadot	/*
832c66ec88fSEmmanuel Vadot	 * VPU clocking is provided by two identical clock paths
833c66ec88fSEmmanuel Vadot	 * VPU_0 and VPU_1 muxed to a single clock by a glitch
834c66ec88fSEmmanuel Vadot	 * free mux to safely change frequency while running.
835c66ec88fSEmmanuel Vadot	 * Same for VAPB but with a final gate after the glitch free mux.
836c66ec88fSEmmanuel Vadot	 */
837c66ec88fSEmmanuel Vadot	assigned-clocks = <&clkc CLKID_VPU_0_SEL>,
838c66ec88fSEmmanuel Vadot			  <&clkc CLKID_VPU_0>,
839c66ec88fSEmmanuel Vadot			  <&clkc CLKID_VPU>, /* Glitch free mux */
840c66ec88fSEmmanuel Vadot			  <&clkc CLKID_VAPB_0_SEL>,
841c66ec88fSEmmanuel Vadot			  <&clkc CLKID_VAPB_0>,
842c66ec88fSEmmanuel Vadot			  <&clkc CLKID_VAPB_SEL>; /* Glitch free mux */
843c66ec88fSEmmanuel Vadot	assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
844c66ec88fSEmmanuel Vadot				 <0>, /* Do Nothing */
845c66ec88fSEmmanuel Vadot				 <&clkc CLKID_VPU_0>,
846c66ec88fSEmmanuel Vadot				 <&clkc CLKID_FCLK_DIV4>,
847c66ec88fSEmmanuel Vadot				 <0>, /* Do Nothing */
848c66ec88fSEmmanuel Vadot				 <&clkc CLKID_VAPB_0>;
849c66ec88fSEmmanuel Vadot	assigned-clock-rates = <0>, /* Do Nothing */
850c66ec88fSEmmanuel Vadot			       <666666666>,
851c66ec88fSEmmanuel Vadot			       <0>, /* Do Nothing */
852c66ec88fSEmmanuel Vadot			       <0>, /* Do Nothing */
853c66ec88fSEmmanuel Vadot			       <250000000>,
854c66ec88fSEmmanuel Vadot			       <0>; /* Do Nothing */
855c66ec88fSEmmanuel Vadot};
856c66ec88fSEmmanuel Vadot
857c66ec88fSEmmanuel Vadot&saradc {
858c66ec88fSEmmanuel Vadot	compatible = "amlogic,meson-gxl-saradc", "amlogic,meson-saradc";
859c66ec88fSEmmanuel Vadot	clocks = <&xtal>,
860c66ec88fSEmmanuel Vadot		 <&clkc CLKID_SAR_ADC>,
861c66ec88fSEmmanuel Vadot		 <&clkc CLKID_SAR_ADC_CLK>,
862c66ec88fSEmmanuel Vadot		 <&clkc CLKID_SAR_ADC_SEL>;
863c66ec88fSEmmanuel Vadot	clock-names = "clkin", "core", "adc_clk", "adc_sel";
864c66ec88fSEmmanuel Vadot};
865c66ec88fSEmmanuel Vadot
866c66ec88fSEmmanuel Vadot&sd_emmc_a {
867c66ec88fSEmmanuel Vadot	clocks = <&clkc CLKID_SD_EMMC_A>,
868c66ec88fSEmmanuel Vadot		 <&clkc CLKID_SD_EMMC_A_CLK0>,
869c66ec88fSEmmanuel Vadot		 <&clkc CLKID_FCLK_DIV2>;
870c66ec88fSEmmanuel Vadot	clock-names = "core", "clkin0", "clkin1";
871c66ec88fSEmmanuel Vadot	resets = <&reset RESET_SD_EMMC_A>;
872c66ec88fSEmmanuel Vadot};
873c66ec88fSEmmanuel Vadot
874c66ec88fSEmmanuel Vadot&sd_emmc_b {
875c66ec88fSEmmanuel Vadot	clocks = <&clkc CLKID_SD_EMMC_B>,
876c66ec88fSEmmanuel Vadot		 <&clkc CLKID_SD_EMMC_B_CLK0>,
877c66ec88fSEmmanuel Vadot		 <&clkc CLKID_FCLK_DIV2>;
878c66ec88fSEmmanuel Vadot	clock-names = "core", "clkin0", "clkin1";
879c66ec88fSEmmanuel Vadot	resets = <&reset RESET_SD_EMMC_B>;
880c66ec88fSEmmanuel Vadot};
881c66ec88fSEmmanuel Vadot
882c66ec88fSEmmanuel Vadot&sd_emmc_c {
883c66ec88fSEmmanuel Vadot	clocks = <&clkc CLKID_SD_EMMC_C>,
884c66ec88fSEmmanuel Vadot		 <&clkc CLKID_SD_EMMC_C_CLK0>,
885c66ec88fSEmmanuel Vadot		 <&clkc CLKID_FCLK_DIV2>;
886c66ec88fSEmmanuel Vadot	clock-names = "core", "clkin0", "clkin1";
887c66ec88fSEmmanuel Vadot	resets = <&reset RESET_SD_EMMC_C>;
888c66ec88fSEmmanuel Vadot};
889c66ec88fSEmmanuel Vadot
890c66ec88fSEmmanuel Vadot&simplefb_hdmi {
891c66ec88fSEmmanuel Vadot	clocks = <&clkc CLKID_HDMI_PCLK>,
892c66ec88fSEmmanuel Vadot		 <&clkc CLKID_CLK81>,
893c66ec88fSEmmanuel Vadot		 <&clkc CLKID_GCLK_VENCI_INT0>;
894c66ec88fSEmmanuel Vadot};
895c66ec88fSEmmanuel Vadot
896c66ec88fSEmmanuel Vadot&spicc {
897c66ec88fSEmmanuel Vadot	clocks = <&clkc CLKID_SPICC>;
898c66ec88fSEmmanuel Vadot	clock-names = "core";
899c66ec88fSEmmanuel Vadot	resets = <&reset RESET_PERIPHS_SPICC>;
900c66ec88fSEmmanuel Vadot	num-cs = <1>;
901c66ec88fSEmmanuel Vadot};
902c66ec88fSEmmanuel Vadot
903c66ec88fSEmmanuel Vadot&spifc {
904c66ec88fSEmmanuel Vadot	clocks = <&clkc CLKID_SPI>;
905c66ec88fSEmmanuel Vadot};
906c66ec88fSEmmanuel Vadot
907c66ec88fSEmmanuel Vadot&uart_A {
908c66ec88fSEmmanuel Vadot	clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
909c66ec88fSEmmanuel Vadot	clock-names = "xtal", "pclk", "baud";
910c66ec88fSEmmanuel Vadot};
911c66ec88fSEmmanuel Vadot
912c66ec88fSEmmanuel Vadot&uart_AO {
913c66ec88fSEmmanuel Vadot	clocks = <&xtal>, <&clkc_AO CLKID_AO_UART1>, <&xtal>;
914c66ec88fSEmmanuel Vadot	clock-names = "xtal", "pclk", "baud";
915c66ec88fSEmmanuel Vadot};
916c66ec88fSEmmanuel Vadot
917c66ec88fSEmmanuel Vadot&uart_AO_B {
918c66ec88fSEmmanuel Vadot	clocks = <&xtal>, <&clkc_AO CLKID_AO_UART2>, <&xtal>;
919c66ec88fSEmmanuel Vadot	clock-names = "xtal", "pclk", "baud";
920c66ec88fSEmmanuel Vadot};
921c66ec88fSEmmanuel Vadot
922c66ec88fSEmmanuel Vadot&uart_B {
923c66ec88fSEmmanuel Vadot	clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
924c66ec88fSEmmanuel Vadot	clock-names = "xtal", "pclk", "baud";
925c66ec88fSEmmanuel Vadot};
926c66ec88fSEmmanuel Vadot
927c66ec88fSEmmanuel Vadot&uart_C {
928c66ec88fSEmmanuel Vadot	clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>;
929c66ec88fSEmmanuel Vadot	clock-names = "xtal", "pclk", "baud";
930c66ec88fSEmmanuel Vadot};
931c66ec88fSEmmanuel Vadot
932c66ec88fSEmmanuel Vadot&vpu {
933c66ec88fSEmmanuel Vadot	compatible = "amlogic,meson-gxl-vpu", "amlogic,meson-gx-vpu";
934c66ec88fSEmmanuel Vadot	power-domains = <&pwrc PWRC_GXBB_VPU_ID>;
935c66ec88fSEmmanuel Vadot};
936c66ec88fSEmmanuel Vadot
937c66ec88fSEmmanuel Vadot&vdec {
938c66ec88fSEmmanuel Vadot	compatible = "amlogic,gxl-vdec", "amlogic,gx-vdec";
939c66ec88fSEmmanuel Vadot	clocks = <&clkc CLKID_DOS_PARSER>,
940c66ec88fSEmmanuel Vadot		 <&clkc CLKID_DOS>,
941c66ec88fSEmmanuel Vadot		 <&clkc CLKID_VDEC_1>,
942c66ec88fSEmmanuel Vadot		 <&clkc CLKID_VDEC_HEVC>;
943c66ec88fSEmmanuel Vadot	clock-names = "dos_parser", "dos", "vdec_1", "vdec_hevc";
944c66ec88fSEmmanuel Vadot	resets = <&reset RESET_PARSER>;
945c66ec88fSEmmanuel Vadot	reset-names = "esparser";
946c66ec88fSEmmanuel Vadot};
947