xref: /freebsd-src/sys/contrib/device-tree/src/riscv/starfive/jh7110.dtsi (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1fac71e4eSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0 OR MIT
2fac71e4eSEmmanuel Vadot/*
3fac71e4eSEmmanuel Vadot * Copyright (C) 2022 StarFive Technology Co., Ltd.
4fac71e4eSEmmanuel Vadot * Copyright (C) 2022 Emil Renner Berthing <kernel@esmil.dk>
5fac71e4eSEmmanuel Vadot */
6fac71e4eSEmmanuel Vadot
7fac71e4eSEmmanuel Vadot/dts-v1/;
8fac71e4eSEmmanuel Vadot#include <dt-bindings/clock/starfive,jh7110-crg.h>
9aa1a8ff2SEmmanuel Vadot#include <dt-bindings/power/starfive,jh7110-pmu.h>
10fac71e4eSEmmanuel Vadot#include <dt-bindings/reset/starfive,jh7110-crg.h>
11aa1a8ff2SEmmanuel Vadot#include <dt-bindings/thermal/thermal.h>
12fac71e4eSEmmanuel Vadot
13fac71e4eSEmmanuel Vadot/ {
14fac71e4eSEmmanuel Vadot	compatible = "starfive,jh7110";
15fac71e4eSEmmanuel Vadot	#address-cells = <2>;
16fac71e4eSEmmanuel Vadot	#size-cells = <2>;
17fac71e4eSEmmanuel Vadot
187d0873ebSEmmanuel Vadot	cpus: cpus {
19fac71e4eSEmmanuel Vadot		#address-cells = <1>;
20fac71e4eSEmmanuel Vadot		#size-cells = <0>;
21fac71e4eSEmmanuel Vadot
22fac71e4eSEmmanuel Vadot		S7_0: cpu@0 {
23fac71e4eSEmmanuel Vadot			compatible = "sifive,s7", "riscv";
24fac71e4eSEmmanuel Vadot			reg = <0>;
25fac71e4eSEmmanuel Vadot			device_type = "cpu";
26fac71e4eSEmmanuel Vadot			i-cache-block-size = <64>;
27fac71e4eSEmmanuel Vadot			i-cache-sets = <64>;
28fac71e4eSEmmanuel Vadot			i-cache-size = <16384>;
29fac71e4eSEmmanuel Vadot			next-level-cache = <&ccache>;
30fac71e4eSEmmanuel Vadot			riscv,isa = "rv64imac_zba_zbb";
3184943d6fSEmmanuel Vadot			riscv,isa-base = "rv64i";
3284943d6fSEmmanuel Vadot			riscv,isa-extensions = "i", "m", "a", "c", "zba", "zbb", "zicntr", "zicsr",
3384943d6fSEmmanuel Vadot					       "zifencei", "zihpm";
34fac71e4eSEmmanuel Vadot			status = "disabled";
35fac71e4eSEmmanuel Vadot
36fac71e4eSEmmanuel Vadot			cpu0_intc: interrupt-controller {
37fac71e4eSEmmanuel Vadot				compatible = "riscv,cpu-intc";
38fac71e4eSEmmanuel Vadot				interrupt-controller;
39fac71e4eSEmmanuel Vadot				#interrupt-cells = <1>;
40fac71e4eSEmmanuel Vadot			};
41fac71e4eSEmmanuel Vadot		};
42fac71e4eSEmmanuel Vadot
43fac71e4eSEmmanuel Vadot		U74_1: cpu@1 {
44fac71e4eSEmmanuel Vadot			compatible = "sifive,u74-mc", "riscv";
45fac71e4eSEmmanuel Vadot			reg = <1>;
46fac71e4eSEmmanuel Vadot			d-cache-block-size = <64>;
47fac71e4eSEmmanuel Vadot			d-cache-sets = <64>;
48fac71e4eSEmmanuel Vadot			d-cache-size = <32768>;
49fac71e4eSEmmanuel Vadot			d-tlb-sets = <1>;
50fac71e4eSEmmanuel Vadot			d-tlb-size = <40>;
51fac71e4eSEmmanuel Vadot			device_type = "cpu";
52fac71e4eSEmmanuel Vadot			i-cache-block-size = <64>;
53fac71e4eSEmmanuel Vadot			i-cache-sets = <64>;
54fac71e4eSEmmanuel Vadot			i-cache-size = <32768>;
55fac71e4eSEmmanuel Vadot			i-tlb-sets = <1>;
56fac71e4eSEmmanuel Vadot			i-tlb-size = <40>;
57fac71e4eSEmmanuel Vadot			mmu-type = "riscv,sv39";
58fac71e4eSEmmanuel Vadot			next-level-cache = <&ccache>;
59fac71e4eSEmmanuel Vadot			riscv,isa = "rv64imafdc_zba_zbb";
6084943d6fSEmmanuel Vadot			riscv,isa-base = "rv64i";
6184943d6fSEmmanuel Vadot			riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zba", "zbb", "zicntr",
6284943d6fSEmmanuel Vadot					       "zicsr", "zifencei", "zihpm";
63fac71e4eSEmmanuel Vadot			tlb-split;
64f126890aSEmmanuel Vadot			operating-points-v2 = <&cpu_opp>;
65f126890aSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_CPU_CORE>;
66f126890aSEmmanuel Vadot			clock-names = "cpu";
67aa1a8ff2SEmmanuel Vadot			#cooling-cells = <2>;
68fac71e4eSEmmanuel Vadot
69fac71e4eSEmmanuel Vadot			cpu1_intc: interrupt-controller {
70fac71e4eSEmmanuel Vadot				compatible = "riscv,cpu-intc";
71fac71e4eSEmmanuel Vadot				interrupt-controller;
72fac71e4eSEmmanuel Vadot				#interrupt-cells = <1>;
73fac71e4eSEmmanuel Vadot			};
74fac71e4eSEmmanuel Vadot		};
75fac71e4eSEmmanuel Vadot
76fac71e4eSEmmanuel Vadot		U74_2: cpu@2 {
77fac71e4eSEmmanuel Vadot			compatible = "sifive,u74-mc", "riscv";
78fac71e4eSEmmanuel Vadot			reg = <2>;
79fac71e4eSEmmanuel Vadot			d-cache-block-size = <64>;
80fac71e4eSEmmanuel Vadot			d-cache-sets = <64>;
81fac71e4eSEmmanuel Vadot			d-cache-size = <32768>;
82fac71e4eSEmmanuel Vadot			d-tlb-sets = <1>;
83fac71e4eSEmmanuel Vadot			d-tlb-size = <40>;
84fac71e4eSEmmanuel Vadot			device_type = "cpu";
85fac71e4eSEmmanuel Vadot			i-cache-block-size = <64>;
86fac71e4eSEmmanuel Vadot			i-cache-sets = <64>;
87fac71e4eSEmmanuel Vadot			i-cache-size = <32768>;
88fac71e4eSEmmanuel Vadot			i-tlb-sets = <1>;
89fac71e4eSEmmanuel Vadot			i-tlb-size = <40>;
90fac71e4eSEmmanuel Vadot			mmu-type = "riscv,sv39";
91fac71e4eSEmmanuel Vadot			next-level-cache = <&ccache>;
92fac71e4eSEmmanuel Vadot			riscv,isa = "rv64imafdc_zba_zbb";
9384943d6fSEmmanuel Vadot			riscv,isa-base = "rv64i";
9484943d6fSEmmanuel Vadot			riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zba", "zbb", "zicntr",
9584943d6fSEmmanuel Vadot					       "zicsr", "zifencei", "zihpm";
96fac71e4eSEmmanuel Vadot			tlb-split;
97f126890aSEmmanuel Vadot			operating-points-v2 = <&cpu_opp>;
98f126890aSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_CPU_CORE>;
99f126890aSEmmanuel Vadot			clock-names = "cpu";
100aa1a8ff2SEmmanuel Vadot			#cooling-cells = <2>;
101fac71e4eSEmmanuel Vadot
102fac71e4eSEmmanuel Vadot			cpu2_intc: interrupt-controller {
103fac71e4eSEmmanuel Vadot				compatible = "riscv,cpu-intc";
104fac71e4eSEmmanuel Vadot				interrupt-controller;
105fac71e4eSEmmanuel Vadot				#interrupt-cells = <1>;
106fac71e4eSEmmanuel Vadot			};
107fac71e4eSEmmanuel Vadot		};
108fac71e4eSEmmanuel Vadot
109fac71e4eSEmmanuel Vadot		U74_3: cpu@3 {
110fac71e4eSEmmanuel Vadot			compatible = "sifive,u74-mc", "riscv";
111fac71e4eSEmmanuel Vadot			reg = <3>;
112fac71e4eSEmmanuel Vadot			d-cache-block-size = <64>;
113fac71e4eSEmmanuel Vadot			d-cache-sets = <64>;
114fac71e4eSEmmanuel Vadot			d-cache-size = <32768>;
115fac71e4eSEmmanuel Vadot			d-tlb-sets = <1>;
116fac71e4eSEmmanuel Vadot			d-tlb-size = <40>;
117fac71e4eSEmmanuel Vadot			device_type = "cpu";
118fac71e4eSEmmanuel Vadot			i-cache-block-size = <64>;
119fac71e4eSEmmanuel Vadot			i-cache-sets = <64>;
120fac71e4eSEmmanuel Vadot			i-cache-size = <32768>;
121fac71e4eSEmmanuel Vadot			i-tlb-sets = <1>;
122fac71e4eSEmmanuel Vadot			i-tlb-size = <40>;
123fac71e4eSEmmanuel Vadot			mmu-type = "riscv,sv39";
124fac71e4eSEmmanuel Vadot			next-level-cache = <&ccache>;
125fac71e4eSEmmanuel Vadot			riscv,isa = "rv64imafdc_zba_zbb";
12684943d6fSEmmanuel Vadot			riscv,isa-base = "rv64i";
12784943d6fSEmmanuel Vadot			riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zba", "zbb", "zicntr",
12884943d6fSEmmanuel Vadot					       "zicsr", "zifencei", "zihpm";
129fac71e4eSEmmanuel Vadot			tlb-split;
130f126890aSEmmanuel Vadot			operating-points-v2 = <&cpu_opp>;
131f126890aSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_CPU_CORE>;
132f126890aSEmmanuel Vadot			clock-names = "cpu";
133aa1a8ff2SEmmanuel Vadot			#cooling-cells = <2>;
134fac71e4eSEmmanuel Vadot
135fac71e4eSEmmanuel Vadot			cpu3_intc: interrupt-controller {
136fac71e4eSEmmanuel Vadot				compatible = "riscv,cpu-intc";
137fac71e4eSEmmanuel Vadot				interrupt-controller;
138fac71e4eSEmmanuel Vadot				#interrupt-cells = <1>;
139fac71e4eSEmmanuel Vadot			};
140fac71e4eSEmmanuel Vadot		};
141fac71e4eSEmmanuel Vadot
142fac71e4eSEmmanuel Vadot		U74_4: cpu@4 {
143fac71e4eSEmmanuel Vadot			compatible = "sifive,u74-mc", "riscv";
144fac71e4eSEmmanuel Vadot			reg = <4>;
145fac71e4eSEmmanuel Vadot			d-cache-block-size = <64>;
146fac71e4eSEmmanuel Vadot			d-cache-sets = <64>;
147fac71e4eSEmmanuel Vadot			d-cache-size = <32768>;
148fac71e4eSEmmanuel Vadot			d-tlb-sets = <1>;
149fac71e4eSEmmanuel Vadot			d-tlb-size = <40>;
150fac71e4eSEmmanuel Vadot			device_type = "cpu";
151fac71e4eSEmmanuel Vadot			i-cache-block-size = <64>;
152fac71e4eSEmmanuel Vadot			i-cache-sets = <64>;
153fac71e4eSEmmanuel Vadot			i-cache-size = <32768>;
154fac71e4eSEmmanuel Vadot			i-tlb-sets = <1>;
155fac71e4eSEmmanuel Vadot			i-tlb-size = <40>;
156fac71e4eSEmmanuel Vadot			mmu-type = "riscv,sv39";
157fac71e4eSEmmanuel Vadot			next-level-cache = <&ccache>;
158fac71e4eSEmmanuel Vadot			riscv,isa = "rv64imafdc_zba_zbb";
15984943d6fSEmmanuel Vadot			riscv,isa-base = "rv64i";
16084943d6fSEmmanuel Vadot			riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zba", "zbb", "zicntr",
16184943d6fSEmmanuel Vadot					       "zicsr", "zifencei", "zihpm";
162fac71e4eSEmmanuel Vadot			tlb-split;
163f126890aSEmmanuel Vadot			operating-points-v2 = <&cpu_opp>;
164f126890aSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_CPU_CORE>;
165f126890aSEmmanuel Vadot			clock-names = "cpu";
166aa1a8ff2SEmmanuel Vadot			#cooling-cells = <2>;
167fac71e4eSEmmanuel Vadot
168fac71e4eSEmmanuel Vadot			cpu4_intc: interrupt-controller {
169fac71e4eSEmmanuel Vadot				compatible = "riscv,cpu-intc";
170fac71e4eSEmmanuel Vadot				interrupt-controller;
171fac71e4eSEmmanuel Vadot				#interrupt-cells = <1>;
172fac71e4eSEmmanuel Vadot			};
173fac71e4eSEmmanuel Vadot		};
174fac71e4eSEmmanuel Vadot
175fac71e4eSEmmanuel Vadot		cpu-map {
176fac71e4eSEmmanuel Vadot			cluster0 {
177fac71e4eSEmmanuel Vadot				core0 {
178fac71e4eSEmmanuel Vadot					cpu = <&S7_0>;
179fac71e4eSEmmanuel Vadot				};
180fac71e4eSEmmanuel Vadot
181fac71e4eSEmmanuel Vadot				core1 {
182fac71e4eSEmmanuel Vadot					cpu = <&U74_1>;
183fac71e4eSEmmanuel Vadot				};
184fac71e4eSEmmanuel Vadot
185fac71e4eSEmmanuel Vadot				core2 {
186fac71e4eSEmmanuel Vadot					cpu = <&U74_2>;
187fac71e4eSEmmanuel Vadot				};
188fac71e4eSEmmanuel Vadot
189fac71e4eSEmmanuel Vadot				core3 {
190fac71e4eSEmmanuel Vadot					cpu = <&U74_3>;
191fac71e4eSEmmanuel Vadot				};
192fac71e4eSEmmanuel Vadot
193fac71e4eSEmmanuel Vadot				core4 {
194fac71e4eSEmmanuel Vadot					cpu = <&U74_4>;
195fac71e4eSEmmanuel Vadot				};
196fac71e4eSEmmanuel Vadot			};
197fac71e4eSEmmanuel Vadot		};
198fac71e4eSEmmanuel Vadot	};
199fac71e4eSEmmanuel Vadot
200f126890aSEmmanuel Vadot	cpu_opp: opp-table-0 {
201f126890aSEmmanuel Vadot			compatible = "operating-points-v2";
202f126890aSEmmanuel Vadot			opp-shared;
203f126890aSEmmanuel Vadot			opp-375000000 {
204f126890aSEmmanuel Vadot					opp-hz = /bits/ 64 <375000000>;
205f126890aSEmmanuel Vadot					opp-microvolt = <800000>;
206f126890aSEmmanuel Vadot			};
207f126890aSEmmanuel Vadot			opp-500000000 {
208f126890aSEmmanuel Vadot					opp-hz = /bits/ 64 <500000000>;
209f126890aSEmmanuel Vadot					opp-microvolt = <800000>;
210f126890aSEmmanuel Vadot			};
211f126890aSEmmanuel Vadot			opp-750000000 {
212f126890aSEmmanuel Vadot					opp-hz = /bits/ 64 <750000000>;
213f126890aSEmmanuel Vadot					opp-microvolt = <800000>;
214f126890aSEmmanuel Vadot			};
215f126890aSEmmanuel Vadot			opp-1500000000 {
216f126890aSEmmanuel Vadot					opp-hz = /bits/ 64 <1500000000>;
217f126890aSEmmanuel Vadot					opp-microvolt = <1040000>;
218f126890aSEmmanuel Vadot			};
219f126890aSEmmanuel Vadot	};
220f126890aSEmmanuel Vadot
221aa1a8ff2SEmmanuel Vadot	thermal-zones {
222aa1a8ff2SEmmanuel Vadot		cpu-thermal {
223aa1a8ff2SEmmanuel Vadot			polling-delay-passive = <250>;
224aa1a8ff2SEmmanuel Vadot			polling-delay = <15000>;
225aa1a8ff2SEmmanuel Vadot
226aa1a8ff2SEmmanuel Vadot			thermal-sensors = <&sfctemp>;
227aa1a8ff2SEmmanuel Vadot
228aa1a8ff2SEmmanuel Vadot			cooling-maps {
229aa1a8ff2SEmmanuel Vadot				map0 {
230aa1a8ff2SEmmanuel Vadot					trip = <&cpu_alert0>;
231aa1a8ff2SEmmanuel Vadot					cooling-device =
232aa1a8ff2SEmmanuel Vadot						<&U74_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
233aa1a8ff2SEmmanuel Vadot						<&U74_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
234aa1a8ff2SEmmanuel Vadot						<&U74_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
235aa1a8ff2SEmmanuel Vadot						<&U74_4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
236aa1a8ff2SEmmanuel Vadot				};
237aa1a8ff2SEmmanuel Vadot			};
238aa1a8ff2SEmmanuel Vadot
239aa1a8ff2SEmmanuel Vadot			trips {
2408d13bc63SEmmanuel Vadot				cpu_alert0: cpu-alert0 {
241aa1a8ff2SEmmanuel Vadot					/* milliCelsius */
242aa1a8ff2SEmmanuel Vadot					temperature = <85000>;
243aa1a8ff2SEmmanuel Vadot					hysteresis = <2000>;
244aa1a8ff2SEmmanuel Vadot					type = "passive";
245aa1a8ff2SEmmanuel Vadot				};
246aa1a8ff2SEmmanuel Vadot
2478d13bc63SEmmanuel Vadot				cpu-crit {
248aa1a8ff2SEmmanuel Vadot					/* milliCelsius */
249aa1a8ff2SEmmanuel Vadot					temperature = <100000>;
250aa1a8ff2SEmmanuel Vadot					hysteresis = <2000>;
251aa1a8ff2SEmmanuel Vadot					type = "critical";
252aa1a8ff2SEmmanuel Vadot				};
253aa1a8ff2SEmmanuel Vadot			};
254aa1a8ff2SEmmanuel Vadot		};
255aa1a8ff2SEmmanuel Vadot	};
256aa1a8ff2SEmmanuel Vadot
257aa1a8ff2SEmmanuel Vadot	dvp_clk: dvp-clock {
258aa1a8ff2SEmmanuel Vadot		compatible = "fixed-clock";
259aa1a8ff2SEmmanuel Vadot		clock-output-names = "dvp_clk";
260aa1a8ff2SEmmanuel Vadot		#clock-cells = <0>;
261aa1a8ff2SEmmanuel Vadot	};
262fac71e4eSEmmanuel Vadot	gmac0_rgmii_rxin: gmac0-rgmii-rxin-clock {
263fac71e4eSEmmanuel Vadot		compatible = "fixed-clock";
264fac71e4eSEmmanuel Vadot		clock-output-names = "gmac0_rgmii_rxin";
265fac71e4eSEmmanuel Vadot		#clock-cells = <0>;
266fac71e4eSEmmanuel Vadot	};
267fac71e4eSEmmanuel Vadot
268fac71e4eSEmmanuel Vadot	gmac0_rmii_refin: gmac0-rmii-refin-clock {
269fac71e4eSEmmanuel Vadot		compatible = "fixed-clock";
270fac71e4eSEmmanuel Vadot		clock-output-names = "gmac0_rmii_refin";
271fac71e4eSEmmanuel Vadot		#clock-cells = <0>;
272fac71e4eSEmmanuel Vadot	};
273fac71e4eSEmmanuel Vadot
274fac71e4eSEmmanuel Vadot	gmac1_rgmii_rxin: gmac1-rgmii-rxin-clock {
275fac71e4eSEmmanuel Vadot		compatible = "fixed-clock";
276fac71e4eSEmmanuel Vadot		clock-output-names = "gmac1_rgmii_rxin";
277fac71e4eSEmmanuel Vadot		#clock-cells = <0>;
278fac71e4eSEmmanuel Vadot	};
279fac71e4eSEmmanuel Vadot
280fac71e4eSEmmanuel Vadot	gmac1_rmii_refin: gmac1-rmii-refin-clock {
281fac71e4eSEmmanuel Vadot		compatible = "fixed-clock";
282fac71e4eSEmmanuel Vadot		clock-output-names = "gmac1_rmii_refin";
283fac71e4eSEmmanuel Vadot		#clock-cells = <0>;
284fac71e4eSEmmanuel Vadot	};
285fac71e4eSEmmanuel Vadot
286aa1a8ff2SEmmanuel Vadot	hdmitx0_pixelclk: hdmitx0-pixel-clock {
287aa1a8ff2SEmmanuel Vadot		compatible = "fixed-clock";
288aa1a8ff2SEmmanuel Vadot		clock-output-names = "hdmitx0_pixelclk";
289aa1a8ff2SEmmanuel Vadot		#clock-cells = <0>;
290aa1a8ff2SEmmanuel Vadot	};
291aa1a8ff2SEmmanuel Vadot
292fac71e4eSEmmanuel Vadot	i2srx_bclk_ext: i2srx-bclk-ext-clock {
293fac71e4eSEmmanuel Vadot		compatible = "fixed-clock";
294fac71e4eSEmmanuel Vadot		clock-output-names = "i2srx_bclk_ext";
295fac71e4eSEmmanuel Vadot		#clock-cells = <0>;
296fac71e4eSEmmanuel Vadot	};
297fac71e4eSEmmanuel Vadot
298fac71e4eSEmmanuel Vadot	i2srx_lrck_ext: i2srx-lrck-ext-clock {
299fac71e4eSEmmanuel Vadot		compatible = "fixed-clock";
300fac71e4eSEmmanuel Vadot		clock-output-names = "i2srx_lrck_ext";
301fac71e4eSEmmanuel Vadot		#clock-cells = <0>;
302fac71e4eSEmmanuel Vadot	};
303fac71e4eSEmmanuel Vadot
304fac71e4eSEmmanuel Vadot	i2stx_bclk_ext: i2stx-bclk-ext-clock {
305fac71e4eSEmmanuel Vadot		compatible = "fixed-clock";
306fac71e4eSEmmanuel Vadot		clock-output-names = "i2stx_bclk_ext";
307fac71e4eSEmmanuel Vadot		#clock-cells = <0>;
308fac71e4eSEmmanuel Vadot	};
309fac71e4eSEmmanuel Vadot
310fac71e4eSEmmanuel Vadot	i2stx_lrck_ext: i2stx-lrck-ext-clock {
311fac71e4eSEmmanuel Vadot		compatible = "fixed-clock";
312fac71e4eSEmmanuel Vadot		clock-output-names = "i2stx_lrck_ext";
313fac71e4eSEmmanuel Vadot		#clock-cells = <0>;
314fac71e4eSEmmanuel Vadot	};
315fac71e4eSEmmanuel Vadot
316fac71e4eSEmmanuel Vadot	mclk_ext: mclk-ext-clock {
317fac71e4eSEmmanuel Vadot		compatible = "fixed-clock";
318fac71e4eSEmmanuel Vadot		clock-output-names = "mclk_ext";
319fac71e4eSEmmanuel Vadot		#clock-cells = <0>;
320fac71e4eSEmmanuel Vadot	};
321fac71e4eSEmmanuel Vadot
322fac71e4eSEmmanuel Vadot	osc: oscillator {
323fac71e4eSEmmanuel Vadot		compatible = "fixed-clock";
324fac71e4eSEmmanuel Vadot		clock-output-names = "osc";
325fac71e4eSEmmanuel Vadot		#clock-cells = <0>;
326fac71e4eSEmmanuel Vadot	};
327fac71e4eSEmmanuel Vadot
328fac71e4eSEmmanuel Vadot	rtc_osc: rtc-oscillator {
329fac71e4eSEmmanuel Vadot		compatible = "fixed-clock";
330fac71e4eSEmmanuel Vadot		clock-output-names = "rtc_osc";
331fac71e4eSEmmanuel Vadot		#clock-cells = <0>;
332fac71e4eSEmmanuel Vadot	};
333fac71e4eSEmmanuel Vadot
334aa1a8ff2SEmmanuel Vadot	stmmac_axi_setup: stmmac-axi-config {
335aa1a8ff2SEmmanuel Vadot		snps,lpi_en;
336aa1a8ff2SEmmanuel Vadot		snps,wr_osr_lmt = <15>;
337aa1a8ff2SEmmanuel Vadot		snps,rd_osr_lmt = <15>;
338aa1a8ff2SEmmanuel Vadot		snps,blen = <256 128 64 32 0 0 0>;
339aa1a8ff2SEmmanuel Vadot	};
340aa1a8ff2SEmmanuel Vadot
341fac71e4eSEmmanuel Vadot	tdm_ext: tdm-ext-clock {
342fac71e4eSEmmanuel Vadot		compatible = "fixed-clock";
343fac71e4eSEmmanuel Vadot		clock-output-names = "tdm_ext";
344fac71e4eSEmmanuel Vadot		#clock-cells = <0>;
345fac71e4eSEmmanuel Vadot	};
346fac71e4eSEmmanuel Vadot
347fac71e4eSEmmanuel Vadot	soc {
348fac71e4eSEmmanuel Vadot		compatible = "simple-bus";
349fac71e4eSEmmanuel Vadot		interrupt-parent = <&plic>;
350fac71e4eSEmmanuel Vadot		#address-cells = <2>;
351fac71e4eSEmmanuel Vadot		#size-cells = <2>;
352fac71e4eSEmmanuel Vadot		ranges;
353fac71e4eSEmmanuel Vadot
354fac71e4eSEmmanuel Vadot		clint: timer@2000000 {
355fac71e4eSEmmanuel Vadot			compatible = "starfive,jh7110-clint", "sifive,clint0";
356fac71e4eSEmmanuel Vadot			reg = <0x0 0x2000000 0x0 0x10000>;
357fac71e4eSEmmanuel Vadot			interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>,
358fac71e4eSEmmanuel Vadot					      <&cpu1_intc 3>, <&cpu1_intc 7>,
359fac71e4eSEmmanuel Vadot					      <&cpu2_intc 3>, <&cpu2_intc 7>,
360fac71e4eSEmmanuel Vadot					      <&cpu3_intc 3>, <&cpu3_intc 7>,
361fac71e4eSEmmanuel Vadot					      <&cpu4_intc 3>, <&cpu4_intc 7>;
362fac71e4eSEmmanuel Vadot		};
363fac71e4eSEmmanuel Vadot
364fac71e4eSEmmanuel Vadot		ccache: cache-controller@2010000 {
365fac71e4eSEmmanuel Vadot			compatible = "starfive,jh7110-ccache", "sifive,ccache0", "cache";
366fac71e4eSEmmanuel Vadot			reg = <0x0 0x2010000 0x0 0x4000>;
367fac71e4eSEmmanuel Vadot			interrupts = <1>, <3>, <4>, <2>;
368fac71e4eSEmmanuel Vadot			cache-block-size = <64>;
369fac71e4eSEmmanuel Vadot			cache-level = <2>;
370fac71e4eSEmmanuel Vadot			cache-sets = <2048>;
371fac71e4eSEmmanuel Vadot			cache-size = <2097152>;
372fac71e4eSEmmanuel Vadot			cache-unified;
373fac71e4eSEmmanuel Vadot		};
374fac71e4eSEmmanuel Vadot
375fac71e4eSEmmanuel Vadot		plic: interrupt-controller@c000000 {
376fac71e4eSEmmanuel Vadot			compatible = "starfive,jh7110-plic", "sifive,plic-1.0.0";
377fac71e4eSEmmanuel Vadot			reg = <0x0 0xc000000 0x0 0x4000000>;
378fac71e4eSEmmanuel Vadot			interrupts-extended = <&cpu0_intc 11>,
379fac71e4eSEmmanuel Vadot					      <&cpu1_intc 11>, <&cpu1_intc 9>,
380fac71e4eSEmmanuel Vadot					      <&cpu2_intc 11>, <&cpu2_intc 9>,
381fac71e4eSEmmanuel Vadot					      <&cpu3_intc 11>, <&cpu3_intc 9>,
382fac71e4eSEmmanuel Vadot					      <&cpu4_intc 11>, <&cpu4_intc 9>;
383fac71e4eSEmmanuel Vadot			interrupt-controller;
384fac71e4eSEmmanuel Vadot			#interrupt-cells = <1>;
385fac71e4eSEmmanuel Vadot			#address-cells = <0>;
386fac71e4eSEmmanuel Vadot			riscv,ndev = <136>;
387fac71e4eSEmmanuel Vadot		};
388fac71e4eSEmmanuel Vadot
389fac71e4eSEmmanuel Vadot		uart0: serial@10000000 {
390*0e8011faSEmmanuel Vadot			compatible = "starfive,jh7110-uart", "snps,dw-apb-uart";
391fac71e4eSEmmanuel Vadot			reg = <0x0 0x10000000 0x0 0x10000>;
392fac71e4eSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_UART0_CORE>,
393fac71e4eSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_UART0_APB>;
394fac71e4eSEmmanuel Vadot			clock-names = "baudclk", "apb_pclk";
395*0e8011faSEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_UART0_APB>,
396*0e8011faSEmmanuel Vadot				 <&syscrg JH7110_SYSRST_UART0_CORE>;
397fac71e4eSEmmanuel Vadot			interrupts = <32>;
398fac71e4eSEmmanuel Vadot			reg-io-width = <4>;
399fac71e4eSEmmanuel Vadot			reg-shift = <2>;
400fac71e4eSEmmanuel Vadot			status = "disabled";
401fac71e4eSEmmanuel Vadot		};
402fac71e4eSEmmanuel Vadot
403fac71e4eSEmmanuel Vadot		uart1: serial@10010000 {
404*0e8011faSEmmanuel Vadot			compatible = "starfive,jh7110-uart", "snps,dw-apb-uart";
405fac71e4eSEmmanuel Vadot			reg = <0x0 0x10010000 0x0 0x10000>;
406fac71e4eSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_UART1_CORE>,
407fac71e4eSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_UART1_APB>;
408fac71e4eSEmmanuel Vadot			clock-names = "baudclk", "apb_pclk";
409*0e8011faSEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_UART1_APB>,
410*0e8011faSEmmanuel Vadot				 <&syscrg JH7110_SYSRST_UART1_CORE>;
411fac71e4eSEmmanuel Vadot			interrupts = <33>;
412fac71e4eSEmmanuel Vadot			reg-io-width = <4>;
413fac71e4eSEmmanuel Vadot			reg-shift = <2>;
414fac71e4eSEmmanuel Vadot			status = "disabled";
415fac71e4eSEmmanuel Vadot		};
416fac71e4eSEmmanuel Vadot
417fac71e4eSEmmanuel Vadot		uart2: serial@10020000 {
418*0e8011faSEmmanuel Vadot			compatible = "starfive,jh7110-uart", "snps,dw-apb-uart";
419fac71e4eSEmmanuel Vadot			reg = <0x0 0x10020000 0x0 0x10000>;
420fac71e4eSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_UART2_CORE>,
421fac71e4eSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_UART2_APB>;
422fac71e4eSEmmanuel Vadot			clock-names = "baudclk", "apb_pclk";
423*0e8011faSEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_UART2_APB>,
424*0e8011faSEmmanuel Vadot				 <&syscrg JH7110_SYSRST_UART2_CORE>;
425fac71e4eSEmmanuel Vadot			interrupts = <34>;
426fac71e4eSEmmanuel Vadot			reg-io-width = <4>;
427fac71e4eSEmmanuel Vadot			reg-shift = <2>;
428fac71e4eSEmmanuel Vadot			status = "disabled";
429fac71e4eSEmmanuel Vadot		};
430fac71e4eSEmmanuel Vadot
431fac71e4eSEmmanuel Vadot		i2c0: i2c@10030000 {
432fac71e4eSEmmanuel Vadot			compatible = "snps,designware-i2c";
433fac71e4eSEmmanuel Vadot			reg = <0x0 0x10030000 0x0 0x10000>;
434fac71e4eSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_I2C0_APB>;
435fac71e4eSEmmanuel Vadot			clock-names = "ref";
436fac71e4eSEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_I2C0_APB>;
437fac71e4eSEmmanuel Vadot			interrupts = <35>;
438fac71e4eSEmmanuel Vadot			#address-cells = <1>;
439fac71e4eSEmmanuel Vadot			#size-cells = <0>;
440fac71e4eSEmmanuel Vadot			status = "disabled";
441fac71e4eSEmmanuel Vadot		};
442fac71e4eSEmmanuel Vadot
443fac71e4eSEmmanuel Vadot		i2c1: i2c@10040000 {
444fac71e4eSEmmanuel Vadot			compatible = "snps,designware-i2c";
445fac71e4eSEmmanuel Vadot			reg = <0x0 0x10040000 0x0 0x10000>;
446fac71e4eSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_I2C1_APB>;
447fac71e4eSEmmanuel Vadot			clock-names = "ref";
448fac71e4eSEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_I2C1_APB>;
449fac71e4eSEmmanuel Vadot			interrupts = <36>;
450fac71e4eSEmmanuel Vadot			#address-cells = <1>;
451fac71e4eSEmmanuel Vadot			#size-cells = <0>;
452fac71e4eSEmmanuel Vadot			status = "disabled";
453fac71e4eSEmmanuel Vadot		};
454fac71e4eSEmmanuel Vadot
455fac71e4eSEmmanuel Vadot		i2c2: i2c@10050000 {
456fac71e4eSEmmanuel Vadot			compatible = "snps,designware-i2c";
457fac71e4eSEmmanuel Vadot			reg = <0x0 0x10050000 0x0 0x10000>;
458fac71e4eSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_I2C2_APB>;
459fac71e4eSEmmanuel Vadot			clock-names = "ref";
460fac71e4eSEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_I2C2_APB>;
461fac71e4eSEmmanuel Vadot			interrupts = <37>;
462fac71e4eSEmmanuel Vadot			#address-cells = <1>;
463fac71e4eSEmmanuel Vadot			#size-cells = <0>;
464fac71e4eSEmmanuel Vadot			status = "disabled";
465fac71e4eSEmmanuel Vadot		};
466fac71e4eSEmmanuel Vadot
467aa1a8ff2SEmmanuel Vadot		spi0: spi@10060000 {
468aa1a8ff2SEmmanuel Vadot			compatible = "arm,pl022", "arm,primecell";
469aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x10060000 0x0 0x10000>;
470aa1a8ff2SEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_SPI0_APB>,
471aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_SPI0_APB>;
472aa1a8ff2SEmmanuel Vadot			clock-names = "sspclk", "apb_pclk";
473aa1a8ff2SEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_SPI0_APB>;
474aa1a8ff2SEmmanuel Vadot			interrupts = <38>;
475aa1a8ff2SEmmanuel Vadot			arm,primecell-periphid = <0x00041022>;
476aa1a8ff2SEmmanuel Vadot			num-cs = <1>;
477aa1a8ff2SEmmanuel Vadot			#address-cells = <1>;
478aa1a8ff2SEmmanuel Vadot			#size-cells = <0>;
479aa1a8ff2SEmmanuel Vadot			status = "disabled";
480aa1a8ff2SEmmanuel Vadot		};
481aa1a8ff2SEmmanuel Vadot
482aa1a8ff2SEmmanuel Vadot		spi1: spi@10070000 {
483aa1a8ff2SEmmanuel Vadot			compatible = "arm,pl022", "arm,primecell";
484aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x10070000 0x0 0x10000>;
485aa1a8ff2SEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_SPI1_APB>,
486aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_SPI1_APB>;
487aa1a8ff2SEmmanuel Vadot			clock-names = "sspclk", "apb_pclk";
488aa1a8ff2SEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_SPI1_APB>;
489aa1a8ff2SEmmanuel Vadot			interrupts = <39>;
490aa1a8ff2SEmmanuel Vadot			arm,primecell-periphid = <0x00041022>;
491aa1a8ff2SEmmanuel Vadot			num-cs = <1>;
492aa1a8ff2SEmmanuel Vadot			#address-cells = <1>;
493aa1a8ff2SEmmanuel Vadot			#size-cells = <0>;
494aa1a8ff2SEmmanuel Vadot			status = "disabled";
495aa1a8ff2SEmmanuel Vadot		};
496aa1a8ff2SEmmanuel Vadot
497aa1a8ff2SEmmanuel Vadot		spi2: spi@10080000 {
498aa1a8ff2SEmmanuel Vadot			compatible = "arm,pl022", "arm,primecell";
499aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x10080000 0x0 0x10000>;
500aa1a8ff2SEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_SPI2_APB>,
501aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_SPI2_APB>;
502aa1a8ff2SEmmanuel Vadot			clock-names = "sspclk", "apb_pclk";
503aa1a8ff2SEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_SPI2_APB>;
504aa1a8ff2SEmmanuel Vadot			interrupts = <40>;
505aa1a8ff2SEmmanuel Vadot			arm,primecell-periphid = <0x00041022>;
506aa1a8ff2SEmmanuel Vadot			num-cs = <1>;
507aa1a8ff2SEmmanuel Vadot			#address-cells = <1>;
508aa1a8ff2SEmmanuel Vadot			#size-cells = <0>;
509aa1a8ff2SEmmanuel Vadot			status = "disabled";
510aa1a8ff2SEmmanuel Vadot		};
511aa1a8ff2SEmmanuel Vadot
512aa1a8ff2SEmmanuel Vadot		tdm: tdm@10090000 {
513aa1a8ff2SEmmanuel Vadot			compatible = "starfive,jh7110-tdm";
514aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x10090000 0x0 0x1000>;
515aa1a8ff2SEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_TDM_AHB>,
516aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_TDM_APB>,
517aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_TDM_INTERNAL>,
518aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_TDM_TDM>,
519aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_MCLK_INNER>,
520aa1a8ff2SEmmanuel Vadot				 <&tdm_ext>;
521aa1a8ff2SEmmanuel Vadot			clock-names = "tdm_ahb", "tdm_apb",
522aa1a8ff2SEmmanuel Vadot				      "tdm_internal", "tdm",
523aa1a8ff2SEmmanuel Vadot				      "mclk_inner", "tdm_ext";
524aa1a8ff2SEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_TDM_AHB>,
525aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSRST_TDM_APB>,
526aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSRST_TDM_CORE>;
527aa1a8ff2SEmmanuel Vadot			dmas = <&dma 20>, <&dma 21>;
528aa1a8ff2SEmmanuel Vadot			dma-names = "rx","tx";
529aa1a8ff2SEmmanuel Vadot			#sound-dai-cells = <0>;
530aa1a8ff2SEmmanuel Vadot			status = "disabled";
531aa1a8ff2SEmmanuel Vadot		};
532aa1a8ff2SEmmanuel Vadot
53384943d6fSEmmanuel Vadot		i2srx: i2s@100e0000 {
53484943d6fSEmmanuel Vadot			compatible = "starfive,jh7110-i2srx";
53584943d6fSEmmanuel Vadot			reg = <0x0 0x100e0000 0x0 0x1000>;
53684943d6fSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_I2SRX_BCLK_MST>,
53784943d6fSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_I2SRX_APB>,
53884943d6fSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_MCLK>,
53984943d6fSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_MCLK_INNER>,
54084943d6fSEmmanuel Vadot				 <&mclk_ext>,
54184943d6fSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_I2SRX_BCLK>,
54284943d6fSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_I2SRX_LRCK>,
54384943d6fSEmmanuel Vadot				 <&i2srx_bclk_ext>,
54484943d6fSEmmanuel Vadot				 <&i2srx_lrck_ext>;
54584943d6fSEmmanuel Vadot			clock-names = "i2sclk", "apb", "mclk",
54684943d6fSEmmanuel Vadot				      "mclk_inner", "mclk_ext", "bclk",
54784943d6fSEmmanuel Vadot				      "lrck", "bclk_ext", "lrck_ext";
54884943d6fSEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_I2SRX_APB>,
54984943d6fSEmmanuel Vadot				 <&syscrg JH7110_SYSRST_I2SRX_BCLK>;
55084943d6fSEmmanuel Vadot			dmas = <0>, <&dma 24>;
55184943d6fSEmmanuel Vadot			dma-names = "tx", "rx";
55284943d6fSEmmanuel Vadot			starfive,syscon = <&sys_syscon 0x18 0x2>;
55384943d6fSEmmanuel Vadot			#sound-dai-cells = <0>;
55484943d6fSEmmanuel Vadot			status = "disabled";
55584943d6fSEmmanuel Vadot		};
55684943d6fSEmmanuel Vadot
55784943d6fSEmmanuel Vadot		pwmdac: pwmdac@100b0000 {
55884943d6fSEmmanuel Vadot			compatible = "starfive,jh7110-pwmdac";
55984943d6fSEmmanuel Vadot			reg = <0x0 0x100b0000 0x0 0x1000>;
56084943d6fSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_PWMDAC_APB>,
56184943d6fSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_PWMDAC_CORE>;
56284943d6fSEmmanuel Vadot			clock-names = "apb", "core";
56384943d6fSEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_PWMDAC_APB>;
56484943d6fSEmmanuel Vadot			dmas = <&dma 22>;
56584943d6fSEmmanuel Vadot			dma-names = "tx";
56684943d6fSEmmanuel Vadot			#sound-dai-cells = <0>;
56784943d6fSEmmanuel Vadot			status = "disabled";
56884943d6fSEmmanuel Vadot		};
56984943d6fSEmmanuel Vadot
570aa1a8ff2SEmmanuel Vadot		usb0: usb@10100000 {
571aa1a8ff2SEmmanuel Vadot			compatible = "starfive,jh7110-usb";
572aa1a8ff2SEmmanuel Vadot			ranges = <0x0 0x0 0x10100000 0x100000>;
573aa1a8ff2SEmmanuel Vadot			#address-cells = <1>;
574aa1a8ff2SEmmanuel Vadot			#size-cells = <1>;
575aa1a8ff2SEmmanuel Vadot			starfive,stg-syscon = <&stg_syscon 0x4>;
576aa1a8ff2SEmmanuel Vadot			clocks = <&stgcrg JH7110_STGCLK_USB0_LPM>,
577aa1a8ff2SEmmanuel Vadot				 <&stgcrg JH7110_STGCLK_USB0_STB>,
578aa1a8ff2SEmmanuel Vadot				 <&stgcrg JH7110_STGCLK_USB0_APB>,
579aa1a8ff2SEmmanuel Vadot				 <&stgcrg JH7110_STGCLK_USB0_AXI>,
580aa1a8ff2SEmmanuel Vadot				 <&stgcrg JH7110_STGCLK_USB0_UTMI_APB>;
581aa1a8ff2SEmmanuel Vadot			clock-names = "lpm", "stb", "apb", "axi", "utmi_apb";
582aa1a8ff2SEmmanuel Vadot			resets = <&stgcrg JH7110_STGRST_USB0_PWRUP>,
583aa1a8ff2SEmmanuel Vadot				 <&stgcrg JH7110_STGRST_USB0_APB>,
584aa1a8ff2SEmmanuel Vadot				 <&stgcrg JH7110_STGRST_USB0_AXI>,
585aa1a8ff2SEmmanuel Vadot				 <&stgcrg JH7110_STGRST_USB0_UTMI_APB>;
586aa1a8ff2SEmmanuel Vadot			reset-names = "pwrup", "apb", "axi", "utmi_apb";
587aa1a8ff2SEmmanuel Vadot			status = "disabled";
588aa1a8ff2SEmmanuel Vadot
589aa1a8ff2SEmmanuel Vadot			usb_cdns3: usb@0 {
590aa1a8ff2SEmmanuel Vadot				compatible = "cdns,usb3";
591aa1a8ff2SEmmanuel Vadot				reg = <0x0 0x10000>,
592aa1a8ff2SEmmanuel Vadot				      <0x10000 0x10000>,
593aa1a8ff2SEmmanuel Vadot				      <0x20000 0x10000>;
594aa1a8ff2SEmmanuel Vadot				reg-names = "otg", "xhci", "dev";
595aa1a8ff2SEmmanuel Vadot				interrupts = <100>, <108>, <110>;
596aa1a8ff2SEmmanuel Vadot				interrupt-names = "host", "peripheral", "otg";
597aa1a8ff2SEmmanuel Vadot				phys = <&usbphy0>;
598aa1a8ff2SEmmanuel Vadot				phy-names = "cdns3,usb2-phy";
599aa1a8ff2SEmmanuel Vadot			};
600aa1a8ff2SEmmanuel Vadot		};
601aa1a8ff2SEmmanuel Vadot
602aa1a8ff2SEmmanuel Vadot		usbphy0: phy@10200000 {
603aa1a8ff2SEmmanuel Vadot			compatible = "starfive,jh7110-usb-phy";
604aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x10200000 0x0 0x10000>;
605aa1a8ff2SEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_USB_125M>,
606aa1a8ff2SEmmanuel Vadot				 <&stgcrg JH7110_STGCLK_USB0_APP_125>;
607aa1a8ff2SEmmanuel Vadot			clock-names = "125m", "app_125m";
608aa1a8ff2SEmmanuel Vadot			#phy-cells = <0>;
609aa1a8ff2SEmmanuel Vadot		};
610aa1a8ff2SEmmanuel Vadot
611aa1a8ff2SEmmanuel Vadot		pciephy0: phy@10210000 {
612aa1a8ff2SEmmanuel Vadot			compatible = "starfive,jh7110-pcie-phy";
613aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x10210000 0x0 0x10000>;
614aa1a8ff2SEmmanuel Vadot			#phy-cells = <0>;
615aa1a8ff2SEmmanuel Vadot		};
616aa1a8ff2SEmmanuel Vadot
617aa1a8ff2SEmmanuel Vadot		pciephy1: phy@10220000 {
618aa1a8ff2SEmmanuel Vadot			compatible = "starfive,jh7110-pcie-phy";
619aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x10220000 0x0 0x10000>;
620aa1a8ff2SEmmanuel Vadot			#phy-cells = <0>;
621aa1a8ff2SEmmanuel Vadot		};
622aa1a8ff2SEmmanuel Vadot
623aa1a8ff2SEmmanuel Vadot		stgcrg: clock-controller@10230000 {
624aa1a8ff2SEmmanuel Vadot			compatible = "starfive,jh7110-stgcrg";
625aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x10230000 0x0 0x10000>;
626aa1a8ff2SEmmanuel Vadot			clocks = <&osc>,
627aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_HIFI4_CORE>,
628aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_STG_AXIAHB>,
629aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_USB_125M>,
630aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_CPU_BUS>,
631aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_HIFI4_AXI>,
632aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_NOCSTG_BUS>,
633aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_APB_BUS>;
634aa1a8ff2SEmmanuel Vadot			clock-names = "osc", "hifi4_core",
635aa1a8ff2SEmmanuel Vadot				      "stg_axiahb", "usb_125m",
636aa1a8ff2SEmmanuel Vadot				      "cpu_bus", "hifi4_axi",
637aa1a8ff2SEmmanuel Vadot				      "nocstg_bus", "apb_bus";
638aa1a8ff2SEmmanuel Vadot			#clock-cells = <1>;
639aa1a8ff2SEmmanuel Vadot			#reset-cells = <1>;
640aa1a8ff2SEmmanuel Vadot		};
641aa1a8ff2SEmmanuel Vadot
642aa1a8ff2SEmmanuel Vadot		stg_syscon: syscon@10240000 {
643aa1a8ff2SEmmanuel Vadot			compatible = "starfive,jh7110-stg-syscon", "syscon";
644aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x10240000 0x0 0x1000>;
645aa1a8ff2SEmmanuel Vadot		};
646aa1a8ff2SEmmanuel Vadot
647fac71e4eSEmmanuel Vadot		uart3: serial@12000000 {
648*0e8011faSEmmanuel Vadot			compatible = "starfive,jh7110-uart", "snps,dw-apb-uart";
649fac71e4eSEmmanuel Vadot			reg = <0x0 0x12000000 0x0 0x10000>;
650fac71e4eSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_UART3_CORE>,
651fac71e4eSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_UART3_APB>;
652fac71e4eSEmmanuel Vadot			clock-names = "baudclk", "apb_pclk";
653*0e8011faSEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_UART3_APB>,
654*0e8011faSEmmanuel Vadot				 <&syscrg JH7110_SYSRST_UART3_CORE>;
655fac71e4eSEmmanuel Vadot			interrupts = <45>;
656fac71e4eSEmmanuel Vadot			reg-io-width = <4>;
657fac71e4eSEmmanuel Vadot			reg-shift = <2>;
658fac71e4eSEmmanuel Vadot			status = "disabled";
659fac71e4eSEmmanuel Vadot		};
660fac71e4eSEmmanuel Vadot
661fac71e4eSEmmanuel Vadot		uart4: serial@12010000 {
662*0e8011faSEmmanuel Vadot			compatible = "starfive,jh7110-uart", "snps,dw-apb-uart";
663fac71e4eSEmmanuel Vadot			reg = <0x0 0x12010000 0x0 0x10000>;
664fac71e4eSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_UART4_CORE>,
665fac71e4eSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_UART4_APB>;
666fac71e4eSEmmanuel Vadot			clock-names = "baudclk", "apb_pclk";
667*0e8011faSEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_UART4_APB>,
668*0e8011faSEmmanuel Vadot				 <&syscrg JH7110_SYSRST_UART4_CORE>;
669fac71e4eSEmmanuel Vadot			interrupts = <46>;
670fac71e4eSEmmanuel Vadot			reg-io-width = <4>;
671fac71e4eSEmmanuel Vadot			reg-shift = <2>;
672fac71e4eSEmmanuel Vadot			status = "disabled";
673fac71e4eSEmmanuel Vadot		};
674fac71e4eSEmmanuel Vadot
675fac71e4eSEmmanuel Vadot		uart5: serial@12020000 {
676*0e8011faSEmmanuel Vadot			compatible = "starfive,jh7110-uart", "snps,dw-apb-uart";
677fac71e4eSEmmanuel Vadot			reg = <0x0 0x12020000 0x0 0x10000>;
678fac71e4eSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_UART5_CORE>,
679fac71e4eSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_UART5_APB>;
680fac71e4eSEmmanuel Vadot			clock-names = "baudclk", "apb_pclk";
681*0e8011faSEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_UART5_APB>,
682*0e8011faSEmmanuel Vadot				 <&syscrg JH7110_SYSRST_UART5_CORE>;
683fac71e4eSEmmanuel Vadot			interrupts = <47>;
684fac71e4eSEmmanuel Vadot			reg-io-width = <4>;
685fac71e4eSEmmanuel Vadot			reg-shift = <2>;
686fac71e4eSEmmanuel Vadot			status = "disabled";
687fac71e4eSEmmanuel Vadot		};
688fac71e4eSEmmanuel Vadot
689fac71e4eSEmmanuel Vadot		i2c3: i2c@12030000 {
690fac71e4eSEmmanuel Vadot			compatible = "snps,designware-i2c";
691fac71e4eSEmmanuel Vadot			reg = <0x0 0x12030000 0x0 0x10000>;
692fac71e4eSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_I2C3_APB>;
693fac71e4eSEmmanuel Vadot			clock-names = "ref";
694fac71e4eSEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_I2C3_APB>;
695fac71e4eSEmmanuel Vadot			interrupts = <48>;
696fac71e4eSEmmanuel Vadot			#address-cells = <1>;
697fac71e4eSEmmanuel Vadot			#size-cells = <0>;
698fac71e4eSEmmanuel Vadot			status = "disabled";
699fac71e4eSEmmanuel Vadot		};
700fac71e4eSEmmanuel Vadot
701fac71e4eSEmmanuel Vadot		i2c4: i2c@12040000 {
702fac71e4eSEmmanuel Vadot			compatible = "snps,designware-i2c";
703fac71e4eSEmmanuel Vadot			reg = <0x0 0x12040000 0x0 0x10000>;
704fac71e4eSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_I2C4_APB>;
705fac71e4eSEmmanuel Vadot			clock-names = "ref";
706fac71e4eSEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_I2C4_APB>;
707fac71e4eSEmmanuel Vadot			interrupts = <49>;
708fac71e4eSEmmanuel Vadot			#address-cells = <1>;
709fac71e4eSEmmanuel Vadot			#size-cells = <0>;
710fac71e4eSEmmanuel Vadot			status = "disabled";
711fac71e4eSEmmanuel Vadot		};
712fac71e4eSEmmanuel Vadot
713fac71e4eSEmmanuel Vadot		i2c5: i2c@12050000 {
714fac71e4eSEmmanuel Vadot			compatible = "snps,designware-i2c";
715fac71e4eSEmmanuel Vadot			reg = <0x0 0x12050000 0x0 0x10000>;
716fac71e4eSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_I2C5_APB>;
717fac71e4eSEmmanuel Vadot			clock-names = "ref";
718fac71e4eSEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_I2C5_APB>;
719fac71e4eSEmmanuel Vadot			interrupts = <50>;
720fac71e4eSEmmanuel Vadot			#address-cells = <1>;
721fac71e4eSEmmanuel Vadot			#size-cells = <0>;
722fac71e4eSEmmanuel Vadot			status = "disabled";
723fac71e4eSEmmanuel Vadot		};
724fac71e4eSEmmanuel Vadot
725fac71e4eSEmmanuel Vadot		i2c6: i2c@12060000 {
726fac71e4eSEmmanuel Vadot			compatible = "snps,designware-i2c";
727fac71e4eSEmmanuel Vadot			reg = <0x0 0x12060000 0x0 0x10000>;
728fac71e4eSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_I2C6_APB>;
729fac71e4eSEmmanuel Vadot			clock-names = "ref";
730fac71e4eSEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_I2C6_APB>;
731fac71e4eSEmmanuel Vadot			interrupts = <51>;
732fac71e4eSEmmanuel Vadot			#address-cells = <1>;
733fac71e4eSEmmanuel Vadot			#size-cells = <0>;
734fac71e4eSEmmanuel Vadot			status = "disabled";
735fac71e4eSEmmanuel Vadot		};
736fac71e4eSEmmanuel Vadot
737aa1a8ff2SEmmanuel Vadot		spi3: spi@12070000 {
738aa1a8ff2SEmmanuel Vadot			compatible = "arm,pl022", "arm,primecell";
739aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x12070000 0x0 0x10000>;
740aa1a8ff2SEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_SPI3_APB>,
741aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_SPI3_APB>;
742aa1a8ff2SEmmanuel Vadot			clock-names = "sspclk", "apb_pclk";
743aa1a8ff2SEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_SPI3_APB>;
744aa1a8ff2SEmmanuel Vadot			interrupts = <52>;
745aa1a8ff2SEmmanuel Vadot			arm,primecell-periphid = <0x00041022>;
746aa1a8ff2SEmmanuel Vadot			num-cs = <1>;
747aa1a8ff2SEmmanuel Vadot			#address-cells = <1>;
748aa1a8ff2SEmmanuel Vadot			#size-cells = <0>;
749aa1a8ff2SEmmanuel Vadot			status = "disabled";
750aa1a8ff2SEmmanuel Vadot		};
751aa1a8ff2SEmmanuel Vadot
752aa1a8ff2SEmmanuel Vadot		spi4: spi@12080000 {
753aa1a8ff2SEmmanuel Vadot			compatible = "arm,pl022", "arm,primecell";
754aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x12080000 0x0 0x10000>;
755aa1a8ff2SEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_SPI4_APB>,
756aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_SPI4_APB>;
757aa1a8ff2SEmmanuel Vadot			clock-names = "sspclk", "apb_pclk";
758aa1a8ff2SEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_SPI4_APB>;
759aa1a8ff2SEmmanuel Vadot			interrupts = <53>;
760aa1a8ff2SEmmanuel Vadot			arm,primecell-periphid = <0x00041022>;
761aa1a8ff2SEmmanuel Vadot			num-cs = <1>;
762aa1a8ff2SEmmanuel Vadot			#address-cells = <1>;
763aa1a8ff2SEmmanuel Vadot			#size-cells = <0>;
764aa1a8ff2SEmmanuel Vadot			status = "disabled";
765aa1a8ff2SEmmanuel Vadot		};
766aa1a8ff2SEmmanuel Vadot
767aa1a8ff2SEmmanuel Vadot		spi5: spi@12090000 {
768aa1a8ff2SEmmanuel Vadot			compatible = "arm,pl022", "arm,primecell";
769aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x12090000 0x0 0x10000>;
770aa1a8ff2SEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_SPI5_APB>,
771aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_SPI5_APB>;
772aa1a8ff2SEmmanuel Vadot			clock-names = "sspclk", "apb_pclk";
773aa1a8ff2SEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_SPI5_APB>;
774aa1a8ff2SEmmanuel Vadot			interrupts = <54>;
775aa1a8ff2SEmmanuel Vadot			arm,primecell-periphid = <0x00041022>;
776aa1a8ff2SEmmanuel Vadot			num-cs = <1>;
777aa1a8ff2SEmmanuel Vadot			#address-cells = <1>;
778aa1a8ff2SEmmanuel Vadot			#size-cells = <0>;
779aa1a8ff2SEmmanuel Vadot			status = "disabled";
780aa1a8ff2SEmmanuel Vadot		};
781aa1a8ff2SEmmanuel Vadot
782aa1a8ff2SEmmanuel Vadot		spi6: spi@120a0000 {
783aa1a8ff2SEmmanuel Vadot			compatible = "arm,pl022", "arm,primecell";
784aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x120A0000 0x0 0x10000>;
785aa1a8ff2SEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_SPI6_APB>,
786aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_SPI6_APB>;
787aa1a8ff2SEmmanuel Vadot			clock-names = "sspclk", "apb_pclk";
788aa1a8ff2SEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_SPI6_APB>;
789aa1a8ff2SEmmanuel Vadot			interrupts = <55>;
790aa1a8ff2SEmmanuel Vadot			arm,primecell-periphid = <0x00041022>;
791aa1a8ff2SEmmanuel Vadot			num-cs = <1>;
792aa1a8ff2SEmmanuel Vadot			#address-cells = <1>;
793aa1a8ff2SEmmanuel Vadot			#size-cells = <0>;
794aa1a8ff2SEmmanuel Vadot			status = "disabled";
795aa1a8ff2SEmmanuel Vadot		};
796aa1a8ff2SEmmanuel Vadot
79784943d6fSEmmanuel Vadot		i2stx0: i2s@120b0000 {
79884943d6fSEmmanuel Vadot			compatible = "starfive,jh7110-i2stx0";
79984943d6fSEmmanuel Vadot			reg = <0x0 0x120b0000 0x0 0x1000>;
80084943d6fSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_I2STX0_BCLK_MST>,
80184943d6fSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_I2STX0_APB>,
80284943d6fSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_MCLK>,
80384943d6fSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_MCLK_INNER>,
80484943d6fSEmmanuel Vadot				 <&mclk_ext>;
80584943d6fSEmmanuel Vadot			clock-names = "i2sclk", "apb", "mclk",
80684943d6fSEmmanuel Vadot				      "mclk_inner","mclk_ext";
80784943d6fSEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_I2STX0_APB>,
80884943d6fSEmmanuel Vadot				 <&syscrg JH7110_SYSRST_I2STX0_BCLK>;
80984943d6fSEmmanuel Vadot			dmas = <&dma 47>;
81084943d6fSEmmanuel Vadot			dma-names = "tx";
81184943d6fSEmmanuel Vadot			#sound-dai-cells = <0>;
81284943d6fSEmmanuel Vadot			status = "disabled";
81384943d6fSEmmanuel Vadot		};
81484943d6fSEmmanuel Vadot
81584943d6fSEmmanuel Vadot		i2stx1: i2s@120c0000 {
81684943d6fSEmmanuel Vadot			compatible = "starfive,jh7110-i2stx1";
81784943d6fSEmmanuel Vadot			reg = <0x0 0x120c0000 0x0 0x1000>;
81884943d6fSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_I2STX1_BCLK_MST>,
81984943d6fSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_I2STX1_APB>,
82084943d6fSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_MCLK>,
82184943d6fSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_MCLK_INNER>,
82284943d6fSEmmanuel Vadot				 <&mclk_ext>,
82384943d6fSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_I2STX1_BCLK>,
82484943d6fSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_I2STX1_LRCK>,
82584943d6fSEmmanuel Vadot				 <&i2stx_bclk_ext>,
82684943d6fSEmmanuel Vadot				 <&i2stx_lrck_ext>;
82784943d6fSEmmanuel Vadot			clock-names = "i2sclk", "apb", "mclk",
82884943d6fSEmmanuel Vadot				      "mclk_inner", "mclk_ext", "bclk",
82984943d6fSEmmanuel Vadot				      "lrck", "bclk_ext", "lrck_ext";
83084943d6fSEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_I2STX1_APB>,
83184943d6fSEmmanuel Vadot				 <&syscrg JH7110_SYSRST_I2STX1_BCLK>;
83284943d6fSEmmanuel Vadot			dmas = <&dma 48>;
83384943d6fSEmmanuel Vadot			dma-names = "tx";
83484943d6fSEmmanuel Vadot			#sound-dai-cells = <0>;
83584943d6fSEmmanuel Vadot			status = "disabled";
83684943d6fSEmmanuel Vadot		};
83784943d6fSEmmanuel Vadot
83801950c46SEmmanuel Vadot		pwm: pwm@120d0000 {
83901950c46SEmmanuel Vadot			compatible = "starfive,jh7110-pwm", "opencores,pwm-v1";
84001950c46SEmmanuel Vadot			reg = <0x0 0x120d0000 0x0 0x10000>;
84101950c46SEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_PWM_APB>;
84201950c46SEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_PWM_APB>;
84301950c46SEmmanuel Vadot			#pwm-cells = <3>;
84401950c46SEmmanuel Vadot			status = "disabled";
84501950c46SEmmanuel Vadot		};
84601950c46SEmmanuel Vadot
847aa1a8ff2SEmmanuel Vadot		sfctemp: temperature-sensor@120e0000 {
848aa1a8ff2SEmmanuel Vadot			compatible = "starfive,jh7110-temp";
849aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x120e0000 0x0 0x10000>;
850aa1a8ff2SEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_TEMP_CORE>,
851aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_TEMP_APB>;
852aa1a8ff2SEmmanuel Vadot			clock-names = "sense", "bus";
853aa1a8ff2SEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_TEMP_CORE>,
854aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSRST_TEMP_APB>;
855aa1a8ff2SEmmanuel Vadot			reset-names = "sense", "bus";
856aa1a8ff2SEmmanuel Vadot			#thermal-sensor-cells = <0>;
857aa1a8ff2SEmmanuel Vadot		};
858aa1a8ff2SEmmanuel Vadot
859aa1a8ff2SEmmanuel Vadot		qspi: spi@13010000 {
860aa1a8ff2SEmmanuel Vadot			compatible = "starfive,jh7110-qspi", "cdns,qspi-nor";
861aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x13010000 0x0 0x10000>,
862aa1a8ff2SEmmanuel Vadot			      <0x0 0x21000000 0x0 0x400000>;
863aa1a8ff2SEmmanuel Vadot			interrupts = <25>;
864aa1a8ff2SEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_QSPI_REF>,
865aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_QSPI_AHB>,
866aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_QSPI_APB>;
867aa1a8ff2SEmmanuel Vadot			clock-names = "ref", "ahb", "apb";
868aa1a8ff2SEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_QSPI_APB>,
869aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSRST_QSPI_AHB>,
870aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSRST_QSPI_REF>;
871aa1a8ff2SEmmanuel Vadot			reset-names = "qspi", "qspi-ocp", "rstc_ref";
872aa1a8ff2SEmmanuel Vadot			cdns,fifo-depth = <256>;
873aa1a8ff2SEmmanuel Vadot			cdns,fifo-width = <4>;
874aa1a8ff2SEmmanuel Vadot			cdns,trigger-address = <0x0>;
875aa1a8ff2SEmmanuel Vadot			status = "disabled";
876aa1a8ff2SEmmanuel Vadot		};
877aa1a8ff2SEmmanuel Vadot
878fac71e4eSEmmanuel Vadot		syscrg: clock-controller@13020000 {
879fac71e4eSEmmanuel Vadot			compatible = "starfive,jh7110-syscrg";
880fac71e4eSEmmanuel Vadot			reg = <0x0 0x13020000 0x0 0x10000>;
881fac71e4eSEmmanuel Vadot			clocks = <&osc>, <&gmac1_rmii_refin>,
882fac71e4eSEmmanuel Vadot				 <&gmac1_rgmii_rxin>,
883fac71e4eSEmmanuel Vadot				 <&i2stx_bclk_ext>, <&i2stx_lrck_ext>,
884fac71e4eSEmmanuel Vadot				 <&i2srx_bclk_ext>, <&i2srx_lrck_ext>,
885aa1a8ff2SEmmanuel Vadot				 <&tdm_ext>, <&mclk_ext>,
886aa1a8ff2SEmmanuel Vadot				 <&pllclk JH7110_PLLCLK_PLL0_OUT>,
887aa1a8ff2SEmmanuel Vadot				 <&pllclk JH7110_PLLCLK_PLL1_OUT>,
888aa1a8ff2SEmmanuel Vadot				 <&pllclk JH7110_PLLCLK_PLL2_OUT>;
889fac71e4eSEmmanuel Vadot			clock-names = "osc", "gmac1_rmii_refin",
890fac71e4eSEmmanuel Vadot				      "gmac1_rgmii_rxin",
891fac71e4eSEmmanuel Vadot				      "i2stx_bclk_ext", "i2stx_lrck_ext",
892fac71e4eSEmmanuel Vadot				      "i2srx_bclk_ext", "i2srx_lrck_ext",
893aa1a8ff2SEmmanuel Vadot				      "tdm_ext", "mclk_ext",
894aa1a8ff2SEmmanuel Vadot				      "pll0_out", "pll1_out", "pll2_out";
895fac71e4eSEmmanuel Vadot			#clock-cells = <1>;
896fac71e4eSEmmanuel Vadot			#reset-cells = <1>;
897fac71e4eSEmmanuel Vadot		};
898fac71e4eSEmmanuel Vadot
899aa1a8ff2SEmmanuel Vadot		sys_syscon: syscon@13030000 {
900aa1a8ff2SEmmanuel Vadot			compatible = "starfive,jh7110-sys-syscon", "syscon", "simple-mfd";
901aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x13030000 0x0 0x1000>;
902aa1a8ff2SEmmanuel Vadot
903aa1a8ff2SEmmanuel Vadot			pllclk: clock-controller {
904aa1a8ff2SEmmanuel Vadot				compatible = "starfive,jh7110-pll";
905aa1a8ff2SEmmanuel Vadot				clocks = <&osc>;
906aa1a8ff2SEmmanuel Vadot				#clock-cells = <1>;
907aa1a8ff2SEmmanuel Vadot			};
908aa1a8ff2SEmmanuel Vadot		};
909aa1a8ff2SEmmanuel Vadot
910fac71e4eSEmmanuel Vadot		sysgpio: pinctrl@13040000 {
911fac71e4eSEmmanuel Vadot			compatible = "starfive,jh7110-sys-pinctrl";
912fac71e4eSEmmanuel Vadot			reg = <0x0 0x13040000 0x0 0x10000>;
913fac71e4eSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_IOMUX_APB>;
914fac71e4eSEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_IOMUX_APB>;
915fac71e4eSEmmanuel Vadot			interrupts = <86>;
916fac71e4eSEmmanuel Vadot			interrupt-controller;
917fac71e4eSEmmanuel Vadot			#interrupt-cells = <2>;
918fac71e4eSEmmanuel Vadot			gpio-controller;
919fac71e4eSEmmanuel Vadot			#gpio-cells = <2>;
920fac71e4eSEmmanuel Vadot		};
921fac71e4eSEmmanuel Vadot
922f126890aSEmmanuel Vadot		watchdog@13070000 {
923f126890aSEmmanuel Vadot			compatible = "starfive,jh7110-wdt";
924f126890aSEmmanuel Vadot			reg = <0x0 0x13070000 0x0 0x10000>;
925f126890aSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_WDT_APB>,
926f126890aSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_WDT_CORE>;
927f126890aSEmmanuel Vadot			clock-names = "apb", "core";
928f126890aSEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_WDT_APB>,
929f126890aSEmmanuel Vadot				 <&syscrg JH7110_SYSRST_WDT_CORE>;
930f126890aSEmmanuel Vadot		};
931f126890aSEmmanuel Vadot
932aa1a8ff2SEmmanuel Vadot		crypto: crypto@16000000 {
933aa1a8ff2SEmmanuel Vadot			compatible = "starfive,jh7110-crypto";
934aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x16000000 0x0 0x4000>;
935aa1a8ff2SEmmanuel Vadot			clocks = <&stgcrg JH7110_STGCLK_SEC_AHB>,
936aa1a8ff2SEmmanuel Vadot				 <&stgcrg JH7110_STGCLK_SEC_MISC_AHB>;
937aa1a8ff2SEmmanuel Vadot			clock-names = "hclk", "ahb";
938aa1a8ff2SEmmanuel Vadot			interrupts = <28>;
939aa1a8ff2SEmmanuel Vadot			resets = <&stgcrg JH7110_STGRST_SEC_AHB>;
940aa1a8ff2SEmmanuel Vadot			dmas = <&sdma 1 2>, <&sdma 0 2>;
941aa1a8ff2SEmmanuel Vadot			dma-names = "tx", "rx";
942aa1a8ff2SEmmanuel Vadot		};
943aa1a8ff2SEmmanuel Vadot
944aa1a8ff2SEmmanuel Vadot		sdma: dma-controller@16008000 {
945aa1a8ff2SEmmanuel Vadot			compatible = "arm,pl080", "arm,primecell";
946aa1a8ff2SEmmanuel Vadot			arm,primecell-periphid = <0x00041080>;
947aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x16008000 0x0 0x4000>;
948aa1a8ff2SEmmanuel Vadot			interrupts = <29>;
949aa1a8ff2SEmmanuel Vadot			clocks = <&stgcrg JH7110_STGCLK_SEC_AHB>;
950aa1a8ff2SEmmanuel Vadot			clock-names = "apb_pclk";
951aa1a8ff2SEmmanuel Vadot			resets = <&stgcrg JH7110_STGRST_SEC_AHB>;
952aa1a8ff2SEmmanuel Vadot			lli-bus-interface-ahb1;
953aa1a8ff2SEmmanuel Vadot			mem-bus-interface-ahb1;
954aa1a8ff2SEmmanuel Vadot			memcpy-burst-size = <256>;
955aa1a8ff2SEmmanuel Vadot			memcpy-bus-width = <32>;
956aa1a8ff2SEmmanuel Vadot			#dma-cells = <2>;
957aa1a8ff2SEmmanuel Vadot		};
958aa1a8ff2SEmmanuel Vadot
959aa1a8ff2SEmmanuel Vadot		rng: rng@1600c000 {
960aa1a8ff2SEmmanuel Vadot			compatible = "starfive,jh7110-trng";
961aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x1600C000 0x0 0x4000>;
962aa1a8ff2SEmmanuel Vadot			clocks = <&stgcrg JH7110_STGCLK_SEC_AHB>,
963aa1a8ff2SEmmanuel Vadot				 <&stgcrg JH7110_STGCLK_SEC_MISC_AHB>;
964aa1a8ff2SEmmanuel Vadot			clock-names = "hclk", "ahb";
965aa1a8ff2SEmmanuel Vadot			resets = <&stgcrg JH7110_STGRST_SEC_AHB>;
966aa1a8ff2SEmmanuel Vadot			interrupts = <30>;
967aa1a8ff2SEmmanuel Vadot		};
968aa1a8ff2SEmmanuel Vadot
969aa1a8ff2SEmmanuel Vadot		mmc0: mmc@16010000 {
970aa1a8ff2SEmmanuel Vadot			compatible = "starfive,jh7110-mmc";
971aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x16010000 0x0 0x10000>;
972aa1a8ff2SEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_SDIO0_AHB>,
973aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_SDIO0_SDCARD>;
974aa1a8ff2SEmmanuel Vadot			clock-names = "biu","ciu";
975aa1a8ff2SEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_SDIO0_AHB>;
976aa1a8ff2SEmmanuel Vadot			reset-names = "reset";
977aa1a8ff2SEmmanuel Vadot			interrupts = <74>;
978aa1a8ff2SEmmanuel Vadot			fifo-depth = <32>;
979aa1a8ff2SEmmanuel Vadot			fifo-watermark-aligned;
980aa1a8ff2SEmmanuel Vadot			data-addr = <0>;
981aa1a8ff2SEmmanuel Vadot			starfive,sysreg = <&sys_syscon 0x14 0x1a 0x7c000000>;
982aa1a8ff2SEmmanuel Vadot			status = "disabled";
983aa1a8ff2SEmmanuel Vadot		};
984aa1a8ff2SEmmanuel Vadot
985aa1a8ff2SEmmanuel Vadot		mmc1: mmc@16020000 {
986aa1a8ff2SEmmanuel Vadot			compatible = "starfive,jh7110-mmc";
987aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x16020000 0x0 0x10000>;
988aa1a8ff2SEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_SDIO1_AHB>,
989aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_SDIO1_SDCARD>;
990aa1a8ff2SEmmanuel Vadot			clock-names = "biu","ciu";
991aa1a8ff2SEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_SDIO1_AHB>;
992aa1a8ff2SEmmanuel Vadot			reset-names = "reset";
993aa1a8ff2SEmmanuel Vadot			interrupts = <75>;
994aa1a8ff2SEmmanuel Vadot			fifo-depth = <32>;
995aa1a8ff2SEmmanuel Vadot			fifo-watermark-aligned;
996aa1a8ff2SEmmanuel Vadot			data-addr = <0>;
997aa1a8ff2SEmmanuel Vadot			starfive,sysreg = <&sys_syscon 0x9c 0x1 0x3e>;
998aa1a8ff2SEmmanuel Vadot			status = "disabled";
999aa1a8ff2SEmmanuel Vadot		};
1000aa1a8ff2SEmmanuel Vadot
1001aa1a8ff2SEmmanuel Vadot		gmac0: ethernet@16030000 {
1002aa1a8ff2SEmmanuel Vadot			compatible = "starfive,jh7110-dwmac", "snps,dwmac-5.20";
1003aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x16030000 0x0 0x10000>;
1004aa1a8ff2SEmmanuel Vadot			clocks = <&aoncrg JH7110_AONCLK_GMAC0_AXI>,
1005aa1a8ff2SEmmanuel Vadot				 <&aoncrg JH7110_AONCLK_GMAC0_AHB>,
1006aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_GMAC0_PTP>,
1007aa1a8ff2SEmmanuel Vadot				 <&aoncrg JH7110_AONCLK_GMAC0_TX_INV>,
1008aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_GMAC0_GTXC>;
1009aa1a8ff2SEmmanuel Vadot			clock-names = "stmmaceth", "pclk", "ptp_ref",
1010aa1a8ff2SEmmanuel Vadot				      "tx", "gtx";
1011aa1a8ff2SEmmanuel Vadot			resets = <&aoncrg JH7110_AONRST_GMAC0_AXI>,
1012aa1a8ff2SEmmanuel Vadot				 <&aoncrg JH7110_AONRST_GMAC0_AHB>;
1013aa1a8ff2SEmmanuel Vadot			reset-names = "stmmaceth", "ahb";
1014aa1a8ff2SEmmanuel Vadot			interrupts = <7>, <6>, <5>;
1015aa1a8ff2SEmmanuel Vadot			interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
1016aa1a8ff2SEmmanuel Vadot			rx-fifo-depth = <2048>;
1017aa1a8ff2SEmmanuel Vadot			tx-fifo-depth = <2048>;
1018aa1a8ff2SEmmanuel Vadot			snps,multicast-filter-bins = <64>;
1019aa1a8ff2SEmmanuel Vadot			snps,perfect-filter-entries = <256>;
1020aa1a8ff2SEmmanuel Vadot			snps,fixed-burst;
1021aa1a8ff2SEmmanuel Vadot			snps,no-pbl-x8;
1022aa1a8ff2SEmmanuel Vadot			snps,force_thresh_dma_mode;
1023aa1a8ff2SEmmanuel Vadot			snps,axi-config = <&stmmac_axi_setup>;
1024aa1a8ff2SEmmanuel Vadot			snps,tso;
1025aa1a8ff2SEmmanuel Vadot			snps,en-tx-lpi-clockgating;
1026aa1a8ff2SEmmanuel Vadot			snps,txpbl = <16>;
1027aa1a8ff2SEmmanuel Vadot			snps,rxpbl = <16>;
1028aa1a8ff2SEmmanuel Vadot			starfive,syscon = <&aon_syscon 0xc 0x12>;
1029aa1a8ff2SEmmanuel Vadot			status = "disabled";
1030aa1a8ff2SEmmanuel Vadot		};
1031aa1a8ff2SEmmanuel Vadot
1032aa1a8ff2SEmmanuel Vadot		gmac1: ethernet@16040000 {
1033aa1a8ff2SEmmanuel Vadot			compatible = "starfive,jh7110-dwmac", "snps,dwmac-5.20";
1034aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x16040000 0x0 0x10000>;
1035aa1a8ff2SEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_GMAC1_AXI>,
1036aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_GMAC1_AHB>,
1037aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_GMAC1_PTP>,
1038aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_GMAC1_TX_INV>,
1039aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_GMAC1_GTXC>;
1040aa1a8ff2SEmmanuel Vadot			clock-names = "stmmaceth", "pclk", "ptp_ref",
1041aa1a8ff2SEmmanuel Vadot				      "tx", "gtx";
1042aa1a8ff2SEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_GMAC1_AXI>,
1043aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSRST_GMAC1_AHB>;
1044aa1a8ff2SEmmanuel Vadot			reset-names = "stmmaceth", "ahb";
1045aa1a8ff2SEmmanuel Vadot			interrupts = <78>, <77>, <76>;
1046aa1a8ff2SEmmanuel Vadot			interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
1047aa1a8ff2SEmmanuel Vadot			rx-fifo-depth = <2048>;
1048aa1a8ff2SEmmanuel Vadot			tx-fifo-depth = <2048>;
1049aa1a8ff2SEmmanuel Vadot			snps,multicast-filter-bins = <64>;
1050aa1a8ff2SEmmanuel Vadot			snps,perfect-filter-entries = <256>;
1051aa1a8ff2SEmmanuel Vadot			snps,fixed-burst;
1052aa1a8ff2SEmmanuel Vadot			snps,no-pbl-x8;
1053aa1a8ff2SEmmanuel Vadot			snps,force_thresh_dma_mode;
1054aa1a8ff2SEmmanuel Vadot			snps,axi-config = <&stmmac_axi_setup>;
1055aa1a8ff2SEmmanuel Vadot			snps,tso;
1056aa1a8ff2SEmmanuel Vadot			snps,en-tx-lpi-clockgating;
1057aa1a8ff2SEmmanuel Vadot			snps,txpbl = <16>;
1058aa1a8ff2SEmmanuel Vadot			snps,rxpbl = <16>;
1059aa1a8ff2SEmmanuel Vadot			starfive,syscon = <&sys_syscon 0x90 0x2>;
1060aa1a8ff2SEmmanuel Vadot			status = "disabled";
1061aa1a8ff2SEmmanuel Vadot		};
1062aa1a8ff2SEmmanuel Vadot
1063aa1a8ff2SEmmanuel Vadot		dma: dma-controller@16050000 {
1064aa1a8ff2SEmmanuel Vadot			compatible = "starfive,jh7110-axi-dma";
1065aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x16050000 0x0 0x10000>;
1066aa1a8ff2SEmmanuel Vadot			clocks = <&stgcrg JH7110_STGCLK_DMA1P_AXI>,
1067aa1a8ff2SEmmanuel Vadot				 <&stgcrg JH7110_STGCLK_DMA1P_AHB>;
1068aa1a8ff2SEmmanuel Vadot			clock-names = "core-clk", "cfgr-clk";
1069aa1a8ff2SEmmanuel Vadot			resets = <&stgcrg JH7110_STGRST_DMA1P_AXI>,
1070aa1a8ff2SEmmanuel Vadot				 <&stgcrg JH7110_STGRST_DMA1P_AHB>;
1071aa1a8ff2SEmmanuel Vadot			interrupts = <73>;
1072aa1a8ff2SEmmanuel Vadot			#dma-cells = <1>;
1073aa1a8ff2SEmmanuel Vadot			dma-channels = <4>;
1074aa1a8ff2SEmmanuel Vadot			snps,dma-masters = <1>;
1075aa1a8ff2SEmmanuel Vadot			snps,data-width = <3>;
1076aa1a8ff2SEmmanuel Vadot			snps,block-size = <65536 65536 65536 65536>;
1077aa1a8ff2SEmmanuel Vadot			snps,priority = <0 1 2 3>;
1078aa1a8ff2SEmmanuel Vadot			snps,axi-max-burst-len = <16>;
1079aa1a8ff2SEmmanuel Vadot		};
1080aa1a8ff2SEmmanuel Vadot
1081fac71e4eSEmmanuel Vadot		aoncrg: clock-controller@17000000 {
1082fac71e4eSEmmanuel Vadot			compatible = "starfive,jh7110-aoncrg";
1083fac71e4eSEmmanuel Vadot			reg = <0x0 0x17000000 0x0 0x10000>;
1084fac71e4eSEmmanuel Vadot			clocks = <&osc>, <&gmac0_rmii_refin>,
1085fac71e4eSEmmanuel Vadot				 <&gmac0_rgmii_rxin>,
1086fac71e4eSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_STG_AXIAHB>,
1087fac71e4eSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_APB_BUS>,
1088fac71e4eSEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_GMAC0_GTXCLK>,
1089fac71e4eSEmmanuel Vadot				 <&rtc_osc>;
1090fac71e4eSEmmanuel Vadot			clock-names = "osc", "gmac0_rmii_refin",
1091fac71e4eSEmmanuel Vadot				      "gmac0_rgmii_rxin", "stg_axiahb",
1092fac71e4eSEmmanuel Vadot				      "apb_bus", "gmac0_gtxclk",
1093fac71e4eSEmmanuel Vadot				      "rtc_osc";
1094fac71e4eSEmmanuel Vadot			#clock-cells = <1>;
1095fac71e4eSEmmanuel Vadot			#reset-cells = <1>;
1096fac71e4eSEmmanuel Vadot		};
1097fac71e4eSEmmanuel Vadot
1098aa1a8ff2SEmmanuel Vadot		aon_syscon: syscon@17010000 {
1099aa1a8ff2SEmmanuel Vadot			compatible = "starfive,jh7110-aon-syscon", "syscon";
1100aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x17010000 0x0 0x1000>;
1101aa1a8ff2SEmmanuel Vadot			#power-domain-cells = <1>;
1102aa1a8ff2SEmmanuel Vadot		};
1103aa1a8ff2SEmmanuel Vadot
1104fac71e4eSEmmanuel Vadot		aongpio: pinctrl@17020000 {
1105fac71e4eSEmmanuel Vadot			compatible = "starfive,jh7110-aon-pinctrl";
1106fac71e4eSEmmanuel Vadot			reg = <0x0 0x17020000 0x0 0x10000>;
1107fac71e4eSEmmanuel Vadot			resets = <&aoncrg JH7110_AONRST_IOMUX>;
1108fac71e4eSEmmanuel Vadot			interrupts = <85>;
1109fac71e4eSEmmanuel Vadot			interrupt-controller;
1110fac71e4eSEmmanuel Vadot			#interrupt-cells = <2>;
1111fac71e4eSEmmanuel Vadot			gpio-controller;
1112fac71e4eSEmmanuel Vadot			#gpio-cells = <2>;
1113fac71e4eSEmmanuel Vadot		};
1114f126890aSEmmanuel Vadot
1115f126890aSEmmanuel Vadot		pwrc: power-controller@17030000 {
1116f126890aSEmmanuel Vadot			compatible = "starfive,jh7110-pmu";
1117f126890aSEmmanuel Vadot			reg = <0x0 0x17030000 0x0 0x10000>;
1118f126890aSEmmanuel Vadot			interrupts = <111>;
1119f126890aSEmmanuel Vadot			#power-domain-cells = <1>;
1120f126890aSEmmanuel Vadot		};
1121aa1a8ff2SEmmanuel Vadot
112201950c46SEmmanuel Vadot		csi2rx: csi@19800000 {
112301950c46SEmmanuel Vadot			compatible = "starfive,jh7110-csi2rx", "cdns,csi2rx";
112401950c46SEmmanuel Vadot			reg = <0x0 0x19800000 0x0 0x10000>;
112501950c46SEmmanuel Vadot			clocks = <&ispcrg JH7110_ISPCLK_VIN_SYS>,
112601950c46SEmmanuel Vadot				 <&ispcrg JH7110_ISPCLK_VIN_APB>,
112701950c46SEmmanuel Vadot				 <&ispcrg JH7110_ISPCLK_VIN_PIXEL_IF0>,
112801950c46SEmmanuel Vadot				 <&ispcrg JH7110_ISPCLK_VIN_PIXEL_IF1>,
112901950c46SEmmanuel Vadot				 <&ispcrg JH7110_ISPCLK_VIN_PIXEL_IF2>,
113001950c46SEmmanuel Vadot				 <&ispcrg JH7110_ISPCLK_VIN_PIXEL_IF3>;
113101950c46SEmmanuel Vadot			clock-names = "sys_clk", "p_clk",
113201950c46SEmmanuel Vadot				      "pixel_if0_clk", "pixel_if1_clk",
113301950c46SEmmanuel Vadot				      "pixel_if2_clk", "pixel_if3_clk";
113401950c46SEmmanuel Vadot			resets = <&ispcrg JH7110_ISPRST_VIN_SYS>,
113501950c46SEmmanuel Vadot				 <&ispcrg JH7110_ISPRST_VIN_APB>,
113601950c46SEmmanuel Vadot				 <&ispcrg JH7110_ISPRST_VIN_PIXEL_IF0>,
113701950c46SEmmanuel Vadot				 <&ispcrg JH7110_ISPRST_VIN_PIXEL_IF1>,
113801950c46SEmmanuel Vadot				 <&ispcrg JH7110_ISPRST_VIN_PIXEL_IF2>,
113901950c46SEmmanuel Vadot				 <&ispcrg JH7110_ISPRST_VIN_PIXEL_IF3>;
114001950c46SEmmanuel Vadot			reset-names = "sys", "reg_bank",
114101950c46SEmmanuel Vadot				      "pixel_if0", "pixel_if1",
114201950c46SEmmanuel Vadot				      "pixel_if2", "pixel_if3";
114301950c46SEmmanuel Vadot			phys = <&csi_phy>;
114401950c46SEmmanuel Vadot			phy-names = "dphy";
114501950c46SEmmanuel Vadot			status = "disabled";
114601950c46SEmmanuel Vadot		};
114701950c46SEmmanuel Vadot
1148aa1a8ff2SEmmanuel Vadot		ispcrg: clock-controller@19810000 {
1149aa1a8ff2SEmmanuel Vadot			compatible = "starfive,jh7110-ispcrg";
1150aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x19810000 0x0 0x10000>;
1151aa1a8ff2SEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_ISP_TOP_CORE>,
1152aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_ISP_TOP_AXI>,
1153aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_NOC_BUS_ISP_AXI>,
1154aa1a8ff2SEmmanuel Vadot				 <&dvp_clk>;
1155aa1a8ff2SEmmanuel Vadot			clock-names = "isp_top_core", "isp_top_axi",
1156aa1a8ff2SEmmanuel Vadot				      "noc_bus_isp_axi", "dvp_clk";
1157aa1a8ff2SEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_ISP_TOP>,
1158aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSRST_ISP_TOP_AXI>,
1159aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSRST_NOC_BUS_ISP_AXI>;
1160aa1a8ff2SEmmanuel Vadot			#clock-cells = <1>;
1161aa1a8ff2SEmmanuel Vadot			#reset-cells = <1>;
1162aa1a8ff2SEmmanuel Vadot			power-domains = <&pwrc JH7110_PD_ISP>;
1163aa1a8ff2SEmmanuel Vadot		};
1164aa1a8ff2SEmmanuel Vadot
116501950c46SEmmanuel Vadot		csi_phy: phy@19820000 {
116601950c46SEmmanuel Vadot			compatible = "starfive,jh7110-dphy-rx";
116701950c46SEmmanuel Vadot			reg = <0x0 0x19820000 0x0 0x10000>;
116801950c46SEmmanuel Vadot			clocks = <&ispcrg JH7110_ISPCLK_M31DPHY_CFG_IN>,
116901950c46SEmmanuel Vadot				 <&ispcrg JH7110_ISPCLK_M31DPHY_REF_IN>,
117001950c46SEmmanuel Vadot				 <&ispcrg JH7110_ISPCLK_M31DPHY_TX_ESC_LAN0>;
117101950c46SEmmanuel Vadot			clock-names = "cfg", "ref", "tx";
117201950c46SEmmanuel Vadot			resets = <&ispcrg JH7110_ISPRST_M31DPHY_HW>,
117301950c46SEmmanuel Vadot				 <&ispcrg JH7110_ISPRST_M31DPHY_B09_AON>;
117401950c46SEmmanuel Vadot			power-domains = <&aon_syscon JH7110_AON_PD_DPHY_RX>;
117501950c46SEmmanuel Vadot			#phy-cells = <0>;
117601950c46SEmmanuel Vadot		};
117701950c46SEmmanuel Vadot
117801950c46SEmmanuel Vadot		camss: isp@19840000 {
117901950c46SEmmanuel Vadot			compatible = "starfive,jh7110-camss";
118001950c46SEmmanuel Vadot			reg = <0x0 0x19840000 0x0 0x10000>,
118101950c46SEmmanuel Vadot			      <0x0 0x19870000 0x0 0x30000>;
118201950c46SEmmanuel Vadot			reg-names = "syscon", "isp";
118301950c46SEmmanuel Vadot			clocks = <&ispcrg JH7110_ISPCLK_DOM4_APB_FUNC>,
118401950c46SEmmanuel Vadot				 <&ispcrg JH7110_ISPCLK_ISPV2_TOP_WRAPPER_C>,
118501950c46SEmmanuel Vadot				 <&ispcrg JH7110_ISPCLK_DVP_INV>,
118601950c46SEmmanuel Vadot				 <&ispcrg JH7110_ISPCLK_VIN_P_AXI_WR>,
118701950c46SEmmanuel Vadot				 <&ispcrg JH7110_ISPCLK_MIPI_RX0_PXL>,
118801950c46SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_ISP_TOP_CORE>,
118901950c46SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_ISP_TOP_AXI>;
119001950c46SEmmanuel Vadot			clock-names = "apb_func", "wrapper_clk_c", "dvp_inv",
119101950c46SEmmanuel Vadot				      "axiwr", "mipi_rx0_pxl", "ispcore_2x",
119201950c46SEmmanuel Vadot				      "isp_axi";
119301950c46SEmmanuel Vadot			resets = <&ispcrg JH7110_ISPRST_ISPV2_TOP_WRAPPER_P>,
119401950c46SEmmanuel Vadot				 <&ispcrg JH7110_ISPRST_ISPV2_TOP_WRAPPER_C>,
119501950c46SEmmanuel Vadot				 <&ispcrg JH7110_ISPRST_VIN_P_AXI_RD>,
119601950c46SEmmanuel Vadot				 <&ispcrg JH7110_ISPRST_VIN_P_AXI_WR>,
119701950c46SEmmanuel Vadot				 <&syscrg JH7110_SYSRST_ISP_TOP>,
119801950c46SEmmanuel Vadot				 <&syscrg JH7110_SYSRST_ISP_TOP_AXI>;
119901950c46SEmmanuel Vadot			reset-names = "wrapper_p", "wrapper_c", "axird",
120001950c46SEmmanuel Vadot				      "axiwr", "isp_top_n", "isp_top_axi";
120101950c46SEmmanuel Vadot			power-domains = <&pwrc JH7110_PD_ISP>;
120201950c46SEmmanuel Vadot			interrupts = <92>, <87>, <90>, <88>;
120301950c46SEmmanuel Vadot			status = "disabled";
120401950c46SEmmanuel Vadot		};
120501950c46SEmmanuel Vadot
1206aa1a8ff2SEmmanuel Vadot		voutcrg: clock-controller@295c0000 {
1207aa1a8ff2SEmmanuel Vadot			compatible = "starfive,jh7110-voutcrg";
1208aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x295c0000 0x0 0x10000>;
1209aa1a8ff2SEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_VOUT_SRC>,
1210aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_VOUT_TOP_AHB>,
1211aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_VOUT_TOP_AXI>,
1212aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_VOUT_TOP_HDMITX0_MCLK>,
1213aa1a8ff2SEmmanuel Vadot				 <&syscrg JH7110_SYSCLK_I2STX0_BCLK>,
1214aa1a8ff2SEmmanuel Vadot				 <&hdmitx0_pixelclk>;
1215aa1a8ff2SEmmanuel Vadot			clock-names = "vout_src", "vout_top_ahb",
1216aa1a8ff2SEmmanuel Vadot				      "vout_top_axi", "vout_top_hdmitx0_mclk",
1217aa1a8ff2SEmmanuel Vadot				      "i2stx0_bclk", "hdmitx0_pixelclk";
1218aa1a8ff2SEmmanuel Vadot			resets = <&syscrg JH7110_SYSRST_VOUT_TOP_SRC>;
1219aa1a8ff2SEmmanuel Vadot			#clock-cells = <1>;
1220aa1a8ff2SEmmanuel Vadot			#reset-cells = <1>;
1221aa1a8ff2SEmmanuel Vadot			power-domains = <&pwrc JH7110_PD_VOUT>;
1222aa1a8ff2SEmmanuel Vadot		};
1223*0e8011faSEmmanuel Vadot
1224*0e8011faSEmmanuel Vadot		pcie0: pcie@940000000 {
1225*0e8011faSEmmanuel Vadot			compatible = "starfive,jh7110-pcie";
1226*0e8011faSEmmanuel Vadot			reg = <0x9 0x40000000 0x0 0x1000000>,
1227*0e8011faSEmmanuel Vadot			      <0x0 0x2b000000 0x0 0x100000>;
1228*0e8011faSEmmanuel Vadot			reg-names = "cfg", "apb";
1229*0e8011faSEmmanuel Vadot			linux,pci-domain = <0>;
1230*0e8011faSEmmanuel Vadot			#address-cells = <3>;
1231*0e8011faSEmmanuel Vadot			#size-cells = <2>;
1232*0e8011faSEmmanuel Vadot			#interrupt-cells = <1>;
1233*0e8011faSEmmanuel Vadot			ranges = <0x82000000  0x0 0x30000000  0x0 0x30000000 0x0 0x08000000>,
1234*0e8011faSEmmanuel Vadot				 <0xc3000000  0x9 0x00000000  0x9 0x00000000 0x0 0x40000000>;
1235*0e8011faSEmmanuel Vadot			interrupts = <56>;
1236*0e8011faSEmmanuel Vadot			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
1237*0e8011faSEmmanuel Vadot			interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc0 0x1>,
1238*0e8011faSEmmanuel Vadot					<0x0 0x0 0x0 0x2 &pcie_intc0 0x2>,
1239*0e8011faSEmmanuel Vadot					<0x0 0x0 0x0 0x3 &pcie_intc0 0x3>,
1240*0e8011faSEmmanuel Vadot					<0x0 0x0 0x0 0x4 &pcie_intc0 0x4>;
1241*0e8011faSEmmanuel Vadot			msi-controller;
1242*0e8011faSEmmanuel Vadot			device_type = "pci";
1243*0e8011faSEmmanuel Vadot			starfive,stg-syscon = <&stg_syscon>;
1244*0e8011faSEmmanuel Vadot			bus-range = <0x0 0xff>;
1245*0e8011faSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_NOC_BUS_STG_AXI>,
1246*0e8011faSEmmanuel Vadot				 <&stgcrg JH7110_STGCLK_PCIE0_TL>,
1247*0e8011faSEmmanuel Vadot				 <&stgcrg JH7110_STGCLK_PCIE0_AXI_MST0>,
1248*0e8011faSEmmanuel Vadot				 <&stgcrg JH7110_STGCLK_PCIE0_APB>;
1249*0e8011faSEmmanuel Vadot			clock-names = "noc", "tl", "axi_mst0", "apb";
1250*0e8011faSEmmanuel Vadot			resets = <&stgcrg JH7110_STGRST_PCIE0_AXI_MST0>,
1251*0e8011faSEmmanuel Vadot				 <&stgcrg JH7110_STGRST_PCIE0_AXI_SLV0>,
1252*0e8011faSEmmanuel Vadot				 <&stgcrg JH7110_STGRST_PCIE0_AXI_SLV>,
1253*0e8011faSEmmanuel Vadot				 <&stgcrg JH7110_STGRST_PCIE0_BRG>,
1254*0e8011faSEmmanuel Vadot				 <&stgcrg JH7110_STGRST_PCIE0_CORE>,
1255*0e8011faSEmmanuel Vadot				 <&stgcrg JH7110_STGRST_PCIE0_APB>;
1256*0e8011faSEmmanuel Vadot			reset-names = "mst0", "slv0", "slv", "brg",
1257*0e8011faSEmmanuel Vadot				      "core", "apb";
1258*0e8011faSEmmanuel Vadot			status = "disabled";
1259*0e8011faSEmmanuel Vadot
1260*0e8011faSEmmanuel Vadot			pcie_intc0: interrupt-controller {
1261*0e8011faSEmmanuel Vadot				#address-cells = <0>;
1262*0e8011faSEmmanuel Vadot				#interrupt-cells = <1>;
1263*0e8011faSEmmanuel Vadot				interrupt-controller;
1264*0e8011faSEmmanuel Vadot			};
1265*0e8011faSEmmanuel Vadot		};
1266*0e8011faSEmmanuel Vadot
1267*0e8011faSEmmanuel Vadot		pcie1: pcie@9c0000000 {
1268*0e8011faSEmmanuel Vadot			compatible = "starfive,jh7110-pcie";
1269*0e8011faSEmmanuel Vadot			reg = <0x9 0xc0000000 0x0 0x1000000>,
1270*0e8011faSEmmanuel Vadot			      <0x0 0x2c000000 0x0 0x100000>;
1271*0e8011faSEmmanuel Vadot			reg-names = "cfg", "apb";
1272*0e8011faSEmmanuel Vadot			linux,pci-domain = <1>;
1273*0e8011faSEmmanuel Vadot			#address-cells = <3>;
1274*0e8011faSEmmanuel Vadot			#size-cells = <2>;
1275*0e8011faSEmmanuel Vadot			#interrupt-cells = <1>;
1276*0e8011faSEmmanuel Vadot			ranges = <0x82000000  0x0 0x38000000  0x0 0x38000000 0x0 0x08000000>,
1277*0e8011faSEmmanuel Vadot				 <0xc3000000  0x9 0x80000000  0x9 0x80000000 0x0 0x40000000>;
1278*0e8011faSEmmanuel Vadot			interrupts = <57>;
1279*0e8011faSEmmanuel Vadot			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
1280*0e8011faSEmmanuel Vadot			interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc1 0x1>,
1281*0e8011faSEmmanuel Vadot					<0x0 0x0 0x0 0x2 &pcie_intc1 0x2>,
1282*0e8011faSEmmanuel Vadot					<0x0 0x0 0x0 0x3 &pcie_intc1 0x3>,
1283*0e8011faSEmmanuel Vadot					<0x0 0x0 0x0 0x4 &pcie_intc1 0x4>;
1284*0e8011faSEmmanuel Vadot			msi-controller;
1285*0e8011faSEmmanuel Vadot			device_type = "pci";
1286*0e8011faSEmmanuel Vadot			starfive,stg-syscon = <&stg_syscon>;
1287*0e8011faSEmmanuel Vadot			bus-range = <0x0 0xff>;
1288*0e8011faSEmmanuel Vadot			clocks = <&syscrg JH7110_SYSCLK_NOC_BUS_STG_AXI>,
1289*0e8011faSEmmanuel Vadot				 <&stgcrg JH7110_STGCLK_PCIE1_TL>,
1290*0e8011faSEmmanuel Vadot				 <&stgcrg JH7110_STGCLK_PCIE1_AXI_MST0>,
1291*0e8011faSEmmanuel Vadot				 <&stgcrg JH7110_STGCLK_PCIE1_APB>;
1292*0e8011faSEmmanuel Vadot			clock-names = "noc", "tl", "axi_mst0", "apb";
1293*0e8011faSEmmanuel Vadot			resets = <&stgcrg JH7110_STGRST_PCIE1_AXI_MST0>,
1294*0e8011faSEmmanuel Vadot				 <&stgcrg JH7110_STGRST_PCIE1_AXI_SLV0>,
1295*0e8011faSEmmanuel Vadot				 <&stgcrg JH7110_STGRST_PCIE1_AXI_SLV>,
1296*0e8011faSEmmanuel Vadot				 <&stgcrg JH7110_STGRST_PCIE1_BRG>,
1297*0e8011faSEmmanuel Vadot				 <&stgcrg JH7110_STGRST_PCIE1_CORE>,
1298*0e8011faSEmmanuel Vadot				 <&stgcrg JH7110_STGRST_PCIE1_APB>;
1299*0e8011faSEmmanuel Vadot			reset-names = "mst0", "slv0", "slv", "brg",
1300*0e8011faSEmmanuel Vadot				      "core", "apb";
1301*0e8011faSEmmanuel Vadot			status = "disabled";
1302*0e8011faSEmmanuel Vadot
1303*0e8011faSEmmanuel Vadot			pcie_intc1: interrupt-controller {
1304*0e8011faSEmmanuel Vadot				#address-cells = <0>;
1305*0e8011faSEmmanuel Vadot				#interrupt-cells = <1>;
1306*0e8011faSEmmanuel Vadot				interrupt-controller;
1307*0e8011faSEmmanuel Vadot			};
1308*0e8011faSEmmanuel Vadot		};
1309fac71e4eSEmmanuel Vadot	};
1310fac71e4eSEmmanuel Vadot};
1311