xref: /linux/scripts/dtc/include-prefixes/arm64/sophgo/sg2000.dtsi (revision 4df9c0a2465a523e399e46a8d3b5866c769b381b)
1*dabb6ec6SAlexander Sverdlin// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2*dabb6ec6SAlexander Sverdlin
3*dabb6ec6SAlexander Sverdlin#define SOC_PERIPHERAL_IRQ(nr)		GIC_SPI (nr)
4*dabb6ec6SAlexander Sverdlin
5*dabb6ec6SAlexander Sverdlin#include <dt-bindings/interrupt-controller/arm-gic.h>
6*dabb6ec6SAlexander Sverdlin#include <riscv/sophgo/cv180x.dtsi>
7*dabb6ec6SAlexander Sverdlin#include <riscv/sophgo/cv181x.dtsi>
8*dabb6ec6SAlexander Sverdlin
9*dabb6ec6SAlexander Sverdlin/ {
10*dabb6ec6SAlexander Sverdlin	compatible = "sophgo,sg2000";
11*dabb6ec6SAlexander Sverdlin	interrupt-parent = <&gic>;
12*dabb6ec6SAlexander Sverdlin
13*dabb6ec6SAlexander Sverdlin	cpus {
14*dabb6ec6SAlexander Sverdlin		#address-cells = <1>;
15*dabb6ec6SAlexander Sverdlin		#size-cells = <0>;
16*dabb6ec6SAlexander Sverdlin
17*dabb6ec6SAlexander Sverdlin		cpu@0 {
18*dabb6ec6SAlexander Sverdlin			compatible = "arm,cortex-a53";
19*dabb6ec6SAlexander Sverdlin			device_type = "cpu";
20*dabb6ec6SAlexander Sverdlin			reg = <0>;
21*dabb6ec6SAlexander Sverdlin			enable-method = "psci";
22*dabb6ec6SAlexander Sverdlin			i-cache-size = <32768>;
23*dabb6ec6SAlexander Sverdlin			d-cache-size = <32768>;
24*dabb6ec6SAlexander Sverdlin			next-level-cache = <&l2>;
25*dabb6ec6SAlexander Sverdlin		};
26*dabb6ec6SAlexander Sverdlin
27*dabb6ec6SAlexander Sverdlin		l2: l2-cache {
28*dabb6ec6SAlexander Sverdlin			compatible = "cache";
29*dabb6ec6SAlexander Sverdlin			cache-level = <2>;
30*dabb6ec6SAlexander Sverdlin			cache-unified;
31*dabb6ec6SAlexander Sverdlin			cache-size = <0x20000>;
32*dabb6ec6SAlexander Sverdlin		};
33*dabb6ec6SAlexander Sverdlin	};
34*dabb6ec6SAlexander Sverdlin
35*dabb6ec6SAlexander Sverdlin	memory@80000000 {
36*dabb6ec6SAlexander Sverdlin		device_type = "memory";
37*dabb6ec6SAlexander Sverdlin		reg = <0x80000000 0x20000000>;	/* 512MiB */
38*dabb6ec6SAlexander Sverdlin	};
39*dabb6ec6SAlexander Sverdlin
40*dabb6ec6SAlexander Sverdlin	pmu {
41*dabb6ec6SAlexander Sverdlin		compatible = "arm,cortex-a53-pmu";
42*dabb6ec6SAlexander Sverdlin		interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
43*dabb6ec6SAlexander Sverdlin			     <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
44*dabb6ec6SAlexander Sverdlin	};
45*dabb6ec6SAlexander Sverdlin
46*dabb6ec6SAlexander Sverdlin	psci {
47*dabb6ec6SAlexander Sverdlin		compatible = "arm,psci-0.2";
48*dabb6ec6SAlexander Sverdlin		method = "smc";
49*dabb6ec6SAlexander Sverdlin		cpu_on = <0xc4000003>;
50*dabb6ec6SAlexander Sverdlin		cpu_off = <0x84000002>;
51*dabb6ec6SAlexander Sverdlin	};
52*dabb6ec6SAlexander Sverdlin
53*dabb6ec6SAlexander Sverdlin	soc {
54*dabb6ec6SAlexander Sverdlin		gic: interrupt-controller@1f01000 {
55*dabb6ec6SAlexander Sverdlin			compatible = "arm,cortex-a15-gic";
56*dabb6ec6SAlexander Sverdlin			interrupt-controller;
57*dabb6ec6SAlexander Sverdlin			#interrupt-cells = <3>;
58*dabb6ec6SAlexander Sverdlin			reg = <0x01f01000 0x1000>,
59*dabb6ec6SAlexander Sverdlin			      <0x01f02000 0x2000>;
60*dabb6ec6SAlexander Sverdlin		};
61*dabb6ec6SAlexander Sverdlin
62*dabb6ec6SAlexander Sverdlin		pinctrl: pinctrl@3001000 {
63*dabb6ec6SAlexander Sverdlin			compatible = "sophgo,sg2000-pinctrl";
64*dabb6ec6SAlexander Sverdlin			reg = <0x03001000 0x1000>,
65*dabb6ec6SAlexander Sverdlin			      <0x05027000 0x1000>;
66*dabb6ec6SAlexander Sverdlin			reg-names = "sys", "rtc";
67*dabb6ec6SAlexander Sverdlin		};
68*dabb6ec6SAlexander Sverdlin
69*dabb6ec6SAlexander Sverdlin		clk: clock-controller@3002000 {
70*dabb6ec6SAlexander Sverdlin			compatible = "sophgo,sg2000-clk";
71*dabb6ec6SAlexander Sverdlin			reg = <0x03002000 0x1000>;
72*dabb6ec6SAlexander Sverdlin			clocks = <&osc>;
73*dabb6ec6SAlexander Sverdlin			#clock-cells = <1>;
74*dabb6ec6SAlexander Sverdlin		};
75*dabb6ec6SAlexander Sverdlin	};
76*dabb6ec6SAlexander Sverdlin
77*dabb6ec6SAlexander Sverdlin	timer {
78*dabb6ec6SAlexander Sverdlin		compatible = "arm,armv8-timer";
79*dabb6ec6SAlexander Sverdlin		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
80*dabb6ec6SAlexander Sverdlin			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
81*dabb6ec6SAlexander Sverdlin			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
82*dabb6ec6SAlexander Sverdlin			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
83*dabb6ec6SAlexander Sverdlin		always-on;
84*dabb6ec6SAlexander Sverdlin		clock-frequency = <25000000>;
85*dabb6ec6SAlexander Sverdlin	};
86*dabb6ec6SAlexander Sverdlin};
87