xref: /linux/arch/mips/boot/dts/mobileye/eyeq5-clocks.dtsi (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
1*9b7e81a9SThéo Lebrun// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*9b7e81a9SThéo Lebrun/*
3*9b7e81a9SThéo Lebrun * Copyright 2023 Mobileye Vision Technologies Ltd.
4*9b7e81a9SThéo Lebrun */
5*9b7e81a9SThéo Lebrun
6*9b7e81a9SThéo Lebrun#include <dt-bindings/clock/mobileye,eyeq5-clk.h>
7*9b7e81a9SThéo Lebrun
8*9b7e81a9SThéo Lebrun/ {
9*9b7e81a9SThéo Lebrun	/* Fixed clock */
10*9b7e81a9SThéo Lebrun	xtal: xtal {
11*9b7e81a9SThéo Lebrun		compatible = "fixed-clock";
12*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
13*9b7e81a9SThéo Lebrun		clock-frequency = <30000000>;
14*9b7e81a9SThéo Lebrun	};
15*9b7e81a9SThéo Lebrun
16*9b7e81a9SThéo Lebrun/* PLL_CPU derivatives */
17*9b7e81a9SThéo Lebrun	occ_cpu: occ-cpu {
18*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
19*9b7e81a9SThéo Lebrun		clocks = <&olb EQ5C_PLL_CPU>;
20*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
21*9b7e81a9SThéo Lebrun		clock-div = <1>;
22*9b7e81a9SThéo Lebrun		clock-mult = <1>;
23*9b7e81a9SThéo Lebrun	};
24*9b7e81a9SThéo Lebrun	si_css0_ref_clk: si-css0-ref-clk { /* gate ClkRstGen_si_css0_ref */
25*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
26*9b7e81a9SThéo Lebrun		clocks = <&occ_cpu>;
27*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
28*9b7e81a9SThéo Lebrun		clock-div = <1>;
29*9b7e81a9SThéo Lebrun		clock-mult = <1>;
30*9b7e81a9SThéo Lebrun	};
31*9b7e81a9SThéo Lebrun	cpc_clk: cpc-clk {
32*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
33*9b7e81a9SThéo Lebrun		clocks = <&si_css0_ref_clk>;
34*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
35*9b7e81a9SThéo Lebrun		clock-div = <1>;
36*9b7e81a9SThéo Lebrun		clock-mult = <1>;
37*9b7e81a9SThéo Lebrun	};
38*9b7e81a9SThéo Lebrun	core0_clk: core0-clk {
39*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
40*9b7e81a9SThéo Lebrun		clocks = <&si_css0_ref_clk>;
41*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
42*9b7e81a9SThéo Lebrun		clock-div = <1>;
43*9b7e81a9SThéo Lebrun		clock-mult = <1>;
44*9b7e81a9SThéo Lebrun	};
45*9b7e81a9SThéo Lebrun	core1_clk: core1-clk {
46*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
47*9b7e81a9SThéo Lebrun		clocks = <&si_css0_ref_clk>;
48*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
49*9b7e81a9SThéo Lebrun		clock-div = <1>;
50*9b7e81a9SThéo Lebrun		clock-mult = <1>;
51*9b7e81a9SThéo Lebrun	};
52*9b7e81a9SThéo Lebrun	core2_clk: core2-clk {
53*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
54*9b7e81a9SThéo Lebrun		clocks = <&si_css0_ref_clk>;
55*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
56*9b7e81a9SThéo Lebrun		clock-div = <1>;
57*9b7e81a9SThéo Lebrun		clock-mult = <1>;
58*9b7e81a9SThéo Lebrun	};
59*9b7e81a9SThéo Lebrun	core3_clk: core3-clk {
60*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
61*9b7e81a9SThéo Lebrun		clocks = <&si_css0_ref_clk>;
62*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
63*9b7e81a9SThéo Lebrun		clock-div = <1>;
64*9b7e81a9SThéo Lebrun		clock-mult = <1>;
65*9b7e81a9SThéo Lebrun	};
66*9b7e81a9SThéo Lebrun	cm_clk: cm-clk {
67*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
68*9b7e81a9SThéo Lebrun		clocks = <&si_css0_ref_clk>;
69*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
70*9b7e81a9SThéo Lebrun		clock-div = <1>;
71*9b7e81a9SThéo Lebrun		clock-mult = <1>;
72*9b7e81a9SThéo Lebrun	};
73*9b7e81a9SThéo Lebrun	mem_clk: mem-clk {
74*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
75*9b7e81a9SThéo Lebrun		clocks = <&si_css0_ref_clk>;
76*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
77*9b7e81a9SThéo Lebrun		clock-div = <1>;
78*9b7e81a9SThéo Lebrun		clock-mult = <1>;
79*9b7e81a9SThéo Lebrun	};
80*9b7e81a9SThéo Lebrun	occ_isram: occ-isram {
81*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
82*9b7e81a9SThéo Lebrun		clocks = <&olb EQ5C_PLL_CPU>;
83*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
84*9b7e81a9SThéo Lebrun		clock-div = <2>;
85*9b7e81a9SThéo Lebrun		clock-mult = <1>;
86*9b7e81a9SThéo Lebrun	};
87*9b7e81a9SThéo Lebrun	isram_clk: isram-clk { /* gate ClkRstGen_isram */
88*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
89*9b7e81a9SThéo Lebrun		clocks = <&occ_isram>;
90*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
91*9b7e81a9SThéo Lebrun		clock-div = <1>;
92*9b7e81a9SThéo Lebrun		clock-mult = <1>;
93*9b7e81a9SThéo Lebrun	};
94*9b7e81a9SThéo Lebrun	occ_dbu: occ-dbu {
95*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
96*9b7e81a9SThéo Lebrun		clocks = <&olb EQ5C_PLL_CPU>;
97*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
98*9b7e81a9SThéo Lebrun		clock-div = <10>;
99*9b7e81a9SThéo Lebrun		clock-mult = <1>;
100*9b7e81a9SThéo Lebrun	};
101*9b7e81a9SThéo Lebrun	si_dbu_tp_pclk: si-dbu-tp-pclk { /* gate ClkRstGen_dbu */
102*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
103*9b7e81a9SThéo Lebrun		clocks = <&occ_dbu>;
104*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
105*9b7e81a9SThéo Lebrun		clock-div = <1>;
106*9b7e81a9SThéo Lebrun		clock-mult = <1>;
107*9b7e81a9SThéo Lebrun	};
108*9b7e81a9SThéo Lebrun/* PLL_VDI derivatives */
109*9b7e81a9SThéo Lebrun	occ_vdi: occ-vdi {
110*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
111*9b7e81a9SThéo Lebrun		clocks = <&olb EQ5C_PLL_VDI>;
112*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
113*9b7e81a9SThéo Lebrun		clock-div = <2>;
114*9b7e81a9SThéo Lebrun		clock-mult = <1>;
115*9b7e81a9SThéo Lebrun	};
116*9b7e81a9SThéo Lebrun	vdi_clk: vdi-clk { /* gate ClkRstGen_vdi */
117*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
118*9b7e81a9SThéo Lebrun		clocks = <&occ_vdi>;
119*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
120*9b7e81a9SThéo Lebrun		clock-div = <1>;
121*9b7e81a9SThéo Lebrun		clock-mult = <1>;
122*9b7e81a9SThéo Lebrun	};
123*9b7e81a9SThéo Lebrun	occ_can_ser: occ-can-ser {
124*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
125*9b7e81a9SThéo Lebrun		clocks = <&olb EQ5C_PLL_VDI>;
126*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
127*9b7e81a9SThéo Lebrun		clock-div = <16>;
128*9b7e81a9SThéo Lebrun		clock-mult = <1>;
129*9b7e81a9SThéo Lebrun	};
130*9b7e81a9SThéo Lebrun	can_ser_clk: can-ser-clk { /* gate ClkRstGen_can_ser */
131*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
132*9b7e81a9SThéo Lebrun		clocks = <&occ_can_ser>;
133*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
134*9b7e81a9SThéo Lebrun		clock-div = <1>;
135*9b7e81a9SThéo Lebrun		clock-mult = <1>;
136*9b7e81a9SThéo Lebrun	};
137*9b7e81a9SThéo Lebrun	i2c_ser_clk: i2c-ser-clk {
138*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
139*9b7e81a9SThéo Lebrun		clocks = <&olb EQ5C_PLL_VDI>;
140*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
141*9b7e81a9SThéo Lebrun		clock-div = <20>;
142*9b7e81a9SThéo Lebrun		clock-mult = <1>;
143*9b7e81a9SThéo Lebrun	};
144*9b7e81a9SThéo Lebrun/* PLL_PER derivatives */
145*9b7e81a9SThéo Lebrun	occ_periph: occ-periph {
146*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
147*9b7e81a9SThéo Lebrun		clocks = <&olb EQ5C_PLL_PER>;
148*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
149*9b7e81a9SThéo Lebrun		clock-div = <16>;
150*9b7e81a9SThéo Lebrun		clock-mult = <1>;
151*9b7e81a9SThéo Lebrun	};
152*9b7e81a9SThéo Lebrun	periph_clk: periph-clk {
153*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
154*9b7e81a9SThéo Lebrun		clocks = <&occ_periph>;
155*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
156*9b7e81a9SThéo Lebrun		clock-div = <1>;
157*9b7e81a9SThéo Lebrun		clock-mult = <1>;
158*9b7e81a9SThéo Lebrun	};
159*9b7e81a9SThéo Lebrun	can_clk: can-clk {
160*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
161*9b7e81a9SThéo Lebrun		clocks = <&occ_periph>;
162*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
163*9b7e81a9SThéo Lebrun		clock-div = <1>;
164*9b7e81a9SThéo Lebrun		clock-mult = <1>;
165*9b7e81a9SThéo Lebrun	};
166*9b7e81a9SThéo Lebrun	spi_clk: spi-clk {
167*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
168*9b7e81a9SThéo Lebrun		clocks = <&occ_periph>;
169*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
170*9b7e81a9SThéo Lebrun		clock-div = <1>;
171*9b7e81a9SThéo Lebrun		clock-mult = <1>;
172*9b7e81a9SThéo Lebrun	};
173*9b7e81a9SThéo Lebrun	uart_clk: uart-clk {
174*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
175*9b7e81a9SThéo Lebrun		clocks = <&occ_periph>;
176*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
177*9b7e81a9SThéo Lebrun		clock-div = <1>;
178*9b7e81a9SThéo Lebrun		clock-mult = <1>;
179*9b7e81a9SThéo Lebrun	};
180*9b7e81a9SThéo Lebrun	i2c_clk: i2c-clk {
181*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
182*9b7e81a9SThéo Lebrun		clocks = <&occ_periph>;
183*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
184*9b7e81a9SThéo Lebrun		clock-div = <1>;
185*9b7e81a9SThéo Lebrun		clock-mult = <1>;
186*9b7e81a9SThéo Lebrun		clock-output-names = "i2c_clk";
187*9b7e81a9SThéo Lebrun	};
188*9b7e81a9SThéo Lebrun	timer_clk: timer-clk {
189*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
190*9b7e81a9SThéo Lebrun		clocks = <&occ_periph>;
191*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
192*9b7e81a9SThéo Lebrun		clock-div = <1>;
193*9b7e81a9SThéo Lebrun		clock-mult = <1>;
194*9b7e81a9SThéo Lebrun		clock-output-names = "timer_clk";
195*9b7e81a9SThéo Lebrun	};
196*9b7e81a9SThéo Lebrun	gpio_clk: gpio-clk {
197*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
198*9b7e81a9SThéo Lebrun		clocks = <&occ_periph>;
199*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
200*9b7e81a9SThéo Lebrun		clock-div = <1>;
201*9b7e81a9SThéo Lebrun		clock-mult = <1>;
202*9b7e81a9SThéo Lebrun		clock-output-names = "gpio_clk";
203*9b7e81a9SThéo Lebrun	};
204*9b7e81a9SThéo Lebrun	emmc_sys_clk: emmc-sys-clk {
205*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
206*9b7e81a9SThéo Lebrun		clocks = <&olb EQ5C_PLL_PER>;
207*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
208*9b7e81a9SThéo Lebrun		clock-div = <10>;
209*9b7e81a9SThéo Lebrun		clock-mult = <1>;
210*9b7e81a9SThéo Lebrun		clock-output-names = "emmc_sys_clk";
211*9b7e81a9SThéo Lebrun	};
212*9b7e81a9SThéo Lebrun	ccf_ctrl_clk: ccf-ctrl-clk {
213*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
214*9b7e81a9SThéo Lebrun		clocks = <&olb EQ5C_PLL_PER>;
215*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
216*9b7e81a9SThéo Lebrun		clock-div = <4>;
217*9b7e81a9SThéo Lebrun		clock-mult = <1>;
218*9b7e81a9SThéo Lebrun		clock-output-names = "ccf_ctrl_clk";
219*9b7e81a9SThéo Lebrun	};
220*9b7e81a9SThéo Lebrun	occ_mjpeg_core: occ-mjpeg-core {
221*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
222*9b7e81a9SThéo Lebrun		clocks = <&olb EQ5C_PLL_PER>;
223*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
224*9b7e81a9SThéo Lebrun		clock-div = <2>;
225*9b7e81a9SThéo Lebrun		clock-mult = <1>;
226*9b7e81a9SThéo Lebrun		clock-output-names = "occ_mjpeg_core";
227*9b7e81a9SThéo Lebrun	};
228*9b7e81a9SThéo Lebrun	hsm_clk: hsm-clk { /* gate ClkRstGen_hsm */
229*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
230*9b7e81a9SThéo Lebrun		clocks = <&occ_mjpeg_core>;
231*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
232*9b7e81a9SThéo Lebrun		clock-div = <1>;
233*9b7e81a9SThéo Lebrun		clock-mult = <1>;
234*9b7e81a9SThéo Lebrun		clock-output-names = "hsm_clk";
235*9b7e81a9SThéo Lebrun	};
236*9b7e81a9SThéo Lebrun	mjpeg_core_clk: mjpeg-core-clk { /* gate ClkRstGen_mjpeg_gen */
237*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
238*9b7e81a9SThéo Lebrun		clocks = <&occ_mjpeg_core>;
239*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
240*9b7e81a9SThéo Lebrun		clock-div = <1>;
241*9b7e81a9SThéo Lebrun		clock-mult = <1>;
242*9b7e81a9SThéo Lebrun		clock-output-names = "mjpeg_core_clk";
243*9b7e81a9SThéo Lebrun	};
244*9b7e81a9SThéo Lebrun	fcmu_a_clk: fcmu-a-clk {
245*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
246*9b7e81a9SThéo Lebrun		clocks = <&olb EQ5C_PLL_PER>;
247*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
248*9b7e81a9SThéo Lebrun		clock-div = <20>;
249*9b7e81a9SThéo Lebrun		clock-mult = <1>;
250*9b7e81a9SThéo Lebrun		clock-output-names = "fcmu_a_clk";
251*9b7e81a9SThéo Lebrun	};
252*9b7e81a9SThéo Lebrun	occ_pci_sys: occ-pci-sys {
253*9b7e81a9SThéo Lebrun		compatible = "fixed-factor-clock";
254*9b7e81a9SThéo Lebrun		clocks = <&olb EQ5C_PLL_PER>;
255*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
256*9b7e81a9SThéo Lebrun		clock-div = <8>;
257*9b7e81a9SThéo Lebrun		clock-mult = <1>;
258*9b7e81a9SThéo Lebrun		clock-output-names = "occ_pci_sys";
259*9b7e81a9SThéo Lebrun	};
260*9b7e81a9SThéo Lebrun	pclk: pclk {
261*9b7e81a9SThéo Lebrun		compatible = "fixed-clock";
262*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
263*9b7e81a9SThéo Lebrun		clock-frequency = <250000000>;  /* 250MHz */
264*9b7e81a9SThéo Lebrun	};
265*9b7e81a9SThéo Lebrun	tsu_clk: tsu-clk {
266*9b7e81a9SThéo Lebrun		compatible = "fixed-clock";
267*9b7e81a9SThéo Lebrun		#clock-cells = <0>;
268*9b7e81a9SThéo Lebrun		clock-frequency = <125000000>;  /* 125MHz */
269*9b7e81a9SThéo Lebrun	};
270*9b7e81a9SThéo Lebrun};
271