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 {
15		i2c6 = &i2c_pmic;
16		i2c9 = &i2c_fuel;
17	};
18
19	memory@30000000 {
20		device_type = "memory";
21		reg = <0x30000000 0x05000000
22			0x40000000 0x10000000
23			0x50000000 0x08000000>;
24	};
25
26	reserved-memory {
27		#address-cells = <1>;
28		#size-cells = <1>;
29		ranges;
30
31		mfc_left: region@43000000 {
32			compatible = "shared-dma-pool";
33			no-map;
34			reg = <0x43000000 0x2000000>;
35		};
36
37		mfc_right: region@51000000 {
38			compatible = "shared-dma-pool";
39			no-map;
40			reg = <0x51000000 0x2000000>;
41		};
42	};
43
44	vibrator_pwr: regulator-fixed-0 {
45		compatible = "regulator-fixed";
46		regulator-name = "vibrator-en";
47		enable-active-high;
48		gpio = <&gpj1 1 GPIO_ACTIVE_HIGH>;
49	};
50
51	wifi_pwrseq: wifi-pwrseq {
52		compatible = "mmc-pwrseq-simple";
53		reset-gpios = <&gpg1 2 GPIO_ACTIVE_LOW>;
54		pinctrl-names = "default";
55		pinctrl-0 = <&wlan_gpio_rst>;
56		post-power-on-delay-ms = <500>;
57		power-off-delay-us = <500>;
58	};
59
60	i2c_pmic: i2c-gpio-0 {
61		compatible = "i2c-gpio";
62		sda-gpios = <&gpj4 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
63		scl-gpios = <&gpj4 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
64		i2c-gpio,delay-us = <2>;
65		#address-cells = <1>;
66		#size-cells = <0>;
67
68		pmic@66 {
69			compatible = "maxim,max8998";
70			reg = <0x66>;
71			interrupt-parent = <&gph0>;
72			interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
73
74			max8998,pmic-buck1-default-dvs-idx = <1>;
75			max8998,pmic-buck1-dvs-gpios = <&gph0 3 GPIO_ACTIVE_HIGH>,
76							<&gph0 4 GPIO_ACTIVE_HIGH>;
77			max8998,pmic-buck1-dvs-voltage = <1275000>, <1200000>,
78							<1050000>, <950000>;
79
80			max8998,pmic-buck2-default-dvs-idx = <0>;
81			max8998,pmic-buck2-dvs-gpio = <&gph0 5 GPIO_ACTIVE_HIGH>;
82			max8998,pmic-buck2-dvs-voltage = <1100000>, <1000000>;
83
84			regulators {
85				ldo2_reg: LDO2 {
86					regulator-name = "VALIVE_1.2V";
87					regulator-min-microvolt = <1200000>;
88					regulator-max-microvolt = <1200000>;
89					regulator-always-on;
90
91					regulator-state-mem {
92						regulator-on-in-suspend;
93					};
94				};
95
96				ldo3_reg: LDO3 {
97					regulator-name = "VUSB_1.1V";
98					regulator-min-microvolt = <1100000>;
99					regulator-max-microvolt = <1100000>;
100
101					regulator-state-mem {
102						regulator-off-in-suspend;
103					};
104				};
105
106				ldo4_reg: LDO4 {
107					regulator-name = "VADC_3.3V";
108					regulator-min-microvolt = <3300000>;
109					regulator-max-microvolt = <3300000>;
110					regulator-always-on;
111
112					regulator-state-mem {
113						regulator-off-in-suspend;
114					};
115				};
116
117				ldo5_reg: LDO5 {
118					regulator-name = "VTF_2.8V";
119					regulator-min-microvolt = <2800000>;
120					regulator-max-microvolt = <2800000>;
121
122					regulator-state-mem {
123						regulator-off-in-suspend;
124					};
125				};
126
127				ldo6_reg: LDO6 {
128					regulator-name = "LDO6";
129					regulator-min-microvolt = <1600000>;
130					regulator-max-microvolt = <3600000>;
131				};
132
133				ldo7_reg: LDO7 {
134					regulator-name = "VLCD_1.8V";
135					regulator-min-microvolt = <1800000>;
136					regulator-max-microvolt = <1800000>;
137					/* Till we get panel driver */
138					regulator-always-on;
139
140					regulator-state-mem {
141						regulator-off-in-suspend;
142					};
143				};
144
145				ldo8_reg: LDO8 {
146					regulator-name = "VUSB_3.3V";
147					regulator-min-microvolt = <3300000>;
148					regulator-max-microvolt = <3300000>;
149
150					regulator-state-mem {
151						regulator-off-in-suspend;
152					};
153				};
154
155				ldo9_reg: LDO9 {
156					regulator-name = "VCC_2.8V_PDA";
157					regulator-min-microvolt = <2800000>;
158					regulator-max-microvolt = <2800000>;
159					regulator-always-on;
160				};
161
162				ldo10_reg: LDO10 {
163					regulator-name = "VPLL_1.2V";
164					regulator-min-microvolt = <1200000>;
165					regulator-max-microvolt = <1200000>;
166					regulator-always-on;
167
168					regulator-state-mem {
169						regulator-on-in-suspend;
170					};
171				};
172
173				ldo11_reg: LDO11 {
174					regulator-name = "CAM_AF_3.0V";
175					regulator-min-microvolt = <3000000>;
176					regulator-max-microvolt = <3000000>;
177
178					regulator-state-mem {
179						regulator-off-in-suspend;
180					};
181				};
182
183				ldo12_reg: LDO12 {
184					regulator-name = "CAM_SENSOR_CORE_1.2V";
185					regulator-min-microvolt = <1200000>;
186					regulator-max-microvolt = <1200000>;
187
188					regulator-state-mem {
189						regulator-off-in-suspend;
190					};
191				};
192
193				ldo13_reg: LDO13 {
194					regulator-name = "VGA_VDDIO_2.8V";
195					regulator-min-microvolt = <2800000>;
196					regulator-max-microvolt = <2800000>;
197
198					regulator-state-mem {
199						regulator-off-in-suspend;
200					};
201				};
202
203				ldo14_reg: LDO14 {
204					regulator-name = "VGA_DVDD_1.8V";
205					regulator-min-microvolt = <1800000>;
206					regulator-max-microvolt = <1800000>;
207
208					regulator-state-mem {
209						regulator-off-in-suspend;
210					};
211				};
212
213				ldo15_reg: LDO15 {
214					regulator-name = "CAM_ISP_HOST_2.8V";
215					regulator-min-microvolt = <2800000>;
216					regulator-max-microvolt = <2800000>;
217
218					regulator-state-mem {
219						regulator-off-in-suspend;
220					};
221				};
222
223				ldo16_reg: LDO16 {
224					regulator-name = "VGA_AVDD_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				ldo17_reg: LDO17 {
234					regulator-name = "VCC_3.0V_LCD";
235					regulator-min-microvolt = <3000000>;
236					regulator-max-microvolt = <3000000>;
237					/* Till we get panel driver */
238					regulator-always-on;
239
240					regulator-state-mem {
241						regulator-off-in-suspend;
242					};
243				};
244
245				buck1_reg: BUCK1 {
246					regulator-name = "vddarm";
247					regulator-min-microvolt = <750000>;
248					regulator-max-microvolt = <1500000>;
249
250					regulator-state-mem {
251						regulator-off-in-suspend;
252						regulator-suspend-microvolt = <1250000>;
253					};
254				};
255
256				buck2_reg: BUCK2 {
257					regulator-name = "vddint";
258					regulator-min-microvolt = <750000>;
259					regulator-max-microvolt = <1500000>;
260
261					regulator-state-mem {
262						regulator-off-in-suspend;
263						regulator-suspend-microvolt = <1100000>;
264					};
265				};
266
267				buck3_reg: BUCK3 {
268					regulator-name = "VCC_1.8V";
269					regulator-min-microvolt = <1800000>;
270					regulator-max-microvolt = <1800000>;
271					regulator-always-on;
272				};
273
274				buck4_reg: BUCK4 {
275					regulator-name = "CAM_ISP_CORE_1.2V";
276					regulator-min-microvolt = <1200000>;
277					regulator-max-microvolt = <1200000>;
278
279					regulator-state-mem {
280						regulator-off-in-suspend;
281					};
282				};
283
284				ap32khz_reg: EN32KHz-AP {
285					regulator-name = "32KHz AP";
286					regulator-always-on;
287				};
288
289				cp32khz_reg: EN32KHz-CP {
290					regulator-name = "32KHz CP";
291				};
292
293				vichg_reg: ENVICHG {
294					regulator-name = "VICHG";
295					regulator-always-on;
296				};
297
298				safe1_sreg: ESAFEOUT1 {
299					regulator-name = "SAFEOUT1";
300				};
301
302				safe2_sreg: ESAFEOUT2 {
303					regulator-name = "SAFEOUT2";
304				};
305			};
306		};
307	};
308
309	i2c_fuel: i2c-gpio-1 {
310		compatible = "i2c-gpio";
311		sda-gpios = <&mp05 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
312		scl-gpios = <&mp05 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
313		i2c-gpio,delay-us = <2>;
314		#address-cells = <1>;
315		#size-cells = <0>;
316
317		fuelgauge@36 {
318			compatible = "maxim,max17040";
319			interrupt-parent = <&vic0>;
320			interrupts = <7>;
321			reg = <0x36>;
322		};
323	};
324
325	vibrator: pwm-vibrator {
326		compatible = "pwm-vibrator";
327		pwms = <&pwm 1 44642 0>;
328		pwm-names = "enable";
329		vcc-supply = <&vibrator_pwr>;
330		pinctrl-names = "default";
331		pinctrl-0 = <&pwm1_out>;
332	};
333
334	poweroff: syscon-poweroff {
335		compatible = "syscon-poweroff";
336		regmap = <&pmu_syscon>;
337		offset = <0x681c>; /* PS_HOLD_CONTROL */
338		value = <0x5200>;
339	};
340};
341
342&fimd {
343	pinctrl-names = "default";
344	pinctrl-0 = <&lcd_clk &lcd_data24>;
345	status = "okay";
346
347	samsung,invert-vden;
348	samsung,invert-vclk;
349
350	display-timings {
351		timing-0 {
352			/* 480x800@60Hz */
353			clock-frequency = <25628040>;
354			hactive = <480>;
355			vactive = <800>;
356			hfront-porch = <16>;
357			hback-porch = <16>;
358			hsync-len = <2>;
359			vfront-porch = <28>;
360			vback-porch = <1>;
361			vsync-len = <2>;
362		};
363	};
364};
365
366&hsotg {
367	vusb_a-supply = <&ldo8_reg>;
368	vusb_d-supply = <&ldo3_reg>;
369	dr_mode = "peripheral";
370	status = "okay";
371};
372
373&i2c2 {
374	samsung,i2c-sda-delay = <100>;
375	samsung,i2c-max-bus-freq = <400000>;
376	samsung,i2c-slave-addr = <0x10>;
377	status = "okay";
378
379	touchscreen@4a {
380		compatible = "atmel,maxtouch";
381		reg = <0x4a>;
382		interrupt-parent = <&gpj0>;
383		interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
384		pinctrl-names = "default";
385		pinctrl-0 = <&ts_irq>;
386		reset-gpios = <&gpj1 3 GPIO_ACTIVE_HIGH>;
387	};
388};
389
390&mfc {
391	memory-region = <&mfc_left>, <&mfc_right>;
392};
393
394&pinctrl0 {
395	wlan_bt_en: wlan-bt-en {
396		samsung,pins = "gpb-5";
397		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
398		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
399		samsung,pin-val = <1>;
400	};
401
402	wlan_gpio_rst: wlan-gpio-rst {
403		samsung,pins = "gpg1-2";
404		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
405		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
406	};
407
408	wifi_host_wake: wifi-host-wake {
409		samsung,pins = "gph2-4";
410		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
411		samsung,pin-pud = <S3C64XX_PIN_PULL_DOWN>;
412		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
413	};
414
415	bt_host_wake: bt-host-wake {
416		samsung,pins = "gph2-5";
417		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
418		samsung,pin-pud = <S3C64XX_PIN_PULL_DOWN>;
419		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
420	};
421
422	tf_detect: tf-detect {
423		samsung,pins = "gph3-4";
424		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
425		samsung,pin-pud = <S3C64XX_PIN_PULL_DOWN>;
426		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
427	};
428
429	wifi_wake: wifi-wake {
430		samsung,pins = "gph3-5";
431		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
432		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
433	};
434
435	ts_irq: ts-irq {
436		samsung,pins = "gpj0-5";
437		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
438		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
439		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
440	};
441};
442
443&pwm {
444	samsung,pwm-outputs = <1>;
445};
446
447&sdhci1 {
448	#address-cells = <1>;
449	#size-cells = <0>;
450
451	bus-width = <4>;
452	max-frequency = <38400000>;
453	pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus4 &wifi_wake &wifi_host_wake &wlan_bt_en>;
454	pinctrl-names = "default";
455	cap-sd-highspeed;
456	cap-mmc-highspeed;
457
458	mmc-pwrseq = <&wifi_pwrseq>;
459	non-removable;
460	status = "okay";
461
462	wlan@1 {
463		reg = <1>;
464		compatible = "brcm,bcm4329-fmac";
465		interrupt-parent = <&gph2>;
466		interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
467		interrupt-names = "host-wake";
468	};
469};
470
471&sdhci2 {
472	bus-width = <4>;
473	cd-gpios = <&gph3 4 GPIO_ACTIVE_LOW>;
474	vmmc-supply = <&ldo5_reg>;
475	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &tf_detect>;
476	pinctrl-names = "default";
477	status = "okay";
478};
479
480&uart0 {
481	status = "okay";
482
483	bluetooth {
484		compatible = "brcm,bcm43438-bt";
485		max-speed = <115200>;
486		pinctrl-names = "default";
487		pinctrl-0 = <&uart0_data &uart0_fctl &bt_host_wake>;
488		shutdown-gpios = <&gpb 3 GPIO_ACTIVE_HIGH>;
489		device-wakeup-gpios = <&gpg3 4 GPIO_ACTIVE_HIGH>;
490		host-wakeup-gpios = <&gph2 5 GPIO_ACTIVE_HIGH>;
491	};
492};
493
494&uart1 {
495	status = "okay";
496};
497
498&uart2 {
499	status = "okay";
500};
501
502&usbphy {
503	status = "okay";
504	vbus-supply = <&safe1_sreg>;
505};
506
507&xusbxti {
508	clock-frequency = <24000000>;
509};
510