xref: /freebsd-src/sys/contrib/device-tree/src/riscv/sifive/fu740-c000.dtsi (revision 84943d6f38e936ac3b7a3947ca26eeb27a39f938)
15def4c47SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0 OR MIT)
25def4c47SEmmanuel Vadot/* Copyright (c) 2020 SiFive, Inc */
35def4c47SEmmanuel Vadot
45def4c47SEmmanuel Vadot/dts-v1/;
55def4c47SEmmanuel Vadot
65def4c47SEmmanuel Vadot#include <dt-bindings/clock/sifive-fu740-prci.h>
75def4c47SEmmanuel Vadot
85def4c47SEmmanuel Vadot/ {
95def4c47SEmmanuel Vadot	#address-cells = <2>;
105def4c47SEmmanuel Vadot	#size-cells = <2>;
115def4c47SEmmanuel Vadot	compatible = "sifive,fu740-c000", "sifive,fu740";
125def4c47SEmmanuel Vadot
135def4c47SEmmanuel Vadot	aliases {
145def4c47SEmmanuel Vadot		serial0 = &uart0;
155def4c47SEmmanuel Vadot		serial1 = &uart1;
165def4c47SEmmanuel Vadot		ethernet0 = &eth0;
175def4c47SEmmanuel Vadot	};
185def4c47SEmmanuel Vadot
195def4c47SEmmanuel Vadot	chosen {
205def4c47SEmmanuel Vadot	};
215def4c47SEmmanuel Vadot
225def4c47SEmmanuel Vadot	cpus {
235def4c47SEmmanuel Vadot		#address-cells = <1>;
245def4c47SEmmanuel Vadot		#size-cells = <0>;
255def4c47SEmmanuel Vadot		cpu0: cpu@0 {
265def4c47SEmmanuel Vadot			compatible = "sifive,bullet0", "riscv";
275def4c47SEmmanuel Vadot			device_type = "cpu";
285def4c47SEmmanuel Vadot			i-cache-block-size = <64>;
295def4c47SEmmanuel Vadot			i-cache-sets = <128>;
305def4c47SEmmanuel Vadot			i-cache-size = <16384>;
315def4c47SEmmanuel Vadot			next-level-cache = <&ccache>;
325def4c47SEmmanuel Vadot			reg = <0x0>;
335def4c47SEmmanuel Vadot			riscv,isa = "rv64imac";
34*84943d6fSEmmanuel Vadot			riscv,isa-base = "rv64i";
35*84943d6fSEmmanuel Vadot			riscv,isa-extensions = "i", "m", "a", "c", "zicntr", "zicsr", "zifencei",
36*84943d6fSEmmanuel Vadot					       "zihpm";
375def4c47SEmmanuel Vadot			status = "disabled";
385def4c47SEmmanuel Vadot			cpu0_intc: interrupt-controller {
395def4c47SEmmanuel Vadot				#interrupt-cells = <1>;
405def4c47SEmmanuel Vadot				compatible = "riscv,cpu-intc";
415def4c47SEmmanuel Vadot				interrupt-controller;
425def4c47SEmmanuel Vadot			};
435def4c47SEmmanuel Vadot		};
445def4c47SEmmanuel Vadot		cpu1: cpu@1 {
455def4c47SEmmanuel Vadot			compatible = "sifive,bullet0", "riscv";
465def4c47SEmmanuel Vadot			d-cache-block-size = <64>;
475def4c47SEmmanuel Vadot			d-cache-sets = <64>;
485def4c47SEmmanuel Vadot			d-cache-size = <32768>;
495def4c47SEmmanuel Vadot			d-tlb-sets = <1>;
505def4c47SEmmanuel Vadot			d-tlb-size = <40>;
515def4c47SEmmanuel Vadot			device_type = "cpu";
525def4c47SEmmanuel Vadot			i-cache-block-size = <64>;
535def4c47SEmmanuel Vadot			i-cache-sets = <128>;
545def4c47SEmmanuel Vadot			i-cache-size = <32768>;
555def4c47SEmmanuel Vadot			i-tlb-sets = <1>;
565def4c47SEmmanuel Vadot			i-tlb-size = <40>;
575def4c47SEmmanuel Vadot			mmu-type = "riscv,sv39";
585def4c47SEmmanuel Vadot			next-level-cache = <&ccache>;
595def4c47SEmmanuel Vadot			reg = <0x1>;
605def4c47SEmmanuel Vadot			riscv,isa = "rv64imafdc";
61*84943d6fSEmmanuel Vadot			riscv,isa-base = "rv64i";
62*84943d6fSEmmanuel Vadot			riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr",
63*84943d6fSEmmanuel Vadot					       "zifencei", "zihpm";
645def4c47SEmmanuel Vadot			tlb-split;
655def4c47SEmmanuel Vadot			cpu1_intc: interrupt-controller {
665def4c47SEmmanuel Vadot				#interrupt-cells = <1>;
675def4c47SEmmanuel Vadot				compatible = "riscv,cpu-intc";
685def4c47SEmmanuel Vadot				interrupt-controller;
695def4c47SEmmanuel Vadot			};
705def4c47SEmmanuel Vadot		};
715def4c47SEmmanuel Vadot		cpu2: cpu@2 {
725def4c47SEmmanuel Vadot			compatible = "sifive,bullet0", "riscv";
735def4c47SEmmanuel Vadot			d-cache-block-size = <64>;
745def4c47SEmmanuel Vadot			d-cache-sets = <64>;
755def4c47SEmmanuel Vadot			d-cache-size = <32768>;
765def4c47SEmmanuel Vadot			d-tlb-sets = <1>;
775def4c47SEmmanuel Vadot			d-tlb-size = <40>;
785def4c47SEmmanuel Vadot			device_type = "cpu";
795def4c47SEmmanuel Vadot			i-cache-block-size = <64>;
805def4c47SEmmanuel Vadot			i-cache-sets = <128>;
815def4c47SEmmanuel Vadot			i-cache-size = <32768>;
825def4c47SEmmanuel Vadot			i-tlb-sets = <1>;
835def4c47SEmmanuel Vadot			i-tlb-size = <40>;
845def4c47SEmmanuel Vadot			mmu-type = "riscv,sv39";
855def4c47SEmmanuel Vadot			next-level-cache = <&ccache>;
865def4c47SEmmanuel Vadot			reg = <0x2>;
875def4c47SEmmanuel Vadot			riscv,isa = "rv64imafdc";
88*84943d6fSEmmanuel Vadot			riscv,isa-base = "rv64i";
89*84943d6fSEmmanuel Vadot			riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr",
90*84943d6fSEmmanuel Vadot					       "zifencei", "zihpm";
915def4c47SEmmanuel Vadot			tlb-split;
925def4c47SEmmanuel Vadot			cpu2_intc: interrupt-controller {
935def4c47SEmmanuel Vadot				#interrupt-cells = <1>;
945def4c47SEmmanuel Vadot				compatible = "riscv,cpu-intc";
955def4c47SEmmanuel Vadot				interrupt-controller;
965def4c47SEmmanuel Vadot			};
975def4c47SEmmanuel Vadot		};
985def4c47SEmmanuel Vadot		cpu3: cpu@3 {
995def4c47SEmmanuel Vadot			compatible = "sifive,bullet0", "riscv";
1005def4c47SEmmanuel Vadot			d-cache-block-size = <64>;
1015def4c47SEmmanuel Vadot			d-cache-sets = <64>;
1025def4c47SEmmanuel Vadot			d-cache-size = <32768>;
1035def4c47SEmmanuel Vadot			d-tlb-sets = <1>;
1045def4c47SEmmanuel Vadot			d-tlb-size = <40>;
1055def4c47SEmmanuel Vadot			device_type = "cpu";
1065def4c47SEmmanuel Vadot			i-cache-block-size = <64>;
1075def4c47SEmmanuel Vadot			i-cache-sets = <128>;
1085def4c47SEmmanuel Vadot			i-cache-size = <32768>;
1095def4c47SEmmanuel Vadot			i-tlb-sets = <1>;
1105def4c47SEmmanuel Vadot			i-tlb-size = <40>;
1115def4c47SEmmanuel Vadot			mmu-type = "riscv,sv39";
1125def4c47SEmmanuel Vadot			next-level-cache = <&ccache>;
1135def4c47SEmmanuel Vadot			reg = <0x3>;
1145def4c47SEmmanuel Vadot			riscv,isa = "rv64imafdc";
115*84943d6fSEmmanuel Vadot			riscv,isa-base = "rv64i";
116*84943d6fSEmmanuel Vadot			riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr",
117*84943d6fSEmmanuel Vadot					       "zifencei", "zihpm";
1185def4c47SEmmanuel Vadot			tlb-split;
1195def4c47SEmmanuel Vadot			cpu3_intc: interrupt-controller {
1205def4c47SEmmanuel Vadot				#interrupt-cells = <1>;
1215def4c47SEmmanuel Vadot				compatible = "riscv,cpu-intc";
1225def4c47SEmmanuel Vadot				interrupt-controller;
1235def4c47SEmmanuel Vadot			};
1245def4c47SEmmanuel Vadot		};
1255def4c47SEmmanuel Vadot		cpu4: cpu@4 {
1265def4c47SEmmanuel Vadot			compatible = "sifive,bullet0", "riscv";
1275def4c47SEmmanuel Vadot			d-cache-block-size = <64>;
1285def4c47SEmmanuel Vadot			d-cache-sets = <64>;
1295def4c47SEmmanuel Vadot			d-cache-size = <32768>;
1305def4c47SEmmanuel Vadot			d-tlb-sets = <1>;
1315def4c47SEmmanuel Vadot			d-tlb-size = <40>;
1325def4c47SEmmanuel Vadot			device_type = "cpu";
1335def4c47SEmmanuel Vadot			i-cache-block-size = <64>;
1345def4c47SEmmanuel Vadot			i-cache-sets = <128>;
1355def4c47SEmmanuel Vadot			i-cache-size = <32768>;
1365def4c47SEmmanuel Vadot			i-tlb-sets = <1>;
1375def4c47SEmmanuel Vadot			i-tlb-size = <40>;
1385def4c47SEmmanuel Vadot			mmu-type = "riscv,sv39";
1395def4c47SEmmanuel Vadot			next-level-cache = <&ccache>;
1405def4c47SEmmanuel Vadot			reg = <0x4>;
1415def4c47SEmmanuel Vadot			riscv,isa = "rv64imafdc";
142*84943d6fSEmmanuel Vadot			riscv,isa-base = "rv64i";
143*84943d6fSEmmanuel Vadot			riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr",
144*84943d6fSEmmanuel Vadot					       "zifencei", "zihpm";
1455def4c47SEmmanuel Vadot			tlb-split;
1465def4c47SEmmanuel Vadot			cpu4_intc: interrupt-controller {
1475def4c47SEmmanuel Vadot				#interrupt-cells = <1>;
1485def4c47SEmmanuel Vadot				compatible = "riscv,cpu-intc";
1495def4c47SEmmanuel Vadot				interrupt-controller;
1505def4c47SEmmanuel Vadot			};
1515def4c47SEmmanuel Vadot		};
152b97ee269SEmmanuel Vadot
153b97ee269SEmmanuel Vadot		cpu-map {
154b97ee269SEmmanuel Vadot			cluster0 {
155b97ee269SEmmanuel Vadot				core0 {
156b97ee269SEmmanuel Vadot					cpu = <&cpu0>;
157b97ee269SEmmanuel Vadot				};
158b97ee269SEmmanuel Vadot
159b97ee269SEmmanuel Vadot				core1 {
160b97ee269SEmmanuel Vadot					cpu = <&cpu1>;
161b97ee269SEmmanuel Vadot				};
162b97ee269SEmmanuel Vadot
163b97ee269SEmmanuel Vadot				core2 {
164b97ee269SEmmanuel Vadot					cpu = <&cpu2>;
165b97ee269SEmmanuel Vadot				};
166b97ee269SEmmanuel Vadot
167b97ee269SEmmanuel Vadot				core3 {
168b97ee269SEmmanuel Vadot					cpu = <&cpu3>;
169b97ee269SEmmanuel Vadot				};
170b97ee269SEmmanuel Vadot
171b97ee269SEmmanuel Vadot				core4 {
172b97ee269SEmmanuel Vadot					cpu = <&cpu4>;
173b97ee269SEmmanuel Vadot				};
174b97ee269SEmmanuel Vadot			};
175b97ee269SEmmanuel Vadot		};
1765def4c47SEmmanuel Vadot	};
1775def4c47SEmmanuel Vadot	soc {
1785def4c47SEmmanuel Vadot		#address-cells = <2>;
1795def4c47SEmmanuel Vadot		#size-cells = <2>;
1805def4c47SEmmanuel Vadot		compatible = "simple-bus";
1815def4c47SEmmanuel Vadot		ranges;
1825def4c47SEmmanuel Vadot		plic0: interrupt-controller@c000000 {
1835def4c47SEmmanuel Vadot			#interrupt-cells = <1>;
1845def4c47SEmmanuel Vadot			#address-cells = <0>;
1855def4c47SEmmanuel Vadot			compatible = "sifive,fu540-c000-plic", "sifive,plic-1.0.0";
1865def4c47SEmmanuel Vadot			reg = <0x0 0xc000000 0x0 0x4000000>;
1875def4c47SEmmanuel Vadot			riscv,ndev = <69>;
1885def4c47SEmmanuel Vadot			interrupt-controller;
189e67e8565SEmmanuel Vadot			interrupts-extended =
190e67e8565SEmmanuel Vadot				<&cpu0_intc 0xffffffff>,
191e67e8565SEmmanuel Vadot				<&cpu1_intc 0xffffffff>, <&cpu1_intc 9>,
192e67e8565SEmmanuel Vadot				<&cpu2_intc 0xffffffff>, <&cpu2_intc 9>,
193e67e8565SEmmanuel Vadot				<&cpu3_intc 0xffffffff>, <&cpu3_intc 9>,
194e67e8565SEmmanuel Vadot				<&cpu4_intc 0xffffffff>, <&cpu4_intc 9>;
1955def4c47SEmmanuel Vadot		};
1965def4c47SEmmanuel Vadot		prci: clock-controller@10000000 {
1975def4c47SEmmanuel Vadot			compatible = "sifive,fu740-c000-prci";
1985def4c47SEmmanuel Vadot			reg = <0x0 0x10000000 0x0 0x1000>;
1995def4c47SEmmanuel Vadot			clocks = <&hfclk>, <&rtcclk>;
2005def4c47SEmmanuel Vadot			#clock-cells = <1>;
2012eb4d8dcSEmmanuel Vadot			#reset-cells = <1>;
2025def4c47SEmmanuel Vadot		};
2035def4c47SEmmanuel Vadot		uart0: serial@10010000 {
2045def4c47SEmmanuel Vadot			compatible = "sifive,fu740-c000-uart", "sifive,uart0";
2055def4c47SEmmanuel Vadot			reg = <0x0 0x10010000 0x0 0x1000>;
2065def4c47SEmmanuel Vadot			interrupt-parent = <&plic0>;
2075def4c47SEmmanuel Vadot			interrupts = <39>;
208c9ccf3a3SEmmanuel Vadot			clocks = <&prci FU740_PRCI_CLK_PCLK>;
2095def4c47SEmmanuel Vadot			status = "disabled";
2105def4c47SEmmanuel Vadot		};
2115def4c47SEmmanuel Vadot		uart1: serial@10011000 {
2125def4c47SEmmanuel Vadot			compatible = "sifive,fu740-c000-uart", "sifive,uart0";
2135def4c47SEmmanuel Vadot			reg = <0x0 0x10011000 0x0 0x1000>;
2145def4c47SEmmanuel Vadot			interrupt-parent = <&plic0>;
2155def4c47SEmmanuel Vadot			interrupts = <40>;
216c9ccf3a3SEmmanuel Vadot			clocks = <&prci FU740_PRCI_CLK_PCLK>;
2175def4c47SEmmanuel Vadot			status = "disabled";
2185def4c47SEmmanuel Vadot		};
2195def4c47SEmmanuel Vadot		i2c0: i2c@10030000 {
2205def4c47SEmmanuel Vadot			compatible = "sifive,fu740-c000-i2c", "sifive,i2c0";
2215def4c47SEmmanuel Vadot			reg = <0x0 0x10030000 0x0 0x1000>;
2225def4c47SEmmanuel Vadot			interrupt-parent = <&plic0>;
2235def4c47SEmmanuel Vadot			interrupts = <52>;
224c9ccf3a3SEmmanuel Vadot			clocks = <&prci FU740_PRCI_CLK_PCLK>;
2255def4c47SEmmanuel Vadot			reg-shift = <2>;
2265def4c47SEmmanuel Vadot			reg-io-width = <1>;
2275def4c47SEmmanuel Vadot			#address-cells = <1>;
2285def4c47SEmmanuel Vadot			#size-cells = <0>;
2295def4c47SEmmanuel Vadot			status = "disabled";
2305def4c47SEmmanuel Vadot		};
2315def4c47SEmmanuel Vadot		i2c1: i2c@10031000 {
2325def4c47SEmmanuel Vadot			compatible = "sifive,fu740-c000-i2c", "sifive,i2c0";
2335def4c47SEmmanuel Vadot			reg = <0x0 0x10031000 0x0 0x1000>;
2345def4c47SEmmanuel Vadot			interrupt-parent = <&plic0>;
2355def4c47SEmmanuel Vadot			interrupts = <53>;
236c9ccf3a3SEmmanuel Vadot			clocks = <&prci FU740_PRCI_CLK_PCLK>;
2375def4c47SEmmanuel Vadot			reg-shift = <2>;
2385def4c47SEmmanuel Vadot			reg-io-width = <1>;
2395def4c47SEmmanuel Vadot			#address-cells = <1>;
2405def4c47SEmmanuel Vadot			#size-cells = <0>;
2415def4c47SEmmanuel Vadot			status = "disabled";
2425def4c47SEmmanuel Vadot		};
2435def4c47SEmmanuel Vadot		qspi0: spi@10040000 {
2445def4c47SEmmanuel Vadot			compatible = "sifive,fu740-c000-spi", "sifive,spi0";
2455def4c47SEmmanuel Vadot			reg = <0x0 0x10040000 0x0 0x1000>,
2465def4c47SEmmanuel Vadot			      <0x0 0x20000000 0x0 0x10000000>;
2475def4c47SEmmanuel Vadot			interrupt-parent = <&plic0>;
2485def4c47SEmmanuel Vadot			interrupts = <41>;
249c9ccf3a3SEmmanuel Vadot			clocks = <&prci FU740_PRCI_CLK_PCLK>;
2505def4c47SEmmanuel Vadot			#address-cells = <1>;
2515def4c47SEmmanuel Vadot			#size-cells = <0>;
2525def4c47SEmmanuel Vadot			status = "disabled";
2535def4c47SEmmanuel Vadot		};
2545def4c47SEmmanuel Vadot		qspi1: spi@10041000 {
2555def4c47SEmmanuel Vadot			compatible = "sifive,fu740-c000-spi", "sifive,spi0";
2565def4c47SEmmanuel Vadot			reg = <0x0 0x10041000 0x0 0x1000>,
2575def4c47SEmmanuel Vadot			      <0x0 0x30000000 0x0 0x10000000>;
2585def4c47SEmmanuel Vadot			interrupt-parent = <&plic0>;
2595def4c47SEmmanuel Vadot			interrupts = <42>;
260c9ccf3a3SEmmanuel Vadot			clocks = <&prci FU740_PRCI_CLK_PCLK>;
2615def4c47SEmmanuel Vadot			#address-cells = <1>;
2625def4c47SEmmanuel Vadot			#size-cells = <0>;
2635def4c47SEmmanuel Vadot			status = "disabled";
2645def4c47SEmmanuel Vadot		};
2655def4c47SEmmanuel Vadot		spi0: spi@10050000 {
2665def4c47SEmmanuel Vadot			compatible = "sifive,fu740-c000-spi", "sifive,spi0";
2675def4c47SEmmanuel Vadot			reg = <0x0 0x10050000 0x0 0x1000>;
2685def4c47SEmmanuel Vadot			interrupt-parent = <&plic0>;
2695def4c47SEmmanuel Vadot			interrupts = <43>;
270c9ccf3a3SEmmanuel Vadot			clocks = <&prci FU740_PRCI_CLK_PCLK>;
2715def4c47SEmmanuel Vadot			#address-cells = <1>;
2725def4c47SEmmanuel Vadot			#size-cells = <0>;
2735def4c47SEmmanuel Vadot			status = "disabled";
2745def4c47SEmmanuel Vadot		};
2755def4c47SEmmanuel Vadot		eth0: ethernet@10090000 {
2765def4c47SEmmanuel Vadot			compatible = "sifive,fu540-c000-gem";
2775def4c47SEmmanuel Vadot			interrupt-parent = <&plic0>;
2785def4c47SEmmanuel Vadot			interrupts = <55>;
2795def4c47SEmmanuel Vadot			reg = <0x0 0x10090000 0x0 0x2000>,
2805def4c47SEmmanuel Vadot			      <0x0 0x100a0000 0x0 0x1000>;
2815def4c47SEmmanuel Vadot			local-mac-address = [00 00 00 00 00 00];
2825def4c47SEmmanuel Vadot			clock-names = "pclk", "hclk";
283c9ccf3a3SEmmanuel Vadot			clocks = <&prci FU740_PRCI_CLK_GEMGXLPLL>,
284c9ccf3a3SEmmanuel Vadot				 <&prci FU740_PRCI_CLK_GEMGXLPLL>;
2855def4c47SEmmanuel Vadot			#address-cells = <1>;
2865def4c47SEmmanuel Vadot			#size-cells = <0>;
2875def4c47SEmmanuel Vadot			status = "disabled";
2885def4c47SEmmanuel Vadot		};
2895def4c47SEmmanuel Vadot		pwm0: pwm@10020000 {
2905def4c47SEmmanuel Vadot			compatible = "sifive,fu740-c000-pwm", "sifive,pwm0";
2915def4c47SEmmanuel Vadot			reg = <0x0 0x10020000 0x0 0x1000>;
2925def4c47SEmmanuel Vadot			interrupt-parent = <&plic0>;
2935def4c47SEmmanuel Vadot			interrupts = <44>, <45>, <46>, <47>;
294c9ccf3a3SEmmanuel Vadot			clocks = <&prci FU740_PRCI_CLK_PCLK>;
2955def4c47SEmmanuel Vadot			#pwm-cells = <3>;
2965def4c47SEmmanuel Vadot			status = "disabled";
2975def4c47SEmmanuel Vadot		};
2985def4c47SEmmanuel Vadot		pwm1: pwm@10021000 {
2995def4c47SEmmanuel Vadot			compatible = "sifive,fu740-c000-pwm", "sifive,pwm0";
3005def4c47SEmmanuel Vadot			reg = <0x0 0x10021000 0x0 0x1000>;
3015def4c47SEmmanuel Vadot			interrupt-parent = <&plic0>;
3025def4c47SEmmanuel Vadot			interrupts = <48>, <49>, <50>, <51>;
303c9ccf3a3SEmmanuel Vadot			clocks = <&prci FU740_PRCI_CLK_PCLK>;
3045def4c47SEmmanuel Vadot			#pwm-cells = <3>;
3055def4c47SEmmanuel Vadot			status = "disabled";
3065def4c47SEmmanuel Vadot		};
3075def4c47SEmmanuel Vadot		ccache: cache-controller@2010000 {
3085def4c47SEmmanuel Vadot			compatible = "sifive,fu740-c000-ccache", "cache";
3095def4c47SEmmanuel Vadot			cache-block-size = <64>;
3105def4c47SEmmanuel Vadot			cache-level = <2>;
3115def4c47SEmmanuel Vadot			cache-sets = <2048>;
3125def4c47SEmmanuel Vadot			cache-size = <2097152>;
3135def4c47SEmmanuel Vadot			cache-unified;
3145def4c47SEmmanuel Vadot			interrupt-parent = <&plic0>;
315e67e8565SEmmanuel Vadot			interrupts = <19>, <21>, <22>, <20>;
3165def4c47SEmmanuel Vadot			reg = <0x0 0x2010000 0x0 0x1000>;
3175def4c47SEmmanuel Vadot		};
3185def4c47SEmmanuel Vadot		gpio: gpio@10060000 {
3195def4c47SEmmanuel Vadot			compatible = "sifive,fu740-c000-gpio", "sifive,gpio0";
3205def4c47SEmmanuel Vadot			interrupt-parent = <&plic0>;
3215def4c47SEmmanuel Vadot			interrupts = <23>, <24>, <25>, <26>, <27>, <28>, <29>,
3225def4c47SEmmanuel Vadot				     <30>, <31>, <32>, <33>, <34>, <35>, <36>,
3235def4c47SEmmanuel Vadot				     <37>, <38>;
3245def4c47SEmmanuel Vadot			reg = <0x0 0x10060000 0x0 0x1000>;
3255def4c47SEmmanuel Vadot			gpio-controller;
3265def4c47SEmmanuel Vadot			#gpio-cells = <2>;
3275def4c47SEmmanuel Vadot			interrupt-controller;
3285def4c47SEmmanuel Vadot			#interrupt-cells = <2>;
329c9ccf3a3SEmmanuel Vadot			clocks = <&prci FU740_PRCI_CLK_PCLK>;
3305def4c47SEmmanuel Vadot			status = "disabled";
3315def4c47SEmmanuel Vadot		};
3322eb4d8dcSEmmanuel Vadot		pcie@e00000000 {
3332eb4d8dcSEmmanuel Vadot			compatible = "sifive,fu740-pcie";
3342eb4d8dcSEmmanuel Vadot			#address-cells = <3>;
3352eb4d8dcSEmmanuel Vadot			#size-cells = <2>;
3362eb4d8dcSEmmanuel Vadot			#interrupt-cells = <1>;
3372eb4d8dcSEmmanuel Vadot			reg = <0xe 0x00000000 0x0 0x80000000>,
3382eb4d8dcSEmmanuel Vadot			      <0xd 0xf0000000 0x0 0x10000000>,
3392eb4d8dcSEmmanuel Vadot			      <0x0 0x100d0000 0x0 0x1000>;
3402eb4d8dcSEmmanuel Vadot			reg-names = "dbi", "config", "mgmt";
3412eb4d8dcSEmmanuel Vadot			device_type = "pci";
3422eb4d8dcSEmmanuel Vadot			dma-coherent;
3432eb4d8dcSEmmanuel Vadot			bus-range = <0x0 0xff>;
3442eb4d8dcSEmmanuel Vadot			ranges = <0x81000000  0x0 0x60080000  0x0 0x60080000 0x0 0x10000>,      /* I/O */
3452eb4d8dcSEmmanuel Vadot				 <0x82000000  0x0 0x60090000  0x0 0x60090000 0x0 0xff70000>,    /* mem */
3468bab661aSEmmanuel Vadot				 <0x82000000  0x0 0x70000000  0x0 0x70000000 0x0 0x10000000>,    /* mem */
3472eb4d8dcSEmmanuel Vadot				 <0xc3000000 0x20 0x00000000 0x20 0x00000000 0x20 0x00000000>;  /* mem prefetchable */
3482eb4d8dcSEmmanuel Vadot			num-lanes = <0x8>;
3492eb4d8dcSEmmanuel Vadot			interrupts = <56>, <57>, <58>, <59>, <60>, <61>, <62>, <63>, <64>;
3502eb4d8dcSEmmanuel Vadot			interrupt-names = "msi", "inta", "intb", "intc", "intd";
3512eb4d8dcSEmmanuel Vadot			interrupt-parent = <&plic0>;
3522eb4d8dcSEmmanuel Vadot			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
3532eb4d8dcSEmmanuel Vadot			interrupt-map = <0x0 0x0 0x0 0x1 &plic0 57>,
3542eb4d8dcSEmmanuel Vadot					<0x0 0x0 0x0 0x2 &plic0 58>,
3552eb4d8dcSEmmanuel Vadot					<0x0 0x0 0x0 0x3 &plic0 59>,
3562eb4d8dcSEmmanuel Vadot					<0x0 0x0 0x0 0x4 &plic0 60>;
3572eb4d8dcSEmmanuel Vadot			clock-names = "pcie_aux";
358c9ccf3a3SEmmanuel Vadot			clocks = <&prci FU740_PRCI_CLK_PCIE_AUX>;
3592eb4d8dcSEmmanuel Vadot			pwren-gpios = <&gpio 5 0>;
3602eb4d8dcSEmmanuel Vadot			reset-gpios = <&gpio 8 0>;
3612eb4d8dcSEmmanuel Vadot			resets = <&prci 4>;
3622eb4d8dcSEmmanuel Vadot			status = "okay";
3632eb4d8dcSEmmanuel Vadot		};
3645def4c47SEmmanuel Vadot	};
3655def4c47SEmmanuel Vadot};
366