xref: /freebsd/sys/contrib/device-tree/src/arm/samsung/s5pv210-aries.dtsi (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Samsung's S5PV210 based Galaxy Aries board device tree source
4 */
5
6/dts-v1/;
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/interrupt-controller/irq.h>
9#include "s5pv210.dtsi"
10
11/ {
12	compatible = "samsung,aries", "samsung,s5pv210";
13
14	aliases: aliases {
15		i2c4 = &i2c_sound;
16		i2c5 = &i2c_accel;
17		i2c6 = &i2c_pmic;
18		i2c7 = &i2c_musb;
19		i2c9 = &i2c_fuel;
20		i2c10 = &i2c_touchkey;
21		i2c11 = &i2c_prox;
22		i2c12 = &i2c_magnetometer;
23	};
24
25	memory@30000000 {
26		device_type = "memory";
27		reg = <0x30000000 0x05000000>,
28			<0x40000000 0x10000000>,
29			<0x50000000 0x08000000>;
30	};
31
32	reserved-memory {
33		#address-cells = <1>;
34		#size-cells = <1>;
35		ranges;
36
37		mfc_left: region@43000000 {
38			compatible = "shared-dma-pool";
39			no-map;
40			reg = <0x43000000 0x2000000>;
41		};
42
43		mfc_right: region@51000000 {
44			compatible = "shared-dma-pool";
45			no-map;
46			reg = <0x51000000 0x2000000>;
47		};
48	};
49
50	pmic_ap_clk: clock-0 {
51		/* Workaround for missing clock on PMIC */
52		compatible = "fixed-clock";
53		#clock-cells = <0>;
54		clock-frequency = <32768>;
55	};
56
57	bt_codec: bt-sco {
58		compatible = "linux,bt-sco";
59		#sound-dai-cells = <0>;
60	};
61
62	vibrator_pwr: regulator-fixed-0 {
63		compatible = "regulator-fixed";
64		regulator-name = "vibrator-en";
65		enable-active-high;
66		gpio = <&gpj1 1 GPIO_ACTIVE_HIGH>;
67
68		pinctrl-names = "default";
69		pinctrl-0 = <&vibrator_ena>;
70	};
71
72	touchkey_vdd: regulator-fixed-1 {
73		compatible = "regulator-fixed";
74		regulator-name = "VTOUCH_3.3V";
75		regulator-min-microvolt = <3300000>;
76		regulator-max-microvolt = <3300000>;
77		enable-active-high;
78		gpio = <&gpj3 2 GPIO_ACTIVE_HIGH>;
79
80		pinctrl-names = "default";
81		pinctrl-0 = <&touchkey_vdd_ena>;
82	};
83
84	gp2a_vled: regulator-fixed-2 {
85		compatible = "regulator-fixed";
86		regulator-name = "VLED";
87		enable-active-high;
88		gpio = <&gpj1 4 GPIO_ACTIVE_HIGH>;
89		regulator-min-microvolt = <2800000>;
90		regulator-max-microvolt = <2800000>;
91
92		pinctrl-names = "default";
93		pinctrl-0 = <&gp2a_power>;
94	};
95
96	wifi_pwrseq: wifi-pwrseq {
97		compatible = "mmc-pwrseq-simple";
98		reset-gpios = <&gpg1 2 GPIO_ACTIVE_LOW>;
99		pinctrl-names = "default";
100		pinctrl-0 = <&wlan_gpio_rst>;
101		post-power-on-delay-ms = <500>;
102		power-off-delay-us = <500>;
103	};
104
105	i2c_sound: i2c-gpio-0 {
106		compatible = "i2c-gpio";
107		sda-gpios = <&mp05 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
108		scl-gpios = <&mp05 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
109		i2c-gpio,delay-us = <2>;
110		#address-cells = <1>;
111		#size-cells = <0>;
112
113		pinctrl-names = "default";
114		pinctrl-0 = <&sound_i2c_pins>;
115
116		wm8994: audio-codec@1a {
117			compatible = "wlf,wm8994";
118			reg = <0x1a>;
119
120			#sound-dai-cells = <0>;
121
122			gpio-controller;
123			#gpio-cells = <2>;
124
125			clocks = <&clocks MOUT_CLKOUT>;
126			clock-names = "MCLK1";
127
128			AVDD2-supply = <&buck3_reg>;
129			DBVDD-supply = <&buck3_reg>;
130			CPVDD-supply = <&buck3_reg>;
131			SPKVDD1-supply = <&buck3_reg>;
132			SPKVDD2-supply = <&buck3_reg>;
133
134			wlf,gpio-cfg = <0xa101 0x8100 0x0100 0x0100 0x8100
135					0xa101 0x0100 0x8100 0x0100 0x0100
136					0x0100>;
137
138			wlf,ldo1ena-gpios = <&gpf3 4 GPIO_ACTIVE_HIGH>;
139			wlf,ldo2ena-gpios = <&gpf3 4 GPIO_ACTIVE_HIGH>;
140
141			wlf,lineout1-se;
142			wlf,lineout2-se;
143
144			assigned-clocks = <&clocks MOUT_CLKOUT>;
145			assigned-clock-rates = <0>;
146			assigned-clock-parents = <&xusbxti>;
147
148			pinctrl-names = "default";
149			pinctrl-0 = <&codec_ldo>;
150		};
151	};
152
153	i2c_accel: i2c-gpio-1 {
154		compatible = "i2c-gpio";
155		sda-gpios = <&gpj3 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
156		scl-gpios = <&gpj3 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
157		i2c-gpio,delay-us = <2>;
158		#address-cells = <1>;
159		#size-cells = <0>;
160
161		pinctrl-names = "default";
162		pinctrl-0 = <&accel_i2c_pins>;
163
164		accelerometer@38 {
165			compatible = "bosch,bma023";
166			reg = <0x38>;
167
168			vdd-supply = <&ldo9_reg>;
169			vddio-supply = <&ldo9_reg>;
170		};
171	};
172
173	i2c_pmic: i2c-gpio-2 {
174		compatible = "i2c-gpio";
175		sda-gpios = <&gpj4 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
176		scl-gpios = <&gpj4 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
177		i2c-gpio,delay-us = <2>;
178		#address-cells = <1>;
179		#size-cells = <0>;
180
181		pinctrl-names = "default";
182		pinctrl-0 = <&pmic_i2c_pins>;
183
184		pmic@66 {
185			compatible = "maxim,max8998";
186			reg = <0x66>;
187			interrupt-parent = <&gph0>;
188			interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
189
190			max8998,pmic-buck1-default-dvs-idx = <1>;
191			max8998,pmic-buck1-dvs-gpios = <&gph0 3 GPIO_ACTIVE_HIGH>,
192							<&gph0 4 GPIO_ACTIVE_HIGH>;
193			max8998,pmic-buck1-dvs-voltage = <1275000>, <1200000>,
194							<1050000>, <950000>;
195
196			max8998,pmic-buck2-default-dvs-idx = <0>;
197			max8998,pmic-buck2-dvs-gpio = <&gph0 5 GPIO_ACTIVE_HIGH>;
198			max8998,pmic-buck2-dvs-voltage = <1100000>, <1000000>;
199
200			pinctrl-names = "default";
201			pinctrl-0 = <&pmic_dvs_pins &pmic_irq>;
202
203			regulators {
204				ldo2_reg: LDO2 {
205					regulator-name = "VALIVE_1.2V";
206					regulator-min-microvolt = <1200000>;
207					regulator-max-microvolt = <1200000>;
208					regulator-always-on;
209
210					regulator-state-mem {
211						regulator-on-in-suspend;
212					};
213				};
214
215				ldo3_reg: LDO3 {
216					regulator-name = "VUSB_1.1V";
217					regulator-min-microvolt = <1100000>;
218					regulator-max-microvolt = <1100000>;
219
220					regulator-state-mem {
221						regulator-off-in-suspend;
222					};
223				};
224
225				ldo4_reg: LDO4 {
226					regulator-name = "VADC_3.3V";
227					regulator-min-microvolt = <3300000>;
228					regulator-max-microvolt = <3300000>;
229
230					regulator-state-mem {
231						regulator-off-in-suspend;
232					};
233				};
234
235				ldo5_reg: LDO5 {
236					regulator-name = "VTF_2.8V";
237					regulator-min-microvolt = <2800000>;
238					regulator-max-microvolt = <2800000>;
239
240					regulator-state-mem {
241						regulator-off-in-suspend;
242					};
243				};
244
245				ldo6_reg: LDO6 {
246					regulator-name = "LDO6";
247					regulator-min-microvolt = <1600000>;
248					regulator-max-microvolt = <3600000>;
249				};
250
251				ldo7_reg: LDO7 {
252					regulator-name = "VLCD_1.8V";
253					regulator-min-microvolt = <1800000>;
254					regulator-max-microvolt = <1800000>;
255
256					regulator-state-mem {
257						regulator-off-in-suspend;
258					};
259				};
260
261				ldo8_reg: LDO8 {
262					regulator-name = "VUSB_3.3V";
263					regulator-min-microvolt = <3300000>;
264					regulator-max-microvolt = <3300000>;
265
266					regulator-state-mem {
267						regulator-off-in-suspend;
268					};
269				};
270
271				ldo9_reg: LDO9 {
272					regulator-name = "VCC_2.8V_PDA";
273					regulator-min-microvolt = <2800000>;
274					regulator-max-microvolt = <2800000>;
275					regulator-always-on;
276				};
277
278				ldo10_reg: LDO10 {
279					regulator-name = "VPLL_1.2V";
280					regulator-min-microvolt = <1200000>;
281					regulator-max-microvolt = <1200000>;
282					regulator-always-on;
283
284					regulator-state-mem {
285						regulator-on-in-suspend;
286					};
287				};
288
289				ldo11_reg: LDO11 {
290					regulator-name = "CAM_AF_3.0V";
291					regulator-min-microvolt = <3000000>;
292					regulator-max-microvolt = <3000000>;
293
294					regulator-state-mem {
295						regulator-off-in-suspend;
296					};
297				};
298
299				ldo12_reg: LDO12 {
300					regulator-name = "CAM_SENSOR_CORE_1.2V";
301					regulator-min-microvolt = <1200000>;
302					regulator-max-microvolt = <1200000>;
303
304					regulator-state-mem {
305						regulator-off-in-suspend;
306					};
307				};
308
309				ldo13_reg: LDO13 {
310					regulator-name = "VGA_VDDIO_2.8V";
311					regulator-min-microvolt = <2800000>;
312					regulator-max-microvolt = <2800000>;
313
314					regulator-state-mem {
315						regulator-off-in-suspend;
316					};
317				};
318
319				ldo14_reg: LDO14 {
320					regulator-name = "VGA_DVDD_1.8V";
321					regulator-min-microvolt = <1800000>;
322					regulator-max-microvolt = <1800000>;
323
324					regulator-state-mem {
325						regulator-off-in-suspend;
326					};
327				};
328
329				ldo15_reg: LDO15 {
330					regulator-name = "CAM_ISP_HOST_2.8V";
331					regulator-min-microvolt = <2800000>;
332					regulator-max-microvolt = <2800000>;
333
334					regulator-state-mem {
335						regulator-off-in-suspend;
336					};
337				};
338
339				ldo16_reg: LDO16 {
340					regulator-name = "VGA_AVDD_2.8V";
341					regulator-min-microvolt = <2800000>;
342					regulator-max-microvolt = <2800000>;
343
344					regulator-state-mem {
345						regulator-off-in-suspend;
346					};
347				};
348
349				ldo17_reg: LDO17 {
350					regulator-name = "VCC_3.0V_LCD";
351					regulator-min-microvolt = <3000000>;
352					regulator-max-microvolt = <3000000>;
353
354					regulator-state-mem {
355						regulator-off-in-suspend;
356					};
357				};
358
359				buck1_reg: BUCK1 {
360					regulator-name = "vddarm";
361					regulator-min-microvolt = <750000>;
362					regulator-max-microvolt = <1500000>;
363
364					regulator-state-mem {
365						regulator-off-in-suspend;
366						regulator-suspend-microvolt = <1250000>;
367					};
368				};
369
370				buck2_reg: BUCK2 {
371					regulator-name = "vddint";
372					regulator-min-microvolt = <750000>;
373					regulator-max-microvolt = <1500000>;
374
375					regulator-state-mem {
376						regulator-off-in-suspend;
377						regulator-suspend-microvolt = <1100000>;
378					};
379				};
380
381				buck3_reg: BUCK3 {
382					regulator-name = "VCC_1.8V";
383					regulator-min-microvolt = <1800000>;
384					regulator-max-microvolt = <1800000>;
385					regulator-always-on;
386				};
387
388				buck4_reg: BUCK4 {
389					regulator-name = "CAM_ISP_CORE_1.2V";
390					regulator-min-microvolt = <1200000>;
391					regulator-max-microvolt = <1200000>;
392
393					regulator-state-mem {
394						regulator-off-in-suspend;
395					};
396				};
397
398				ap32khz_reg: EN32KHz-AP {
399					regulator-name = "32KHz AP";
400					regulator-always-on;
401				};
402
403				cp32khz_reg: EN32KHz-CP {
404					regulator-name = "32KHz CP";
405				};
406
407				vichg_reg: ENVICHG {
408					regulator-name = "VICHG";
409					regulator-always-on;
410				};
411
412				safe1_sreg: ESAFEOUT1 {
413					regulator-name = "SAFEOUT1";
414				};
415
416				safe2_sreg: ESAFEOUT2 {
417					regulator-name = "SAFEOUT2";
418				};
419			};
420		};
421	};
422
423	i2c_musb: i2c-gpio-3 {
424		compatible = "i2c-gpio";
425		sda-gpios = <&gpj3 4 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
426		scl-gpios = <&gpj3 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
427		i2c-gpio,delay-us = <2>;
428		#address-cells = <1>;
429		#size-cells = <0>;
430
431		pinctrl-names = "default";
432		pinctrl-0 = <&musb_i2c_pins>;
433
434		fsa9480: musb@25 {
435			compatible = "fcs,fsa9480";
436			reg = <0x25>;
437			interrupt-parent = <&gph2>;
438			interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
439
440			pinctrl-names = "default";
441			pinctrl-0 = <&musb_irq>;
442		};
443	};
444
445	i2c_fuel: i2c-gpio-4 {
446		compatible = "i2c-gpio";
447		sda-gpios = <&mp05 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
448		scl-gpios = <&mp05 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
449		i2c-gpio,delay-us = <2>;
450		#address-cells = <1>;
451		#size-cells = <0>;
452
453		pinctrl-names = "default";
454		pinctrl-0 = <&fg_i2c_pins>;
455
456		fg: fuelgauge@36 {
457			compatible = "maxim,max17040";
458			reg = <0x36>;
459		};
460	};
461
462	i2c_touchkey: i2c-gpio-5 {
463		compatible = "i2c-gpio";
464		sda-gpios = <&gpj3 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
465		scl-gpios = <&gpj3 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
466		i2c-gpio,delay-us = <2>;
467		#address-cells = <1>;
468		#size-cells = <0>;
469
470		pinctrl-names = "default";
471		pinctrl-0 = <&touchkey_i2c_pins>;
472
473		touchkey@20 {
474			compatible = "cypress,aries-touchkey";
475			reg = <0x20>;
476			vdd-supply = <&touchkey_vdd>;
477			vcc-supply = <&buck3_reg>;
478			linux,keycodes = <KEY_MENU KEY_BACK
479					  KEY_HOMEPAGE KEY_SEARCH>;
480			interrupt-parent = <&gpj4>;
481			interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
482
483			pinctrl-names = "default";
484			pinctrl-0 = <&touchkey_irq>;
485		};
486	};
487
488	i2c_prox: i2c-gpio-6 {
489		compatible = "i2c-gpio";
490		sda-gpios = <&gpg2 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
491		scl-gpios = <&gpg0 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
492		i2c-gpio,delay-us = <2>;
493		#address-cells = <1>;
494		#size-cells = <0>;
495
496		pinctrl-names = "default";
497		pinctrl-0 = <&prox_i2c_pins>;
498
499		light-sensor@44 {
500			compatible = "sharp,gp2ap002a00f";
501			reg = <0x44>;
502			interrupt-parent = <&gph0>;
503			interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
504			vdd-supply = <&gp2a_vled>;
505			vio-supply = <&gp2a_vled>;
506			io-channels = <&gp2a_shunt>;
507			io-channel-names = "alsout";
508			sharp,proximity-far-hysteresis = /bits/ 8 <0x40>;
509			sharp,proximity-close-hysteresis = /bits/ 8 <0x20>;
510
511			pinctrl-names = "default";
512			pinctrl-0 = <&gp2a_irq>;
513		};
514	};
515
516	i2c_magnetometer: i2c-gpio-7 {
517		compatible = "i2c-gpio";
518		sda-gpios = <&gpj0 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
519		scl-gpios = <&gpj0 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
520		i2c-gpio,delay-us = <2>;
521		#address-cells = <1>;
522		#size-cells = <0>;
523
524		pinctrl-names = "default";
525		pinctrl-0 = <&magnetometer_i2c_pins>;
526
527		status = "disabled";
528
529		/* Yamaha yas529 magnetometer, no mainline binding */
530	};
531
532	vibrator: pwm-vibrator {
533		compatible = "pwm-vibrator";
534		pwms = <&pwm 1 44642 0>;
535		pwm-names = "enable";
536		vcc-supply = <&vibrator_pwr>;
537		pinctrl-names = "default";
538		pinctrl-0 = <&pwm1_out>;
539	};
540
541	poweroff: syscon-poweroff {
542		compatible = "syscon-poweroff";
543		regmap = <&pmu_syscon>;
544		offset = <0x681c>; /* PS_HOLD_CONTROL */
545		value = <0x5200>;
546	};
547
548	spi_lcd: spi-2 {
549		compatible = "spi-gpio";
550		#address-cells = <1>;
551		#size-cells = <0>;
552
553		sck-gpios = <&mp04 1 GPIO_ACTIVE_HIGH>;
554		mosi-gpios = <&mp04 3 GPIO_ACTIVE_HIGH>;
555		cs-gpios = <&mp01 1 GPIO_ACTIVE_HIGH>;
556		num-chipselects = <1>;
557
558		pinctrl-names = "default";
559		pinctrl-0 = <&lcd_spi_pins>;
560
561		panel@0 {
562			compatible = "samsung,s6e63m0";
563			reg = <0>;
564			reset-gpios = <&mp05 5 GPIO_ACTIVE_LOW>;
565			vdd3-supply = <&ldo7_reg>;
566			vci-supply = <&ldo17_reg>;
567			spi-max-frequency = <1200000>;
568
569			pinctrl-names = "default";
570			pinctrl-0 = <&panel_rst>;
571
572			port {
573				lcd_ep: endpoint {
574					remote-endpoint = <&fimd_ep>;
575				};
576			};
577		};
578	};
579};
580
581&adc {
582	vdd-supply = <&ldo4_reg>;
583
584	status = "okay";
585
586	gp2a_shunt: current-sense-shunt {
587		compatible = "current-sense-shunt";
588		io-channels = <&adc 9>;
589		shunt-resistor-micro-ohms = <47000000>; /* 47 ohms */
590		#io-channel-cells = <0>;
591	};
592};
593
594&fimd {
595	pinctrl-names = "default";
596	pinctrl-0 = <&lcd_clk &lcd_data24>;
597	status = "okay";
598
599	samsung,invert-vden;
600	samsung,invert-vclk;
601
602	#address-cells = <1>;
603	#size-cells = <0>;
604
605	port@3 {
606		reg = <3>;
607		fimd_ep: endpoint {
608			remote-endpoint = <&lcd_ep>;
609		};
610	};
611};
612
613&hsotg {
614	vusb_a-supply = <&ldo8_reg>;
615	vusb_d-supply = <&ldo3_reg>;
616	dr_mode = "peripheral";
617	status = "okay";
618};
619
620&i2c2 {
621	samsung,i2c-sda-delay = <100>;
622	samsung,i2c-max-bus-freq = <400000>;
623	samsung,i2c-slave-addr = <0x10>;
624	status = "okay";
625
626	touchscreen@4a {
627		compatible = "atmel,maxtouch";
628		reg = <0x4a>;
629		interrupt-parent = <&gpj0>;
630		interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
631		pinctrl-names = "default";
632		pinctrl-0 = <&ts_irq>;
633		reset-gpios = <&gpj1 3 GPIO_ACTIVE_LOW>;
634	};
635};
636
637&i2s0 {
638	dmas = <&pdma0 10>, <&pdma0 9>, <&pdma0 11>;
639	status = "okay";
640};
641
642&mfc {
643	memory-region = <&mfc_left>, <&mfc_right>;
644};
645
646&pinctrl0 {
647	bt_reset: bt-reset-pins {
648		samsung,pins = "gpb-3";
649		samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>;
650		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
651		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
652	};
653
654	wlan_bt_en: wlan-bt-en-pins {
655		samsung,pins = "gpb-5";
656		samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>;
657		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
658		samsung,pin-val = <1>;
659	};
660
661	codec_ldo: codec-ldo-pins {
662		samsung,pins = "gpf3-4";
663		samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>;
664		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
665	};
666
667	prox_i2c_pins: gp2a-i2c-pins {
668		samsung,pins = "gpg0-2", "gpg2-2";
669		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
670		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
671	};
672
673	wlan_gpio_rst: wlan-gpio-rst-pins {
674		samsung,pins = "gpg1-2";
675		samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>;
676		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
677	};
678
679	bt_wake: bt-wake-pins {
680		samsung,pins = "gpg3-4";
681		samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>;
682		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
683	};
684
685	gp2a_irq: gp2a-irq-pins {
686		samsung,pins = "gph0-2";
687		samsung,pin-function = <S5PV210_PIN_FUNC_F>;
688		samsung,pin-pud = <S5PV210_PIN_PULL_DOWN>;
689		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
690	};
691
692	pmic_dvs_pins: pmic-dvs-pins {
693		samsung,pins = "gph0-3", "gph0-4", "gph0-5";
694		samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>;
695		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
696		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
697		samsung,pin-val = <0>;
698	};
699
700	pmic_irq: pmic-irq-pins {
701		samsung,pins = "gph0-7";
702		samsung,pin-function = <S5PV210_PIN_FUNC_F>;
703		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
704		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
705	};
706
707	wifi_host_wake: wifi-host-wake-pins {
708		samsung,pins = "gph2-4";
709		samsung,pin-function = <S5PV210_PIN_FUNC_INPUT>;
710		samsung,pin-pud = <S5PV210_PIN_PULL_DOWN>;
711		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
712	};
713
714	bt_host_wake: bt-host-wake-pins {
715		samsung,pins = "gph2-5";
716		samsung,pin-function = <S5PV210_PIN_FUNC_INPUT>;
717		samsung,pin-pud = <S5PV210_PIN_PULL_DOWN>;
718		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
719	};
720
721	musb_irq: musq-irq-pins {
722		samsung,pins = "gph2-7";
723		samsung,pin-function = <S5PV210_PIN_FUNC_INPUT>;
724		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
725		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
726	};
727
728	tf_detect: tf-detect-pins {
729		samsung,pins = "gph3-4";
730		samsung,pin-function = <S5PV210_PIN_FUNC_INPUT>;
731		samsung,pin-pud = <S5PV210_PIN_PULL_DOWN>;
732		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
733	};
734
735	wifi_wake: wifi-wake-pins {
736		samsung,pins = "gph3-5";
737		samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>;
738		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
739	};
740
741	magnetometer_i2c_pins: yas529-i2c-pins {
742		samsung,pins = "gpj0-0", "gpj0-1";
743		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
744		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
745	};
746
747	ts_irq: ts-irq-pins {
748		samsung,pins = "gpj0-5";
749		samsung,pin-function = <S5PV210_PIN_FUNC_INPUT>;
750		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
751		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
752	};
753
754	vibrator_ena: vibrator-ena-pins {
755		samsung,pins = "gpj1-1";
756		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
757		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
758	};
759
760	gp2a_power: gp2a-power-pins {
761		samsung,pins = "gpj1-4";
762		samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>;
763		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
764		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
765	};
766
767	touchkey_i2c_pins: touchkey-i2c-pins {
768		samsung,pins = "gpj3-0", "gpj3-1";
769		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
770		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
771	};
772
773	touchkey_vdd_ena: touchkey-vdd-ena-pins {
774		samsung,pins = "gpj3-2";
775		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
776		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
777	};
778
779	musb_i2c_pins: musb-i2c-pins {
780		samsung,pins = "gpj3-4", "gpj3-5";
781		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
782		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
783	};
784
785	accel_i2c_pins: accel-i2c-pins {
786		samsung,pins = "gpj3-6", "gpj3-7";
787		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
788		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
789	};
790
791	pmic_i2c_pins: pmic-i2c-pins {
792		samsung,pins = "gpj4-0", "gpj4-3";
793		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
794		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
795	};
796
797	touchkey_irq: touchkey-irq-pins {
798		samsung,pins = "gpj4-1";
799		samsung,pin-function = <S5PV210_PIN_FUNC_INPUT>;
800		samsung,pin-pud = <S5PV210_PIN_PULL_UP>;
801		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
802	};
803
804	lcd_spi_pins: spi-lcd-pins {
805		samsung,pins = "mp01-1", "mp04-1", "mp04-3";
806		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
807		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
808	};
809
810	fg_i2c_pins: fg-i2c-pins {
811		samsung,pins = "mp05-0", "mp05-1";
812		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
813		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
814	};
815
816	sound_i2c_pins: sound-i2c-pins {
817		samsung,pins = "mp05-2", "mp05-3";
818		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
819		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
820	};
821
822	panel_rst: panel-rst-pins {
823		samsung,pins = "mp05-5";
824		samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
825		samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
826	};
827};
828
829&pwm {
830	samsung,pwm-outputs = <1>;
831};
832
833&rtc {
834	clocks = <&clocks CLK_RTC>, <&pmic_ap_clk>;
835	clock-names = "rtc", "rtc_src";
836};
837
838&sdhci1 {
839	#address-cells = <1>;
840	#size-cells = <0>;
841
842	bus-width = <4>;
843	max-frequency = <38400000>;
844	pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus4 &wifi_wake &wifi_host_wake &wlan_bt_en>;
845	pinctrl-names = "default";
846	cap-sd-highspeed;
847	cap-mmc-highspeed;
848	keep-power-in-suspend;
849
850	mmc-pwrseq = <&wifi_pwrseq>;
851	non-removable;
852	status = "okay";
853
854	assigned-clocks = <&clocks MOUT_MMC1>, <&clocks SCLK_MMC1>;
855	assigned-clock-rates = <0>, <50000000>;
856	assigned-clock-parents = <&clocks MOUT_MPLL>;
857
858	wlan@1 {
859		reg = <1>;
860		compatible = "brcm,bcm4329-fmac";
861		interrupt-parent = <&gph2>;
862		interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
863		interrupt-names = "host-wake";
864	};
865};
866
867&sdhci2 {
868	bus-width = <4>;
869	cd-gpios = <&gph3 4 GPIO_ACTIVE_LOW>;
870	vmmc-supply = <&ldo5_reg>;
871	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &tf_detect>;
872	pinctrl-names = "default";
873	status = "okay";
874
875	assigned-clocks = <&clocks MOUT_MMC2>, <&clocks SCLK_MMC2>;
876	assigned-clock-rates = <0>, <50000000>;
877	assigned-clock-parents = <&clocks MOUT_MPLL>;
878};
879
880&uart0 {
881	assigned-clocks = <&clocks MOUT_UART0>, <&clocks SCLK_UART0>;
882	assigned-clock-rates = <0>, <111166667>;
883	assigned-clock-parents = <&clocks MOUT_MPLL>;
884
885	status = "okay";
886
887	bluetooth {
888		compatible = "brcm,bcm4329-bt";
889		max-speed = <3000000>;
890		pinctrl-names = "default";
891		pinctrl-0 = <&uart0_data &uart0_fctl &bt_host_wake
892			     &bt_reset &bt_wake>;
893		shutdown-gpios = <&gpb 3 GPIO_ACTIVE_HIGH>;
894		device-wakeup-gpios = <&gpg3 4 GPIO_ACTIVE_HIGH>;
895		interrupt-parent = <&gph2>;
896		interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
897		interrupt-names = "host-wakeup";
898	};
899};
900
901&uart1 {
902	status = "okay";
903};
904
905&uart2 {
906	status = "okay";
907};
908
909&usbphy {
910	status = "okay";
911	vbus-supply = <&safe1_sreg>;
912};
913
914&xusbxti {
915	clock-frequency = <24000000>;
916};
917