1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Samsung's Exynos4412 based Galaxy S3 board device tree source
4 *
5 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
6 *		http://www.samsung.com
7 */
8
9/dts-v1/;
10#include <dt-bindings/leds/common.h>
11#include "exynos4412-midas.dtsi"
12
13/ {
14	aliases {
15		i2c9 = &i2c_ak8975;
16		i2c10 = &i2c_cm36651;
17	};
18
19	led-controller {
20		compatible = "skyworks,aat1290";
21		flen-gpios = <&gpj1 1 GPIO_ACTIVE_HIGH>;
22		enset-gpios = <&gpj1 2 GPIO_ACTIVE_HIGH>;
23
24		pinctrl-names = "default", "host", "isp";
25		pinctrl-0 = <&camera_flash_host>;
26		pinctrl-1 = <&camera_flash_host>;
27		pinctrl-2 = <&camera_flash_isp>;
28
29		led {
30			function = LED_FUNCTION_FLASH;
31			color = <LED_COLOR_ID_WHITE>;
32			led-max-microamp = <520833>;
33			flash-max-microamp = <1012500>;
34			flash-max-timeout-us = <1940000>;
35		};
36	};
37
38	lcd_vdd3_reg: voltage-regulator-10 {
39		compatible = "regulator-fixed";
40		regulator-name = "LCD_VDD_2.2V";
41		regulator-min-microvolt = <2200000>;
42		regulator-max-microvolt = <2200000>;
43		gpio = <&gpc0 1 GPIO_ACTIVE_HIGH>;
44		enable-active-high;
45	};
46
47	ps_als_reg: voltage-regulator-11 {
48		compatible = "regulator-fixed";
49		regulator-name = "LED_A_3.0V";
50		regulator-min-microvolt = <3000000>;
51		regulator-max-microvolt = <3000000>;
52		gpio = <&gpj0 5 GPIO_ACTIVE_HIGH>;
53		enable-active-high;
54	};
55
56	i2c_ak8975: i2c-gpio-0 {
57		compatible = "i2c-gpio";
58		sda-gpios = <&gpy2 4 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
59		scl-gpios = <&gpy2 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
60		i2c-gpio,delay-us = <2>;
61		#address-cells = <1>;
62		#size-cells = <0>;
63
64		magnetometer@c {
65			compatible = "asahi-kasei,ak8975";
66			reg = <0x0c>;
67			gpios = <&gpj0 7 GPIO_ACTIVE_HIGH>;
68		};
69	};
70
71	i2c_cm36651: i2c-gpio-2 {
72		compatible = "i2c-gpio";
73		sda-gpios = <&gpf0 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
74		scl-gpios = <&gpf0 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
75		i2c-gpio,delay-us = <2>;
76		#address-cells = <1>;
77		#size-cells = <0>;
78
79		light-sensor@18 {
80			compatible = "capella,cm36651";
81			reg = <0x18>;
82			interrupt-parent = <&gpx0>;
83			interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
84			vled-supply = <&ps_als_reg>;
85		};
86	};
87};
88
89&buck9_reg {
90	maxim,ena-gpios = <&gpm0 3 GPIO_ACTIVE_HIGH>;
91};
92
93&cam_af_reg {
94	gpio = <&gpm0 4 GPIO_ACTIVE_HIGH>;
95	status = "okay";
96};
97
98&cam_io_reg {
99	gpio = <&gpm0 2 GPIO_ACTIVE_HIGH>;
100	status = "okay";
101};
102
103&dsi_0 {
104	status = "okay";
105
106	panel@0 {
107		compatible = "samsung,s6e8aa0";
108		reg = <0>;
109		vdd3-supply = <&lcd_vdd3_reg>;
110		vci-supply = <&ldo25_reg>;
111		reset-gpios = <&gpf2 1 GPIO_ACTIVE_HIGH>;
112		power-on-delay = <50>;
113		reset-delay = <100>;
114		init-delay = <100>;
115		flip-horizontal;
116		flip-vertical;
117		panel-width-mm = <58>;
118		panel-height-mm = <103>;
119
120		display-timings {
121			timing-0 {
122				clock-frequency = <57153600>;
123				hactive = <720>;
124				vactive = <1280>;
125				hfront-porch = <5>;
126				hback-porch = <5>;
127				hsync-len = <5>;
128				vfront-porch = <13>;
129				vback-porch = <1>;
130				vsync-len = <2>;
131			};
132		};
133	};
134};
135
136&i2c_3 {
137	touchscreen@48 {
138		compatible = "melfas,mms114";
139		reg = <0x48>;
140		interrupt-parent = <&gpm2>;
141		interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
142		touchscreen-size-x = <720>;
143		touchscreen-size-y = <1280>;
144		avdd-supply = <&ldo23_reg>;
145		vdd-supply = <&ldo24_reg>;
146	};
147};
148
149&ldo25_reg {
150	regulator-name = "LCD_VCC_3.3V";
151	regulator-min-microvolt = <2800000>;
152	regulator-max-microvolt = <2800000>;
153};
154
155&pinctrl_0 {
156	camera_flash_host: camera-flash-host-pins {
157		samsung,pins = "gpj1-0";
158		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
159		samsung,pin-val = <0>;
160	};
161
162	camera_flash_isp: camera-flash-isp-pins {
163		samsung,pins = "gpj1-0";
164		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
165		samsung,pin-val = <1>;
166	};
167};
168
169&s5c73m3 {
170	standby-gpios = <&gpm0 1 GPIO_ACTIVE_LOW>;   /* ISP_STANDBY */
171	vdda-supply = <&ldo17_reg>;
172	status = "okay";
173};
174
175&sound {
176	samsung,audio-routing =
177		"HP", "HPOUT1L",
178		"HP", "HPOUT1R",
179
180		"SPK", "SPKOUTLN",
181		"SPK", "SPKOUTLP",
182		"SPK", "SPKOUTRN",
183		"SPK", "SPKOUTRP",
184
185		"RCV", "HPOUT2N",
186		"RCV", "HPOUT2P",
187
188		"HDMI", "LINEOUT1N",
189		"HDMI", "LINEOUT1P",
190
191		"LINE", "LINEOUT2N",
192		"LINE", "LINEOUT2P",
193
194		"IN1LP", "MICBIAS1",
195		"IN1LN", "MICBIAS1",
196		"Main Mic", "MICBIAS1",
197
198		"IN1RP", "Sub Mic",
199		"IN1RN", "Sub Mic",
200
201		"IN2LP:VXRN", "MICBIAS2",
202		"Headset Mic", "MICBIAS2",
203
204		"IN2RN", "FM In",
205		"IN2RP:VXRP", "FM In";
206};
207
208&submic_bias_reg {
209	gpio = <&gpf2 0 GPIO_ACTIVE_HIGH>;
210	enable-active-high;
211};
212
213&touchkey_reg {
214	gpio = <&gpm0 0 GPIO_ACTIVE_HIGH>;
215	status = "okay";
216};
217