xref: /linux/arch/arm64/boot/dts/tesla/fsd.dtsi (revision da1d9caf95def6f0320819cf941c9fd1069ba9e1)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Tesla Full Self-Driving SoC device tree source
4 *
5 * Copyright (c) 2017-2022 Samsung Electronics Co., Ltd.
6 *		https://www.samsung.com
7 * Copyright (c) 2017-2022 Tesla, Inc.
8 *		https://www.tesla.com
9 */
10
11#include <dt-bindings/clock/fsd-clk.h>
12#include <dt-bindings/interrupt-controller/arm-gic.h>
13
14/ {
15	compatible = "tesla,fsd";
16	interrupt-parent = <&gic>;
17	#address-cells = <2>;
18	#size-cells = <2>;
19
20	aliases {
21		i2c0 = &hsi2c_0;
22		i2c1 = &hsi2c_1;
23		i2c2 = &hsi2c_2;
24		i2c3 = &hsi2c_3;
25		i2c4 = &hsi2c_4;
26		i2c5 = &hsi2c_5;
27		i2c6 = &hsi2c_6;
28		i2c7 = &hsi2c_7;
29		pinctrl0 = &pinctrl_fsys0;
30		pinctrl1 = &pinctrl_peric;
31		pinctrl2 = &pinctrl_pmu;
32		spi0 = &spi_0;
33		spi1 = &spi_1;
34		spi2 = &spi_2;
35	};
36
37	cpus {
38		#address-cells = <2>;
39		#size-cells = <0>;
40
41		cpu-map {
42			cluster0 {
43				core0 {
44					cpu = <&cpucl0_0>;
45				};
46				core1 {
47					cpu = <&cpucl0_1>;
48				};
49				core2 {
50					cpu = <&cpucl0_2>;
51				};
52				core3 {
53					cpu = <&cpucl0_3>;
54				};
55			};
56
57			cluster1 {
58				core0 {
59					cpu = <&cpucl1_0>;
60				};
61				core1 {
62					cpu = <&cpucl1_1>;
63				};
64				core2 {
65					cpu = <&cpucl1_2>;
66				};
67				core3 {
68					cpu = <&cpucl1_3>;
69				};
70			};
71
72			cluster2 {
73				core0 {
74					cpu = <&cpucl2_0>;
75				};
76				core1 {
77					cpu = <&cpucl2_1>;
78				};
79				core2 {
80					cpu = <&cpucl2_2>;
81				};
82				core3 {
83					cpu = <&cpucl2_3>;
84				};
85			};
86		};
87
88		/* Cluster 0 */
89		cpucl0_0: cpu@0 {
90				device_type = "cpu";
91				compatible = "arm,cortex-a72";
92				reg = <0x0 0x000>;
93				enable-method = "psci";
94				clock-frequency = <2400000000>;
95				cpu-idle-states = <&CPU_SLEEP>;
96		};
97
98		cpucl0_1: cpu@1 {
99				device_type = "cpu";
100				compatible = "arm,cortex-a72";
101				reg = <0x0 0x001>;
102				enable-method = "psci";
103				clock-frequency = <2400000000>;
104				cpu-idle-states = <&CPU_SLEEP>;
105		};
106
107		cpucl0_2: cpu@2 {
108				device_type = "cpu";
109				compatible = "arm,cortex-a72";
110				reg = <0x0 0x002>;
111				enable-method = "psci";
112				clock-frequency = <2400000000>;
113				cpu-idle-states = <&CPU_SLEEP>;
114		};
115
116		cpucl0_3: cpu@3 {
117				device_type = "cpu";
118				compatible = "arm,cortex-a72";
119				reg = <0x0 0x003>;
120				enable-method = "psci";
121				cpu-idle-states = <&CPU_SLEEP>;
122		};
123
124		/* Cluster 1 */
125		cpucl1_0: cpu@100 {
126				device_type = "cpu";
127				compatible = "arm,cortex-a72";
128				reg = <0x0 0x100>;
129				enable-method = "psci";
130				clock-frequency = <2400000000>;
131				cpu-idle-states = <&CPU_SLEEP>;
132		};
133
134		cpucl1_1: cpu@101 {
135				device_type = "cpu";
136				compatible = "arm,cortex-a72";
137				reg = <0x0 0x101>;
138				enable-method = "psci";
139				clock-frequency = <2400000000>;
140				cpu-idle-states = <&CPU_SLEEP>;
141		};
142
143		cpucl1_2: cpu@102 {
144				device_type = "cpu";
145				compatible = "arm,cortex-a72";
146				reg = <0x0 0x102>;
147				enable-method = "psci";
148				clock-frequency = <2400000000>;
149				cpu-idle-states = <&CPU_SLEEP>;
150		};
151
152		cpucl1_3: cpu@103 {
153				device_type = "cpu";
154				compatible = "arm,cortex-a72";
155				reg = <0x0 0x103>;
156				enable-method = "psci";
157				clock-frequency = <2400000000>;
158				cpu-idle-states = <&CPU_SLEEP>;
159		};
160
161		/* Cluster 2 */
162		cpucl2_0: cpu@200 {
163				device_type = "cpu";
164				compatible = "arm,cortex-a72";
165				reg = <0x0 0x200>;
166				enable-method = "psci";
167				clock-frequency = <2400000000>;
168				cpu-idle-states = <&CPU_SLEEP>;
169		};
170
171		cpucl2_1: cpu@201 {
172				device_type = "cpu";
173				compatible = "arm,cortex-a72";
174				reg = <0x0 0x201>;
175				enable-method = "psci";
176				clock-frequency = <2400000000>;
177				cpu-idle-states = <&CPU_SLEEP>;
178		};
179
180		cpucl2_2: cpu@202 {
181				device_type = "cpu";
182				compatible = "arm,cortex-a72";
183				reg = <0x0 0x202>;
184				enable-method = "psci";
185				clock-frequency = <2400000000>;
186				cpu-idle-states = <&CPU_SLEEP>;
187		};
188
189		cpucl2_3: cpu@203 {
190				device_type = "cpu";
191				compatible = "arm,cortex-a72";
192				reg = <0x0 0x203>;
193				enable-method = "psci";
194				clock-frequency = <2400000000>;
195				cpu-idle-states = <&CPU_SLEEP>;
196		};
197
198		idle-states {
199			entry-method = "psci";
200
201			CPU_SLEEP: cpu-sleep {
202				idle-state-name = "c2";
203				compatible = "arm,idle-state";
204				local-timer-stop;
205				arm,psci-suspend-param = <0x0010000>;
206				entry-latency-us = <30>;
207				exit-latency-us = <75>;
208				min-residency-us = <300>;
209			};
210		};
211	};
212
213	arm-pmu {
214		compatible = "arm,armv8-pmuv3";
215		interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>,
216			     <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>,
217			     <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>,
218			     <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>,
219			     <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>,
220			     <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>,
221			     <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>,
222			     <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>,
223			     <GIC_SPI 384 IRQ_TYPE_LEVEL_HIGH>,
224			     <GIC_SPI 385 IRQ_TYPE_LEVEL_HIGH>,
225			     <GIC_SPI 386 IRQ_TYPE_LEVEL_HIGH>,
226			     <GIC_SPI 387 IRQ_TYPE_LEVEL_HIGH>;
227		interrupt-affinity = <&cpucl0_0>, <&cpucl0_1>, <&cpucl0_2>,
228				     <&cpucl0_3>, <&cpucl1_0>, <&cpucl1_1>,
229				     <&cpucl1_2>, <&cpucl1_3>, <&cpucl2_0>,
230				     <&cpucl2_1>, <&cpucl2_2>, <&cpucl2_3>;
231	};
232
233	psci {
234		compatible = "arm,psci-1.0";
235		method = "smc";
236	};
237
238	timer {
239		compatible = "arm,armv8-timer";
240		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
241			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
242			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
243			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
244	};
245
246	fin_pll: clock {
247		compatible = "fixed-clock";
248		clock-output-names = "fin_pll";
249		#clock-cells = <0>;
250	};
251
252	soc: soc@0 {
253		compatible = "simple-bus";
254		#address-cells = <2>;
255		#size-cells = <2>;
256		ranges = <0x0 0x0 0x0 0x0 0x0 0x18000000>;
257		dma-ranges = <0x0 0x0 0x0 0x0 0x10 0x0>;
258
259		gic: interrupt-controller@10400000 {
260			compatible = "arm,gic-v3";
261			#interrupt-cells = <3>;
262			interrupt-controller;
263			reg =	<0x0 0x10400000 0x0 0x10000>, /* GICD */
264				<0x0 0x10600000 0x0 0x200000>; /* GICR_RD+GICR_SGI */
265			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
266		};
267
268		smmu_imem: iommu@10200000 {
269			compatible = "arm,mmu-500";
270			reg = <0x0 0x10200000 0x0 0x10000>;
271			#iommu-cells = <2>;
272			#global-interrupts = <7>;
273			interrupts = <GIC_SPI 438 IRQ_TYPE_LEVEL_HIGH>, /* Global secure fault */
274				     <GIC_SPI 439 IRQ_TYPE_LEVEL_HIGH>, /* Global non-secure fault */
275				     <GIC_SPI 451 IRQ_TYPE_LEVEL_HIGH>, /* Combined secure interrupt */
276				     <GIC_SPI 450 IRQ_TYPE_LEVEL_HIGH>, /* Combined non-secure interrupt */
277				     /* Performance counter interrupts */
278				     <GIC_SPI 441 IRQ_TYPE_LEVEL_HIGH>, /* for FSYS1_0 */
279				     <GIC_SPI 442 IRQ_TYPE_LEVEL_HIGH>, /* for FSYS1_1 */
280				     <GIC_SPI 443 IRQ_TYPE_LEVEL_HIGH>, /* for IMEM_0  */
281				     /* Per context non-secure context interrupts, 0-3 interrupts */
282				     <GIC_SPI 446 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_0 */
283				     <GIC_SPI 447 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_1 */
284				     <GIC_SPI 448 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_2 */
285				     <GIC_SPI 449 IRQ_TYPE_LEVEL_HIGH>; /* for CONTEXT_3 */
286		};
287
288		smmu_isp: iommu@12100000 {
289			compatible = "arm,mmu-500";
290			reg = <0x0 0x12100000 0x0 0x10000>;
291			#iommu-cells = <2>;
292			#global-interrupts = <11>;
293			interrupts = <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>, /* Global secure fault */
294				     <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>, /* Global non-secure fault */
295				     <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>, /* Combined secure interrupt */
296				     <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>, /* Combined non-secure interrupt */
297				     /* Performance counter interrupts */
298				     <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>, /* for CAM_CSI   */
299				     <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>, /* for CAM_DP_0  */
300				     <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>, /* for CAM_DP_1  */
301				     <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>, /* for CAM_ISP_0 */
302				     <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>, /* for CAM_ISP_1 */
303				     <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>, /* for CAM_MFC_0 */
304				     <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>, /* for CAM_MFC_1 */
305				     /* Per context non-secure context interrupts, 0-7 interrupts */
306				     <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_0 */
307				     <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_1 */
308				     <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_2 */
309				     <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_3 */
310				     <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_4 */
311				     <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_5 */
312				     <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_6 */
313				     <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>; /* for CONTEXT_7 */
314		};
315
316		smmu_peric: iommu@14900000 {
317			compatible = "arm,mmu-500";
318			reg = <0x0 0x14900000 0x0 0x10000>;
319			#iommu-cells = <2>;
320			#global-interrupts = <5>;
321			interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>, /* Global secure fault */
322				     <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, /* Global non-secure fault */
323				     <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>, /* Combined secure interrupt */
324				     <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>, /* Combined non-secure interrupt */
325				     /* Performance counter interrupts */
326				     <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>, /* for PERIC */
327				     /* Per context non-secure context interrupts, 0-1 interrupts */
328				     <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_0 */
329				     <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>; /* for CONTEXT_1 */
330		};
331
332		smmu_fsys0: iommu@15450000 {
333			compatible = "arm,mmu-500";
334			reg = <0x0 0x15450000 0x0 0x10000>;
335			#iommu-cells = <2>;
336			#global-interrupts = <5>;
337			interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, /* Global secure fault */
338				     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>, /* Global non-secure fault */
339				     <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, /* Combined secure interrupt */
340				     <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>, /* Combined non-secure interrupt */
341				     /* Performance counter interrupts */
342				     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, /* for FSYS0   */
343				     /* Per context non-secure context interrupts, 0-1 interrupts */
344				     <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_0 */
345				     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; /* for CONTEXT_1 */
346		};
347
348		clock_imem: clock-controller@10010000 {
349			compatible = "tesla,fsd-clock-imem";
350			reg = <0x0 0x10010000 0x0 0x3000>;
351			#clock-cells = <1>;
352			clocks = <&fin_pll>,
353				<&clock_cmu DOUT_CMU_IMEM_TCUCLK>,
354				<&clock_cmu DOUT_CMU_IMEM_ACLK>,
355				<&clock_cmu DOUT_CMU_IMEM_DMACLK>;
356			clock-names = "fin_pll",
357				"dout_cmu_imem_tcuclk",
358				"dout_cmu_imem_aclk",
359				"dout_cmu_imem_dmaclk";
360		};
361
362		clock_cmu: clock-controller@11c10000 {
363			compatible = "tesla,fsd-clock-cmu";
364			reg = <0x0 0x11c10000 0x0 0x3000>;
365			#clock-cells = <1>;
366			clocks = <&fin_pll>;
367			clock-names = "fin_pll";
368		};
369
370		clock_csi: clock-controller@12610000 {
371			compatible = "tesla,fsd-clock-cam_csi";
372			reg = <0x0 0x12610000 0x0 0x3000>;
373			#clock-cells = <1>;
374			clocks = <&fin_pll>;
375			clock-names = "fin_pll";
376		};
377
378		clock_mfc: clock-controller@12810000 {
379			compatible = "tesla,fsd-clock-mfc";
380			reg = <0x0 0x12810000 0x0 0x3000>;
381			#clock-cells = <1>;
382			clocks = <&fin_pll>;
383			clock-names = "fin_pll";
384		};
385
386		clock_peric: clock-controller@14010000 {
387			compatible = "tesla,fsd-clock-peric";
388			reg = <0x0 0x14010000 0x0 0x3000>;
389			#clock-cells = <1>;
390			clocks = <&fin_pll>,
391				<&clock_cmu DOUT_CMU_PLL_SHARED0_DIV4>,
392				<&clock_cmu DOUT_CMU_PERIC_SHARED1DIV36>,
393				<&clock_cmu DOUT_CMU_PERIC_SHARED0DIV3_TBUCLK>,
394				<&clock_cmu DOUT_CMU_PERIC_SHARED0DIV20>,
395				<&clock_cmu DOUT_CMU_PERIC_SHARED1DIV4_DMACLK>;
396			clock-names = "fin_pll",
397				"dout_cmu_pll_shared0_div4",
398				"dout_cmu_peric_shared1div36",
399				"dout_cmu_peric_shared0div3_tbuclk",
400				"dout_cmu_peric_shared0div20",
401				"dout_cmu_peric_shared1div4_dmaclk";
402		};
403
404		clock_fsys0: clock-controller@15010000 {
405			compatible = "tesla,fsd-clock-fsys0";
406			reg = <0x0 0x15010000 0x0 0x3000>;
407			#clock-cells = <1>;
408			clocks = <&fin_pll>,
409				<&clock_cmu DOUT_CMU_PLL_SHARED0_DIV6>,
410				<&clock_cmu DOUT_CMU_FSYS0_SHARED1DIV4>,
411				<&clock_cmu DOUT_CMU_FSYS0_SHARED0DIV4>;
412			clock-names = "fin_pll",
413				"dout_cmu_pll_shared0_div6",
414				"dout_cmu_fsys0_shared1div4",
415				"dout_cmu_fsys0_shared0div4";
416		};
417
418		clock_fsys1: clock-controller@16810000 {
419			compatible = "tesla,fsd-clock-fsys1";
420			reg = <0x0 0x16810000 0x0 0x3000>;
421			#clock-cells = <1>;
422			clocks = <&fin_pll>,
423				<&clock_cmu DOUT_CMU_FSYS1_SHARED0DIV8>,
424				<&clock_cmu DOUT_CMU_FSYS1_SHARED0DIV4>;
425			clock-names = "fin_pll",
426				"dout_cmu_fsys1_shared0div8",
427				"dout_cmu_fsys1_shared0div4";
428		};
429
430		mdma0: dma-controller@10100000 {
431			compatible = "arm,pl330", "arm,primecell";
432			reg = <0x0 0x10100000 0x0 0x1000>;
433			interrupts = <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>;
434			#dma-cells = <1>;
435			clocks = <&clock_imem IMEM_DMA0_IPCLKPORT_ACLK>;
436			clock-names = "apb_pclk";
437			iommus = <&smmu_imem 0x800 0x0>;
438		};
439
440		mdma1: dma-controller@10110000 {
441			compatible = "arm,pl330", "arm,primecell";
442			reg = <0x0 0x10110000 0x0 0x1000>;
443			interrupts = <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>;
444			#dma-cells = <1>;
445			clocks = <&clock_imem IMEM_DMA1_IPCLKPORT_ACLK>;
446			clock-names = "apb_pclk";
447			iommus = <&smmu_imem 0x801 0x0>;
448		};
449
450		pdma0: dma-controller@14280000 {
451			compatible = "arm,pl330", "arm,primecell";
452			reg = <0x0 0x14280000 0x0 0x1000>;
453			interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
454			#dma-cells = <1>;
455			clocks = <&clock_peric PERIC_DMA0_IPCLKPORT_ACLK>;
456			clock-names = "apb_pclk";
457			iommus = <&smmu_peric 0x2 0x0>;
458		};
459
460		pdma1: dma-controller@14290000 {
461			compatible = "arm,pl330", "arm,primecell";
462			reg = <0x0 0x14290000 0x0 0x1000>;
463			interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
464			#dma-cells = <1>;
465			clocks = <&clock_peric PERIC_DMA1_IPCLKPORT_ACLK>;
466			clock-names = "apb_pclk";
467			iommus = <&smmu_peric 0x1 0x0>;
468		};
469
470		serial_0: serial@14180000 {
471			compatible = "samsung,exynos4210-uart";
472			reg = <0x0 0x14180000 0x0 0x100>;
473			interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
474			dmas = <&pdma1 1>, <&pdma1 0>;
475			dma-names = "rx", "tx";
476			clocks = <&clock_peric PERIC_PCLK_UART0>,
477				 <&clock_peric PERIC_SCLK_UART0>;
478			clock-names = "uart", "clk_uart_baud0";
479			status = "disabled";
480		};
481
482		serial_1: serial@14190000 {
483			compatible = "samsung,exynos4210-uart";
484			reg = <0x0 0x14190000 0x0 0x100>;
485			interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
486			dmas = <&pdma1 3>, <&pdma1 2>;
487			dma-names = "rx", "tx";
488			clocks = <&clock_peric PERIC_PCLK_UART1>,
489				 <&clock_peric PERIC_SCLK_UART1>;
490			clock-names = "uart", "clk_uart_baud0";
491			status = "disabled";
492		};
493
494		pmu_system_controller: system-controller@11400000 {
495			compatible = "samsung,exynos7-pmu", "syscon";
496			reg = <0x0 0x11400000 0x0 0x5000>;
497		};
498
499		watchdog_0: watchdog@100a0000 {
500			compatible = "samsung,exynos7-wdt";
501			reg = <0x0 0x100a0000 0x0 0x100>;
502			interrupts = <GIC_SPI 471 IRQ_TYPE_LEVEL_HIGH>;
503			samsung,syscon-phandle = <&pmu_system_controller>;
504			clocks = <&fin_pll>;
505			clock-names = "watchdog";
506		};
507
508		watchdog_1: watchdog@100b0000 {
509			compatible = "samsung,exynos7-wdt";
510			reg = <0x0 0x100b0000 0x0 0x100>;
511			interrupts = <GIC_SPI 472 IRQ_TYPE_LEVEL_HIGH>;
512			samsung,syscon-phandle = <&pmu_system_controller>;
513			clocks = <&fin_pll>;
514			clock-names = "watchdog";
515		};
516
517		watchdog_2: watchdog@100c0000 {
518			compatible = "samsung,exynos7-wdt";
519			reg = <0x0 0x100c0000 0x0 0x100>;
520			interrupts = <GIC_SPI 473 IRQ_TYPE_LEVEL_HIGH>;
521			samsung,syscon-phandle = <&pmu_system_controller>;
522			clocks = <&fin_pll>;
523			clock-names = "watchdog";
524		};
525
526		pwm_0: pwm@14100000 {
527			compatible = "samsung,exynos4210-pwm";
528			reg = <0x0 0x14100000 0x0 0x100>;
529			samsung,pwm-outputs = <0>, <1>, <2>, <3>;
530			#pwm-cells = <3>;
531			clocks = <&clock_peric PERIC_PWM0_IPCLKPORT_I_PCLK_S0>;
532			clock-names = "timers";
533			status = "disabled";
534		};
535
536		pwm_1: pwm@14110000 {
537			compatible = "samsung,exynos4210-pwm";
538			reg = <0x0 0x14110000 0x0 0x100>;
539			samsung,pwm-outputs = <0>, <1>, <2>, <3>;
540			#pwm-cells = <3>;
541			clocks = <&clock_peric PERIC_PWM1_IPCLKPORT_I_PCLK_S0>;
542			clock-names = "timers";
543			status = "disabled";
544		};
545
546		hsi2c_0: i2c@14200000 {
547			compatible = "samsung,exynos7-hsi2c";
548			reg = <0x0 0x14200000 0x0 0x1000>;
549			interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
550			#address-cells = <1>;
551			#size-cells = <0>;
552			pinctrl-names = "default";
553			pinctrl-0 = <&hs_i2c0_bus>;
554			clocks = <&clock_peric PERIC_PCLK_HSI2C0>;
555			clock-names = "hsi2c";
556			status = "disabled";
557		};
558
559		hsi2c_1: i2c@14210000 {
560			compatible = "samsung,exynos7-hsi2c";
561			reg = <0x0 0x14210000 0x0 0x1000>;
562			interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
563			#address-cells = <1>;
564			#size-cells = <0>;
565			pinctrl-names = "default";
566			pinctrl-0 = <&hs_i2c1_bus>;
567			clocks = <&clock_peric PERIC_PCLK_HSI2C1>;
568			clock-names = "hsi2c";
569			status = "disabled";
570		};
571
572		hsi2c_2: i2c@14220000 {
573			compatible = "samsung,exynos7-hsi2c";
574			reg = <0x0 0x14220000 0x0 0x1000>;
575			interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
576			#address-cells = <1>;
577			#size-cells = <0>;
578			pinctrl-names = "default";
579			pinctrl-0 = <&hs_i2c2_bus>;
580			clocks = <&clock_peric PERIC_PCLK_HSI2C2>;
581			clock-names = "hsi2c";
582			status = "disabled";
583		};
584
585		hsi2c_3: i2c@14230000 {
586			compatible = "samsung,exynos7-hsi2c";
587			reg = <0x0 0x14230000 0x0 0x1000>;
588			interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
589			#address-cells = <1>;
590			#size-cells = <0>;
591			pinctrl-names = "default";
592			pinctrl-0 = <&hs_i2c3_bus>;
593			clocks = <&clock_peric PERIC_PCLK_HSI2C3>;
594			clock-names = "hsi2c";
595			status = "disabled";
596		};
597
598		hsi2c_4: i2c@14240000 {
599			compatible = "samsung,exynos7-hsi2c";
600			reg = <0x0 0x14240000 0x0 0x1000>;
601			interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
602			#address-cells = <1>;
603			#size-cells = <0>;
604			pinctrl-names = "default";
605			pinctrl-0 = <&hs_i2c4_bus>;
606			clocks = <&clock_peric PERIC_PCLK_HSI2C4>;
607			clock-names = "hsi2c";
608			status = "disabled";
609		};
610
611		hsi2c_5: i2c@14250000 {
612			compatible = "samsung,exynos7-hsi2c";
613			reg = <0x0 0x14250000 0x0 0x1000>;
614			interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
615			#address-cells = <1>;
616			#size-cells = <0>;
617			pinctrl-names = "default";
618			pinctrl-0 = <&hs_i2c5_bus>;
619			clocks = <&clock_peric PERIC_PCLK_HSI2C5>;
620			clock-names = "hsi2c";
621			status = "disabled";
622		};
623
624		hsi2c_6: i2c@14260000 {
625			compatible = "samsung,exynos7-hsi2c";
626			reg = <0x0 0x14260000 0x0 0x1000>;
627			interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
628			#address-cells = <1>;
629			#size-cells = <0>;
630			pinctrl-names = "default";
631			pinctrl-0 = <&hs_i2c6_bus>;
632			clocks = <&clock_peric PERIC_PCLK_HSI2C6>;
633			clock-names = "hsi2c";
634			status = "disabled";
635		};
636
637		hsi2c_7: i2c@14270000 {
638			compatible = "samsung,exynos7-hsi2c";
639			reg = <0x0 0x14270000 0x0 0x1000>;
640			interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
641			#address-cells = <1>;
642			#size-cells = <0>;
643			pinctrl-names = "default";
644			pinctrl-0 = <&hs_i2c7_bus>;
645			clocks = <&clock_peric PERIC_PCLK_HSI2C7>;
646			clock-names = "hsi2c";
647			status = "disabled";
648		};
649
650		pinctrl_pmu: pinctrl@114f0000 {
651			compatible = "tesla,fsd-pinctrl";
652			reg = <0x0 0x114f0000 0x0 0x1000>;
653		};
654
655		pinctrl_peric: pinctrl@141f0000 {
656			compatible = "tesla,fsd-pinctrl";
657			reg = <0x0 0x141f0000 0x0 0x1000>;
658			interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
659		};
660
661		pinctrl_fsys0: pinctrl@15020000 {
662			compatible = "tesla,fsd-pinctrl";
663			reg = <0x0 0x15020000 0x0 0x1000>;
664			interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
665		};
666
667		spi_0: spi@14140000 {
668			compatible = "tesla,fsd-spi";
669			reg = <0x0 0x14140000 0x0 0x100>;
670			interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
671			dmas = <&pdma1 4>, <&pdma1 5>;
672			dma-names = "tx", "rx";
673			#address-cells = <1>;
674			#size-cells = <0>;
675			clocks = <&clock_peric PERIC_PCLK_SPI0>,
676				<&clock_peric PERIC_SCLK_SPI0>;
677			clock-names = "spi", "spi_busclk0";
678			samsung,spi-src-clk = <0>;
679			pinctrl-names = "default";
680			pinctrl-0 = <&spi0_bus>;
681			num-cs = <1>;
682			status = "disabled";
683		};
684
685		spi_1: spi@14150000 {
686			compatible = "tesla,fsd-spi";
687			reg = <0x0 0x14150000 0x0 0x100>;
688			interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
689			dmas = <&pdma1 6>, <&pdma1 7>;
690			dma-names = "tx", "rx";
691			#address-cells = <1>;
692			#size-cells = <0>;
693			clocks = <&clock_peric PERIC_PCLK_SPI1>,
694				<&clock_peric PERIC_SCLK_SPI1>;
695			clock-names = "spi", "spi_busclk0";
696			samsung,spi-src-clk = <0>;
697			pinctrl-names = "default";
698			pinctrl-0 = <&spi1_bus>;
699			num-cs = <1>;
700			status = "disabled";
701		};
702
703		spi_2: spi@14160000 {
704			compatible = "tesla,fsd-spi";
705			reg = <0x0 0x14160000 0x0 0x100>;
706			interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
707			dmas = <&pdma1 8>, <&pdma1 9>;
708			dma-names = "tx", "rx";
709			#address-cells = <1>;
710			#size-cells = <0>;
711			clocks = <&clock_peric PERIC_PCLK_SPI2>,
712				<&clock_peric PERIC_SCLK_SPI2>;
713			clock-names = "spi", "spi_busclk0";
714			samsung,spi-src-clk = <0>;
715			pinctrl-names = "default";
716			pinctrl-0 = <&spi2_bus>;
717			num-cs = <1>;
718			status = "disabled";
719		};
720
721		timer@10040000 {
722			compatible = "tesla,fsd-mct", "samsung,exynos4210-mct";
723			reg = <0x0 0x10040000 0x0 0x800>;
724			interrupts = <GIC_SPI 455 IRQ_TYPE_LEVEL_HIGH>,
725				<GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>,
726				<GIC_SPI 457 IRQ_TYPE_LEVEL_HIGH>,
727				<GIC_SPI 458 IRQ_TYPE_LEVEL_HIGH>,
728				<GIC_SPI 459 IRQ_TYPE_LEVEL_HIGH>,
729				<GIC_SPI 460 IRQ_TYPE_LEVEL_HIGH>,
730				<GIC_SPI 461 IRQ_TYPE_LEVEL_HIGH>,
731				<GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH>,
732				<GIC_SPI 463 IRQ_TYPE_LEVEL_HIGH>,
733				<GIC_SPI 464 IRQ_TYPE_LEVEL_HIGH>,
734				<GIC_SPI 465 IRQ_TYPE_LEVEL_HIGH>,
735				<GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>,
736				<GIC_SPI 467 IRQ_TYPE_LEVEL_HIGH>,
737				<GIC_SPI 468 IRQ_TYPE_LEVEL_HIGH>,
738				<GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>,
739				<GIC_SPI 470 IRQ_TYPE_LEVEL_HIGH>;
740			clocks = <&fin_pll>, <&clock_imem IMEM_MCT_PCLK>;
741			clock-names = "fin_pll", "mct";
742		};
743	};
744};
745
746#include "fsd-pinctrl.dtsi"
747