xref: /linux/arch/mips/boot/dts/mobileye/eyeq6lplus.dtsi (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
1*361600d1SBenoît Monin// SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*361600d1SBenoît Monin/*
3*361600d1SBenoît Monin * Copyright 2025 Mobileye Vision Technologies Ltd.
4*361600d1SBenoît Monin */
5*361600d1SBenoît Monin
6*361600d1SBenoît Monin#include <dt-bindings/interrupt-controller/mips-gic.h>
7*361600d1SBenoît Monin
8*361600d1SBenoît Monin#include <dt-bindings/clock/mobileye,eyeq6lplus-clk.h>
9*361600d1SBenoît Monin
10*361600d1SBenoît Monin/ {
11*361600d1SBenoît Monin	#address-cells = <2>;
12*361600d1SBenoît Monin	#size-cells = <2>;
13*361600d1SBenoît Monin	cpus {
14*361600d1SBenoît Monin		#address-cells = <1>;
15*361600d1SBenoît Monin		#size-cells = <0>;
16*361600d1SBenoît Monin		cpu@0 {
17*361600d1SBenoît Monin			device_type = "cpu";
18*361600d1SBenoît Monin			compatible = "img,i6500";
19*361600d1SBenoît Monin			reg = <0>;
20*361600d1SBenoît Monin			clocks = <&olb EQ6LPC_CPU_OCC>;
21*361600d1SBenoît Monin		};
22*361600d1SBenoît Monin	};
23*361600d1SBenoît Monin
24*361600d1SBenoît Monin	cpu_intc: interrupt-controller {
25*361600d1SBenoît Monin		compatible = "mti,cpu-interrupt-controller";
26*361600d1SBenoît Monin		interrupt-controller;
27*361600d1SBenoît Monin		#address-cells = <0>;
28*361600d1SBenoît Monin		#interrupt-cells = <1>;
29*361600d1SBenoît Monin	};
30*361600d1SBenoît Monin
31*361600d1SBenoît Monin	coherency-manager {
32*361600d1SBenoît Monin		compatible = "mobileye,eyeq6-cm";
33*361600d1SBenoît Monin	};
34*361600d1SBenoît Monin
35*361600d1SBenoît Monin	xtal: clock-30000000 {
36*361600d1SBenoît Monin		compatible = "fixed-clock";
37*361600d1SBenoît Monin		#clock-cells = <0>;
38*361600d1SBenoît Monin		clock-frequency = <30000000>;
39*361600d1SBenoît Monin	};
40*361600d1SBenoît Monin
41*361600d1SBenoît Monin	soc: soc {
42*361600d1SBenoît Monin		compatible = "simple-bus";
43*361600d1SBenoît Monin		#address-cells = <2>;
44*361600d1SBenoît Monin		#size-cells = <2>;
45*361600d1SBenoît Monin		ranges;
46*361600d1SBenoît Monin
47*361600d1SBenoît Monin		olb: system-controller@e8400000 {
48*361600d1SBenoît Monin			compatible = "mobileye,eyeq6lplus-olb", "syscon";
49*361600d1SBenoît Monin			reg = <0 0xe8400000 0x0 0x80000>;
50*361600d1SBenoît Monin			#reset-cells = <2>;
51*361600d1SBenoît Monin			#clock-cells = <1>;
52*361600d1SBenoît Monin			clocks = <&xtal>;
53*361600d1SBenoît Monin			clock-names = "ref";
54*361600d1SBenoît Monin		};
55*361600d1SBenoît Monin
56*361600d1SBenoît Monin		ospi: spi@e8800000 {
57*361600d1SBenoît Monin			compatible = "mobileye,eyeq5-ospi", "cdns,qspi-nor";
58*361600d1SBenoît Monin			#address-cells = <1>;
59*361600d1SBenoît Monin			#size-cells = <0>;
60*361600d1SBenoît Monin			reg = <0 0xe8800000 0x0 0x100000>,
61*361600d1SBenoît Monin			      <0 0xb0000000 0x0 0x30000000>;
62*361600d1SBenoît Monin			interrupt-parent = <&gic>;
63*361600d1SBenoît Monin			interrupts = <GIC_SHARED 10 IRQ_TYPE_LEVEL_HIGH>;
64*361600d1SBenoît Monin			cdns,fifo-depth = <128>;
65*361600d1SBenoît Monin			cdns,fifo-width = <4>;
66*361600d1SBenoît Monin			cdns,trigger-address = <0x00000000>;
67*361600d1SBenoît Monin			clocks  = <&olb EQ6LPC_PER_OSPI>;
68*361600d1SBenoît Monin			status = "disabled";
69*361600d1SBenoît Monin		};
70*361600d1SBenoît Monin
71*361600d1SBenoît Monin		spi0: spi@eac0d000 {
72*361600d1SBenoît Monin			compatible = "snps,dw-apb-ssi";
73*361600d1SBenoît Monin			reg = <0 0xeac0d000 0x0 0x1000>;
74*361600d1SBenoît Monin			clocks = <&olb EQ6LPC_PER_SPI>;
75*361600d1SBenoît Monin			interrupt-parent = <&gic>;
76*361600d1SBenoît Monin			interrupts = <GIC_SHARED 11 IRQ_TYPE_LEVEL_HIGH>;
77*361600d1SBenoît Monin			resets = <&olb 0 0>;
78*361600d1SBenoît Monin			reset-names = "spi";
79*361600d1SBenoît Monin			#address-cells = <1>;
80*361600d1SBenoît Monin			#size-cells = <0>;
81*361600d1SBenoît Monin			status = "disabled";
82*361600d1SBenoît Monin		};
83*361600d1SBenoît Monin
84*361600d1SBenoît Monin		spi1: spi@eac0e000 {
85*361600d1SBenoît Monin			compatible = "snps,dw-apb-ssi";
86*361600d1SBenoît Monin			reg = <0 0xeac0e000 0x0 0x1000>;
87*361600d1SBenoît Monin			spi-slave;
88*361600d1SBenoît Monin			clocks = <&olb EQ6LPC_PER_SPI>;
89*361600d1SBenoît Monin			interrupt-parent = <&gic>;
90*361600d1SBenoît Monin			interrupts = <GIC_SHARED 12 IRQ_TYPE_LEVEL_HIGH>;
91*361600d1SBenoît Monin			resets = <&olb 0 1>;
92*361600d1SBenoît Monin			reset-names = "spi";
93*361600d1SBenoît Monin			#address-cells = <0>;
94*361600d1SBenoît Monin			#size-cells = <0>;
95*361600d1SBenoît Monin			status = "disabled";
96*361600d1SBenoît Monin		};
97*361600d1SBenoît Monin
98*361600d1SBenoît Monin		uart0: serial@eac10000 {
99*361600d1SBenoît Monin			compatible = "snps,dw-apb-uart";
100*361600d1SBenoît Monin			reg-shift = <2>;
101*361600d1SBenoît Monin			reg-io-width = <4>;
102*361600d1SBenoît Monin			clocks = <&olb EQ6LPC_PER_UART>;
103*361600d1SBenoît Monin			clock-frequency = <15625000>;
104*361600d1SBenoît Monin			reg = <0 0xeac10000 0x0 0x1000>;
105*361600d1SBenoît Monin			interrupt-parent = <&gic>;
106*361600d1SBenoît Monin			interrupts = <GIC_SHARED 8 IRQ_TYPE_LEVEL_HIGH>;
107*361600d1SBenoît Monin			resets = <&olb 0 2>;
108*361600d1SBenoît Monin			status = "disabled";
109*361600d1SBenoît Monin		};
110*361600d1SBenoît Monin
111*361600d1SBenoît Monin		i2c0: i2c@eac11000 {
112*361600d1SBenoît Monin			compatible = "mobileye,eyeq6lplus-i2c", "snps,designware-i2c";
113*361600d1SBenoît Monin			reg = <0 0xeac11000 0x0 0x1000>;
114*361600d1SBenoît Monin			interrupt-parent = <&gic>;
115*361600d1SBenoît Monin			interrupts = <GIC_SHARED 6 IRQ_TYPE_LEVEL_HIGH>;
116*361600d1SBenoît Monin			clock-frequency = <400000>;
117*361600d1SBenoît Monin			clocks = <&olb EQ6LPC_PER_I2C_SER>;
118*361600d1SBenoît Monin			resets = <&olb 0 3>;
119*361600d1SBenoît Monin			i2c-sda-hold-time-ns = <50>;
120*361600d1SBenoît Monin			status = "disabled";
121*361600d1SBenoît Monin		};
122*361600d1SBenoît Monin
123*361600d1SBenoît Monin		i2c1: i2c@eac12000 {
124*361600d1SBenoît Monin			compatible = "mobileye,eyeq6lplus-i2c", "snps,designware-i2c";
125*361600d1SBenoît Monin			reg = <0 0xeac12000 0x0 0x1000>;
126*361600d1SBenoît Monin			interrupt-parent = <&gic>;
127*361600d1SBenoît Monin			interrupts = <GIC_SHARED 7 IRQ_TYPE_LEVEL_HIGH>;
128*361600d1SBenoît Monin			clock-frequency = <400000>;
129*361600d1SBenoît Monin			clocks = <&olb EQ6LPC_PER_I2C_SER>;
130*361600d1SBenoît Monin			resets = <&olb 0 4>;
131*361600d1SBenoît Monin			i2c-sda-hold-time-ns = <50>;
132*361600d1SBenoît Monin			status = "disabled";
133*361600d1SBenoît Monin		};
134*361600d1SBenoît Monin
135*361600d1SBenoît Monin		gpio: gpio@eac14000 {
136*361600d1SBenoît Monin			compatible = "snps,dw-apb-gpio";
137*361600d1SBenoît Monin			reg = <0x0 0xeac14000 0x0 0x1000>;
138*361600d1SBenoît Monin			#address-cells = <1>;
139*361600d1SBenoît Monin			#size-cells = <0>;
140*361600d1SBenoît Monin			resets = <&olb 0 13>;
141*361600d1SBenoît Monin			porta: gpio-port@0 {
142*361600d1SBenoît Monin				compatible = "snps,dw-apb-gpio-port";
143*361600d1SBenoît Monin				gpio-controller;
144*361600d1SBenoît Monin				#gpio-cells = <2>;
145*361600d1SBenoît Monin				snps,nr-gpios = <32>;
146*361600d1SBenoît Monin				gpio-ranges = <&olb 0 0 32>;
147*361600d1SBenoît Monin				reg = <0>;
148*361600d1SBenoît Monin				interrupt-controller;
149*361600d1SBenoît Monin				#interrupt-cells = <2>;
150*361600d1SBenoît Monin				interrupt-parent = <&gic>;
151*361600d1SBenoît Monin				interrupts = <GIC_SHARED 13 IRQ_TYPE_LEVEL_HIGH>;
152*361600d1SBenoît Monin			};
153*361600d1SBenoît Monin		};
154*361600d1SBenoît Monin
155*361600d1SBenoît Monin		gic: interrupt-controller@f0920000 {
156*361600d1SBenoît Monin			compatible = "mti,gic";
157*361600d1SBenoît Monin			reg = <0x0 0xf0920000 0x0 0x20000>;
158*361600d1SBenoît Monin			interrupt-controller;
159*361600d1SBenoît Monin			#interrupt-cells = <3>;
160*361600d1SBenoît Monin			interrupt-parent = <&cpu_intc>;
161*361600d1SBenoît Monin			timer {
162*361600d1SBenoît Monin				compatible = "mti,gic-timer";
163*361600d1SBenoît Monin				interrupts = <GIC_LOCAL 1 IRQ_TYPE_NONE>;
164*361600d1SBenoît Monin				clocks = <&olb EQ6LPC_CPU_OCC>;
165*361600d1SBenoît Monin			};
166*361600d1SBenoît Monin		};
167*361600d1SBenoît Monin	};
168*361600d1SBenoît Monin};
169*361600d1SBenoît Monin
170*361600d1SBenoît Monin#include "eyeq6lplus-pins.dtsi"
171