xref: /linux/arch/mips/boot/dts/mobileye/eyeq6h.dtsi (revision 7a012a692e7cfbca245d195a80f23634d3d74fcc)
1// SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2/*
3 * Copyright 2024 Mobileye Vision Technologies Ltd.
4 */
5
6#include <dt-bindings/interrupt-controller/mips-gic.h>
7
8#include <dt-bindings/clock/mobileye,eyeq5-clk.h>
9
10/ {
11	#address-cells = <2>;
12	#size-cells = <2>;
13	cpus {
14		#address-cells = <1>;
15		#size-cells = <0>;
16		cpu@0 {
17			device_type = "cpu";
18			compatible = "img,i6500";
19			reg = <0>;
20			clocks = <&olb_central EQ6HC_CENTRAL_CPU_OCC>;
21		};
22	};
23
24	aliases {
25		serial0 = &uart0;
26	};
27
28	cpu_intc: interrupt-controller {
29		compatible = "mti,cpu-interrupt-controller";
30		interrupt-controller;
31		#address-cells = <0>;
32		#interrupt-cells = <1>;
33	};
34
35	coherency-manager {
36		compatible = "mobileye,eyeq6-cm";
37	};
38
39	xtal: clock-30000000 {
40		compatible = "fixed-clock";
41		#clock-cells = <0>;
42		clock-frequency = <30000000>;
43	};
44
45	soc: soc {
46		compatible = "simple-bus";
47		#address-cells = <2>;
48		#size-cells = <2>;
49		ranges;
50
51		olb_acc: system-controller@d2003000 {
52			compatible = "mobileye,eyeq6h-acc-olb", "syscon";
53			reg = <0x0 0xd2003000 0x0 0x1000>;
54			#reset-cells = <1>;
55			#clock-cells = <1>;
56			clocks = <&xtal>;
57			clock-names = "ref";
58		};
59
60		olb_central: system-controller@d3100000 {
61			compatible = "mobileye,eyeq6h-central-olb", "syscon";
62			reg = <0x0 0xd3100000 0x0 0x1000>;
63			#clock-cells = <1>;
64			clocks = <&xtal>;
65			clock-names = "ref";
66		};
67
68		uart0: serial@d3331000 {
69			compatible = "arm,pl011", "arm,primecell";
70			reg = <0 0xd3331000 0x0 0x1000>;
71			reg-io-width = <4>;
72			interrupt-parent = <&gic>;
73			interrupts = <GIC_SHARED 43 IRQ_TYPE_LEVEL_HIGH>;
74			clocks = <&olb_west EQ6HC_WEST_PER_UART>, <&olb_west EQ6HC_WEST_PER_OCC>;
75			clock-names = "uartclk", "apb_pclk";
76		};
77
78		pinctrl_west: pinctrl@d3337000 {
79			compatible = "pinctrl-single";
80			reg = <0x0 0xd3337000 0x0 0xb0>;
81			#pinctrl-cells = <1>;
82			pinctrl-single,register-width = <32>;
83			pinctrl-single,function-mask = <0xffff>;
84		};
85
86		olb_west: system-controller@d3338000 {
87			compatible = "mobileye,eyeq6h-west-olb", "syscon";
88			reg = <0x0 0xd3338000 0x0 0x1000>;
89			#reset-cells = <1>;
90			#clock-cells = <1>;
91			clocks = <&xtal>;
92			clock-names = "ref";
93		};
94
95		pinctrl_east: pinctrl@d3357000 {
96			compatible = "pinctrl-single";
97			reg = <0x0 0xd3357000 0x0 0xb0>;
98			#pinctrl-cells = <1>;
99			pinctrl-single,register-width = <32>;
100			pinctrl-single,function-mask = <0xffff>;
101		};
102
103		olb_east: system-controller@d3358000 {
104			compatible = "mobileye,eyeq6h-east-olb", "syscon";
105			reg = <0x0 0xd3358000 0x0 0x1000>;
106			#reset-cells = <1>;
107			#clock-cells = <1>;
108			clocks = <&xtal>;
109			clock-names = "ref";
110		};
111
112		olb_south: system-controller@d8013000 {
113			compatible = "mobileye,eyeq6h-south-olb", "syscon";
114			reg = <0x0 0xd8013000 0x0 0x1000>;
115			#clock-cells = <1>;
116			clocks = <&xtal>;
117			clock-names = "ref";
118		};
119
120		pinctrl_south: pinctrl@d8014000 {
121			compatible = "pinctrl-single";
122			reg = <0x0 0xd8014000 0x0 0xf8>;
123			#pinctrl-cells = <1>;
124			pinctrl-single,register-width = <32>;
125			pinctrl-single,function-mask = <0xffff>;
126		};
127
128		olb_ddr0: system-controller@e4080000 {
129			compatible = "mobileye,eyeq6h-ddr0-olb", "syscon";
130			reg = <0x0 0xe4080000 0x0 0x1000>;
131			#clock-cells = <1>;
132			clocks = <&xtal>;
133			clock-names = "ref";
134		};
135
136		olb_ddr1: system-controller@e4081000 {
137			compatible = "mobileye,eyeq6h-ddr1-olb", "syscon";
138			reg = <0x0 0xe4081000 0x0 0x1000>;
139			#clock-cells = <1>;
140			clocks = <&xtal>;
141			clock-names = "ref";
142		};
143
144		gic: interrupt-controller@f0920000 {
145			compatible = "mti,gic";
146			reg = <0x0 0xf0920000 0x0 0x20000>;
147			interrupt-controller;
148			#interrupt-cells = <3>;
149
150			/*
151			 * Declare the interrupt-parent even though the mti,gic
152			 * binding doesn't require it, such that the kernel can
153			 * figure out that cpu_intc is the root interrupt
154			 * controller & should be probed first.
155			 */
156			interrupt-parent = <&cpu_intc>;
157
158			timer {
159				compatible = "mti,gic-timer";
160				interrupts = <GIC_LOCAL 1 IRQ_TYPE_NONE>;
161				clocks = <&olb_central EQ6HC_CENTRAL_CPU_OCC>;
162			};
163		};
164	};
165};
166
167#include "eyeq6h-pins.dtsi"
168