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