1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Samsung's S5PV210 SoC device tree source
4 *
5 * Copyright (c) 2013-2014 Samsung Electronics, Co. Ltd.
6 *
7 * Mateusz Krawczuk <m.krawczuk@partner.samsung.com>
8 * Tomasz Figa <t.figa@samsung.com>
9 *
10 * Board device tree source for Samsung Aquila board.
11 */
12
13/dts-v1/;
14#include <dt-bindings/gpio/gpio.h>
15#include <dt-bindings/input/input.h>
16#include "s5pv210.dtsi"
17
18/ {
19	model = "Samsung Aquila based on S5PC110";
20	compatible = "samsung,aquila", "samsung,s5pv210";
21
22	aliases {
23		i2c3 = &i2c_pmic;
24	};
25
26	chosen {
27		bootargs = "console=ttySAC2,115200n8 root=/dev/mmcblk1p5 rw rootwait ignore_loglevel earlyprintk";
28	};
29
30	memory@30000000 {
31		device_type = "memory";
32		reg = <0x30000000 0x05000000>, <0x40000000 0x18000000>;
33	};
34
35	pmic_ap_clk: clock-0 {
36		/* Workaround for missing clock on PMIC */
37		compatible = "fixed-clock";
38		#clock-cells = <0>;
39		clock-frequency = <32768>;
40	};
41
42	vtf_reg: regulator-0 {
43		compatible = "regulator-fixed";
44		regulator-name = "V_TF_2.8V";
45		regulator-min-microvolt = <2800000>;
46		regulator-max-microvolt = <2800000>;
47		gpio = <&mp05 4 GPIO_ACTIVE_HIGH>;
48		enable-active-high;
49	};
50
51	pda_reg: regulator-1 {
52		compatible = "regulator-fixed";
53		regulator-name = "VCC_1.8V_PDA";
54		regulator-min-microvolt = <1800000>;
55		regulator-max-microvolt = <1800000>;
56	};
57
58	bat_reg: regulator-2 {
59		compatible = "regulator-fixed";
60		regulator-name = "V_BAT";
61		regulator-min-microvolt = <3700000>;
62		regulator-max-microvolt = <3700000>;
63	};
64
65	i2c_pmic: i2c-pmic {
66		compatible = "i2c-gpio";
67		sda-gpios = <&gpj4 0 GPIO_ACTIVE_HIGH>;
68		scl-gpios = <&gpj4 3 GPIO_ACTIVE_HIGH>;
69		i2c-gpio,delay-us = <2>;        /* ~100 kHz */
70		#address-cells = <1>;
71		#size-cells = <0>;
72
73		pmic@66 {
74			compatible = "national,lp3974";
75			reg = <0x66>;
76
77			max8998,pmic-buck1-default-dvs-idx = <0>;
78			max8998,pmic-buck1-dvs-gpios = <&gph0 3 GPIO_ACTIVE_HIGH>,
79							<&gph0 4 GPIO_ACTIVE_HIGH>;
80			max8998,pmic-buck1-dvs-voltage = <1200000>, <1200000>,
81							<1200000>, <1200000>;
82
83			max8998,pmic-buck2-default-dvs-idx = <0>;
84			max8998,pmic-buck2-dvs-gpio = <&gph0 5 GPIO_ACTIVE_HIGH>;
85			max8998,pmic-buck2-dvs-voltage = <1200000>, <1200000>;
86
87			regulators {
88				ldo2_reg: LDO2 {
89					regulator-name = "VALIVE_1.1V";
90					regulator-min-microvolt = <1100000>;
91					regulator-max-microvolt = <1100000>;
92					regulator-always-on;
93				};
94
95				ldo3_reg: LDO3 {
96					regulator-name = "VUSB+MIPI_1.1V";
97					regulator-min-microvolt = <1100000>;
98					regulator-max-microvolt = <1100000>;
99					regulator-always-on;
100				};
101
102				ldo4_reg: LDO4 {
103					regulator-name = "VADC_3.3V";
104					regulator-min-microvolt = <3300000>;
105					regulator-max-microvolt = <3300000>;
106				};
107
108				ldo5_reg: LDO5 {
109					regulator-name = "VTF_2.8V";
110					regulator-min-microvolt = <2800000>;
111					regulator-max-microvolt = <2800000>;
112					regulator-always-on;
113				};
114
115				ldo6_reg: LDO6 {
116					regulator-name = "VCC_3.3V";
117					regulator-min-microvolt = <3300000>;
118					regulator-max-microvolt = <3300000>;
119					regulator-always-on;
120				};
121
122				ldo7_reg: LDO7 {
123					regulator-name = "VCC_3.0V";
124					regulator-min-microvolt = <3000000>;
125					regulator-max-microvolt = <3000000>;
126					regulator-always-on;
127					regulator-boot-on;
128				};
129
130				ldo8_reg: LDO8 {
131					regulator-name = "VUSB+VDAC_3.3V";
132					regulator-min-microvolt = <3300000>;
133					regulator-max-microvolt = <3300000>;
134					regulator-always-on;
135				};
136
137				ldo9_reg: LDO9 {
138					regulator-name = "VCC+VCAM_2.8V";
139					regulator-min-microvolt = <2800000>;
140					regulator-max-microvolt = <2800000>;
141					regulator-always-on;
142				};
143
144				ldo10_reg: LDO10 {
145					regulator-name = "VPLL_1.1V";
146					regulator-min-microvolt = <1100000>;
147					regulator-max-microvolt = <1100000>;
148					regulator-always-on;
149					regulator-boot-on;
150				};
151
152				ldo11_reg: LDO11 {
153					regulator-name = "CAM_IO_2.8V";
154					regulator-min-microvolt = <2800000>;
155					regulator-max-microvolt = <2800000>;
156					regulator-always-on;
157				};
158
159				ldo12_reg: LDO12 {
160					regulator-name = "CAM_ISP_1.2V";
161					regulator-min-microvolt = <1200000>;
162					regulator-max-microvolt = <1200000>;
163					regulator-always-on;
164				};
165
166				ldo13_reg: LDO13 {
167					regulator-name = "CAM_A_2.8V";
168					regulator-min-microvolt = <2800000>;
169					regulator-max-microvolt = <2800000>;
170					regulator-always-on;
171				};
172
173				ldo14_reg: LDO14 {
174					regulator-name = "CAM_CIF_1.8V";
175					regulator-min-microvolt = <1800000>;
176					regulator-max-microvolt = <1800000>;
177					regulator-always-on;
178				};
179
180				ldo15_reg: LDO15 {
181					regulator-name = "CAM_AF_3.3V";
182					regulator-min-microvolt = <3300000>;
183					regulator-max-microvolt = <3300000>;
184					regulator-always-on;
185				};
186
187				ldo16_reg: LDO16 {
188					regulator-name = "VMIPI_1.8V";
189					regulator-min-microvolt = <1800000>;
190					regulator-max-microvolt = <1800000>;
191					regulator-always-on;
192				};
193
194				ldo17_reg: LDO17 {
195					regulator-name = "CAM_8M_1.8V";
196					regulator-min-microvolt = <1800000>;
197					regulator-max-microvolt = <1800000>;
198					regulator-always-on;
199				};
200
201				buck1_reg: BUCK1 {
202					regulator-name = "VARM_1.2V";
203					regulator-min-microvolt = <1200000>;
204					regulator-max-microvolt = <1200000>;
205					regulator-always-on;
206				};
207
208				buck2_reg: BUCK2 {
209					regulator-name = "VINT_1.2V";
210					regulator-min-microvolt = <1200000>;
211					regulator-max-microvolt = <1200000>;
212					regulator-always-on;
213				};
214
215				buck3_reg: BUCK3 {
216					regulator-name = "VCC_1.8V";
217					regulator-min-microvolt = <1800000>;
218					regulator-max-microvolt = <1800000>;
219					regulator-always-on;
220				};
221
222				buck4_reg: BUCK4 {
223					regulator-name = "CAM_CORE_1.2V";
224					regulator-min-microvolt = <1200000>;
225					regulator-max-microvolt = <1200000>;
226					regulator-always-on;
227				};
228
229				ap32khz_reg: EN32KHz-AP {
230					regulator-name = "32KHz AP";
231					regulator-always-on;
232				};
233
234				vichg_reg: ENVICHG {
235					regulator-name = "VICHG";
236				};
237
238				safeout1_reg: ESAFEOUT1 {
239					regulator-name = "SAFEOUT1";
240					regulator-always-on;
241				};
242
243				safeout2_reg: ESAFEOUT2 {
244					regulator-name = "SAFEOUT2";
245					regulator-boot-on;
246				};
247			};
248		};
249
250	};
251
252	gpio-keys {
253		compatible = "gpio-keys";
254
255		power-key {
256			gpios = <&gph2 6 1>;
257			linux,code = <KEY_POWER>;
258			label = "power";
259			debounce-interval = <1>;
260			wakeup-source;
261		};
262	};
263};
264
265&xusbxti {
266	clock-frequency = <24000000>;
267};
268
269&keypad {
270	linux,input-no-autorepeat;
271	wakeup-source;
272	samsung,keypad-num-rows = <3>;
273	samsung,keypad-num-columns = <3>;
274	pinctrl-names = "default";
275	pinctrl-0 = <&keypad_row0>, <&keypad_row1>, <&keypad_row2>,
276			<&keypad_col0>, <&keypad_col1>, <&keypad_col2>;
277	status = "okay";
278
279	key-1 {
280		keypad,row = <0>;
281		keypad,column = <1>;
282		linux,code = <KEY_CONNECT>;
283	};
284
285	key-2 {
286		keypad,row = <0>;
287		keypad,column = <2>;
288		linux,code = <KEY_BACK>;
289	};
290
291	key-3 {
292		keypad,row = <1>;
293		keypad,column = <1>;
294		linux,code = <KEY_CAMERA_FOCUS>;
295	};
296
297	key-4 {
298		keypad,row = <1>;
299		keypad,column = <2>;
300		linux,code = <KEY_VOLUMEUP>;
301	};
302
303	key-5 {
304		keypad,row = <2>;
305		keypad,column = <1>;
306		linux,code = <KEY_CAMERA>;
307	};
308
309	key-6 {
310		keypad,row = <2>;
311		keypad,column = <2>;
312		linux,code = <KEY_VOLUMEDOWN>;
313	};
314};
315
316&uart0 {
317	status = "okay";
318};
319
320&uart1 {
321	status = "okay";
322};
323
324&uart2 {
325	status = "okay";
326};
327
328&uart3 {
329	status = "okay";
330};
331
332&rtc {
333	clocks = <&clocks CLK_RTC>, <&pmic_ap_clk>;
334	clock-names = "rtc", "rtc_src";
335};
336
337&sdhci0 {
338	bus-width = <4>;
339	non-removable;
340	status = "okay";
341	vmmc-supply = <&ldo5_reg>;
342	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4>;
343	pinctrl-names = "default";
344};
345
346&sdhci2 {
347	bus-width = <4>;
348	cd-gpios = <&gph3 4 1>;
349	vmmc-supply = <&vtf_reg>;
350	cd-inverted;
351	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &t_flash_detect>;
352	pinctrl-names = "default";
353	status = "okay";
354};
355
356&onenand {
357	status = "okay";
358};
359
360&hsotg {
361	vusb_a-supply = <&ldo3_reg>;
362	vusb_d-supply = <&ldo8_reg>;
363	dr_mode = "peripheral";
364	status = "okay";
365};
366
367&usbphy {
368	status = "okay";
369};
370
371&fimd {
372	pinctrl-0 = <&lcd_clk &lcd_data24 &pwm1_out>;
373	pinctrl-names = "default";
374	status = "okay";
375
376	display-timings {
377		native-mode = <&timing0>;
378		timing0: timing {
379			clock-frequency = <0>;
380			hactive = <800>;
381			vactive = <480>;
382			hfront-porch = <16>;
383			hback-porch = <16>;
384			hsync-len = <2>;
385			vback-porch = <3>;
386			vfront-porch = <28>;
387			vsync-len = <1>;
388		};
389	};
390};
391
392&pinctrl0 {
393	t_flash_detect: t-flash-detect-pins {
394		samsung,pins = "gph3-4";
395		samsung,pin-function = <S5PV210_PIN_FUNC_INPUT>;
396		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
397	};
398};
399