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