1*05c618f3SKrzysztof Kozlowski// SPDX-License-Identifier: GPL-2.0 OR MIT
2a69d2774SRui Miguel Silva/*
3a69d2774SRui Miguel Silva * Copyright (c) 2022, Arm Limited. All rights reserved.
4a69d2774SRui Miguel Silva * Copyright (c) 2022, Linaro Limited. All rights reserved.
5a69d2774SRui Miguel Silva *
6a69d2774SRui Miguel Silva */
7a69d2774SRui Miguel Silva
8a69d2774SRui Miguel Silva#include <dt-bindings/interrupt-controller/arm-gic.h>
9a69d2774SRui Miguel Silva
10a69d2774SRui Miguel Silva/ {
11a69d2774SRui Miguel Silva	interrupt-parent = <&gic>;
12a69d2774SRui Miguel Silva	#address-cells = <1>;
13a69d2774SRui Miguel Silva	#size-cells = <1>;
14a69d2774SRui Miguel Silva
15a69d2774SRui Miguel Silva	aliases {
16a69d2774SRui Miguel Silva		serial0 = &uart0;
17a69d2774SRui Miguel Silva		serial1 = &uart1;
18a69d2774SRui Miguel Silva	};
19a69d2774SRui Miguel Silva
20a69d2774SRui Miguel Silva	chosen {
21a69d2774SRui Miguel Silva		stdout-path = "serial0:115200n8";
22a69d2774SRui Miguel Silva	};
23a69d2774SRui Miguel Silva
24a69d2774SRui Miguel Silva	cpus {
25a69d2774SRui Miguel Silva		#address-cells = <1>;
26a69d2774SRui Miguel Silva		#size-cells = <0>;
27a69d2774SRui Miguel Silva
28a69d2774SRui Miguel Silva		cpu: cpu@0 {
29a69d2774SRui Miguel Silva			device_type = "cpu";
30a69d2774SRui Miguel Silva			compatible = "arm,cortex-a35";
31a69d2774SRui Miguel Silva			reg = <0>;
32a69d2774SRui Miguel Silva			next-level-cache = <&L2_0>;
33a69d2774SRui Miguel Silva		};
34a69d2774SRui Miguel Silva	};
35a69d2774SRui Miguel Silva
36a69d2774SRui Miguel Silva	memory@88200000 {
37a69d2774SRui Miguel Silva		device_type = "memory";
38a69d2774SRui Miguel Silva		reg = <0x88200000 0x77e00000>;
39a69d2774SRui Miguel Silva	};
40a69d2774SRui Miguel Silva
41a69d2774SRui Miguel Silva	gic: interrupt-controller@1c000000 {
42a69d2774SRui Miguel Silva		compatible = "arm,gic-400";
43a69d2774SRui Miguel Silva		#interrupt-cells = <3>;
44a69d2774SRui Miguel Silva		#address-cells = <0>;
45a69d2774SRui Miguel Silva		interrupt-controller;
46a69d2774SRui Miguel Silva		reg = <0x1c010000 0x1000>,
47a69d2774SRui Miguel Silva		      <0x1c02f000 0x2000>,
48a69d2774SRui Miguel Silva		      <0x1c04f000 0x1000>,
49a69d2774SRui Miguel Silva		      <0x1c06f000 0x2000>;
50a69d2774SRui Miguel Silva		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) |
51a69d2774SRui Miguel Silva			      IRQ_TYPE_LEVEL_LOW)>;
52a69d2774SRui Miguel Silva	};
53a69d2774SRui Miguel Silva
54a69d2774SRui Miguel Silva	L2_0: l2-cache0 {
55a69d2774SRui Miguel Silva		compatible = "cache";
5659fb813fSPierre Gondois		cache-unified;
57a69d2774SRui Miguel Silva		cache-level = <2>;
58a69d2774SRui Miguel Silva		cache-size = <0x80000>;
59a69d2774SRui Miguel Silva		cache-line-size = <64>;
60a69d2774SRui Miguel Silva		cache-sets = <1024>;
61a69d2774SRui Miguel Silva	};
62a69d2774SRui Miguel Silva
63a69d2774SRui Miguel Silva	refclk100mhz: refclk100mhz {
64a69d2774SRui Miguel Silva		compatible = "fixed-clock";
65a69d2774SRui Miguel Silva		#clock-cells = <0>;
66a69d2774SRui Miguel Silva		clock-frequency = <100000000>;
67a69d2774SRui Miguel Silva		clock-output-names = "apb_pclk";
68a69d2774SRui Miguel Silva	};
69a69d2774SRui Miguel Silva
70a69d2774SRui Miguel Silva	smbclk: refclk24mhzx2 {
71a69d2774SRui Miguel Silva		/* Reference 24MHz clock x 2 */
72a69d2774SRui Miguel Silva		compatible = "fixed-clock";
73a69d2774SRui Miguel Silva		#clock-cells = <0>;
74a69d2774SRui Miguel Silva		clock-frequency = <48000000>;
75a69d2774SRui Miguel Silva		clock-output-names = "smclk";
76a69d2774SRui Miguel Silva	};
77a69d2774SRui Miguel Silva
78a69d2774SRui Miguel Silva	timer {
79a69d2774SRui Miguel Silva		compatible = "arm,armv8-timer";
80cc958441SKrzysztof Kozlowski		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
81cc958441SKrzysztof Kozlowski			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
82cc958441SKrzysztof Kozlowski			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
83cc958441SKrzysztof Kozlowski			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
84a69d2774SRui Miguel Silva	};
85a69d2774SRui Miguel Silva
86a69d2774SRui Miguel Silva	uartclk: uartclk {
87a69d2774SRui Miguel Silva		/* UART clock - 50MHz */
88a69d2774SRui Miguel Silva		compatible = "fixed-clock";
89a69d2774SRui Miguel Silva		#clock-cells = <0>;
90a69d2774SRui Miguel Silva		clock-frequency = <50000000>;
91a69d2774SRui Miguel Silva		clock-output-names = "uartclk";
92a69d2774SRui Miguel Silva	};
93a69d2774SRui Miguel Silva
94a69d2774SRui Miguel Silva	psci {
95a69d2774SRui Miguel Silva		compatible = "arm,psci-1.0", "arm,psci-0.2";
96a69d2774SRui Miguel Silva		method = "smc";
97a69d2774SRui Miguel Silva	};
98a69d2774SRui Miguel Silva
99a69d2774SRui Miguel Silva	soc {
100a69d2774SRui Miguel Silva		compatible = "simple-bus";
101a69d2774SRui Miguel Silva		#address-cells = <1>;
102a69d2774SRui Miguel Silva		#size-cells = <1>;
103a69d2774SRui Miguel Silva		interrupt-parent = <&gic>;
104a69d2774SRui Miguel Silva		ranges;
105a69d2774SRui Miguel Silva
106a69d2774SRui Miguel Silva		timer@1a220000 {
107a69d2774SRui Miguel Silva			compatible = "arm,armv7-timer-mem";
108a69d2774SRui Miguel Silva			reg = <0x1a220000 0x1000>;
109a69d2774SRui Miguel Silva			#address-cells = <1>;
110a69d2774SRui Miguel Silva			#size-cells = <1>;
111a69d2774SRui Miguel Silva			clock-frequency = <50000000>;
112a69d2774SRui Miguel Silva			ranges;
113a69d2774SRui Miguel Silva
114a69d2774SRui Miguel Silva			frame@1a230000 {
115a69d2774SRui Miguel Silva				frame-number = <0>;
116a69d2774SRui Miguel Silva				interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
117a69d2774SRui Miguel Silva				reg = <0x1a230000 0x1000>;
118a69d2774SRui Miguel Silva			};
119a69d2774SRui Miguel Silva		};
120a69d2774SRui Miguel Silva
121a69d2774SRui Miguel Silva		uart0: serial@1a510000 {
122a69d2774SRui Miguel Silva			compatible = "arm,pl011", "arm,primecell";
123a69d2774SRui Miguel Silva			reg = <0x1a510000 0x1000>;
124a69d2774SRui Miguel Silva			interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
125a69d2774SRui Miguel Silva			clocks = <&uartclk>, <&refclk100mhz>;
126a69d2774SRui Miguel Silva			clock-names = "uartclk", "apb_pclk";
127a69d2774SRui Miguel Silva		};
128a69d2774SRui Miguel Silva
129a69d2774SRui Miguel Silva		uart1: serial@1a520000 {
130a69d2774SRui Miguel Silva			compatible = "arm,pl011", "arm,primecell";
131a69d2774SRui Miguel Silva			reg = <0x1a520000 0x1000>;
132a69d2774SRui Miguel Silva			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
133a69d2774SRui Miguel Silva			clocks = <&uartclk>, <&refclk100mhz>;
134a69d2774SRui Miguel Silva			clock-names = "uartclk", "apb_pclk";
135a69d2774SRui Miguel Silva		};
136a69d2774SRui Miguel Silva
137a69d2774SRui Miguel Silva		mhu_hse1: mailbox@1b820000 {
138a69d2774SRui Miguel Silva			compatible = "arm,mhuv2-tx", "arm,primecell";
139a69d2774SRui Miguel Silva			reg = <0x1b820000 0x1000>;
140a69d2774SRui Miguel Silva			clocks = <&refclk100mhz>;
141a69d2774SRui Miguel Silva			clock-names = "apb_pclk";
142a69d2774SRui Miguel Silva			interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
143a69d2774SRui Miguel Silva			#mbox-cells = <2>;
144a69d2774SRui Miguel Silva			arm,mhuv2-protocols = <0 0>;
145a69d2774SRui Miguel Silva			secure-status = "okay";     /* secure-world-only */
146a69d2774SRui Miguel Silva			status = "disabled";
147a69d2774SRui Miguel Silva		};
148a69d2774SRui Miguel Silva
149a69d2774SRui Miguel Silva		mhu_seh1: mailbox@1b830000 {
150a69d2774SRui Miguel Silva			compatible = "arm,mhuv2-rx", "arm,primecell";
151a69d2774SRui Miguel Silva			reg = <0x1b830000 0x1000>;
152a69d2774SRui Miguel Silva			clocks = <&refclk100mhz>;
153a69d2774SRui Miguel Silva			clock-names = "apb_pclk";
154a69d2774SRui Miguel Silva			interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
155a69d2774SRui Miguel Silva			#mbox-cells = <2>;
156a69d2774SRui Miguel Silva			arm,mhuv2-protocols = <0 0>;
157a69d2774SRui Miguel Silva			secure-status = "okay";     /* secure-world-only */
158a69d2774SRui Miguel Silva			status = "disabled";
159a69d2774SRui Miguel Silva		};
160a69d2774SRui Miguel Silva	};
161a69d2774SRui Miguel Silva};
162