xref: /freebsd-src/sys/contrib/device-tree/src/riscv/microchip/microchip-mpfs.dtsi (revision c9ccf3a32da427475985b85d7df023ccfb138c27)
12eb4d8dcSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2*c9ccf3a3SEmmanuel Vadot/* Copyright (c) 2020-2021 Microchip Technology Inc */
32eb4d8dcSEmmanuel Vadot
42eb4d8dcSEmmanuel Vadot/dts-v1/;
5*c9ccf3a3SEmmanuel Vadot#include "dt-bindings/clock/microchip,mpfs-clock.h"
6*c9ccf3a3SEmmanuel Vadot#include "microchip-mpfs-fabric.dtsi"
72eb4d8dcSEmmanuel Vadot
82eb4d8dcSEmmanuel Vadot/ {
92eb4d8dcSEmmanuel Vadot	#address-cells = <2>;
102eb4d8dcSEmmanuel Vadot	#size-cells = <2>;
118cc087a1SEmmanuel Vadot	model = "Microchip PolarFire SoC";
128cc087a1SEmmanuel Vadot	compatible = "microchip,mpfs";
132eb4d8dcSEmmanuel Vadot
142eb4d8dcSEmmanuel Vadot	cpus {
152eb4d8dcSEmmanuel Vadot		#address-cells = <1>;
162eb4d8dcSEmmanuel Vadot		#size-cells = <0>;
172eb4d8dcSEmmanuel Vadot
18*c9ccf3a3SEmmanuel Vadot		cpu0: cpu@0 {
192eb4d8dcSEmmanuel Vadot			compatible = "sifive,e51", "sifive,rocket0", "riscv";
202eb4d8dcSEmmanuel Vadot			device_type = "cpu";
212eb4d8dcSEmmanuel Vadot			i-cache-block-size = <64>;
222eb4d8dcSEmmanuel Vadot			i-cache-sets = <128>;
232eb4d8dcSEmmanuel Vadot			i-cache-size = <16384>;
242eb4d8dcSEmmanuel Vadot			reg = <0>;
252eb4d8dcSEmmanuel Vadot			riscv,isa = "rv64imac";
26*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_CPU>;
272eb4d8dcSEmmanuel Vadot			status = "disabled";
282eb4d8dcSEmmanuel Vadot
292eb4d8dcSEmmanuel Vadot			cpu0_intc: interrupt-controller {
302eb4d8dcSEmmanuel Vadot				#interrupt-cells = <1>;
312eb4d8dcSEmmanuel Vadot				compatible = "riscv,cpu-intc";
322eb4d8dcSEmmanuel Vadot				interrupt-controller;
332eb4d8dcSEmmanuel Vadot			};
342eb4d8dcSEmmanuel Vadot		};
352eb4d8dcSEmmanuel Vadot
36*c9ccf3a3SEmmanuel Vadot		cpu1: cpu@1 {
372eb4d8dcSEmmanuel Vadot			compatible = "sifive,u54-mc", "sifive,rocket0", "riscv";
382eb4d8dcSEmmanuel Vadot			d-cache-block-size = <64>;
392eb4d8dcSEmmanuel Vadot			d-cache-sets = <64>;
402eb4d8dcSEmmanuel Vadot			d-cache-size = <32768>;
412eb4d8dcSEmmanuel Vadot			d-tlb-sets = <1>;
422eb4d8dcSEmmanuel Vadot			d-tlb-size = <32>;
432eb4d8dcSEmmanuel Vadot			device_type = "cpu";
442eb4d8dcSEmmanuel Vadot			i-cache-block-size = <64>;
452eb4d8dcSEmmanuel Vadot			i-cache-sets = <64>;
462eb4d8dcSEmmanuel Vadot			i-cache-size = <32768>;
472eb4d8dcSEmmanuel Vadot			i-tlb-sets = <1>;
482eb4d8dcSEmmanuel Vadot			i-tlb-size = <32>;
492eb4d8dcSEmmanuel Vadot			mmu-type = "riscv,sv39";
502eb4d8dcSEmmanuel Vadot			reg = <1>;
512eb4d8dcSEmmanuel Vadot			riscv,isa = "rv64imafdc";
52*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_CPU>;
532eb4d8dcSEmmanuel Vadot			tlb-split;
542eb4d8dcSEmmanuel Vadot			status = "okay";
552eb4d8dcSEmmanuel Vadot
562eb4d8dcSEmmanuel Vadot			cpu1_intc: interrupt-controller {
572eb4d8dcSEmmanuel Vadot				#interrupt-cells = <1>;
582eb4d8dcSEmmanuel Vadot				compatible = "riscv,cpu-intc";
592eb4d8dcSEmmanuel Vadot				interrupt-controller;
602eb4d8dcSEmmanuel Vadot			};
612eb4d8dcSEmmanuel Vadot		};
622eb4d8dcSEmmanuel Vadot
63*c9ccf3a3SEmmanuel Vadot		cpu2: cpu@2 {
642eb4d8dcSEmmanuel Vadot			compatible = "sifive,u54-mc", "sifive,rocket0", "riscv";
652eb4d8dcSEmmanuel Vadot			d-cache-block-size = <64>;
662eb4d8dcSEmmanuel Vadot			d-cache-sets = <64>;
672eb4d8dcSEmmanuel Vadot			d-cache-size = <32768>;
682eb4d8dcSEmmanuel Vadot			d-tlb-sets = <1>;
692eb4d8dcSEmmanuel Vadot			d-tlb-size = <32>;
702eb4d8dcSEmmanuel Vadot			device_type = "cpu";
712eb4d8dcSEmmanuel Vadot			i-cache-block-size = <64>;
722eb4d8dcSEmmanuel Vadot			i-cache-sets = <64>;
732eb4d8dcSEmmanuel Vadot			i-cache-size = <32768>;
742eb4d8dcSEmmanuel Vadot			i-tlb-sets = <1>;
752eb4d8dcSEmmanuel Vadot			i-tlb-size = <32>;
762eb4d8dcSEmmanuel Vadot			mmu-type = "riscv,sv39";
772eb4d8dcSEmmanuel Vadot			reg = <2>;
782eb4d8dcSEmmanuel Vadot			riscv,isa = "rv64imafdc";
79*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_CPU>;
802eb4d8dcSEmmanuel Vadot			tlb-split;
812eb4d8dcSEmmanuel Vadot			status = "okay";
822eb4d8dcSEmmanuel Vadot
832eb4d8dcSEmmanuel Vadot			cpu2_intc: interrupt-controller {
842eb4d8dcSEmmanuel Vadot				#interrupt-cells = <1>;
852eb4d8dcSEmmanuel Vadot				compatible = "riscv,cpu-intc";
862eb4d8dcSEmmanuel Vadot				interrupt-controller;
872eb4d8dcSEmmanuel Vadot			};
882eb4d8dcSEmmanuel Vadot		};
892eb4d8dcSEmmanuel Vadot
90*c9ccf3a3SEmmanuel Vadot		cpu3: cpu@3 {
912eb4d8dcSEmmanuel Vadot			compatible = "sifive,u54-mc", "sifive,rocket0", "riscv";
922eb4d8dcSEmmanuel Vadot			d-cache-block-size = <64>;
932eb4d8dcSEmmanuel Vadot			d-cache-sets = <64>;
942eb4d8dcSEmmanuel Vadot			d-cache-size = <32768>;
952eb4d8dcSEmmanuel Vadot			d-tlb-sets = <1>;
962eb4d8dcSEmmanuel Vadot			d-tlb-size = <32>;
972eb4d8dcSEmmanuel Vadot			device_type = "cpu";
982eb4d8dcSEmmanuel Vadot			i-cache-block-size = <64>;
992eb4d8dcSEmmanuel Vadot			i-cache-sets = <64>;
1002eb4d8dcSEmmanuel Vadot			i-cache-size = <32768>;
1012eb4d8dcSEmmanuel Vadot			i-tlb-sets = <1>;
1022eb4d8dcSEmmanuel Vadot			i-tlb-size = <32>;
1032eb4d8dcSEmmanuel Vadot			mmu-type = "riscv,sv39";
1042eb4d8dcSEmmanuel Vadot			reg = <3>;
1052eb4d8dcSEmmanuel Vadot			riscv,isa = "rv64imafdc";
106*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_CPU>;
1072eb4d8dcSEmmanuel Vadot			tlb-split;
1082eb4d8dcSEmmanuel Vadot			status = "okay";
1092eb4d8dcSEmmanuel Vadot
1102eb4d8dcSEmmanuel Vadot			cpu3_intc: interrupt-controller {
1112eb4d8dcSEmmanuel Vadot				#interrupt-cells = <1>;
1122eb4d8dcSEmmanuel Vadot				compatible = "riscv,cpu-intc";
1132eb4d8dcSEmmanuel Vadot				interrupt-controller;
1142eb4d8dcSEmmanuel Vadot			};
1152eb4d8dcSEmmanuel Vadot		};
1162eb4d8dcSEmmanuel Vadot
117*c9ccf3a3SEmmanuel Vadot		cpu4: cpu@4 {
1182eb4d8dcSEmmanuel Vadot			compatible = "sifive,u54-mc", "sifive,rocket0", "riscv";
1192eb4d8dcSEmmanuel Vadot			d-cache-block-size = <64>;
1202eb4d8dcSEmmanuel Vadot			d-cache-sets = <64>;
1212eb4d8dcSEmmanuel Vadot			d-cache-size = <32768>;
1222eb4d8dcSEmmanuel Vadot			d-tlb-sets = <1>;
1232eb4d8dcSEmmanuel Vadot			d-tlb-size = <32>;
1242eb4d8dcSEmmanuel Vadot			device_type = "cpu";
1252eb4d8dcSEmmanuel Vadot			i-cache-block-size = <64>;
1262eb4d8dcSEmmanuel Vadot			i-cache-sets = <64>;
1272eb4d8dcSEmmanuel Vadot			i-cache-size = <32768>;
1282eb4d8dcSEmmanuel Vadot			i-tlb-sets = <1>;
1292eb4d8dcSEmmanuel Vadot			i-tlb-size = <32>;
1302eb4d8dcSEmmanuel Vadot			mmu-type = "riscv,sv39";
1312eb4d8dcSEmmanuel Vadot			reg = <4>;
1322eb4d8dcSEmmanuel Vadot			riscv,isa = "rv64imafdc";
133*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_CPU>;
1342eb4d8dcSEmmanuel Vadot			tlb-split;
1352eb4d8dcSEmmanuel Vadot			status = "okay";
1362eb4d8dcSEmmanuel Vadot			cpu4_intc: interrupt-controller {
1372eb4d8dcSEmmanuel Vadot				#interrupt-cells = <1>;
1382eb4d8dcSEmmanuel Vadot				compatible = "riscv,cpu-intc";
1392eb4d8dcSEmmanuel Vadot				interrupt-controller;
1402eb4d8dcSEmmanuel Vadot			};
1412eb4d8dcSEmmanuel Vadot		};
1422eb4d8dcSEmmanuel Vadot	};
1432eb4d8dcSEmmanuel Vadot
144*c9ccf3a3SEmmanuel Vadot	refclk: mssrefclk {
145e67e8565SEmmanuel Vadot		compatible = "fixed-clock";
146e67e8565SEmmanuel Vadot		#clock-cells = <0>;
147e67e8565SEmmanuel Vadot	};
148e67e8565SEmmanuel Vadot
1492eb4d8dcSEmmanuel Vadot	soc {
1502eb4d8dcSEmmanuel Vadot		#address-cells = <2>;
1512eb4d8dcSEmmanuel Vadot		#size-cells = <2>;
1522eb4d8dcSEmmanuel Vadot		compatible = "simple-bus";
1532eb4d8dcSEmmanuel Vadot		ranges;
1542eb4d8dcSEmmanuel Vadot
155*c9ccf3a3SEmmanuel Vadot		cctrllr: cache-controller@2010000 {
1562eb4d8dcSEmmanuel Vadot			compatible = "sifive,fu540-c000-ccache", "cache";
157*c9ccf3a3SEmmanuel Vadot			reg = <0x0 0x2010000 0x0 0x1000>;
1582eb4d8dcSEmmanuel Vadot			cache-block-size = <64>;
1592eb4d8dcSEmmanuel Vadot			cache-level = <2>;
1602eb4d8dcSEmmanuel Vadot			cache-sets = <1024>;
1612eb4d8dcSEmmanuel Vadot			cache-size = <2097152>;
1622eb4d8dcSEmmanuel Vadot			cache-unified;
1632eb4d8dcSEmmanuel Vadot			interrupt-parent = <&plic>;
164e67e8565SEmmanuel Vadot			interrupts = <1>, <2>, <3>;
1652eb4d8dcSEmmanuel Vadot		};
1662eb4d8dcSEmmanuel Vadot
167*c9ccf3a3SEmmanuel Vadot		clint: clint@2000000 {
1688cc087a1SEmmanuel Vadot			compatible = "sifive,fu540-c000-clint", "sifive,clint0";
1692eb4d8dcSEmmanuel Vadot			reg = <0x0 0x2000000 0x0 0xC000>;
170e67e8565SEmmanuel Vadot			interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>,
171e67e8565SEmmanuel Vadot					      <&cpu1_intc 3>, <&cpu1_intc 7>,
172e67e8565SEmmanuel Vadot					      <&cpu2_intc 3>, <&cpu2_intc 7>,
173e67e8565SEmmanuel Vadot					      <&cpu3_intc 3>, <&cpu3_intc 7>,
174e67e8565SEmmanuel Vadot					      <&cpu4_intc 3>, <&cpu4_intc 7>;
1752eb4d8dcSEmmanuel Vadot		};
1762eb4d8dcSEmmanuel Vadot
1772eb4d8dcSEmmanuel Vadot		plic: interrupt-controller@c000000 {
1788cc087a1SEmmanuel Vadot			compatible = "sifive,fu540-c000-plic", "sifive,plic-1.0.0";
1792eb4d8dcSEmmanuel Vadot			reg = <0x0 0xc000000 0x0 0x4000000>;
180e67e8565SEmmanuel Vadot			#address-cells = <0>;
181e67e8565SEmmanuel Vadot			#interrupt-cells = <1>;
1822eb4d8dcSEmmanuel Vadot			interrupt-controller;
183e67e8565SEmmanuel Vadot			interrupts-extended = <&cpu0_intc 11>,
184e67e8565SEmmanuel Vadot					      <&cpu1_intc 11>, <&cpu1_intc 9>,
185e67e8565SEmmanuel Vadot					      <&cpu2_intc 11>, <&cpu2_intc 9>,
186e67e8565SEmmanuel Vadot					      <&cpu3_intc 11>, <&cpu3_intc 9>,
187e67e8565SEmmanuel Vadot					      <&cpu4_intc 11>, <&cpu4_intc 9>;
188e67e8565SEmmanuel Vadot			riscv,ndev = <186>;
1892eb4d8dcSEmmanuel Vadot		};
1902eb4d8dcSEmmanuel Vadot
1912eb4d8dcSEmmanuel Vadot		clkcfg: clkcfg@20002000 {
1922eb4d8dcSEmmanuel Vadot			compatible = "microchip,mpfs-clkcfg";
193*c9ccf3a3SEmmanuel Vadot			reg = <0x0 0x20002000 0x0 0x1000>, <0x0 0x3E001000 0x0 0x1000>;
1942eb4d8dcSEmmanuel Vadot			clocks = <&refclk>;
1952eb4d8dcSEmmanuel Vadot			#clock-cells = <1>;
1962eb4d8dcSEmmanuel Vadot		};
1972eb4d8dcSEmmanuel Vadot
198*c9ccf3a3SEmmanuel Vadot		mmuart0: serial@20000000 {
1992eb4d8dcSEmmanuel Vadot			compatible = "ns16550a";
2002eb4d8dcSEmmanuel Vadot			reg = <0x0 0x20000000 0x0 0x400>;
2012eb4d8dcSEmmanuel Vadot			reg-io-width = <4>;
2022eb4d8dcSEmmanuel Vadot			reg-shift = <2>;
2032eb4d8dcSEmmanuel Vadot			interrupt-parent = <&plic>;
2042eb4d8dcSEmmanuel Vadot			interrupts = <90>;
2052eb4d8dcSEmmanuel Vadot			current-speed = <115200>;
206*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_MMUART0>;
207*c9ccf3a3SEmmanuel Vadot			status = "disabled"; /* Reserved for the HSS */
2082eb4d8dcSEmmanuel Vadot		};
2092eb4d8dcSEmmanuel Vadot
210*c9ccf3a3SEmmanuel Vadot		mmuart1: serial@20100000 {
2112eb4d8dcSEmmanuel Vadot			compatible = "ns16550a";
2122eb4d8dcSEmmanuel Vadot			reg = <0x0 0x20100000 0x0 0x400>;
2132eb4d8dcSEmmanuel Vadot			reg-io-width = <4>;
2142eb4d8dcSEmmanuel Vadot			reg-shift = <2>;
2152eb4d8dcSEmmanuel Vadot			interrupt-parent = <&plic>;
2162eb4d8dcSEmmanuel Vadot			interrupts = <91>;
2172eb4d8dcSEmmanuel Vadot			current-speed = <115200>;
218*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_MMUART1>;
2192eb4d8dcSEmmanuel Vadot			status = "disabled";
2202eb4d8dcSEmmanuel Vadot		};
2212eb4d8dcSEmmanuel Vadot
222*c9ccf3a3SEmmanuel Vadot		mmuart2: serial@20102000 {
2232eb4d8dcSEmmanuel Vadot			compatible = "ns16550a";
2242eb4d8dcSEmmanuel Vadot			reg = <0x0 0x20102000 0x0 0x400>;
2252eb4d8dcSEmmanuel Vadot			reg-io-width = <4>;
2262eb4d8dcSEmmanuel Vadot			reg-shift = <2>;
2272eb4d8dcSEmmanuel Vadot			interrupt-parent = <&plic>;
2282eb4d8dcSEmmanuel Vadot			interrupts = <92>;
2292eb4d8dcSEmmanuel Vadot			current-speed = <115200>;
230*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_MMUART2>;
2312eb4d8dcSEmmanuel Vadot			status = "disabled";
2322eb4d8dcSEmmanuel Vadot		};
2332eb4d8dcSEmmanuel Vadot
234*c9ccf3a3SEmmanuel Vadot		mmuart3: serial@20104000 {
2352eb4d8dcSEmmanuel Vadot			compatible = "ns16550a";
2362eb4d8dcSEmmanuel Vadot			reg = <0x0 0x20104000 0x0 0x400>;
2372eb4d8dcSEmmanuel Vadot			reg-io-width = <4>;
2382eb4d8dcSEmmanuel Vadot			reg-shift = <2>;
2392eb4d8dcSEmmanuel Vadot			interrupt-parent = <&plic>;
2402eb4d8dcSEmmanuel Vadot			interrupts = <93>;
2412eb4d8dcSEmmanuel Vadot			current-speed = <115200>;
242*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_MMUART3>;
243*c9ccf3a3SEmmanuel Vadot			status = "disabled";
244*c9ccf3a3SEmmanuel Vadot		};
245*c9ccf3a3SEmmanuel Vadot
246*c9ccf3a3SEmmanuel Vadot		mmuart4: serial@20106000 {
247*c9ccf3a3SEmmanuel Vadot			compatible = "ns16550a";
248*c9ccf3a3SEmmanuel Vadot			reg = <0x0 0x20106000 0x0 0x400>;
249*c9ccf3a3SEmmanuel Vadot			reg-io-width = <4>;
250*c9ccf3a3SEmmanuel Vadot			reg-shift = <2>;
251*c9ccf3a3SEmmanuel Vadot			interrupt-parent = <&plic>;
252*c9ccf3a3SEmmanuel Vadot			interrupts = <94>;
253*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_MMUART4>;
254*c9ccf3a3SEmmanuel Vadot			current-speed = <115200>;
2552eb4d8dcSEmmanuel Vadot			status = "disabled";
2562eb4d8dcSEmmanuel Vadot		};
2572eb4d8dcSEmmanuel Vadot
2588cc087a1SEmmanuel Vadot		/* Common node entry for emmc/sd */
2598cc087a1SEmmanuel Vadot		mmc: mmc@20008000 {
2608cc087a1SEmmanuel Vadot			compatible = "microchip,mpfs-sd4hc", "cdns,sd4hc";
2612eb4d8dcSEmmanuel Vadot			reg = <0x0 0x20008000 0x0 0x1000>;
2622eb4d8dcSEmmanuel Vadot			interrupt-parent = <&plic>;
263*c9ccf3a3SEmmanuel Vadot			interrupts = <88>;
264*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_MMC>;
2652eb4d8dcSEmmanuel Vadot			max-frequency = <200000000>;
2662eb4d8dcSEmmanuel Vadot			status = "disabled";
2672eb4d8dcSEmmanuel Vadot		};
2682eb4d8dcSEmmanuel Vadot
269*c9ccf3a3SEmmanuel Vadot		spi0: spi@20108000 {
270*c9ccf3a3SEmmanuel Vadot			compatible = "microchip,mpfs-spi";
271*c9ccf3a3SEmmanuel Vadot			#address-cells = <1>;
272*c9ccf3a3SEmmanuel Vadot			#size-cells = <0>;
273*c9ccf3a3SEmmanuel Vadot			reg = <0x0 0x20108000 0x0 0x1000>;
274*c9ccf3a3SEmmanuel Vadot			interrupt-parent = <&plic>;
275*c9ccf3a3SEmmanuel Vadot			interrupts = <54>;
276*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_SPI0>;
277*c9ccf3a3SEmmanuel Vadot			spi-max-frequency = <25000000>;
278*c9ccf3a3SEmmanuel Vadot			status = "disabled";
279*c9ccf3a3SEmmanuel Vadot		};
280*c9ccf3a3SEmmanuel Vadot
281*c9ccf3a3SEmmanuel Vadot		spi1: spi@20109000 {
282*c9ccf3a3SEmmanuel Vadot			compatible = "microchip,mpfs-spi";
283*c9ccf3a3SEmmanuel Vadot			#address-cells = <1>;
284*c9ccf3a3SEmmanuel Vadot			#size-cells = <0>;
285*c9ccf3a3SEmmanuel Vadot			reg = <0x0 0x20109000 0x0 0x1000>;
286*c9ccf3a3SEmmanuel Vadot			interrupt-parent = <&plic>;
287*c9ccf3a3SEmmanuel Vadot			interrupts = <55>;
288*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_SPI1>;
289*c9ccf3a3SEmmanuel Vadot			spi-max-frequency = <25000000>;
290*c9ccf3a3SEmmanuel Vadot			status = "disabled";
291*c9ccf3a3SEmmanuel Vadot		};
292*c9ccf3a3SEmmanuel Vadot
293*c9ccf3a3SEmmanuel Vadot		qspi: spi@21000000 {
294*c9ccf3a3SEmmanuel Vadot			compatible = "microchip,mpfs-qspi";
295*c9ccf3a3SEmmanuel Vadot			#address-cells = <1>;
296*c9ccf3a3SEmmanuel Vadot			#size-cells = <0>;
297*c9ccf3a3SEmmanuel Vadot			reg = <0x0 0x21000000 0x0 0x1000>;
298*c9ccf3a3SEmmanuel Vadot			interrupt-parent = <&plic>;
299*c9ccf3a3SEmmanuel Vadot			interrupts = <85>;
300*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_QSPI>;
301*c9ccf3a3SEmmanuel Vadot			spi-max-frequency = <25000000>;
302*c9ccf3a3SEmmanuel Vadot			status = "disabled";
303*c9ccf3a3SEmmanuel Vadot		};
304*c9ccf3a3SEmmanuel Vadot
305*c9ccf3a3SEmmanuel Vadot		i2c0: i2c@2010a000 {
306*c9ccf3a3SEmmanuel Vadot			compatible = "microchip,mpfs-i2c", "microchip,corei2c-rtl-v7";
307*c9ccf3a3SEmmanuel Vadot			reg = <0x0 0x2010a000 0x0 0x1000>;
308*c9ccf3a3SEmmanuel Vadot			#address-cells = <1>;
309*c9ccf3a3SEmmanuel Vadot			#size-cells = <0>;
310*c9ccf3a3SEmmanuel Vadot			interrupt-parent = <&plic>;
311*c9ccf3a3SEmmanuel Vadot			interrupts = <58>;
312*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_I2C0>;
313*c9ccf3a3SEmmanuel Vadot			clock-frequency = <100000>;
314*c9ccf3a3SEmmanuel Vadot			status = "disabled";
315*c9ccf3a3SEmmanuel Vadot		};
316*c9ccf3a3SEmmanuel Vadot
317*c9ccf3a3SEmmanuel Vadot		i2c1: i2c@2010b000 {
318*c9ccf3a3SEmmanuel Vadot			compatible = "microchip,mpfs-i2c", "microchip,corei2c-rtl-v7";
319*c9ccf3a3SEmmanuel Vadot			reg = <0x0 0x2010b000 0x0 0x1000>;
320*c9ccf3a3SEmmanuel Vadot			#address-cells = <1>;
321*c9ccf3a3SEmmanuel Vadot			#size-cells = <0>;
322*c9ccf3a3SEmmanuel Vadot			interrupt-parent = <&plic>;
323*c9ccf3a3SEmmanuel Vadot			interrupts = <61>;
324*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_I2C1>;
325*c9ccf3a3SEmmanuel Vadot			clock-frequency = <100000>;
326*c9ccf3a3SEmmanuel Vadot			status = "disabled";
327*c9ccf3a3SEmmanuel Vadot		};
328*c9ccf3a3SEmmanuel Vadot
329*c9ccf3a3SEmmanuel Vadot		mac0: ethernet@20110000 {
3302eb4d8dcSEmmanuel Vadot			compatible = "cdns,macb";
3312eb4d8dcSEmmanuel Vadot			reg = <0x0 0x20110000 0x0 0x2000>;
3322eb4d8dcSEmmanuel Vadot			#address-cells = <1>;
3332eb4d8dcSEmmanuel Vadot			#size-cells = <0>;
334*c9ccf3a3SEmmanuel Vadot			interrupt-parent = <&plic>;
335*c9ccf3a3SEmmanuel Vadot			interrupts = <64>, <65>, <66>, <67>, <68>, <69>;
336*c9ccf3a3SEmmanuel Vadot			local-mac-address = [00 00 00 00 00 00];
337*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_MAC0>, <&clkcfg CLK_AHB>;
338*c9ccf3a3SEmmanuel Vadot			clock-names = "pclk", "hclk";
339*c9ccf3a3SEmmanuel Vadot			status = "disabled";
3402eb4d8dcSEmmanuel Vadot		};
3412eb4d8dcSEmmanuel Vadot
342*c9ccf3a3SEmmanuel Vadot		mac1: ethernet@20112000 {
3432eb4d8dcSEmmanuel Vadot			compatible = "cdns,macb";
3442eb4d8dcSEmmanuel Vadot			reg = <0x0 0x20112000 0x0 0x2000>;
3452eb4d8dcSEmmanuel Vadot			#address-cells = <1>;
3462eb4d8dcSEmmanuel Vadot			#size-cells = <0>;
347*c9ccf3a3SEmmanuel Vadot			interrupt-parent = <&plic>;
348*c9ccf3a3SEmmanuel Vadot			interrupts = <70>, <71>, <72>, <73>, <74>, <75>;
349*c9ccf3a3SEmmanuel Vadot			local-mac-address = [00 00 00 00 00 00];
350*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_MAC1>, <&clkcfg CLK_AHB>;
351*c9ccf3a3SEmmanuel Vadot			clock-names = "pclk", "hclk";
352*c9ccf3a3SEmmanuel Vadot			status = "disabled";
3532eb4d8dcSEmmanuel Vadot		};
3542eb4d8dcSEmmanuel Vadot
355*c9ccf3a3SEmmanuel Vadot		gpio0: gpio@20120000 {
356*c9ccf3a3SEmmanuel Vadot			compatible = "microchip,mpfs-gpio";
357*c9ccf3a3SEmmanuel Vadot			reg = <0x0 0x20120000 0x0 0x1000>;
358*c9ccf3a3SEmmanuel Vadot			interrupt-parent = <&plic>;
359*c9ccf3a3SEmmanuel Vadot			interrupt-controller;
360*c9ccf3a3SEmmanuel Vadot			#interrupt-cells = <1>;
361*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_GPIO0>;
362*c9ccf3a3SEmmanuel Vadot			gpio-controller;
363*c9ccf3a3SEmmanuel Vadot			#gpio-cells = <2>;
364*c9ccf3a3SEmmanuel Vadot			status = "disabled";
365*c9ccf3a3SEmmanuel Vadot		};
366*c9ccf3a3SEmmanuel Vadot
367*c9ccf3a3SEmmanuel Vadot		gpio1: gpio@20121000 {
368*c9ccf3a3SEmmanuel Vadot			compatible = "microchip,mpfs-gpio";
369*c9ccf3a3SEmmanuel Vadot			reg = <0x0 0x20121000 0x0 0x1000>;
370*c9ccf3a3SEmmanuel Vadot			interrupt-parent = <&plic>;
371*c9ccf3a3SEmmanuel Vadot			interrupt-controller;
372*c9ccf3a3SEmmanuel Vadot			#interrupt-cells = <1>;
373*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_GPIO1>;
374*c9ccf3a3SEmmanuel Vadot			gpio-controller;
375*c9ccf3a3SEmmanuel Vadot			#gpio-cells = <2>;
376*c9ccf3a3SEmmanuel Vadot			status = "disabled";
377*c9ccf3a3SEmmanuel Vadot		};
378*c9ccf3a3SEmmanuel Vadot
379*c9ccf3a3SEmmanuel Vadot		gpio2: gpio@20122000 {
380*c9ccf3a3SEmmanuel Vadot			compatible = "microchip,mpfs-gpio";
381*c9ccf3a3SEmmanuel Vadot			reg = <0x0 0x20122000 0x0 0x1000>;
382*c9ccf3a3SEmmanuel Vadot			interrupt-parent = <&plic>;
383*c9ccf3a3SEmmanuel Vadot			interrupt-controller;
384*c9ccf3a3SEmmanuel Vadot			#interrupt-cells = <1>;
385*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_GPIO2>;
386*c9ccf3a3SEmmanuel Vadot			gpio-controller;
387*c9ccf3a3SEmmanuel Vadot			#gpio-cells = <2>;
388*c9ccf3a3SEmmanuel Vadot			status = "disabled";
389*c9ccf3a3SEmmanuel Vadot		};
390*c9ccf3a3SEmmanuel Vadot
391*c9ccf3a3SEmmanuel Vadot		rtc: rtc@20124000 {
392*c9ccf3a3SEmmanuel Vadot			compatible = "microchip,mpfs-rtc";
393*c9ccf3a3SEmmanuel Vadot			reg = <0x0 0x20124000 0x0 0x1000>;
394*c9ccf3a3SEmmanuel Vadot			interrupt-parent = <&plic>;
395*c9ccf3a3SEmmanuel Vadot			interrupts = <80>, <81>;
396*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_RTC>, <&clkcfg CLK_RTCREF>;
397*c9ccf3a3SEmmanuel Vadot			clock-names = "rtc", "rtcref";
398*c9ccf3a3SEmmanuel Vadot			status = "disabled";
399*c9ccf3a3SEmmanuel Vadot		};
400*c9ccf3a3SEmmanuel Vadot
401*c9ccf3a3SEmmanuel Vadot		usb: usb@20201000 {
402*c9ccf3a3SEmmanuel Vadot			compatible = "microchip,mpfs-musb";
403*c9ccf3a3SEmmanuel Vadot			reg = <0x0 0x20201000 0x0 0x1000>;
404*c9ccf3a3SEmmanuel Vadot			interrupt-parent = <&plic>;
405*c9ccf3a3SEmmanuel Vadot			interrupts = <86>, <87>;
406*c9ccf3a3SEmmanuel Vadot			clocks = <&clkcfg CLK_USB>;
407*c9ccf3a3SEmmanuel Vadot			interrupt-names = "dma","mc";
408*c9ccf3a3SEmmanuel Vadot			status = "disabled";
409*c9ccf3a3SEmmanuel Vadot		};
410*c9ccf3a3SEmmanuel Vadot
411*c9ccf3a3SEmmanuel Vadot		pcie: pcie@2000000000 {
412*c9ccf3a3SEmmanuel Vadot			compatible = "microchip,pcie-host-1.0";
413*c9ccf3a3SEmmanuel Vadot			#address-cells = <0x3>;
414*c9ccf3a3SEmmanuel Vadot			#interrupt-cells = <0x1>;
415*c9ccf3a3SEmmanuel Vadot			#size-cells = <0x2>;
416*c9ccf3a3SEmmanuel Vadot			device_type = "pci";
417*c9ccf3a3SEmmanuel Vadot			reg = <0x20 0x0 0x0 0x8000000>, <0x0 0x43000000 0x0 0x10000>;
418*c9ccf3a3SEmmanuel Vadot			reg-names = "cfg", "apb";
419*c9ccf3a3SEmmanuel Vadot			bus-range = <0x0 0x7f>;
420*c9ccf3a3SEmmanuel Vadot			interrupt-parent = <&plic>;
421*c9ccf3a3SEmmanuel Vadot			interrupts = <119>;
422*c9ccf3a3SEmmanuel Vadot			interrupt-map = <0 0 0 1 &pcie_intc 0>,
423*c9ccf3a3SEmmanuel Vadot					<0 0 0 2 &pcie_intc 1>,
424*c9ccf3a3SEmmanuel Vadot					<0 0 0 3 &pcie_intc 2>,
425*c9ccf3a3SEmmanuel Vadot					<0 0 0 4 &pcie_intc 3>;
426*c9ccf3a3SEmmanuel Vadot			interrupt-map-mask = <0 0 0 7>;
427*c9ccf3a3SEmmanuel Vadot			clocks = <&fabric_clk1>, <&fabric_clk1>, <&fabric_clk3>;
428*c9ccf3a3SEmmanuel Vadot			clock-names = "fic0", "fic1", "fic3";
429*c9ccf3a3SEmmanuel Vadot			ranges = <0x3000000 0x0 0x8000000 0x20 0x8000000 0x0 0x80000000>;
430*c9ccf3a3SEmmanuel Vadot			msi-parent = <&pcie>;
431*c9ccf3a3SEmmanuel Vadot			msi-controller;
432*c9ccf3a3SEmmanuel Vadot			microchip,axi-m-atr0 = <0x10 0x0>;
433*c9ccf3a3SEmmanuel Vadot			status = "disabled";
434*c9ccf3a3SEmmanuel Vadot			pcie_intc: legacy-interrupt-controller {
435*c9ccf3a3SEmmanuel Vadot				#address-cells = <0>;
436*c9ccf3a3SEmmanuel Vadot				#interrupt-cells = <1>;
437*c9ccf3a3SEmmanuel Vadot				interrupt-controller;
438*c9ccf3a3SEmmanuel Vadot			};
439*c9ccf3a3SEmmanuel Vadot		};
440*c9ccf3a3SEmmanuel Vadot
441*c9ccf3a3SEmmanuel Vadot		mbox: mailbox@37020000 {
442*c9ccf3a3SEmmanuel Vadot			compatible = "microchip,mpfs-mailbox";
443*c9ccf3a3SEmmanuel Vadot			reg = <0x0 0x37020000 0x0 0x1000>, <0x0 0x2000318C 0x0 0x40>;
444*c9ccf3a3SEmmanuel Vadot			interrupt-parent = <&plic>;
445*c9ccf3a3SEmmanuel Vadot			interrupts = <96>;
446*c9ccf3a3SEmmanuel Vadot			#mbox-cells = <1>;
447*c9ccf3a3SEmmanuel Vadot			status = "disabled";
448*c9ccf3a3SEmmanuel Vadot		};
449*c9ccf3a3SEmmanuel Vadot
450*c9ccf3a3SEmmanuel Vadot		syscontroller: syscontroller {
451*c9ccf3a3SEmmanuel Vadot			compatible = "microchip,mpfs-sys-controller";
452*c9ccf3a3SEmmanuel Vadot			mboxes = <&mbox 0>;
453*c9ccf3a3SEmmanuel Vadot		};
4542eb4d8dcSEmmanuel Vadot	};
4552eb4d8dcSEmmanuel Vadot};
456