GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / arm / boot / dts / exynos4412-galaxy-s3.dtsi
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 };