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