xref: /linux/scripts/dtc/include-prefixes/riscv/sifive/fu740-c000.dtsi (revision bf6cd1c01c959a31002dfa6784c0d8caffed4cf1)
157985788SYash Shah// SPDX-License-Identifier: (GPL-2.0 OR MIT)
257985788SYash Shah/* Copyright (c) 2020 SiFive, Inc */
357985788SYash Shah
457985788SYash Shah/dts-v1/;
557985788SYash Shah
657985788SYash Shah#include <dt-bindings/clock/sifive-fu740-prci.h>
757985788SYash Shah
857985788SYash Shah/ {
957985788SYash Shah	#address-cells = <2>;
1057985788SYash Shah	#size-cells = <2>;
1157985788SYash Shah	compatible = "sifive,fu740-c000", "sifive,fu740";
1257985788SYash Shah
1357985788SYash Shah	aliases {
1457985788SYash Shah		serial0 = &uart0;
1557985788SYash Shah		serial1 = &uart1;
1657985788SYash Shah		ethernet0 = &eth0;
1757985788SYash Shah	};
1857985788SYash Shah
1957985788SYash Shah	chosen {
2057985788SYash Shah	};
2157985788SYash Shah
2257985788SYash Shah	cpus {
2357985788SYash Shah		#address-cells = <1>;
2457985788SYash Shah		#size-cells = <0>;
2557985788SYash Shah		cpu0: cpu@0 {
2657985788SYash Shah			compatible = "sifive,bullet0", "riscv";
2757985788SYash Shah			device_type = "cpu";
2857985788SYash Shah			i-cache-block-size = <64>;
2957985788SYash Shah			i-cache-sets = <128>;
3057985788SYash Shah			i-cache-size = <16384>;
3157985788SYash Shah			next-level-cache = <&ccache>;
3257985788SYash Shah			reg = <0x0>;
3357985788SYash Shah			riscv,isa = "rv64imac";
3457985788SYash Shah			status = "disabled";
3557985788SYash Shah			cpu0_intc: interrupt-controller {
3657985788SYash Shah				#interrupt-cells = <1>;
3757985788SYash Shah				compatible = "riscv,cpu-intc";
3857985788SYash Shah				interrupt-controller;
3957985788SYash Shah			};
4057985788SYash Shah		};
4157985788SYash Shah		cpu1: cpu@1 {
4257985788SYash Shah			compatible = "sifive,bullet0", "riscv";
4357985788SYash Shah			d-cache-block-size = <64>;
4457985788SYash Shah			d-cache-sets = <64>;
4557985788SYash Shah			d-cache-size = <32768>;
4657985788SYash Shah			d-tlb-sets = <1>;
4757985788SYash Shah			d-tlb-size = <40>;
4857985788SYash Shah			device_type = "cpu";
4957985788SYash Shah			i-cache-block-size = <64>;
5057985788SYash Shah			i-cache-sets = <128>;
5157985788SYash Shah			i-cache-size = <32768>;
5257985788SYash Shah			i-tlb-sets = <1>;
5357985788SYash Shah			i-tlb-size = <40>;
5457985788SYash Shah			mmu-type = "riscv,sv39";
5557985788SYash Shah			next-level-cache = <&ccache>;
5657985788SYash Shah			reg = <0x1>;
5757985788SYash Shah			riscv,isa = "rv64imafdc";
5857985788SYash Shah			tlb-split;
5957985788SYash Shah			cpu1_intc: interrupt-controller {
6057985788SYash Shah				#interrupt-cells = <1>;
6157985788SYash Shah				compatible = "riscv,cpu-intc";
6257985788SYash Shah				interrupt-controller;
6357985788SYash Shah			};
6457985788SYash Shah		};
6557985788SYash Shah		cpu2: cpu@2 {
6657985788SYash Shah			compatible = "sifive,bullet0", "riscv";
6757985788SYash Shah			d-cache-block-size = <64>;
6857985788SYash Shah			d-cache-sets = <64>;
6957985788SYash Shah			d-cache-size = <32768>;
7057985788SYash Shah			d-tlb-sets = <1>;
7157985788SYash Shah			d-tlb-size = <40>;
7257985788SYash Shah			device_type = "cpu";
7357985788SYash Shah			i-cache-block-size = <64>;
7457985788SYash Shah			i-cache-sets = <128>;
7557985788SYash Shah			i-cache-size = <32768>;
7657985788SYash Shah			i-tlb-sets = <1>;
7757985788SYash Shah			i-tlb-size = <40>;
7857985788SYash Shah			mmu-type = "riscv,sv39";
7957985788SYash Shah			next-level-cache = <&ccache>;
8057985788SYash Shah			reg = <0x2>;
8157985788SYash Shah			riscv,isa = "rv64imafdc";
8257985788SYash Shah			tlb-split;
8357985788SYash Shah			cpu2_intc: interrupt-controller {
8457985788SYash Shah				#interrupt-cells = <1>;
8557985788SYash Shah				compatible = "riscv,cpu-intc";
8657985788SYash Shah				interrupt-controller;
8757985788SYash Shah			};
8857985788SYash Shah		};
8957985788SYash Shah		cpu3: cpu@3 {
9057985788SYash Shah			compatible = "sifive,bullet0", "riscv";
9157985788SYash Shah			d-cache-block-size = <64>;
9257985788SYash Shah			d-cache-sets = <64>;
9357985788SYash Shah			d-cache-size = <32768>;
9457985788SYash Shah			d-tlb-sets = <1>;
9557985788SYash Shah			d-tlb-size = <40>;
9657985788SYash Shah			device_type = "cpu";
9757985788SYash Shah			i-cache-block-size = <64>;
9857985788SYash Shah			i-cache-sets = <128>;
9957985788SYash Shah			i-cache-size = <32768>;
10057985788SYash Shah			i-tlb-sets = <1>;
10157985788SYash Shah			i-tlb-size = <40>;
10257985788SYash Shah			mmu-type = "riscv,sv39";
10357985788SYash Shah			next-level-cache = <&ccache>;
10457985788SYash Shah			reg = <0x3>;
10557985788SYash Shah			riscv,isa = "rv64imafdc";
10657985788SYash Shah			tlb-split;
10757985788SYash Shah			cpu3_intc: interrupt-controller {
10857985788SYash Shah				#interrupt-cells = <1>;
10957985788SYash Shah				compatible = "riscv,cpu-intc";
11057985788SYash Shah				interrupt-controller;
11157985788SYash Shah			};
11257985788SYash Shah		};
11357985788SYash Shah		cpu4: cpu@4 {
11457985788SYash Shah			compatible = "sifive,bullet0", "riscv";
11557985788SYash Shah			d-cache-block-size = <64>;
11657985788SYash Shah			d-cache-sets = <64>;
11757985788SYash Shah			d-cache-size = <32768>;
11857985788SYash Shah			d-tlb-sets = <1>;
11957985788SYash Shah			d-tlb-size = <40>;
12057985788SYash Shah			device_type = "cpu";
12157985788SYash Shah			i-cache-block-size = <64>;
12257985788SYash Shah			i-cache-sets = <128>;
12357985788SYash Shah			i-cache-size = <32768>;
12457985788SYash Shah			i-tlb-sets = <1>;
12557985788SYash Shah			i-tlb-size = <40>;
12657985788SYash Shah			mmu-type = "riscv,sv39";
12757985788SYash Shah			next-level-cache = <&ccache>;
12857985788SYash Shah			reg = <0x4>;
12957985788SYash Shah			riscv,isa = "rv64imafdc";
13057985788SYash Shah			tlb-split;
13157985788SYash Shah			cpu4_intc: interrupt-controller {
13257985788SYash Shah				#interrupt-cells = <1>;
13357985788SYash Shah				compatible = "riscv,cpu-intc";
13457985788SYash Shah				interrupt-controller;
13557985788SYash Shah			};
13657985788SYash Shah		};
137*bf6cd1c0SConor Dooley
138*bf6cd1c0SConor Dooley		cpu-map {
139*bf6cd1c0SConor Dooley			cluster0 {
140*bf6cd1c0SConor Dooley				core0 {
141*bf6cd1c0SConor Dooley					cpu = <&cpu0>;
142*bf6cd1c0SConor Dooley				};
143*bf6cd1c0SConor Dooley
144*bf6cd1c0SConor Dooley				core1 {
145*bf6cd1c0SConor Dooley					cpu = <&cpu1>;
146*bf6cd1c0SConor Dooley				};
147*bf6cd1c0SConor Dooley
148*bf6cd1c0SConor Dooley				core2 {
149*bf6cd1c0SConor Dooley					cpu = <&cpu2>;
150*bf6cd1c0SConor Dooley				};
151*bf6cd1c0SConor Dooley
152*bf6cd1c0SConor Dooley				core3 {
153*bf6cd1c0SConor Dooley					cpu = <&cpu3>;
154*bf6cd1c0SConor Dooley				};
155*bf6cd1c0SConor Dooley
156*bf6cd1c0SConor Dooley				core4 {
157*bf6cd1c0SConor Dooley					cpu = <&cpu4>;
158*bf6cd1c0SConor Dooley				};
159*bf6cd1c0SConor Dooley			};
160*bf6cd1c0SConor Dooley		};
16157985788SYash Shah	};
16257985788SYash Shah	soc {
16357985788SYash Shah		#address-cells = <2>;
16457985788SYash Shah		#size-cells = <2>;
16557985788SYash Shah		compatible = "simple-bus";
16657985788SYash Shah		ranges;
16757985788SYash Shah		plic0: interrupt-controller@c000000 {
16857985788SYash Shah			#interrupt-cells = <1>;
16957985788SYash Shah			#address-cells = <0>;
17057985788SYash Shah			compatible = "sifive,fu540-c000-plic", "sifive,plic-1.0.0";
17157985788SYash Shah			reg = <0x0 0xc000000 0x0 0x4000000>;
17257985788SYash Shah			riscv,ndev = <69>;
17357985788SYash Shah			interrupt-controller;
174cc79be0eSGeert Uytterhoeven			interrupts-extended =
175cc79be0eSGeert Uytterhoeven				<&cpu0_intc 0xffffffff>,
176cc79be0eSGeert Uytterhoeven				<&cpu1_intc 0xffffffff>, <&cpu1_intc 9>,
177cc79be0eSGeert Uytterhoeven				<&cpu2_intc 0xffffffff>, <&cpu2_intc 9>,
178cc79be0eSGeert Uytterhoeven				<&cpu3_intc 0xffffffff>, <&cpu3_intc 9>,
179cc79be0eSGeert Uytterhoeven				<&cpu4_intc 0xffffffff>, <&cpu4_intc 9>;
18057985788SYash Shah		};
18157985788SYash Shah		prci: clock-controller@10000000 {
18257985788SYash Shah			compatible = "sifive,fu740-c000-prci";
18357985788SYash Shah			reg = <0x0 0x10000000 0x0 0x1000>;
18457985788SYash Shah			clocks = <&hfclk>, <&rtcclk>;
18557985788SYash Shah			#clock-cells = <1>;
186ae80d514SGreentime Hu			#reset-cells = <1>;
18757985788SYash Shah		};
18857985788SYash Shah		uart0: serial@10010000 {
18957985788SYash Shah			compatible = "sifive,fu740-c000-uart", "sifive,uart0";
19057985788SYash Shah			reg = <0x0 0x10010000 0x0 0x1000>;
19157985788SYash Shah			interrupt-parent = <&plic0>;
19257985788SYash Shah			interrupts = <39>;
193990d627fSZong Li			clocks = <&prci FU740_PRCI_CLK_PCLK>;
19457985788SYash Shah			status = "disabled";
19557985788SYash Shah		};
19657985788SYash Shah		uart1: serial@10011000 {
19757985788SYash Shah			compatible = "sifive,fu740-c000-uart", "sifive,uart0";
19857985788SYash Shah			reg = <0x0 0x10011000 0x0 0x1000>;
19957985788SYash Shah			interrupt-parent = <&plic0>;
20057985788SYash Shah			interrupts = <40>;
201990d627fSZong Li			clocks = <&prci FU740_PRCI_CLK_PCLK>;
20257985788SYash Shah			status = "disabled";
20357985788SYash Shah		};
20457985788SYash Shah		i2c0: i2c@10030000 {
20557985788SYash Shah			compatible = "sifive,fu740-c000-i2c", "sifive,i2c0";
20657985788SYash Shah			reg = <0x0 0x10030000 0x0 0x1000>;
20757985788SYash Shah			interrupt-parent = <&plic0>;
20857985788SYash Shah			interrupts = <52>;
209990d627fSZong Li			clocks = <&prci FU740_PRCI_CLK_PCLK>;
21057985788SYash Shah			reg-shift = <2>;
21157985788SYash Shah			reg-io-width = <1>;
21257985788SYash Shah			#address-cells = <1>;
21357985788SYash Shah			#size-cells = <0>;
21457985788SYash Shah			status = "disabled";
21557985788SYash Shah		};
21657985788SYash Shah		i2c1: i2c@10031000 {
21757985788SYash Shah			compatible = "sifive,fu740-c000-i2c", "sifive,i2c0";
21857985788SYash Shah			reg = <0x0 0x10031000 0x0 0x1000>;
21957985788SYash Shah			interrupt-parent = <&plic0>;
22057985788SYash Shah			interrupts = <53>;
221990d627fSZong Li			clocks = <&prci FU740_PRCI_CLK_PCLK>;
22257985788SYash Shah			reg-shift = <2>;
22357985788SYash Shah			reg-io-width = <1>;
22457985788SYash Shah			#address-cells = <1>;
22557985788SYash Shah			#size-cells = <0>;
22657985788SYash Shah			status = "disabled";
22757985788SYash Shah		};
22857985788SYash Shah		qspi0: spi@10040000 {
22957985788SYash Shah			compatible = "sifive,fu740-c000-spi", "sifive,spi0";
23057985788SYash Shah			reg = <0x0 0x10040000 0x0 0x1000>,
23157985788SYash Shah			      <0x0 0x20000000 0x0 0x10000000>;
23257985788SYash Shah			interrupt-parent = <&plic0>;
23357985788SYash Shah			interrupts = <41>;
234990d627fSZong Li			clocks = <&prci FU740_PRCI_CLK_PCLK>;
23557985788SYash Shah			#address-cells = <1>;
23657985788SYash Shah			#size-cells = <0>;
23757985788SYash Shah			status = "disabled";
23857985788SYash Shah		};
23957985788SYash Shah		qspi1: spi@10041000 {
24057985788SYash Shah			compatible = "sifive,fu740-c000-spi", "sifive,spi0";
24157985788SYash Shah			reg = <0x0 0x10041000 0x0 0x1000>,
24257985788SYash Shah			      <0x0 0x30000000 0x0 0x10000000>;
24357985788SYash Shah			interrupt-parent = <&plic0>;
24457985788SYash Shah			interrupts = <42>;
245990d627fSZong Li			clocks = <&prci FU740_PRCI_CLK_PCLK>;
24657985788SYash Shah			#address-cells = <1>;
24757985788SYash Shah			#size-cells = <0>;
24857985788SYash Shah			status = "disabled";
24957985788SYash Shah		};
25057985788SYash Shah		spi0: spi@10050000 {
25157985788SYash Shah			compatible = "sifive,fu740-c000-spi", "sifive,spi0";
25257985788SYash Shah			reg = <0x0 0x10050000 0x0 0x1000>;
25357985788SYash Shah			interrupt-parent = <&plic0>;
25457985788SYash Shah			interrupts = <43>;
255990d627fSZong Li			clocks = <&prci FU740_PRCI_CLK_PCLK>;
25657985788SYash Shah			#address-cells = <1>;
25757985788SYash Shah			#size-cells = <0>;
25857985788SYash Shah			status = "disabled";
25957985788SYash Shah		};
26057985788SYash Shah		eth0: ethernet@10090000 {
26157985788SYash Shah			compatible = "sifive,fu540-c000-gem";
26257985788SYash Shah			interrupt-parent = <&plic0>;
26357985788SYash Shah			interrupts = <55>;
26457985788SYash Shah			reg = <0x0 0x10090000 0x0 0x2000>,
26557985788SYash Shah			      <0x0 0x100a0000 0x0 0x1000>;
26657985788SYash Shah			local-mac-address = [00 00 00 00 00 00];
26757985788SYash Shah			clock-names = "pclk", "hclk";
268990d627fSZong Li			clocks = <&prci FU740_PRCI_CLK_GEMGXLPLL>,
269990d627fSZong Li				 <&prci FU740_PRCI_CLK_GEMGXLPLL>;
27057985788SYash Shah			#address-cells = <1>;
27157985788SYash Shah			#size-cells = <0>;
27257985788SYash Shah			status = "disabled";
27357985788SYash Shah		};
27457985788SYash Shah		pwm0: pwm@10020000 {
27557985788SYash Shah			compatible = "sifive,fu740-c000-pwm", "sifive,pwm0";
27657985788SYash Shah			reg = <0x0 0x10020000 0x0 0x1000>;
27757985788SYash Shah			interrupt-parent = <&plic0>;
27857985788SYash Shah			interrupts = <44>, <45>, <46>, <47>;
279990d627fSZong Li			clocks = <&prci FU740_PRCI_CLK_PCLK>;
28057985788SYash Shah			#pwm-cells = <3>;
28157985788SYash Shah			status = "disabled";
28257985788SYash Shah		};
28357985788SYash Shah		pwm1: pwm@10021000 {
28457985788SYash Shah			compatible = "sifive,fu740-c000-pwm", "sifive,pwm0";
28557985788SYash Shah			reg = <0x0 0x10021000 0x0 0x1000>;
28657985788SYash Shah			interrupt-parent = <&plic0>;
28757985788SYash Shah			interrupts = <48>, <49>, <50>, <51>;
288990d627fSZong Li			clocks = <&prci FU740_PRCI_CLK_PCLK>;
28957985788SYash Shah			#pwm-cells = <3>;
29057985788SYash Shah			status = "disabled";
29157985788SYash Shah		};
29257985788SYash Shah		ccache: cache-controller@2010000 {
29357985788SYash Shah			compatible = "sifive,fu740-c000-ccache", "cache";
29457985788SYash Shah			cache-block-size = <64>;
29557985788SYash Shah			cache-level = <2>;
29657985788SYash Shah			cache-sets = <2048>;
29757985788SYash Shah			cache-size = <2097152>;
29857985788SYash Shah			cache-unified;
29957985788SYash Shah			interrupt-parent = <&plic0>;
300cc79be0eSGeert Uytterhoeven			interrupts = <19>, <21>, <22>, <20>;
30157985788SYash Shah			reg = <0x0 0x2010000 0x0 0x1000>;
30257985788SYash Shah		};
30357985788SYash Shah		gpio: gpio@10060000 {
30457985788SYash Shah			compatible = "sifive,fu740-c000-gpio", "sifive,gpio0";
30557985788SYash Shah			interrupt-parent = <&plic0>;
30657985788SYash Shah			interrupts = <23>, <24>, <25>, <26>, <27>, <28>, <29>,
30757985788SYash Shah				     <30>, <31>, <32>, <33>, <34>, <35>, <36>,
30857985788SYash Shah				     <37>, <38>;
30957985788SYash Shah			reg = <0x0 0x10060000 0x0 0x1000>;
31057985788SYash Shah			gpio-controller;
31157985788SYash Shah			#gpio-cells = <2>;
31257985788SYash Shah			interrupt-controller;
31357985788SYash Shah			#interrupt-cells = <2>;
314990d627fSZong Li			clocks = <&prci FU740_PRCI_CLK_PCLK>;
31557985788SYash Shah			status = "disabled";
31657985788SYash Shah		};
317ae80d514SGreentime Hu		pcie@e00000000 {
318ae80d514SGreentime Hu			compatible = "sifive,fu740-pcie";
319ae80d514SGreentime Hu			#address-cells = <3>;
320ae80d514SGreentime Hu			#size-cells = <2>;
321ae80d514SGreentime Hu			#interrupt-cells = <1>;
322ae80d514SGreentime Hu			reg = <0xe 0x00000000 0x0 0x80000000>,
323ae80d514SGreentime Hu			      <0xd 0xf0000000 0x0 0x10000000>,
324ae80d514SGreentime Hu			      <0x0 0x100d0000 0x0 0x1000>;
325ae80d514SGreentime Hu			reg-names = "dbi", "config", "mgmt";
326ae80d514SGreentime Hu			device_type = "pci";
327ae80d514SGreentime Hu			dma-coherent;
328ae80d514SGreentime Hu			bus-range = <0x0 0xff>;
329ae80d514SGreentime Hu			ranges = <0x81000000  0x0 0x60080000  0x0 0x60080000 0x0 0x10000>,      /* I/O */
330ae80d514SGreentime Hu				 <0x82000000  0x0 0x60090000  0x0 0x60090000 0x0 0xff70000>,    /* mem */
331ae80d514SGreentime Hu				 <0x82000000  0x0 0x70000000  0x0 0x70000000 0x0 0x1000000>,    /* mem */
332ae80d514SGreentime Hu				 <0xc3000000 0x20 0x00000000 0x20 0x00000000 0x20 0x00000000>;  /* mem prefetchable */
333ae80d514SGreentime Hu			num-lanes = <0x8>;
334ae80d514SGreentime Hu			interrupts = <56>, <57>, <58>, <59>, <60>, <61>, <62>, <63>, <64>;
335ae80d514SGreentime Hu			interrupt-names = "msi", "inta", "intb", "intc", "intd";
336ae80d514SGreentime Hu			interrupt-parent = <&plic0>;
337ae80d514SGreentime Hu			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
338ae80d514SGreentime Hu			interrupt-map = <0x0 0x0 0x0 0x1 &plic0 57>,
339ae80d514SGreentime Hu					<0x0 0x0 0x0 0x2 &plic0 58>,
340ae80d514SGreentime Hu					<0x0 0x0 0x0 0x3 &plic0 59>,
341ae80d514SGreentime Hu					<0x0 0x0 0x0 0x4 &plic0 60>;
342ae80d514SGreentime Hu			clock-names = "pcie_aux";
343990d627fSZong Li			clocks = <&prci FU740_PRCI_CLK_PCIE_AUX>;
344ae80d514SGreentime Hu			pwren-gpios = <&gpio 5 0>;
345ae80d514SGreentime Hu			reset-gpios = <&gpio 8 0>;
346ae80d514SGreentime Hu			resets = <&prci 4>;
347ae80d514SGreentime Hu			status = "okay";
348ae80d514SGreentime Hu		};
34957985788SYash Shah	};
35057985788SYash Shah};
351