xref: /linux/scripts/dtc/include-prefixes/riscv/starfive/jh7100.dtsi (revision ec85362fb121d0297b9f3bb56816ea6282c34fda)
1*ec85362fSEmil Renner Berthing// SPDX-License-Identifier: GPL-2.0 OR MIT
2*ec85362fSEmil Renner Berthing/*
3*ec85362fSEmil Renner Berthing * Copyright (C) 2021 StarFive Technology Co., Ltd.
4*ec85362fSEmil Renner Berthing * Copyright (C) 2021 Emil Renner Berthing <kernel@esmil.dk>
5*ec85362fSEmil Renner Berthing */
6*ec85362fSEmil Renner Berthing
7*ec85362fSEmil Renner Berthing/dts-v1/;
8*ec85362fSEmil Renner Berthing#include <dt-bindings/clock/starfive-jh7100.h>
9*ec85362fSEmil Renner Berthing#include <dt-bindings/reset/starfive-jh7100.h>
10*ec85362fSEmil Renner Berthing
11*ec85362fSEmil Renner Berthing/ {
12*ec85362fSEmil Renner Berthing	compatible = "starfive,jh7100";
13*ec85362fSEmil Renner Berthing	#address-cells = <2>;
14*ec85362fSEmil Renner Berthing	#size-cells = <2>;
15*ec85362fSEmil Renner Berthing
16*ec85362fSEmil Renner Berthing	cpus {
17*ec85362fSEmil Renner Berthing		#address-cells = <1>;
18*ec85362fSEmil Renner Berthing		#size-cells = <0>;
19*ec85362fSEmil Renner Berthing
20*ec85362fSEmil Renner Berthing		cpu@0 {
21*ec85362fSEmil Renner Berthing			compatible = "sifive,u74-mc", "riscv";
22*ec85362fSEmil Renner Berthing			reg = <0>;
23*ec85362fSEmil Renner Berthing			d-cache-block-size = <64>;
24*ec85362fSEmil Renner Berthing			d-cache-sets = <64>;
25*ec85362fSEmil Renner Berthing			d-cache-size = <32768>;
26*ec85362fSEmil Renner Berthing			d-tlb-sets = <1>;
27*ec85362fSEmil Renner Berthing			d-tlb-size = <32>;
28*ec85362fSEmil Renner Berthing			device_type = "cpu";
29*ec85362fSEmil Renner Berthing			i-cache-block-size = <64>;
30*ec85362fSEmil Renner Berthing			i-cache-sets = <64>;
31*ec85362fSEmil Renner Berthing			i-cache-size = <32768>;
32*ec85362fSEmil Renner Berthing			i-tlb-sets = <1>;
33*ec85362fSEmil Renner Berthing			i-tlb-size = <32>;
34*ec85362fSEmil Renner Berthing			mmu-type = "riscv,sv39";
35*ec85362fSEmil Renner Berthing			riscv,isa = "rv64imafdc";
36*ec85362fSEmil Renner Berthing			tlb-split;
37*ec85362fSEmil Renner Berthing
38*ec85362fSEmil Renner Berthing			cpu0_intc: interrupt-controller {
39*ec85362fSEmil Renner Berthing				compatible = "riscv,cpu-intc";
40*ec85362fSEmil Renner Berthing				interrupt-controller;
41*ec85362fSEmil Renner Berthing				#interrupt-cells = <1>;
42*ec85362fSEmil Renner Berthing			};
43*ec85362fSEmil Renner Berthing		};
44*ec85362fSEmil Renner Berthing
45*ec85362fSEmil Renner Berthing		cpu@1 {
46*ec85362fSEmil Renner Berthing			compatible = "sifive,u74-mc", "riscv";
47*ec85362fSEmil Renner Berthing			reg = <1>;
48*ec85362fSEmil Renner Berthing			d-cache-block-size = <64>;
49*ec85362fSEmil Renner Berthing			d-cache-sets = <64>;
50*ec85362fSEmil Renner Berthing			d-cache-size = <32768>;
51*ec85362fSEmil Renner Berthing			d-tlb-sets = <1>;
52*ec85362fSEmil Renner Berthing			d-tlb-size = <32>;
53*ec85362fSEmil Renner Berthing			device_type = "cpu";
54*ec85362fSEmil Renner Berthing			i-cache-block-size = <64>;
55*ec85362fSEmil Renner Berthing			i-cache-sets = <64>;
56*ec85362fSEmil Renner Berthing			i-cache-size = <32768>;
57*ec85362fSEmil Renner Berthing			i-tlb-sets = <1>;
58*ec85362fSEmil Renner Berthing			i-tlb-size = <32>;
59*ec85362fSEmil Renner Berthing			mmu-type = "riscv,sv39";
60*ec85362fSEmil Renner Berthing			riscv,isa = "rv64imafdc";
61*ec85362fSEmil Renner Berthing			tlb-split;
62*ec85362fSEmil Renner Berthing
63*ec85362fSEmil Renner Berthing			cpu1_intc: interrupt-controller {
64*ec85362fSEmil Renner Berthing				compatible = "riscv,cpu-intc";
65*ec85362fSEmil Renner Berthing				interrupt-controller;
66*ec85362fSEmil Renner Berthing				#interrupt-cells = <1>;
67*ec85362fSEmil Renner Berthing			};
68*ec85362fSEmil Renner Berthing		};
69*ec85362fSEmil Renner Berthing	};
70*ec85362fSEmil Renner Berthing
71*ec85362fSEmil Renner Berthing	osc_sys: osc_sys {
72*ec85362fSEmil Renner Berthing		compatible = "fixed-clock";
73*ec85362fSEmil Renner Berthing		#clock-cells = <0>;
74*ec85362fSEmil Renner Berthing		/* This value must be overridden by the board */
75*ec85362fSEmil Renner Berthing		clock-frequency = <0>;
76*ec85362fSEmil Renner Berthing	};
77*ec85362fSEmil Renner Berthing
78*ec85362fSEmil Renner Berthing	osc_aud: osc_aud {
79*ec85362fSEmil Renner Berthing		compatible = "fixed-clock";
80*ec85362fSEmil Renner Berthing		#clock-cells = <0>;
81*ec85362fSEmil Renner Berthing		/* This value must be overridden by the board */
82*ec85362fSEmil Renner Berthing		clock-frequency = <0>;
83*ec85362fSEmil Renner Berthing	};
84*ec85362fSEmil Renner Berthing
85*ec85362fSEmil Renner Berthing	gmac_rmii_ref: gmac_rmii_ref {
86*ec85362fSEmil Renner Berthing		compatible = "fixed-clock";
87*ec85362fSEmil Renner Berthing		#clock-cells = <0>;
88*ec85362fSEmil Renner Berthing		/* Should be overridden by the board when needed */
89*ec85362fSEmil Renner Berthing		clock-frequency = <0>;
90*ec85362fSEmil Renner Berthing	};
91*ec85362fSEmil Renner Berthing
92*ec85362fSEmil Renner Berthing	gmac_gr_mii_rxclk: gmac_gr_mii_rxclk {
93*ec85362fSEmil Renner Berthing		compatible = "fixed-clock";
94*ec85362fSEmil Renner Berthing		#clock-cells = <0>;
95*ec85362fSEmil Renner Berthing		/* Should be overridden by the board when needed */
96*ec85362fSEmil Renner Berthing		clock-frequency = <0>;
97*ec85362fSEmil Renner Berthing	};
98*ec85362fSEmil Renner Berthing
99*ec85362fSEmil Renner Berthing	soc {
100*ec85362fSEmil Renner Berthing		compatible = "simple-bus";
101*ec85362fSEmil Renner Berthing		interrupt-parent = <&plic>;
102*ec85362fSEmil Renner Berthing		#address-cells = <2>;
103*ec85362fSEmil Renner Berthing		#size-cells = <2>;
104*ec85362fSEmil Renner Berthing		ranges;
105*ec85362fSEmil Renner Berthing
106*ec85362fSEmil Renner Berthing		clint: clint@2000000 {
107*ec85362fSEmil Renner Berthing			compatible = "starfive,jh7100-clint", "sifive,clint0";
108*ec85362fSEmil Renner Berthing			reg = <0x0 0x2000000 0x0 0x10000>;
109*ec85362fSEmil Renner Berthing			interrupts-extended = <&cpu0_intc 3 &cpu0_intc 7
110*ec85362fSEmil Renner Berthing					       &cpu1_intc 3 &cpu1_intc 7>;
111*ec85362fSEmil Renner Berthing		};
112*ec85362fSEmil Renner Berthing
113*ec85362fSEmil Renner Berthing		plic: interrupt-controller@c000000 {
114*ec85362fSEmil Renner Berthing			compatible = "starfive,jh7100-plic", "sifive,plic-1.0.0";
115*ec85362fSEmil Renner Berthing			reg = <0x0 0xc000000 0x0 0x4000000>;
116*ec85362fSEmil Renner Berthing			interrupts-extended = <&cpu0_intc 11 &cpu0_intc 9
117*ec85362fSEmil Renner Berthing					       &cpu1_intc 11 &cpu1_intc 9>;
118*ec85362fSEmil Renner Berthing			interrupt-controller;
119*ec85362fSEmil Renner Berthing			#address-cells = <0>;
120*ec85362fSEmil Renner Berthing			#interrupt-cells = <1>;
121*ec85362fSEmil Renner Berthing			riscv,ndev = <127>;
122*ec85362fSEmil Renner Berthing		};
123*ec85362fSEmil Renner Berthing
124*ec85362fSEmil Renner Berthing		clkgen: clock-controller@11800000 {
125*ec85362fSEmil Renner Berthing			compatible = "starfive,jh7100-clkgen";
126*ec85362fSEmil Renner Berthing			reg = <0x0 0x11800000 0x0 0x10000>;
127*ec85362fSEmil Renner Berthing			clocks = <&osc_sys>, <&osc_aud>, <&gmac_rmii_ref>, <&gmac_gr_mii_rxclk>;
128*ec85362fSEmil Renner Berthing			clock-names = "osc_sys", "osc_aud", "gmac_rmii_ref", "gmac_gr_mii_rxclk";
129*ec85362fSEmil Renner Berthing			#clock-cells = <1>;
130*ec85362fSEmil Renner Berthing		};
131*ec85362fSEmil Renner Berthing
132*ec85362fSEmil Renner Berthing		rstgen: reset-controller@11840000 {
133*ec85362fSEmil Renner Berthing			compatible = "starfive,jh7100-reset";
134*ec85362fSEmil Renner Berthing			reg = <0x0 0x11840000 0x0 0x10000>;
135*ec85362fSEmil Renner Berthing			#reset-cells = <1>;
136*ec85362fSEmil Renner Berthing		};
137*ec85362fSEmil Renner Berthing
138*ec85362fSEmil Renner Berthing		i2c0: i2c@118b0000 {
139*ec85362fSEmil Renner Berthing			compatible = "snps,designware-i2c";
140*ec85362fSEmil Renner Berthing			reg = <0x0 0x118b0000 0x0 0x10000>;
141*ec85362fSEmil Renner Berthing			clocks = <&clkgen JH7100_CLK_I2C0_CORE>,
142*ec85362fSEmil Renner Berthing				 <&clkgen JH7100_CLK_I2C0_APB>;
143*ec85362fSEmil Renner Berthing			clock-names = "ref", "pclk";
144*ec85362fSEmil Renner Berthing			resets = <&rstgen JH7100_RSTN_I2C0_APB>;
145*ec85362fSEmil Renner Berthing			interrupts = <96>;
146*ec85362fSEmil Renner Berthing			#address-cells = <1>;
147*ec85362fSEmil Renner Berthing			#size-cells = <0>;
148*ec85362fSEmil Renner Berthing			status = "disabled";
149*ec85362fSEmil Renner Berthing		};
150*ec85362fSEmil Renner Berthing
151*ec85362fSEmil Renner Berthing		i2c1: i2c@118c0000 {
152*ec85362fSEmil Renner Berthing			compatible = "snps,designware-i2c";
153*ec85362fSEmil Renner Berthing			reg = <0x0 0x118c0000 0x0 0x10000>;
154*ec85362fSEmil Renner Berthing			clocks = <&clkgen JH7100_CLK_I2C1_CORE>,
155*ec85362fSEmil Renner Berthing				 <&clkgen JH7100_CLK_I2C1_APB>;
156*ec85362fSEmil Renner Berthing			clock-names = "ref", "pclk";
157*ec85362fSEmil Renner Berthing			resets = <&rstgen JH7100_RSTN_I2C1_APB>;
158*ec85362fSEmil Renner Berthing			interrupts = <97>;
159*ec85362fSEmil Renner Berthing			#address-cells = <1>;
160*ec85362fSEmil Renner Berthing			#size-cells = <0>;
161*ec85362fSEmil Renner Berthing			status = "disabled";
162*ec85362fSEmil Renner Berthing		};
163*ec85362fSEmil Renner Berthing
164*ec85362fSEmil Renner Berthing		gpio: pinctrl@11910000 {
165*ec85362fSEmil Renner Berthing			compatible = "starfive,jh7100-pinctrl";
166*ec85362fSEmil Renner Berthing			reg = <0x0 0x11910000 0x0 0x10000>,
167*ec85362fSEmil Renner Berthing			      <0x0 0x11858000 0x0 0x1000>;
168*ec85362fSEmil Renner Berthing			reg-names = "gpio", "padctl";
169*ec85362fSEmil Renner Berthing			clocks = <&clkgen JH7100_CLK_GPIO_APB>;
170*ec85362fSEmil Renner Berthing			resets = <&rstgen JH7100_RSTN_GPIO_APB>;
171*ec85362fSEmil Renner Berthing			interrupts = <32>;
172*ec85362fSEmil Renner Berthing			gpio-controller;
173*ec85362fSEmil Renner Berthing			#gpio-cells = <2>;
174*ec85362fSEmil Renner Berthing			interrupt-controller;
175*ec85362fSEmil Renner Berthing			#interrupt-cells = <2>;
176*ec85362fSEmil Renner Berthing		};
177*ec85362fSEmil Renner Berthing
178*ec85362fSEmil Renner Berthing		uart2: serial@12430000 {
179*ec85362fSEmil Renner Berthing			compatible = "starfive,jh7100-uart", "snps,dw-apb-uart";
180*ec85362fSEmil Renner Berthing			reg = <0x0 0x12430000 0x0 0x10000>;
181*ec85362fSEmil Renner Berthing			clocks = <&clkgen JH7100_CLK_UART2_CORE>,
182*ec85362fSEmil Renner Berthing				 <&clkgen JH7100_CLK_UART2_APB>;
183*ec85362fSEmil Renner Berthing			clock-names = "baudclk", "apb_pclk";
184*ec85362fSEmil Renner Berthing			resets = <&rstgen JH7100_RSTN_UART2_APB>;
185*ec85362fSEmil Renner Berthing			interrupts = <72>;
186*ec85362fSEmil Renner Berthing			reg-io-width = <4>;
187*ec85362fSEmil Renner Berthing			reg-shift = <2>;
188*ec85362fSEmil Renner Berthing			status = "disabled";
189*ec85362fSEmil Renner Berthing		};
190*ec85362fSEmil Renner Berthing
191*ec85362fSEmil Renner Berthing		uart3: serial@12440000 {
192*ec85362fSEmil Renner Berthing			compatible = "starfive,jh7100-uart", "snps,dw-apb-uart";
193*ec85362fSEmil Renner Berthing			reg = <0x0 0x12440000 0x0 0x10000>;
194*ec85362fSEmil Renner Berthing			clocks = <&clkgen JH7100_CLK_UART3_CORE>,
195*ec85362fSEmil Renner Berthing				 <&clkgen JH7100_CLK_UART3_APB>;
196*ec85362fSEmil Renner Berthing			clock-names = "baudclk", "apb_pclk";
197*ec85362fSEmil Renner Berthing			resets = <&rstgen JH7100_RSTN_UART3_APB>;
198*ec85362fSEmil Renner Berthing			interrupts = <73>;
199*ec85362fSEmil Renner Berthing			reg-io-width = <4>;
200*ec85362fSEmil Renner Berthing			reg-shift = <2>;
201*ec85362fSEmil Renner Berthing			status = "disabled";
202*ec85362fSEmil Renner Berthing		};
203*ec85362fSEmil Renner Berthing
204*ec85362fSEmil Renner Berthing		i2c2: i2c@12450000 {
205*ec85362fSEmil Renner Berthing			compatible = "snps,designware-i2c";
206*ec85362fSEmil Renner Berthing			reg = <0x0 0x12450000 0x0 0x10000>;
207*ec85362fSEmil Renner Berthing			clocks = <&clkgen JH7100_CLK_I2C2_CORE>,
208*ec85362fSEmil Renner Berthing				 <&clkgen JH7100_CLK_I2C2_APB>;
209*ec85362fSEmil Renner Berthing			clock-names = "ref", "pclk";
210*ec85362fSEmil Renner Berthing			resets = <&rstgen JH7100_RSTN_I2C2_APB>;
211*ec85362fSEmil Renner Berthing			interrupts = <74>;
212*ec85362fSEmil Renner Berthing			#address-cells = <1>;
213*ec85362fSEmil Renner Berthing			#size-cells = <0>;
214*ec85362fSEmil Renner Berthing			status = "disabled";
215*ec85362fSEmil Renner Berthing		};
216*ec85362fSEmil Renner Berthing
217*ec85362fSEmil Renner Berthing		i2c3: i2c@12460000 {
218*ec85362fSEmil Renner Berthing			compatible = "snps,designware-i2c";
219*ec85362fSEmil Renner Berthing			reg = <0x0 0x12460000 0x0 0x10000>;
220*ec85362fSEmil Renner Berthing			clocks = <&clkgen JH7100_CLK_I2C3_CORE>,
221*ec85362fSEmil Renner Berthing				 <&clkgen JH7100_CLK_I2C3_APB>;
222*ec85362fSEmil Renner Berthing			clock-names = "ref", "pclk";
223*ec85362fSEmil Renner Berthing			resets = <&rstgen JH7100_RSTN_I2C3_APB>;
224*ec85362fSEmil Renner Berthing			interrupts = <75>;
225*ec85362fSEmil Renner Berthing			#address-cells = <1>;
226*ec85362fSEmil Renner Berthing			#size-cells = <0>;
227*ec85362fSEmil Renner Berthing			status = "disabled";
228*ec85362fSEmil Renner Berthing		};
229*ec85362fSEmil Renner Berthing	};
230*ec85362fSEmil Renner Berthing};
231