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