xref: /freebsd-src/sys/contrib/device-tree/src/riscv/renesas/r9a07g043f.dtsi (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
18bab661aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28bab661aSEmmanuel Vadot/*
38bab661aSEmmanuel Vadot * Device Tree Source for the RZ/Five SoC
48bab661aSEmmanuel Vadot *
58bab661aSEmmanuel Vadot * Copyright (C) 2022 Renesas Electronics Corp.
68bab661aSEmmanuel Vadot */
78bab661aSEmmanuel Vadot
88bab661aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
98bab661aSEmmanuel Vadot
108bab661aSEmmanuel Vadot#define SOC_PERIPHERAL_IRQ(nr)	(nr + 32)
118bab661aSEmmanuel Vadot
128bab661aSEmmanuel Vadot#include <arm64/renesas/r9a07g043.dtsi>
138bab661aSEmmanuel Vadot
148bab661aSEmmanuel Vadot/ {
158bab661aSEmmanuel Vadot	cpus {
168bab661aSEmmanuel Vadot		#address-cells = <1>;
178bab661aSEmmanuel Vadot		#size-cells = <0>;
188bab661aSEmmanuel Vadot		timebase-frequency = <12000000>;
198bab661aSEmmanuel Vadot
208bab661aSEmmanuel Vadot		cpu0: cpu@0 {
218bab661aSEmmanuel Vadot			compatible = "andestech,ax45mp", "riscv";
228bab661aSEmmanuel Vadot			device_type = "cpu";
238bab661aSEmmanuel Vadot			#cooling-cells = <2>;
248bab661aSEmmanuel Vadot			reg = <0x0>;
258bab661aSEmmanuel Vadot			status = "okay";
268bab661aSEmmanuel Vadot			riscv,isa = "rv64imafdc";
278d13bc63SEmmanuel Vadot			riscv,isa-base = "rv64i";
288d13bc63SEmmanuel Vadot			riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
298d13bc63SEmmanuel Vadot					       "zicntr", "zicsr", "zifencei",
3001950c46SEmmanuel Vadot					       "zihpm", "xandespmu";
318bab661aSEmmanuel Vadot			mmu-type = "riscv,sv39";
328bab661aSEmmanuel Vadot			i-cache-size = <0x8000>;
338bab661aSEmmanuel Vadot			i-cache-line-size = <0x40>;
348bab661aSEmmanuel Vadot			d-cache-size = <0x8000>;
358bab661aSEmmanuel Vadot			d-cache-line-size = <0x40>;
3684943d6fSEmmanuel Vadot			next-level-cache = <&l2cache>;
378bab661aSEmmanuel Vadot			clocks = <&cpg CPG_CORE R9A07G043_CLK_I>;
388bab661aSEmmanuel Vadot			operating-points-v2 = <&cluster0_opp>;
398bab661aSEmmanuel Vadot
408bab661aSEmmanuel Vadot			cpu0_intc: interrupt-controller {
418bab661aSEmmanuel Vadot				#interrupt-cells = <1>;
4201950c46SEmmanuel Vadot				compatible = "andestech,cpu-intc", "riscv,cpu-intc";
438bab661aSEmmanuel Vadot				interrupt-controller;
448bab661aSEmmanuel Vadot			};
458bab661aSEmmanuel Vadot		};
468bab661aSEmmanuel Vadot	};
478bab661aSEmmanuel Vadot};
488bab661aSEmmanuel Vadot
4901950c46SEmmanuel Vadot&pinctrl {
5001950c46SEmmanuel Vadot	gpio-ranges = <&pinctrl 0 0 232>;
5101950c46SEmmanuel Vadot};
5201950c46SEmmanuel Vadot
538bab661aSEmmanuel Vadot&soc {
5484943d6fSEmmanuel Vadot	dma-noncoherent;
558bab661aSEmmanuel Vadot	interrupt-parent = <&plic>;
568bab661aSEmmanuel Vadot
57*7d0873ebSEmmanuel Vadot	irqc: interrupt-controller@110a0000 {
58*7d0873ebSEmmanuel Vadot		compatible = "renesas,r9a07g043f-irqc";
59*7d0873ebSEmmanuel Vadot		reg = <0 0x110a0000 0 0x20000>;
60*7d0873ebSEmmanuel Vadot		#interrupt-cells = <2>;
61*7d0873ebSEmmanuel Vadot		#address-cells = <0>;
62*7d0873ebSEmmanuel Vadot		interrupt-controller;
63*7d0873ebSEmmanuel Vadot		interrupts = <32 IRQ_TYPE_LEVEL_HIGH>,
64*7d0873ebSEmmanuel Vadot			     <33 IRQ_TYPE_LEVEL_HIGH>,
65*7d0873ebSEmmanuel Vadot			     <34 IRQ_TYPE_LEVEL_HIGH>,
66*7d0873ebSEmmanuel Vadot			     <35 IRQ_TYPE_LEVEL_HIGH>,
67*7d0873ebSEmmanuel Vadot			     <36 IRQ_TYPE_LEVEL_HIGH>,
68*7d0873ebSEmmanuel Vadot			     <37 IRQ_TYPE_LEVEL_HIGH>,
69*7d0873ebSEmmanuel Vadot			     <38 IRQ_TYPE_LEVEL_HIGH>,
70*7d0873ebSEmmanuel Vadot			     <39 IRQ_TYPE_LEVEL_HIGH>,
71*7d0873ebSEmmanuel Vadot			     <40 IRQ_TYPE_LEVEL_HIGH>,
72*7d0873ebSEmmanuel Vadot			     <476 IRQ_TYPE_LEVEL_HIGH>,
73*7d0873ebSEmmanuel Vadot			     <477 IRQ_TYPE_LEVEL_HIGH>,
74*7d0873ebSEmmanuel Vadot			     <478 IRQ_TYPE_LEVEL_HIGH>,
75*7d0873ebSEmmanuel Vadot			     <479 IRQ_TYPE_LEVEL_HIGH>,
76*7d0873ebSEmmanuel Vadot			     <480 IRQ_TYPE_LEVEL_HIGH>,
77*7d0873ebSEmmanuel Vadot			     <481 IRQ_TYPE_LEVEL_HIGH>,
78*7d0873ebSEmmanuel Vadot			     <482 IRQ_TYPE_LEVEL_HIGH>,
79*7d0873ebSEmmanuel Vadot			     <483 IRQ_TYPE_LEVEL_HIGH>,
80*7d0873ebSEmmanuel Vadot			     <484 IRQ_TYPE_LEVEL_HIGH>,
81*7d0873ebSEmmanuel Vadot			     <485 IRQ_TYPE_LEVEL_HIGH>,
82*7d0873ebSEmmanuel Vadot			     <486 IRQ_TYPE_LEVEL_HIGH>,
83*7d0873ebSEmmanuel Vadot			     <487 IRQ_TYPE_LEVEL_HIGH>,
84*7d0873ebSEmmanuel Vadot			     <488 IRQ_TYPE_LEVEL_HIGH>,
85*7d0873ebSEmmanuel Vadot			     <489 IRQ_TYPE_LEVEL_HIGH>,
86*7d0873ebSEmmanuel Vadot			     <490 IRQ_TYPE_LEVEL_HIGH>,
87*7d0873ebSEmmanuel Vadot			     <491 IRQ_TYPE_LEVEL_HIGH>,
88*7d0873ebSEmmanuel Vadot			     <492 IRQ_TYPE_LEVEL_HIGH>,
89*7d0873ebSEmmanuel Vadot			     <493 IRQ_TYPE_LEVEL_HIGH>,
90*7d0873ebSEmmanuel Vadot			     <494 IRQ_TYPE_LEVEL_HIGH>,
91*7d0873ebSEmmanuel Vadot			     <495 IRQ_TYPE_LEVEL_HIGH>,
92*7d0873ebSEmmanuel Vadot			     <496 IRQ_TYPE_LEVEL_HIGH>,
93*7d0873ebSEmmanuel Vadot			     <497 IRQ_TYPE_LEVEL_HIGH>,
94*7d0873ebSEmmanuel Vadot			     <498 IRQ_TYPE_LEVEL_HIGH>,
95*7d0873ebSEmmanuel Vadot			     <499 IRQ_TYPE_LEVEL_HIGH>,
96*7d0873ebSEmmanuel Vadot			     <500 IRQ_TYPE_LEVEL_HIGH>,
97*7d0873ebSEmmanuel Vadot			     <501 IRQ_TYPE_LEVEL_HIGH>,
98*7d0873ebSEmmanuel Vadot			     <502 IRQ_TYPE_LEVEL_HIGH>,
99*7d0873ebSEmmanuel Vadot			     <503 IRQ_TYPE_LEVEL_HIGH>,
100*7d0873ebSEmmanuel Vadot			     <504 IRQ_TYPE_LEVEL_HIGH>,
101*7d0873ebSEmmanuel Vadot			     <505 IRQ_TYPE_LEVEL_HIGH>,
102*7d0873ebSEmmanuel Vadot			     <506 IRQ_TYPE_LEVEL_HIGH>,
103*7d0873ebSEmmanuel Vadot			     <507 IRQ_TYPE_LEVEL_HIGH>,
104*7d0873ebSEmmanuel Vadot			     <57 IRQ_TYPE_LEVEL_HIGH>,
105*7d0873ebSEmmanuel Vadot			     <66 IRQ_TYPE_EDGE_RISING>,
106*7d0873ebSEmmanuel Vadot			     <67 IRQ_TYPE_EDGE_RISING>,
107*7d0873ebSEmmanuel Vadot			     <68 IRQ_TYPE_EDGE_RISING>,
108*7d0873ebSEmmanuel Vadot			     <69 IRQ_TYPE_EDGE_RISING>,
109*7d0873ebSEmmanuel Vadot			     <70 IRQ_TYPE_EDGE_RISING>,
110*7d0873ebSEmmanuel Vadot			     <71 IRQ_TYPE_EDGE_RISING>;
111*7d0873ebSEmmanuel Vadot		interrupt-names = "nmi",
112*7d0873ebSEmmanuel Vadot				  "irq0", "irq1", "irq2", "irq3",
113*7d0873ebSEmmanuel Vadot				  "irq4", "irq5", "irq6", "irq7",
114*7d0873ebSEmmanuel Vadot				  "tint0", "tint1", "tint2", "tint3",
115*7d0873ebSEmmanuel Vadot				  "tint4", "tint5", "tint6", "tint7",
116*7d0873ebSEmmanuel Vadot				  "tint8", "tint9", "tint10", "tint11",
117*7d0873ebSEmmanuel Vadot				  "tint12", "tint13", "tint14", "tint15",
118*7d0873ebSEmmanuel Vadot				  "tint16", "tint17", "tint18", "tint19",
119*7d0873ebSEmmanuel Vadot				  "tint20", "tint21", "tint22", "tint23",
120*7d0873ebSEmmanuel Vadot				  "tint24", "tint25", "tint26", "tint27",
121*7d0873ebSEmmanuel Vadot				  "tint28", "tint29", "tint30", "tint31",
122*7d0873ebSEmmanuel Vadot				  "bus-err", "ec7tie1-0", "ec7tie2-0",
123*7d0873ebSEmmanuel Vadot				  "ec7tiovf-0", "ec7tie1-1", "ec7tie2-1",
124*7d0873ebSEmmanuel Vadot				  "ec7tiovf-1";
125*7d0873ebSEmmanuel Vadot		clocks = <&cpg CPG_MOD R9A07G043_IAX45_CLK>,
126*7d0873ebSEmmanuel Vadot			 <&cpg CPG_MOD R9A07G043_IAX45_PCLK>;
127*7d0873ebSEmmanuel Vadot		clock-names = "clk", "pclk";
128*7d0873ebSEmmanuel Vadot		power-domains = <&cpg>;
129*7d0873ebSEmmanuel Vadot		resets = <&cpg R9A07G043_IAX45_RESETN>;
130*7d0873ebSEmmanuel Vadot	};
131*7d0873ebSEmmanuel Vadot
1328bab661aSEmmanuel Vadot	plic: interrupt-controller@12c00000 {
1338bab661aSEmmanuel Vadot		compatible = "renesas,r9a07g043-plic", "andestech,nceplic100";
1348bab661aSEmmanuel Vadot		#interrupt-cells = <2>;
1358bab661aSEmmanuel Vadot		#address-cells = <0>;
1368bab661aSEmmanuel Vadot		riscv,ndev = <511>;
1378bab661aSEmmanuel Vadot		interrupt-controller;
1388bab661aSEmmanuel Vadot		reg = <0x0 0x12c00000 0 0x400000>;
1398bab661aSEmmanuel Vadot		clocks = <&cpg CPG_MOD R9A07G043_NCEPLIC_ACLK>;
1408bab661aSEmmanuel Vadot		power-domains = <&cpg>;
1418bab661aSEmmanuel Vadot		resets = <&cpg R9A07G043_NCEPLIC_ARESETN>;
1428bab661aSEmmanuel Vadot		interrupts-extended = <&cpu0_intc 11 &cpu0_intc 9>;
1438bab661aSEmmanuel Vadot	};
14484943d6fSEmmanuel Vadot
14584943d6fSEmmanuel Vadot	l2cache: cache-controller@13400000 {
14684943d6fSEmmanuel Vadot		compatible = "andestech,ax45mp-cache", "cache";
14784943d6fSEmmanuel Vadot		reg = <0x0 0x13400000 0x0 0x100000>;
14884943d6fSEmmanuel Vadot		interrupts = <SOC_PERIPHERAL_IRQ(476) IRQ_TYPE_LEVEL_HIGH>;
14984943d6fSEmmanuel Vadot		cache-size = <0x40000>;
15084943d6fSEmmanuel Vadot		cache-line-size = <64>;
15184943d6fSEmmanuel Vadot		cache-sets = <1024>;
15284943d6fSEmmanuel Vadot		cache-unified;
15384943d6fSEmmanuel Vadot		cache-level = <2>;
15484943d6fSEmmanuel Vadot	};
1558bab661aSEmmanuel Vadot};
156