xref: /rk3399_rockchip-uboot/arch/arm/dts/meson-gxbb.dtsi (revision 4a63a75c8313613da8f11b928c296ed7e08a9d67)
1bfcef28aSBeniamino Galvani/*
2bfcef28aSBeniamino Galvani * Copyright (c) 2016 Andreas Färber
3bfcef28aSBeniamino Galvani *
4bfcef28aSBeniamino Galvani * This file is dual-licensed: you can use it either under the terms
5bfcef28aSBeniamino Galvani * of the GPL or the X11 license, at your option. Note that this dual
6bfcef28aSBeniamino Galvani * licensing only applies to this file, and not this project as a
7bfcef28aSBeniamino Galvani * whole.
8bfcef28aSBeniamino Galvani *
9bfcef28aSBeniamino Galvani *  a) This library is free software; you can redistribute it and/or
10bfcef28aSBeniamino Galvani *     modify it under the terms of the GNU General Public License as
11bfcef28aSBeniamino Galvani *     published by the Free Software Foundation; either version 2 of the
12bfcef28aSBeniamino Galvani *     License, or (at your option) any later version.
13bfcef28aSBeniamino Galvani *
14bfcef28aSBeniamino Galvani *     This library is distributed in the hope that it will be useful,
15bfcef28aSBeniamino Galvani *     but WITHOUT ANY WARRANTY; without even the implied warranty of
16bfcef28aSBeniamino Galvani *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17bfcef28aSBeniamino Galvani *     GNU General Public License for more details.
18bfcef28aSBeniamino Galvani *
19bfcef28aSBeniamino Galvani * Or, alternatively,
20bfcef28aSBeniamino Galvani *
21bfcef28aSBeniamino Galvani *  b) Permission is hereby granted, free of charge, to any person
22bfcef28aSBeniamino Galvani *     obtaining a copy of this software and associated documentation
23bfcef28aSBeniamino Galvani *     files (the "Software"), to deal in the Software without
24bfcef28aSBeniamino Galvani *     restriction, including without limitation the rights to use,
25bfcef28aSBeniamino Galvani *     copy, modify, merge, publish, distribute, sublicense, and/or
26bfcef28aSBeniamino Galvani *     sell copies of the Software, and to permit persons to whom the
27bfcef28aSBeniamino Galvani *     Software is furnished to do so, subject to the following
28bfcef28aSBeniamino Galvani *     conditions:
29bfcef28aSBeniamino Galvani *
30bfcef28aSBeniamino Galvani *     The above copyright notice and this permission notice shall be
31bfcef28aSBeniamino Galvani *     included in all copies or substantial portions of the Software.
32bfcef28aSBeniamino Galvani *
33bfcef28aSBeniamino Galvani *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34bfcef28aSBeniamino Galvani *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35bfcef28aSBeniamino Galvani *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36bfcef28aSBeniamino Galvani *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37bfcef28aSBeniamino Galvani *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38bfcef28aSBeniamino Galvani *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39bfcef28aSBeniamino Galvani *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40bfcef28aSBeniamino Galvani *     OTHER DEALINGS IN THE SOFTWARE.
41bfcef28aSBeniamino Galvani */
42bfcef28aSBeniamino Galvani
43a3b02a1dSHeiner Kallweit#include "meson-gx.dtsi"
44dd83840eSBeniamino Galvani#include <dt-bindings/gpio/meson-gxbb-gpio.h>
45dd83840eSBeniamino Galvani#include <dt-bindings/reset/amlogic,meson-gxbb-reset.h>
46a3b02a1dSHeiner Kallweit#include <dt-bindings/clock/gxbb-clkc.h>
47a3b02a1dSHeiner Kallweit#include <dt-bindings/clock/gxbb-aoclkc.h>
48a3b02a1dSHeiner Kallweit#include <dt-bindings/reset/gxbb-aoclkc.h>
49bfcef28aSBeniamino Galvani
50bfcef28aSBeniamino Galvani/ {
51bfcef28aSBeniamino Galvani	compatible = "amlogic,meson-gxbb";
52bfcef28aSBeniamino Galvani
53bfcef28aSBeniamino Galvani	soc {
54a3b02a1dSHeiner Kallweit		usb0_phy: phy@c0000000 {
55a3b02a1dSHeiner Kallweit			compatible = "amlogic,meson-gxbb-usb2-phy";
56a3b02a1dSHeiner Kallweit			#phy-cells = <0>;
57a3b02a1dSHeiner Kallweit			reg = <0x0 0xc0000000 0x0 0x20>;
58a3b02a1dSHeiner Kallweit			resets = <&reset RESET_USB_OTG>;
59a3b02a1dSHeiner Kallweit			clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB0>;
60a3b02a1dSHeiner Kallweit			clock-names = "usb_general", "usb";
61bfcef28aSBeniamino Galvani			status = "disabled";
62bfcef28aSBeniamino Galvani		};
63dd83840eSBeniamino Galvani
64a3b02a1dSHeiner Kallweit		usb1_phy: phy@c0000020 {
65a3b02a1dSHeiner Kallweit			compatible = "amlogic,meson-gxbb-usb2-phy";
66a3b02a1dSHeiner Kallweit			#phy-cells = <0>;
67a3b02a1dSHeiner Kallweit			reg = <0x0 0xc0000020 0x0 0x20>;
68a3b02a1dSHeiner Kallweit			resets = <&reset RESET_USB_OTG>;
69a3b02a1dSHeiner Kallweit			clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1>;
70a3b02a1dSHeiner Kallweit			clock-names = "usb_general", "usb";
71dd83840eSBeniamino Galvani			status = "disabled";
72dd83840eSBeniamino Galvani		};
73dd83840eSBeniamino Galvani
74a3b02a1dSHeiner Kallweit		usb0: usb@c9000000 {
75a3b02a1dSHeiner Kallweit			compatible = "amlogic,meson-gxbb-usb", "snps,dwc2";
76a3b02a1dSHeiner Kallweit			reg = <0x0 0xc9000000 0x0 0x40000>;
77a3b02a1dSHeiner Kallweit			interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
78a3b02a1dSHeiner Kallweit			clocks = <&clkc CLKID_USB0_DDR_BRIDGE>;
79a3b02a1dSHeiner Kallweit			clock-names = "otg";
80a3b02a1dSHeiner Kallweit			phys = <&usb0_phy>;
81a3b02a1dSHeiner Kallweit			phy-names = "usb2-phy";
82a3b02a1dSHeiner Kallweit			dr_mode = "host";
83a3b02a1dSHeiner Kallweit			status = "disabled";
84a3b02a1dSHeiner Kallweit		};
85a3b02a1dSHeiner Kallweit
86a3b02a1dSHeiner Kallweit		usb1: usb@c9100000 {
87a3b02a1dSHeiner Kallweit			compatible = "amlogic,meson-gxbb-usb", "snps,dwc2";
88a3b02a1dSHeiner Kallweit			reg = <0x0 0xc9100000 0x0 0x40000>;
89a3b02a1dSHeiner Kallweit			interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
90a3b02a1dSHeiner Kallweit			clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
91a3b02a1dSHeiner Kallweit			clock-names = "otg";
92a3b02a1dSHeiner Kallweit			phys = <&usb1_phy>;
93a3b02a1dSHeiner Kallweit			phy-names = "usb2-phy";
94a3b02a1dSHeiner Kallweit			dr_mode = "host";
95a3b02a1dSHeiner Kallweit			status = "disabled";
96a3b02a1dSHeiner Kallweit		};
97a3b02a1dSHeiner Kallweit	};
98a3b02a1dSHeiner Kallweit};
99a3b02a1dSHeiner Kallweit
100a3b02a1dSHeiner Kallweit&ethmac {
101a3b02a1dSHeiner Kallweit	clocks = <&clkc CLKID_ETH>,
102a3b02a1dSHeiner Kallweit		 <&clkc CLKID_FCLK_DIV2>,
103a3b02a1dSHeiner Kallweit		 <&clkc CLKID_MPLL2>;
104a3b02a1dSHeiner Kallweit	clock-names = "stmmaceth", "clkin0", "clkin1";
105bfcef28aSBeniamino Galvani};
106bfcef28aSBeniamino Galvani
107a3b02a1dSHeiner Kallweit&aobus {
108dd83840eSBeniamino Galvani	pinctrl_aobus: pinctrl@14 {
109dd83840eSBeniamino Galvani		compatible = "amlogic,meson-gxbb-aobus-pinctrl";
110dd83840eSBeniamino Galvani		#address-cells = <2>;
111dd83840eSBeniamino Galvani		#size-cells = <2>;
112dd83840eSBeniamino Galvani		ranges;
113dd83840eSBeniamino Galvani
114dd83840eSBeniamino Galvani		gpio_ao: bank@14 {
115dd83840eSBeniamino Galvani			reg = <0x0 0x00014 0x0 0x8>,
116dd83840eSBeniamino Galvani			      <0x0 0x0002c 0x0 0x4>,
117dd83840eSBeniamino Galvani			      <0x0 0x00024 0x0 0x8>;
118dd83840eSBeniamino Galvani			reg-names = "mux", "pull", "gpio";
119dd83840eSBeniamino Galvani			gpio-controller;
120dd83840eSBeniamino Galvani			#gpio-cells = <2>;
121*4a63a75cSBeniamino Galvani			gpio-ranges = <&pinctrl_aobus 0 0 14>;
122dd83840eSBeniamino Galvani		};
123dd83840eSBeniamino Galvani
124dd83840eSBeniamino Galvani		uart_ao_a_pins: uart_ao_a {
125dd83840eSBeniamino Galvani			mux {
126dd83840eSBeniamino Galvani				groups = "uart_tx_ao_a", "uart_rx_ao_a";
127dd83840eSBeniamino Galvani				function = "uart_ao";
128dd83840eSBeniamino Galvani			};
129dd83840eSBeniamino Galvani		};
130a3b02a1dSHeiner Kallweit
131a3b02a1dSHeiner Kallweit		uart_ao_a_cts_rts_pins: uart_ao_a_cts_rts {
132a3b02a1dSHeiner Kallweit			mux {
133a3b02a1dSHeiner Kallweit				groups = "uart_cts_ao_a",
134a3b02a1dSHeiner Kallweit				       "uart_rts_ao_a";
135a3b02a1dSHeiner Kallweit				function = "uart_ao";
136a3b02a1dSHeiner Kallweit			};
137dd83840eSBeniamino Galvani		};
138dd83840eSBeniamino Galvani
139a3b02a1dSHeiner Kallweit		uart_ao_b_pins: uart_ao_b {
140a3b02a1dSHeiner Kallweit			mux {
141a3b02a1dSHeiner Kallweit				groups = "uart_tx_ao_b", "uart_rx_ao_b";
142a3b02a1dSHeiner Kallweit				function = "uart_ao_b";
143a3b02a1dSHeiner Kallweit			};
144a3b02a1dSHeiner Kallweit		};
145a3b02a1dSHeiner Kallweit
146a3b02a1dSHeiner Kallweit		uart_ao_b_cts_rts_pins: uart_ao_b_cts_rts {
147a3b02a1dSHeiner Kallweit			mux {
148a3b02a1dSHeiner Kallweit				groups = "uart_cts_ao_b",
149a3b02a1dSHeiner Kallweit				       "uart_rts_ao_b";
150a3b02a1dSHeiner Kallweit				function = "uart_ao_b";
151a3b02a1dSHeiner Kallweit			};
152a3b02a1dSHeiner Kallweit		};
153a3b02a1dSHeiner Kallweit
154a3b02a1dSHeiner Kallweit		remote_input_ao_pins: remote_input_ao {
155a3b02a1dSHeiner Kallweit			mux {
156a3b02a1dSHeiner Kallweit				groups = "remote_input_ao";
157a3b02a1dSHeiner Kallweit				function = "remote_input_ao";
158a3b02a1dSHeiner Kallweit			};
159a3b02a1dSHeiner Kallweit		};
160a3b02a1dSHeiner Kallweit
161a3b02a1dSHeiner Kallweit		i2c_ao_pins: i2c_ao {
162a3b02a1dSHeiner Kallweit			mux {
163a3b02a1dSHeiner Kallweit				groups = "i2c_sck_ao",
164a3b02a1dSHeiner Kallweit				       "i2c_sda_ao";
165a3b02a1dSHeiner Kallweit				function = "i2c_ao";
166a3b02a1dSHeiner Kallweit			};
167a3b02a1dSHeiner Kallweit		};
168a3b02a1dSHeiner Kallweit
169a3b02a1dSHeiner Kallweit		pwm_ao_a_3_pins: pwm_ao_a_3 {
170a3b02a1dSHeiner Kallweit			mux {
171a3b02a1dSHeiner Kallweit				groups = "pwm_ao_a_3";
172a3b02a1dSHeiner Kallweit				function = "pwm_ao_a_3";
173a3b02a1dSHeiner Kallweit			};
174a3b02a1dSHeiner Kallweit		};
175a3b02a1dSHeiner Kallweit
176a3b02a1dSHeiner Kallweit		pwm_ao_a_6_pins: pwm_ao_a_6 {
177a3b02a1dSHeiner Kallweit			mux {
178a3b02a1dSHeiner Kallweit				groups = "pwm_ao_a_6";
179a3b02a1dSHeiner Kallweit				function = "pwm_ao_a_6";
180a3b02a1dSHeiner Kallweit			};
181a3b02a1dSHeiner Kallweit		};
182a3b02a1dSHeiner Kallweit
183a3b02a1dSHeiner Kallweit		pwm_ao_a_12_pins: pwm_ao_a_12 {
184a3b02a1dSHeiner Kallweit			mux {
185a3b02a1dSHeiner Kallweit				groups = "pwm_ao_a_12";
186a3b02a1dSHeiner Kallweit				function = "pwm_ao_a_12";
187a3b02a1dSHeiner Kallweit			};
188a3b02a1dSHeiner Kallweit		};
189a3b02a1dSHeiner Kallweit
190a3b02a1dSHeiner Kallweit		pwm_ao_b_pins: pwm_ao_b {
191a3b02a1dSHeiner Kallweit			mux {
192a3b02a1dSHeiner Kallweit				groups = "pwm_ao_b";
193a3b02a1dSHeiner Kallweit				function = "pwm_ao_b";
194a3b02a1dSHeiner Kallweit			};
195a3b02a1dSHeiner Kallweit		};
196*4a63a75cSBeniamino Galvani
197*4a63a75cSBeniamino Galvani		i2s_am_clk_pins: i2s_am_clk {
198*4a63a75cSBeniamino Galvani			mux {
199*4a63a75cSBeniamino Galvani				groups = "i2s_am_clk";
200*4a63a75cSBeniamino Galvani				function = "i2s_out_ao";
201*4a63a75cSBeniamino Galvani			};
202a3b02a1dSHeiner Kallweit		};
203a3b02a1dSHeiner Kallweit
204*4a63a75cSBeniamino Galvani		i2s_out_ao_clk_pins: i2s_out_ao_clk {
205*4a63a75cSBeniamino Galvani			mux {
206*4a63a75cSBeniamino Galvani				groups = "i2s_out_ao_clk";
207*4a63a75cSBeniamino Galvani				function = "i2s_out_ao";
208*4a63a75cSBeniamino Galvani			};
209a3b02a1dSHeiner Kallweit		};
210a3b02a1dSHeiner Kallweit
211*4a63a75cSBeniamino Galvani		i2s_out_lr_clk_pins: i2s_out_lr_clk {
212*4a63a75cSBeniamino Galvani			mux {
213*4a63a75cSBeniamino Galvani				groups = "i2s_out_lr_clk";
214*4a63a75cSBeniamino Galvani				function = "i2s_out_ao";
215*4a63a75cSBeniamino Galvani			};
216a3b02a1dSHeiner Kallweit		};
217a3b02a1dSHeiner Kallweit
218*4a63a75cSBeniamino Galvani		i2s_out_ch01_ao_pins: i2s_out_ch01_ao {
219*4a63a75cSBeniamino Galvani			mux {
220*4a63a75cSBeniamino Galvani				groups = "i2s_out_ch01_ao";
221*4a63a75cSBeniamino Galvani				function = "i2s_out_ao";
222*4a63a75cSBeniamino Galvani			};
223*4a63a75cSBeniamino Galvani		};
224*4a63a75cSBeniamino Galvani
225*4a63a75cSBeniamino Galvani		i2s_out_ch23_ao_pins: i2s_out_ch23_ao {
226*4a63a75cSBeniamino Galvani			mux {
227*4a63a75cSBeniamino Galvani				groups = "i2s_out_ch23_ao";
228*4a63a75cSBeniamino Galvani				function = "i2s_out_ao";
229*4a63a75cSBeniamino Galvani			};
230*4a63a75cSBeniamino Galvani		};
231*4a63a75cSBeniamino Galvani
232*4a63a75cSBeniamino Galvani		i2s_out_ch45_ao_pins: i2s_out_ch45_ao {
233*4a63a75cSBeniamino Galvani			mux {
234*4a63a75cSBeniamino Galvani				groups = "i2s_out_ch45_ao";
235*4a63a75cSBeniamino Galvani				function = "i2s_out_ao";
236*4a63a75cSBeniamino Galvani			};
237*4a63a75cSBeniamino Galvani		};
238*4a63a75cSBeniamino Galvani
239*4a63a75cSBeniamino Galvani		spdif_out_ao_6_pins: spdif_out_ao_6 {
240*4a63a75cSBeniamino Galvani			mux {
241*4a63a75cSBeniamino Galvani				groups = "spdif_out_ao_6";
242*4a63a75cSBeniamino Galvani				function = "spdif_out_ao";
243*4a63a75cSBeniamino Galvani			};
244*4a63a75cSBeniamino Galvani		};
245*4a63a75cSBeniamino Galvani
246*4a63a75cSBeniamino Galvani		spdif_out_ao_13_pins: spdif_out_ao_13 {
247*4a63a75cSBeniamino Galvani			mux {
248*4a63a75cSBeniamino Galvani				groups = "spdif_out_ao_13";
249*4a63a75cSBeniamino Galvani				function = "spdif_out_ao";
250*4a63a75cSBeniamino Galvani			};
251*4a63a75cSBeniamino Galvani		};
252bfcef28aSBeniamino Galvani	};
253bfcef28aSBeniamino Galvani};
254bfcef28aSBeniamino Galvani
255a3b02a1dSHeiner Kallweit&periphs {
256dd83840eSBeniamino Galvani	pinctrl_periphs: pinctrl@4b0 {
257dd83840eSBeniamino Galvani		compatible = "amlogic,meson-gxbb-periphs-pinctrl";
258dd83840eSBeniamino Galvani		#address-cells = <2>;
259dd83840eSBeniamino Galvani		#size-cells = <2>;
260dd83840eSBeniamino Galvani		ranges;
261dd83840eSBeniamino Galvani
262dd83840eSBeniamino Galvani		gpio: bank@4b0 {
263dd83840eSBeniamino Galvani			reg = <0x0 0x004b0 0x0 0x28>,
264dd83840eSBeniamino Galvani			      <0x0 0x004e8 0x0 0x14>,
265dd83840eSBeniamino Galvani			      <0x0 0x00120 0x0 0x14>,
266dd83840eSBeniamino Galvani			      <0x0 0x00430 0x0 0x40>;
267dd83840eSBeniamino Galvani			reg-names = "mux", "pull", "pull-enable", "gpio";
268dd83840eSBeniamino Galvani			gpio-controller;
269dd83840eSBeniamino Galvani			#gpio-cells = <2>;
270*4a63a75cSBeniamino Galvani			gpio-ranges = <&pinctrl_periphs 0 14 120>;
271dd83840eSBeniamino Galvani		};
272dd83840eSBeniamino Galvani
273dd83840eSBeniamino Galvani		emmc_pins: emmc {
274dd83840eSBeniamino Galvani			mux {
275dd83840eSBeniamino Galvani				groups = "emmc_nand_d07",
276dd83840eSBeniamino Galvani				       "emmc_cmd",
277a3b02a1dSHeiner Kallweit				       "emmc_clk",
278a3b02a1dSHeiner Kallweit				       "emmc_ds";
279dd83840eSBeniamino Galvani				function = "emmc";
280dd83840eSBeniamino Galvani			};
281dd83840eSBeniamino Galvani		};
282dd83840eSBeniamino Galvani
283a3b02a1dSHeiner Kallweit		nor_pins: nor {
284a3b02a1dSHeiner Kallweit			mux {
285a3b02a1dSHeiner Kallweit				groups = "nor_d",
286a3b02a1dSHeiner Kallweit				       "nor_q",
287a3b02a1dSHeiner Kallweit				       "nor_c",
288a3b02a1dSHeiner Kallweit				       "nor_cs";
289a3b02a1dSHeiner Kallweit				function = "nor";
290a3b02a1dSHeiner Kallweit			};
291a3b02a1dSHeiner Kallweit		};
292a3b02a1dSHeiner Kallweit
293dd83840eSBeniamino Galvani		sdcard_pins: sdcard {
294dd83840eSBeniamino Galvani			mux {
295dd83840eSBeniamino Galvani				groups = "sdcard_d0",
296dd83840eSBeniamino Galvani				       "sdcard_d1",
297dd83840eSBeniamino Galvani				       "sdcard_d2",
298dd83840eSBeniamino Galvani				       "sdcard_d3",
299dd83840eSBeniamino Galvani				       "sdcard_cmd",
300dd83840eSBeniamino Galvani				       "sdcard_clk";
301dd83840eSBeniamino Galvani				function = "sdcard";
302dd83840eSBeniamino Galvani			};
303dd83840eSBeniamino Galvani		};
304dd83840eSBeniamino Galvani
305a3b02a1dSHeiner Kallweit		sdio_pins: sdio {
306a3b02a1dSHeiner Kallweit			mux {
307a3b02a1dSHeiner Kallweit				groups = "sdio_d0",
308a3b02a1dSHeiner Kallweit				       "sdio_d1",
309a3b02a1dSHeiner Kallweit				       "sdio_d2",
310a3b02a1dSHeiner Kallweit				       "sdio_d3",
311a3b02a1dSHeiner Kallweit				       "sdio_cmd",
312a3b02a1dSHeiner Kallweit				       "sdio_clk";
313a3b02a1dSHeiner Kallweit				function = "sdio";
314a3b02a1dSHeiner Kallweit			};
315a3b02a1dSHeiner Kallweit		};
316a3b02a1dSHeiner Kallweit
317a3b02a1dSHeiner Kallweit		sdio_irq_pins: sdio_irq {
318a3b02a1dSHeiner Kallweit			mux {
319a3b02a1dSHeiner Kallweit				groups = "sdio_irq";
320a3b02a1dSHeiner Kallweit				function = "sdio";
321a3b02a1dSHeiner Kallweit			};
322a3b02a1dSHeiner Kallweit		};
323a3b02a1dSHeiner Kallweit
324dd83840eSBeniamino Galvani		uart_a_pins: uart_a {
325dd83840eSBeniamino Galvani			mux {
326dd83840eSBeniamino Galvani				groups = "uart_tx_a",
327dd83840eSBeniamino Galvani				       "uart_rx_a";
328dd83840eSBeniamino Galvani				function = "uart_a";
329dd83840eSBeniamino Galvani			};
330dd83840eSBeniamino Galvani		};
331dd83840eSBeniamino Galvani
332a3b02a1dSHeiner Kallweit		uart_a_cts_rts_pins: uart_a_cts_rts {
333a3b02a1dSHeiner Kallweit			mux {
334a3b02a1dSHeiner Kallweit				groups = "uart_cts_a",
335a3b02a1dSHeiner Kallweit				       "uart_rts_a";
336a3b02a1dSHeiner Kallweit				function = "uart_a";
337a3b02a1dSHeiner Kallweit			};
338a3b02a1dSHeiner Kallweit		};
339a3b02a1dSHeiner Kallweit
340dd83840eSBeniamino Galvani		uart_b_pins: uart_b {
341dd83840eSBeniamino Galvani			mux {
342dd83840eSBeniamino Galvani				groups = "uart_tx_b",
343dd83840eSBeniamino Galvani				       "uart_rx_b";
344dd83840eSBeniamino Galvani				function = "uart_b";
345dd83840eSBeniamino Galvani			};
346dd83840eSBeniamino Galvani		};
347dd83840eSBeniamino Galvani
348a3b02a1dSHeiner Kallweit		uart_b_cts_rts_pins: uart_b_cts_rts {
349a3b02a1dSHeiner Kallweit			mux {
350a3b02a1dSHeiner Kallweit				groups = "uart_cts_b",
351a3b02a1dSHeiner Kallweit				       "uart_rts_b";
352a3b02a1dSHeiner Kallweit				function = "uart_b";
353a3b02a1dSHeiner Kallweit			};
354a3b02a1dSHeiner Kallweit		};
355a3b02a1dSHeiner Kallweit
356dd83840eSBeniamino Galvani		uart_c_pins: uart_c {
357dd83840eSBeniamino Galvani			mux {
358dd83840eSBeniamino Galvani				groups = "uart_tx_c",
359dd83840eSBeniamino Galvani				       "uart_rx_c";
360dd83840eSBeniamino Galvani				function = "uart_c";
361dd83840eSBeniamino Galvani			};
362dd83840eSBeniamino Galvani		};
363dd83840eSBeniamino Galvani
364a3b02a1dSHeiner Kallweit		uart_c_cts_rts_pins: uart_c_cts_rts {
365a3b02a1dSHeiner Kallweit			mux {
366a3b02a1dSHeiner Kallweit				groups = "uart_cts_c",
367a3b02a1dSHeiner Kallweit				       "uart_rts_c";
368a3b02a1dSHeiner Kallweit				function = "uart_c";
369a3b02a1dSHeiner Kallweit			};
370a3b02a1dSHeiner Kallweit		};
371a3b02a1dSHeiner Kallweit
372a3b02a1dSHeiner Kallweit		i2c_a_pins: i2c_a {
373a3b02a1dSHeiner Kallweit			mux {
374a3b02a1dSHeiner Kallweit				groups = "i2c_sck_a",
375a3b02a1dSHeiner Kallweit				       "i2c_sda_a";
376a3b02a1dSHeiner Kallweit				function = "i2c_a";
377a3b02a1dSHeiner Kallweit			};
378a3b02a1dSHeiner Kallweit		};
379a3b02a1dSHeiner Kallweit
380a3b02a1dSHeiner Kallweit		i2c_b_pins: i2c_b {
381a3b02a1dSHeiner Kallweit			mux {
382a3b02a1dSHeiner Kallweit				groups = "i2c_sck_b",
383a3b02a1dSHeiner Kallweit				       "i2c_sda_b";
384a3b02a1dSHeiner Kallweit				function = "i2c_b";
385a3b02a1dSHeiner Kallweit			};
386a3b02a1dSHeiner Kallweit		};
387a3b02a1dSHeiner Kallweit
388a3b02a1dSHeiner Kallweit		i2c_c_pins: i2c_c {
389a3b02a1dSHeiner Kallweit			mux {
390a3b02a1dSHeiner Kallweit				groups = "i2c_sck_c",
391a3b02a1dSHeiner Kallweit				       "i2c_sda_c";
392a3b02a1dSHeiner Kallweit				function = "i2c_c";
393a3b02a1dSHeiner Kallweit			};
394a3b02a1dSHeiner Kallweit		};
395a3b02a1dSHeiner Kallweit
396a3b02a1dSHeiner Kallweit		eth_rgmii_pins: eth-rgmii {
397dd83840eSBeniamino Galvani			mux {
398dd83840eSBeniamino Galvani				groups = "eth_mdio",
399dd83840eSBeniamino Galvani				       "eth_mdc",
400dd83840eSBeniamino Galvani				       "eth_clk_rx_clk",
401dd83840eSBeniamino Galvani				       "eth_rx_dv",
402dd83840eSBeniamino Galvani				       "eth_rxd0",
403dd83840eSBeniamino Galvani				       "eth_rxd1",
404dd83840eSBeniamino Galvani				       "eth_rxd2",
405dd83840eSBeniamino Galvani				       "eth_rxd3",
406dd83840eSBeniamino Galvani				       "eth_rgmii_tx_clk",
407dd83840eSBeniamino Galvani				       "eth_tx_en",
408dd83840eSBeniamino Galvani				       "eth_txd0",
409dd83840eSBeniamino Galvani				       "eth_txd1",
410dd83840eSBeniamino Galvani				       "eth_txd2",
411dd83840eSBeniamino Galvani				       "eth_txd3";
412dd83840eSBeniamino Galvani				function = "eth";
413dd83840eSBeniamino Galvani			};
414dd83840eSBeniamino Galvani		};
415a3b02a1dSHeiner Kallweit
416a3b02a1dSHeiner Kallweit		eth_rmii_pins: eth-rmii {
417a3b02a1dSHeiner Kallweit			mux {
418a3b02a1dSHeiner Kallweit				groups = "eth_mdio",
419a3b02a1dSHeiner Kallweit				       "eth_mdc",
420a3b02a1dSHeiner Kallweit				       "eth_clk_rx_clk",
421a3b02a1dSHeiner Kallweit				       "eth_rx_dv",
422a3b02a1dSHeiner Kallweit				       "eth_rxd0",
423a3b02a1dSHeiner Kallweit				       "eth_rxd1",
424a3b02a1dSHeiner Kallweit				       "eth_tx_en",
425a3b02a1dSHeiner Kallweit				       "eth_txd0",
426a3b02a1dSHeiner Kallweit				       "eth_txd1";
427a3b02a1dSHeiner Kallweit				function = "eth";
428dd83840eSBeniamino Galvani			};
429dd83840eSBeniamino Galvani		};
430dd83840eSBeniamino Galvani
431a3b02a1dSHeiner Kallweit		pwm_a_x_pins: pwm_a_x {
432a3b02a1dSHeiner Kallweit			mux {
433a3b02a1dSHeiner Kallweit				groups = "pwm_a_x";
434a3b02a1dSHeiner Kallweit				function = "pwm_a_x";
435a3b02a1dSHeiner Kallweit			};
436a3b02a1dSHeiner Kallweit		};
437dd83840eSBeniamino Galvani
438a3b02a1dSHeiner Kallweit		pwm_a_y_pins: pwm_a_y {
439a3b02a1dSHeiner Kallweit			mux {
440a3b02a1dSHeiner Kallweit				groups = "pwm_a_y";
441a3b02a1dSHeiner Kallweit				function = "pwm_a_y";
442a3b02a1dSHeiner Kallweit			};
443a3b02a1dSHeiner Kallweit		};
444a3b02a1dSHeiner Kallweit
445a3b02a1dSHeiner Kallweit		pwm_b_pins: pwm_b {
446a3b02a1dSHeiner Kallweit			mux {
447a3b02a1dSHeiner Kallweit				groups = "pwm_b";
448a3b02a1dSHeiner Kallweit				function = "pwm_b";
449a3b02a1dSHeiner Kallweit			};
450a3b02a1dSHeiner Kallweit		};
451a3b02a1dSHeiner Kallweit
452a3b02a1dSHeiner Kallweit		pwm_d_pins: pwm_d {
453a3b02a1dSHeiner Kallweit			mux {
454a3b02a1dSHeiner Kallweit				groups = "pwm_d";
455a3b02a1dSHeiner Kallweit				function = "pwm_d";
456a3b02a1dSHeiner Kallweit			};
457a3b02a1dSHeiner Kallweit		};
458a3b02a1dSHeiner Kallweit
459a3b02a1dSHeiner Kallweit		pwm_e_pins: pwm_e {
460a3b02a1dSHeiner Kallweit			mux {
461a3b02a1dSHeiner Kallweit				groups = "pwm_e";
462a3b02a1dSHeiner Kallweit				function = "pwm_e";
463a3b02a1dSHeiner Kallweit			};
464a3b02a1dSHeiner Kallweit		};
465a3b02a1dSHeiner Kallweit
466a3b02a1dSHeiner Kallweit		pwm_f_x_pins: pwm_f_x {
467a3b02a1dSHeiner Kallweit			mux {
468a3b02a1dSHeiner Kallweit				groups = "pwm_f_x";
469a3b02a1dSHeiner Kallweit				function = "pwm_f_x";
470a3b02a1dSHeiner Kallweit			};
471a3b02a1dSHeiner Kallweit		};
472a3b02a1dSHeiner Kallweit
473a3b02a1dSHeiner Kallweit		pwm_f_y_pins: pwm_f_y {
474a3b02a1dSHeiner Kallweit			mux {
475a3b02a1dSHeiner Kallweit				groups = "pwm_f_y";
476a3b02a1dSHeiner Kallweit				function = "pwm_f_y";
477a3b02a1dSHeiner Kallweit			};
478a3b02a1dSHeiner Kallweit		};
479a3b02a1dSHeiner Kallweit
480a3b02a1dSHeiner Kallweit		hdmi_hpd_pins: hdmi_hpd {
481a3b02a1dSHeiner Kallweit			mux {
482a3b02a1dSHeiner Kallweit				groups = "hdmi_hpd";
483a3b02a1dSHeiner Kallweit				function = "hdmi_hpd";
484a3b02a1dSHeiner Kallweit			};
485a3b02a1dSHeiner Kallweit		};
486a3b02a1dSHeiner Kallweit
487a3b02a1dSHeiner Kallweit		hdmi_i2c_pins: hdmi_i2c {
488a3b02a1dSHeiner Kallweit			mux {
489a3b02a1dSHeiner Kallweit				groups = "hdmi_sda", "hdmi_scl";
490a3b02a1dSHeiner Kallweit				function = "hdmi_i2c";
491a3b02a1dSHeiner Kallweit			};
492a3b02a1dSHeiner Kallweit		};
493*4a63a75cSBeniamino Galvani
494*4a63a75cSBeniamino Galvani		i2sout_ch23_y_pins: i2sout_ch23_y {
495*4a63a75cSBeniamino Galvani			mux {
496*4a63a75cSBeniamino Galvani				groups = "i2sout_ch23_y";
497*4a63a75cSBeniamino Galvani				function = "i2s_out";
498*4a63a75cSBeniamino Galvani			};
499*4a63a75cSBeniamino Galvani		};
500*4a63a75cSBeniamino Galvani
501*4a63a75cSBeniamino Galvani		i2sout_ch45_y_pins: i2sout_ch45_y {
502*4a63a75cSBeniamino Galvani			mux {
503*4a63a75cSBeniamino Galvani				groups = "i2sout_ch45_y";
504*4a63a75cSBeniamino Galvani				function = "i2s_out";
505*4a63a75cSBeniamino Galvani			};
506*4a63a75cSBeniamino Galvani		};
507*4a63a75cSBeniamino Galvani
508*4a63a75cSBeniamino Galvani		i2sout_ch67_y_pins: i2sout_ch67_y {
509*4a63a75cSBeniamino Galvani			mux {
510*4a63a75cSBeniamino Galvani				groups = "i2sout_ch67_y";
511*4a63a75cSBeniamino Galvani				function = "i2s_out";
512*4a63a75cSBeniamino Galvani			};
513*4a63a75cSBeniamino Galvani		};
514*4a63a75cSBeniamino Galvani
515*4a63a75cSBeniamino Galvani		spdif_out_y_pins: spdif_out_y {
516*4a63a75cSBeniamino Galvani			mux {
517*4a63a75cSBeniamino Galvani				groups = "spdif_out_y";
518*4a63a75cSBeniamino Galvani				function = "spdif_out";
519*4a63a75cSBeniamino Galvani			};
520*4a63a75cSBeniamino Galvani		};
521a3b02a1dSHeiner Kallweit	};
522a3b02a1dSHeiner Kallweit};
523a3b02a1dSHeiner Kallweit
524a3b02a1dSHeiner Kallweit&hiubus {
525dd83840eSBeniamino Galvani	clkc: clock-controller@0 {
526dd83840eSBeniamino Galvani		compatible = "amlogic,gxbb-clkc";
527dd83840eSBeniamino Galvani		#clock-cells = <1>;
528dd83840eSBeniamino Galvani		reg = <0x0 0x0 0x0 0x3db>;
529dd83840eSBeniamino Galvani	};
530dd83840eSBeniamino Galvani};
531dd83840eSBeniamino Galvani
532*4a63a75cSBeniamino Galvani&apb {
533*4a63a75cSBeniamino Galvani	mali: gpu@c0000 {
534*4a63a75cSBeniamino Galvani		compatible = "amlogic,meson-gxbb-mali", "arm,mali-450";
535*4a63a75cSBeniamino Galvani		reg = <0x0 0xc0000 0x0 0x40000>;
536*4a63a75cSBeniamino Galvani		interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
537*4a63a75cSBeniamino Galvani			     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
538*4a63a75cSBeniamino Galvani			     <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
539*4a63a75cSBeniamino Galvani			     <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
540*4a63a75cSBeniamino Galvani			     <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
541*4a63a75cSBeniamino Galvani			     <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
542*4a63a75cSBeniamino Galvani			     <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>,
543*4a63a75cSBeniamino Galvani			     <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
544*4a63a75cSBeniamino Galvani			     <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
545*4a63a75cSBeniamino Galvani			     <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
546*4a63a75cSBeniamino Galvani		interrupt-names = "gp", "gpmmu", "pp", "pmu",
547*4a63a75cSBeniamino Galvani			"pp0", "ppmmu0", "pp1", "ppmmu1",
548*4a63a75cSBeniamino Galvani			"pp2", "ppmmu2";
549*4a63a75cSBeniamino Galvani		clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>;
550*4a63a75cSBeniamino Galvani		clock-names = "bus", "core";
551*4a63a75cSBeniamino Galvani
552*4a63a75cSBeniamino Galvani		/*
553*4a63a75cSBeniamino Galvani		 * Mali clocking is provided by two identical clock paths
554*4a63a75cSBeniamino Galvani		 * MALI_0 and MALI_1 muxed to a single clock by a glitch
555*4a63a75cSBeniamino Galvani		 * free mux to safely change frequency while running.
556*4a63a75cSBeniamino Galvani		 */
557*4a63a75cSBeniamino Galvani		assigned-clocks = <&clkc CLKID_MALI_0_SEL>,
558*4a63a75cSBeniamino Galvani				  <&clkc CLKID_MALI_0>,
559*4a63a75cSBeniamino Galvani				  <&clkc CLKID_MALI>; /* Glitch free mux */
560*4a63a75cSBeniamino Galvani		assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
561*4a63a75cSBeniamino Galvani					 <0>, /* Do Nothing */
562*4a63a75cSBeniamino Galvani					 <&clkc CLKID_MALI_0>;
563*4a63a75cSBeniamino Galvani		assigned-clock-rates = <0>, /* Do Nothing */
564*4a63a75cSBeniamino Galvani				       <666666666>,
565*4a63a75cSBeniamino Galvani				       <0>; /* Do Nothing */
566*4a63a75cSBeniamino Galvani	};
567*4a63a75cSBeniamino Galvani};
568*4a63a75cSBeniamino Galvani
569a3b02a1dSHeiner Kallweit&i2c_A {
570a3b02a1dSHeiner Kallweit	clocks = <&clkc CLKID_I2C>;
571bfcef28aSBeniamino Galvani};
572dd83840eSBeniamino Galvani
573*4a63a75cSBeniamino Galvani&i2c_AO {
574*4a63a75cSBeniamino Galvani	clocks = <&clkc CLKID_AO_I2C>;
575*4a63a75cSBeniamino Galvani};
576*4a63a75cSBeniamino Galvani
577a3b02a1dSHeiner Kallweit&i2c_B {
578a3b02a1dSHeiner Kallweit	clocks = <&clkc CLKID_I2C>;
579dd83840eSBeniamino Galvani};
580a3b02a1dSHeiner Kallweit
581a3b02a1dSHeiner Kallweit&i2c_C {
582a3b02a1dSHeiner Kallweit	clocks = <&clkc CLKID_I2C>;
583bfcef28aSBeniamino Galvani};
584a3b02a1dSHeiner Kallweit
585*4a63a75cSBeniamino Galvani&saradc {
586*4a63a75cSBeniamino Galvani	compatible = "amlogic,meson-gxbb-saradc", "amlogic,meson-saradc";
587*4a63a75cSBeniamino Galvani	clocks = <&xtal>,
588*4a63a75cSBeniamino Galvani		 <&clkc CLKID_SAR_ADC>,
589*4a63a75cSBeniamino Galvani		 <&clkc CLKID_SANA>,
590*4a63a75cSBeniamino Galvani		 <&clkc CLKID_SAR_ADC_CLK>,
591*4a63a75cSBeniamino Galvani		 <&clkc CLKID_SAR_ADC_SEL>;
592*4a63a75cSBeniamino Galvani	clock-names = "clkin", "core", "sana", "adc_clk", "adc_sel";
593*4a63a75cSBeniamino Galvani};
594*4a63a75cSBeniamino Galvani
595a3b02a1dSHeiner Kallweit&sd_emmc_a {
596a3b02a1dSHeiner Kallweit	clocks = <&clkc CLKID_SD_EMMC_A>,
597a3b02a1dSHeiner Kallweit		 <&xtal>,
598a3b02a1dSHeiner Kallweit		 <&clkc CLKID_FCLK_DIV2>;
599a3b02a1dSHeiner Kallweit	clock-names = "core", "clkin0", "clkin1";
600a3b02a1dSHeiner Kallweit};
601a3b02a1dSHeiner Kallweit
602a3b02a1dSHeiner Kallweit&sd_emmc_b {
603a3b02a1dSHeiner Kallweit	clocks = <&clkc CLKID_SD_EMMC_B>,
604a3b02a1dSHeiner Kallweit		 <&xtal>,
605a3b02a1dSHeiner Kallweit		 <&clkc CLKID_FCLK_DIV2>;
606a3b02a1dSHeiner Kallweit	clock-names = "core", "clkin0", "clkin1";
607a3b02a1dSHeiner Kallweit};
608a3b02a1dSHeiner Kallweit
609a3b02a1dSHeiner Kallweit&sd_emmc_c {
610a3b02a1dSHeiner Kallweit	clocks = <&clkc CLKID_SD_EMMC_C>,
611a3b02a1dSHeiner Kallweit		 <&xtal>,
612a3b02a1dSHeiner Kallweit		 <&clkc CLKID_FCLK_DIV2>;
613a3b02a1dSHeiner Kallweit	clock-names = "core", "clkin0", "clkin1";
614a3b02a1dSHeiner Kallweit};
615a3b02a1dSHeiner Kallweit
616*4a63a75cSBeniamino Galvani&spifc {
617*4a63a75cSBeniamino Galvani	clocks = <&clkc CLKID_SPI>;
618*4a63a75cSBeniamino Galvani};
619*4a63a75cSBeniamino Galvani
620a3b02a1dSHeiner Kallweit&vpu {
621a3b02a1dSHeiner Kallweit	compatible = "amlogic,meson-gxbb-vpu", "amlogic,meson-gx-vpu";
622bfcef28aSBeniamino Galvani};
623*4a63a75cSBeniamino Galvani
624*4a63a75cSBeniamino Galvani&hwrng {
625*4a63a75cSBeniamino Galvani	clocks = <&clkc CLKID_RNG0>;
626*4a63a75cSBeniamino Galvani	clock-names = "core";
627*4a63a75cSBeniamino Galvani};
628*4a63a75cSBeniamino Galvani
629*4a63a75cSBeniamino Galvani&hdmi_tx {
630*4a63a75cSBeniamino Galvani	compatible = "amlogic,meson-gxbb-dw-hdmi", "amlogic,meson-gx-dw-hdmi";
631*4a63a75cSBeniamino Galvani	resets = <&reset RESET_HDMITX_CAPB3>,
632*4a63a75cSBeniamino Galvani		 <&reset RESET_HDMI_SYSTEM_RESET>,
633*4a63a75cSBeniamino Galvani		 <&reset RESET_HDMI_TX>;
634*4a63a75cSBeniamino Galvani	reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
635*4a63a75cSBeniamino Galvani	clocks = <&clkc CLKID_HDMI_PCLK>,
636*4a63a75cSBeniamino Galvani		 <&clkc CLKID_CLK81>,
637*4a63a75cSBeniamino Galvani		 <&clkc CLKID_GCLK_VENCI_INT0>;
638*4a63a75cSBeniamino Galvani	clock-names = "isfr", "iahb", "venci";
639*4a63a75cSBeniamino Galvani};
640