Linux Audio

Check our new training course

Linux BSP upgrade and security maintenance

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