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 Goni board.
11 */
12
13/dts-v1/;
14#include <dt-bindings/gpio/gpio.h>
15#include <dt-bindings/interrupt-controller/irq.h>
16#include <dt-bindings/input/input.h>
17#include "s5pv210.dtsi"
18
19/ {
20	model = "Samsung Goni based on S5PC110";
21	compatible = "samsung,goni", "samsung,s5pv210";
22
23	aliases {
24		i2c3 = &i2c_pmic;
25	};
26
27	chosen {
28		bootargs = "console=ttySAC0,115200n8 root=/dev/mmcblk0p5 rw rootwait ignore_loglevel earlyprintk";
29	};
30
31	memory@30000000 {
32		device_type = "memory";
33		reg = <0x30000000 0x05000000>,
34			<0x40000000 0x10000000>,
35			<0x50000000 0x08000000>;
36	};
37
38	pmic_ap_clk: clock-0 {
39		/* Workaround for missing clock on PMIC */
40		compatible = "fixed-clock";
41		#clock-cells = <0>;
42		clock-frequency = <32768>;
43	};
44
45	vtf_reg: regulator-0 {
46		compatible = "regulator-fixed";
47		regulator-name = "V_TF_2.8V";
48		regulator-min-microvolt = <2800000>;
49		regulator-max-microvolt = <2800000>;
50		gpio = <&mp05 4 GPIO_ACTIVE_HIGH>;
51		enable-active-high;
52	};
53
54	pda_reg: regulator-1 {
55		compatible = "regulator-fixed";
56		regulator-name = "VCC_1.8V_PDA";
57		regulator-min-microvolt = <1800000>;
58		regulator-max-microvolt = <1800000>;
59	};
60
61	bat_reg: regulator-2 {
62		compatible = "regulator-fixed";
63		regulator-name = "V_BAT";
64		regulator-min-microvolt = <3700000>;
65		regulator-max-microvolt = <3700000>;
66	};
67
68	tsp_reg: regulator-3 {
69		compatible = "regulator-fixed";
70		regulator-name = "TSP_VDD";
71		regulator-min-microvolt = <2800000>;
72		regulator-max-microvolt = <2800000>;
73		gpio = <&gpj1 3 GPIO_ACTIVE_HIGH>;
74		enable-active-high;
75	};
76
77	i2c_pmic: i2c-pmic {
78		compatible = "i2c-gpio";
79		sda-gpios = <&gpj4 0 GPIO_ACTIVE_HIGH>;
80		scl-gpios = <&gpj4 3 GPIO_ACTIVE_HIGH>;
81		i2c-gpio,delay-us = <2>;        /* ~100 kHz */
82		#address-cells = <1>;
83		#size-cells = <0>;
84
85		pmic@66 {
86			compatible = "national,lp3974";
87			reg = <0x66>;
88
89			max8998,pmic-buck1-default-dvs-idx = <0>;
90			max8998,pmic-buck1-dvs-gpios = <&gph0 3 GPIO_ACTIVE_HIGH>,
91							<&gph0 4 GPIO_ACTIVE_HIGH>;
92			max8998,pmic-buck1-dvs-voltage = <1200000>, <1200000>,
93							<1200000>, <1200000>;
94
95			max8998,pmic-buck2-default-dvs-idx = <0>;
96			max8998,pmic-buck2-dvs-gpio = <&gph0 5 GPIO_ACTIVE_HIGH>;
97			max8998,pmic-buck2-dvs-voltage = <1200000>, <1200000>;
98
99			regulators {
100				ldo2_reg: LDO2 {
101					regulator-name = "VALIVE_1.1V";
102					regulator-min-microvolt = <1100000>;
103					regulator-max-microvolt = <1100000>;
104					regulator-always-on;
105				};
106
107				ldo3_reg: LDO3 {
108					regulator-name = "VUSB+MIPI_1.1V";
109					regulator-min-microvolt = <1100000>;
110					regulator-max-microvolt = <1100000>;
111					regulator-always-on;
112				};
113
114				ldo4_reg: LDO4 {
115					regulator-name = "VADC_3.3V";
116					regulator-min-microvolt = <3300000>;
117					regulator-max-microvolt = <3300000>;
118				};
119
120				ldo5_reg: LDO5 {
121					regulator-name = "VTF_2.8V";
122					regulator-min-microvolt = <2800000>;
123					regulator-max-microvolt = <2800000>;
124				};
125
126				ldo6_reg: LDO6 {
127					regulator-name = "VCC_3.3V";
128					regulator-min-microvolt = <3300000>;
129					regulator-max-microvolt = <3300000>;
130				};
131
132				ldo7_reg: LDO7 {
133					regulator-name = "VLCD_1.8V";
134					regulator-min-microvolt = <1800000>;
135					regulator-max-microvolt = <1800000>;
136					regulator-always-on;
137				};
138
139				ldo8_reg: LDO8 {
140					regulator-name = "VUSB+VDAC_3.3V";
141					regulator-min-microvolt = <3300000>;
142					regulator-max-microvolt = <3300000>;
143				};
144
145				ldo9_reg: LDO9 {
146					regulator-name = "VCC+VCAM_2.8V";
147					regulator-min-microvolt = <2800000>;
148					regulator-max-microvolt = <2800000>;
149				};
150
151				ldo10_reg: LDO10 {
152					regulator-name = "VPLL_1.1V";
153					regulator-min-microvolt = <1100000>;
154					regulator-max-microvolt = <1100000>;
155					regulator-boot-on;
156				};
157
158				ldo11_reg: LDO11 {
159					regulator-name = "CAM_IO_2.8V";
160					regulator-min-microvolt = <2800000>;
161					regulator-max-microvolt = <2800000>;
162				};
163
164				ldo12_reg: LDO12 {
165					regulator-name = "CAM_ISP_1.2V";
166					regulator-min-microvolt = <1200000>;
167					regulator-max-microvolt = <1200000>;
168				};
169
170				ldo13_reg: LDO13 {
171					regulator-name = "CAM_A_2.8V";
172					regulator-min-microvolt = <2800000>;
173					regulator-max-microvolt = <2800000>;
174				};
175
176				ldo14_reg: LDO14 {
177					regulator-name = "CAM_CIF_1.8V";
178					regulator-min-microvolt = <1800000>;
179					regulator-max-microvolt = <1800000>;
180				};
181
182				ldo15_reg: LDO15 {
183					regulator-name = "CAM_AF_3.3V";
184					regulator-min-microvolt = <3300000>;
185					regulator-max-microvolt = <3300000>;
186				};
187
188				ldo16_reg: LDO16 {
189					regulator-name = "VMIPI_1.8V";
190					regulator-min-microvolt = <1800000>;
191					regulator-max-microvolt = <1800000>;
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				};
206
207				buck2_reg: BUCK2 {
208					regulator-name = "VINT_1.2V";
209					regulator-min-microvolt = <1200000>;
210					regulator-max-microvolt = <1200000>;
211				};
212
213				buck3_reg: BUCK3 {
214					regulator-name = "VCC_1.8V";
215					regulator-min-microvolt = <1800000>;
216					regulator-max-microvolt = <1800000>;
217					regulator-always-on;
218				};
219
220				buck4_reg: BUCK4 {
221					regulator-name = "CAM_CORE_1.2V";
222					regulator-min-microvolt = <1200000>;
223					regulator-max-microvolt = <1200000>;
224					regulator-always-on;
225				};
226
227				ap32khz_reg: EN32KHz-AP {
228					regulator-name = "32KHz AP";
229					regulator-always-on;
230				};
231			};
232		};
233	};
234
235	gpio-keys {
236		compatible = "gpio-keys";
237
238		power-key {
239			gpios = <&gph2 6 1>;
240			linux,code = <KEY_POWER>;
241			label = "power";
242			debounce-interval = <1>;
243			wakeup-source;
244		};
245	};
246};
247
248&xusbxti {
249	clock-frequency = <24000000>;
250};
251
252&keypad {
253	linux,input-no-autorepeat;
254	wakeup-source;
255	samsung,keypad-num-rows = <3>;
256	samsung,keypad-num-columns = <3>;
257	pinctrl-names = "default";
258	pinctrl-0 = <&keypad_row0>, <&keypad_row1>, <&keypad_row2>,
259			<&keypad_col0>, <&keypad_col1>, <&keypad_col2>;
260	status = "okay";
261
262	key-1 {
263		keypad,row = <0>;
264		keypad,column = <1>;
265		linux,code = <KEY_CONNECT>;
266	};
267
268	key-2 {
269		keypad,row = <0>;
270		keypad,column = <2>;
271		linux,code = <KEY_BACK>;
272	};
273
274	key-3 {
275		keypad,row = <1>;
276		keypad,column = <1>;
277		linux,code = <KEY_CAMERA_FOCUS>;
278	};
279
280	key-4 {
281		keypad,row = <1>;
282		keypad,column = <2>;
283		linux,code = <KEY_VOLUMEUP>;
284	};
285
286	key-5 {
287		keypad,row = <2>;
288		keypad,column = <1>;
289		linux,code = <KEY_CAMERA>;
290	};
291
292	key-6 {
293		keypad,row = <2>;
294		keypad,column = <2>;
295		linux,code = <KEY_VOLUMEDOWN>;
296	};
297};
298
299&uart0 {
300	status = "okay";
301};
302
303&uart1 {
304	status = "okay";
305};
306
307&uart2 {
308	status = "okay";
309};
310
311&uart3 {
312	status = "okay";
313};
314
315&rtc {
316	clocks = <&clocks CLK_RTC>, <&pmic_ap_clk>;
317	clock-names = "rtc", "rtc_src";
318};
319
320&sdhci0 {
321	bus-width = <4>;
322	non-removable;
323	vmmc-supply = <&ldo5_reg>;
324	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus1 &sd0_bus4>;
325	pinctrl-names = "default";
326	status = "okay";
327};
328
329&sdhci2 {
330	bus-width = <4>;
331	cd-gpios = <&gph3 4 1>;
332	vmmc-supply = <&vtf_reg>;
333	cd-inverted;
334	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>;
335	pinctrl-names = "default";
336	status = "okay";
337};
338
339&hsotg {
340	vusb_a-supply = <&ldo3_reg>;
341	vusb_d-supply = <&ldo8_reg>;
342	dr_mode = "peripheral";
343	status = "okay";
344};
345
346&usbphy {
347	status = "okay";
348};
349
350&i2c2 {
351	samsung,i2c-sda-delay = <100>;
352	samsung,i2c-max-bus-freq = <400000>;
353	samsung,i2c-slave-addr = <0x10>;
354	status = "okay";
355
356	touchscreen@4a {
357		compatible = "atmel,maxtouch";
358		reg = <0x4a>;
359		interrupt-parent = <&gpj0>;
360		interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
361		vdd-supply = <&tsp_reg>;
362	};
363};
364
365&i2c0 {
366	samsung,i2c-sda-delay = <100>;
367	samsung,i2c-max-bus-freq = <100000>;
368	samsung,i2c-slave-addr = <0x10>;
369	status = "okay";
370
371	noon010pc30: sensor@30 {
372		compatible = "siliconfile,noon010pc30";
373		reg = <0x30>;
374		vddio-supply = <&ldo11_reg>;
375		vdda-supply = <&ldo13_reg>;
376		vdd_core-supply = <&ldo14_reg>;
377
378		clock-frequency = <16000000>;
379		clocks = <&camera 0>;
380		clock-names = "mclk";
381		nreset-gpios = <&gpb 2 GPIO_ACTIVE_HIGH>;
382		nstby-gpios = <&gpb 0 GPIO_ACTIVE_HIGH>;
383
384		port {
385			noon010pc30_ep: endpoint {
386				remote-endpoint = <&fimc0_ep>;
387				bus-width = <8>;
388				hsync-active = <0>;
389				vsync-active = <1>;
390				pclk-sample = <1>;
391			};
392		};
393	};
394};
395
396&camera {
397	pinctrl-0 = <&cam_port_a_io &cam_port_a_clk_active>;
398	pinctrl-1 = <&cam_port_a_io &cam_port_a_clk_idle>;
399	pinctrl-names = "default", "idle";
400
401	parallel-ports {
402		#address-cells = <1>;
403		#size-cells = <0>;
404
405		/* camera A input */
406		port@1 {
407			reg = <1>;
408			fimc0_ep: endpoint {
409				remote-endpoint = <&noon010pc30_ep>;
410				bus-width = <8>;
411				hsync-active = <1>;
412				vsync-active = <1>;
413				pclk-sample = <0>;
414			};
415		};
416	};
417};
418
419&fimd {
420	pinctrl-0 = <&lcd_clk &lcd_data24>;
421	pinctrl-names = "default";
422	status = "okay";
423
424	display-timings {
425		native-mode = <&timing0>;
426		timing0: timing {
427			/* 480x800@55Hz */
428			clock-frequency = <23439570>;
429			hactive = <480>;
430			hfront-porch = <16>;
431			hback-porch = <16>;
432			hsync-len = <2>;
433			vactive = <800>;
434			vback-porch = <2>;
435			vfront-porch = <28>;
436			vsync-len = <1>;
437			hsync-active = <0>;
438			vsync-active = <0>;
439			de-active = <0>;
440			pixelclk-active = <0>;
441		};
442	};
443};
444
445&onenand {
446	status = "okay";
447};
448