xref: /linux/arch/arm64/boot/dts/amlogic/amlogic-c3-c308l-aw419.dts (revision 0cac5ce06e524755b3dac1e0a060b05992076d93)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2024 Amlogic, Inc. All rights reserved.
4 */
5
6/dts-v1/;
7
8#include "amlogic-c3.dtsi"
9
10/ {
11	model = "Amlogic C308l aw419 Development Board";
12	compatible = "amlogic,aw419", "amlogic,c3";
13	interrupt-parent = <&gic>;
14	#address-cells = <2>;
15	#size-cells = <2>;
16
17	aliases {
18		serial0 = &uart_b;
19		spi0 = &spifc;
20		i2c2 = &i2c2;
21	};
22
23	memory@0 {
24		device_type = "memory";
25		reg = <0x0 0x0 0x0 0x80000000>;
26	};
27
28	reserved-memory {
29		#address-cells = <2>;
30		#size-cells = <2>;
31		ranges;
32
33		/* 9 MiB reserved for ARM Trusted Firmware */
34		secmon_reserved: secmon@7f00000 {
35			compatible = "shared-dma-pool";
36			reg = <0x0 0x07f00000 0x0 0x900000>;
37			no-map;
38		};
39	};
40
41	main_12v: regulator-main-12v {
42		compatible = "regulator-fixed";
43		regulator-name = "12V";
44		regulator-min-microvolt = <12000000>;
45		regulator-max-microvolt = <12000000>;
46		regulator-boot-on;
47		regulator-always-on;
48	};
49
50	vcc_5v: regulator-vcc-5v {
51		compatible = "regulator-fixed";
52		regulator-name = "VCC5V";
53		regulator-min-microvolt = <5000000>;
54		regulator-max-microvolt = <5000000>;
55		vin-supply = <&main_12v>;
56		regulator-boot-on;
57		regulator-always-on;
58	};
59
60	vddq: regulator-vddq {
61		compatible = "regulator-fixed";
62		regulator-name = "VDDQ";
63		regulator-min-microvolt = <1200000>;
64		regulator-max-microvolt = <1200000>;
65		vin-supply = <&main_12v>;
66		regulator-boot-on;
67		regulator-always-on;
68	};
69
70	vddao_3v3: regulator-vddao-3v3 {
71		compatible = "regulator-fixed";
72		regulator-name = "VDDAO3V3";
73		regulator-min-microvolt = <3300000>;
74		regulator-max-microvolt = <3300000>;
75		vin-supply = <&main_12v>;
76		regulator-boot-on;
77		regulator-always-on;
78	};
79
80	vddao_1v8: regulator-vddao-1v8 {
81		compatible = "regulator-fixed";
82		regulator-name = "VDDAO1V8";
83		regulator-min-microvolt = <1800000>;
84		regulator-max-microvolt = <1800000>;
85		vin-supply = <&vddao_3v3>;
86		regulator-boot-on;
87		regulator-always-on;
88	};
89
90	ddr4_2v5: regulator-ddr4-2v5 {
91		compatible = "regulator-fixed";
92		regulator-name = "DDR4_2V5";
93		regulator-min-microvolt = <2500000>;
94		regulator-max-microvolt = <2500000>;
95		vin-supply = <&vddao_3v3>;
96		regulator-boot-on;
97		regulator-always-on;
98	};
99
100	vcc_3v3: regulator-vcc-3v3 {
101		compatible = "regulator-fixed";
102		regulator-name = "VCC3V3";
103		regulator-min-microvolt = <3300000>;
104		regulator-max-microvolt = <3300000>;
105		vin-supply = <&vddao_3v3>;
106		regulator-boot-on;
107		regulator-always-on;
108	};
109
110	vcc_1v8: regulator-vcc-1v8 {
111		compatible = "regulator-fixed";
112		regulator-name = "VCC1V8";
113		regulator-min-microvolt = <1800000>;
114		regulator-max-microvolt = <1800000>;
115		vin-supply = <&vcc_3v3>;
116		regulator-boot-on;
117		regulator-always-on;
118	};
119
120	vdd_1v8: regulator-vdd-1v8 {
121		compatible = "regulator-fixed";
122		regulator-name = "VDD1V8_BOOT";
123		regulator-min-microvolt = <1800000>;
124		regulator-max-microvolt = <1800000>;
125		vin-supply = <&vcc_3v3>;
126		regulator-boot-on;
127		regulator-always-on;
128	};
129
130	vddio_b: regulator-vddio-3v3-b {
131		compatible = "regulator-fixed";
132		regulator-name = "VDDIO_B";
133		regulator-min-microvolt = <3300000>;
134		regulator-max-microvolt = <3300000>;
135		vin-supply = <&vcc_3v3>;
136		regulator-boot-on;
137		regulator-always-on;
138	};
139
140	sdcard: regulator-sdcard {
141		compatible = "regulator-fixed";
142		regulator-name = "SDCARD_POWER";
143		regulator-min-microvolt = <3300000>;
144		regulator-max-microvolt = <3300000>;
145		vin-supply = <&vddao_3v3>;
146		gpio = <&gpio GPIOA_4 GPIO_ACTIVE_LOW>;
147		regulator-boot-on;
148		regulator-always-on;
149	};
150
151	camera_vdddo_1v8: regulator-camera-1v8 {
152		compatible = "regulator-fixed";
153		regulator-name = "CAMERA_VDDDO";
154		regulator-min-microvolt = <1800000>;
155		regulator-max-microvolt = <1800000>;
156		vin-supply = <&vcc_3v3>;
157		regulator-boot-on;
158		regulator-always-on;
159	};
160
161	camera_vdda_2v9: regulator-camera-2v9 {
162		compatible = "regulator-fixed";
163		regulator-name = "CAMERA_VDDA";
164		regulator-min-microvolt = <2900000>;
165		regulator-max-microvolt = <2900000>;
166		vin-supply = <&vcc_5v>;
167		regulator-boot-on;
168		regulator-always-on;
169	};
170
171	camera_vddd_1v2: regulator-camera-1v2 {
172		compatible = "regulator-fixed";
173		regulator-name = "CAMERA_VDDD";
174		regulator-min-microvolt = <1200000>;
175		regulator-max-microvolt = <1200000>;
176		vin-supply = <&vcc_3v3>;
177		regulator-boot-on;
178		regulator-always-on;
179	};
180};
181
182&uart_b {
183	status = "okay";
184};
185
186&nand {
187	status = "okay";
188	#address-cells = <1>;
189	#size-cells = <0>;
190
191	pinctrl-0 = <&nand_pins>;
192	pinctrl-names = "default";
193
194	nand@0 {
195		reg = <0>;
196		#address-cells = <1>;
197		#size-cells = <1>;
198		nand-on-flash-bbt;
199
200		partition@0 {
201			label = "boot";
202			reg = <0x0 0x00200000>;
203		};
204		partition@200000 {
205			label = "env";
206			reg = <0x00200000 0x00400000>;
207		};
208		partition@600000 {
209			label = "system";
210			reg = <0x00600000 0x00a00000>;
211		};
212		partition@1000000 {
213			label = "rootfs";
214			reg = <0x01000000 0x03000000>;
215		};
216		partition@4000000 {
217			label = "media";
218			reg = <0x04000000 0x8000000>;
219		};
220	};
221};
222
223&ethmac {
224	status = "okay";
225	phy-handle = <&internal_ephy>;
226	phy-mode = "rmii";
227};
228
229&spifc {
230	#address-cells = <1>;
231	#size-cells = <0>;
232
233	pinctrl-0 = <&spifc_pins>;
234	pinctrl-names = "default";
235
236	nand@0 {
237		compatible = "spi-nand";
238		reg = <0>;
239		spi-max-frequency = <83000000>;
240		spi-tx-bus-width = <4>;
241		spi-rx-bus-width = <4>;
242		status = "disabled";
243
244		partitions {
245			compatible = "fixed-partitions";
246			#address-cells = <1>;
247			#size-cells = <1>;
248
249			partition@0 {
250				label = "boot";
251				reg = <0 0x200000>;
252			};
253
254			partition@200000 {
255				label = "env";
256				reg = <0x200000 0x400000>;
257			};
258
259			partition@600000 {
260				label = "system";
261				reg = <0x600000 0xa00000>;
262			};
263
264			partition@1000000 {
265				label = "rootfs";
266				reg = <0x1000000 0x3000000>;
267			};
268
269			partition@4000000 {
270				label = "data";
271				reg = <0x4000000 0x8000000>;
272			};
273		};
274	};
275};
276
277&sd {
278	status = "okay";
279	pinctrl-0 = <&sdcard_pins>;
280	pinctrl-1 = <&sdcard_clk_gate_pins>;
281	pinctrl-names = "default","clk-gate";
282
283	bus-width = <4>;
284	cap-sd-highspeed;
285	max-frequency = <50000000>;
286	disable-wp;
287
288	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
289	vmmc-supply = <&sdcard>;
290	vqmmc-supply = <&sdcard>;
291};
292
293&i2c2 {
294	status = "okay";
295	pinctrl-names = "default";
296	pinctrl-0 = <&i2c2_pins1>;
297	clock-frequency = <100000>; /* default 100k */
298
299	imx290: sensor0@1a {
300		compatible = "sony,imx290";
301		reg = <0x1a>;
302		clocks = <&clkc_pll CLKID_MCLK0>;
303		clock-names = "xclk";
304		clock-frequency = <37125000>;
305		assigned-clocks = <&clkc_pll CLKID_MCLK_PLL>,
306				  <&clkc_pll CLKID_MCLK0>;
307		assigned-clock-rates = <74250000>, <37125000>;
308
309		vdddo-supply = <&camera_vdddo_1v8>;
310		vdda-supply = <&camera_vdda_2v9>;
311		vddd-supply = <&camera_vddd_1v2>;
312
313		reset-gpios = <&gpio GPIOE_4 GPIO_ACTIVE_LOW>;
314
315		port {
316			imx290_out: endpoint {
317				data-lanes = <1 2 3 4>;
318				link-frequencies = /bits/ 64 <222750000 148500000>;
319				remote-endpoint = <&c3_mipi_csi_in>;
320			};
321		};
322	};
323};
324
325&csi2 {
326	status = "okay";
327
328	ports {
329		port@0 {
330			c3_mipi_csi_in: endpoint {
331				remote-endpoint = <&imx290_out>;
332				data-lanes = <1 2 3 4>;
333			};
334		};
335	};
336};
337
338&adap {
339	status = "okay";
340};
341
342&isp {
343	status = "okay";
344};
345