]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - src/arm64/qcom/msm8916-wingtech-wt88047.dts
Import device-tree files from Linux 6.2
[FreeBSD/FreeBSD.git] / src / arm64 / qcom / msm8916-wingtech-wt88047.dts
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * Copyright (C) 2020 Stephan Gerhold
4  */
5
6 /dts-v1/;
7
8 #include "msm8916-pm8916.dtsi"
9 #include <dt-bindings/gpio/gpio.h>
10 #include <dt-bindings/input/input.h>
11 #include <dt-bindings/leds/common.h>
12
13 / {
14         model = "Xiaomi Redmi 2 (Wingtech WT88047)";
15         compatible = "wingtech,wt88047", "qcom,msm8916";
16         chassis-type = "handset";
17
18         aliases {
19                 serial0 = &blsp1_uart2;
20         };
21
22         chosen {
23                 stdout-path = "serial0";
24         };
25
26         flash-led-controller {
27                 compatible = "ocs,ocp8110";
28                 enable-gpios = <&msmgpio 31 GPIO_ACTIVE_HIGH>;
29                 flash-gpios = <&msmgpio 32 GPIO_ACTIVE_HIGH>;
30
31                 pinctrl-names = "default";
32                 pinctrl-0 = <&camera_flash_default>;
33
34                 flash_led: led {
35                         function = LED_FUNCTION_FLASH;
36                         color = <LED_COLOR_ID_WHITE>;
37                 };
38         };
39
40         gpio-keys {
41                 compatible = "gpio-keys";
42
43                 pinctrl-names = "default";
44                 pinctrl-0 = <&gpio_keys_default>;
45
46                 label = "GPIO Buttons";
47
48                 button-volume-up {
49                         label = "Volume Up";
50                         gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
51                         linux,code = <KEY_VOLUMEUP>;
52                 };
53         };
54
55         usb_id: usb-id {
56                 compatible = "linux,extcon-usb-gpio";
57                 id-gpio = <&msmgpio 110 GPIO_ACTIVE_HIGH>;
58                 pinctrl-names = "default";
59                 pinctrl-0 = <&usb_id_default>;
60         };
61 };
62
63 &blsp_i2c2 {
64         status = "okay";
65
66         imu@68 {
67                 compatible = "invensense,mpu6880";
68                 reg = <0x68>;
69
70                 interrupt-parent = <&msmgpio>;
71                 interrupts = <115 IRQ_TYPE_EDGE_RISING>;
72
73                 vdd-supply = <&pm8916_l17>;
74                 vddio-supply = <&pm8916_l6>;
75
76                 pinctrl-names = "default";
77                 pinctrl-0 = <&imu_default>;
78
79                 mount-matrix = "1",  "0", "0",
80                                "0", "-1", "0",
81                                "0",  "0", "1";
82         };
83 };
84
85 &blsp_i2c5 {
86         status = "okay";
87
88         touchscreen@38 {
89                 /* Likely some other model but works just fine with this one */
90                 compatible = "edt,edt-ft5506";
91                 reg = <0x38>;
92
93                 interrupt-parent = <&msmgpio>;
94                 interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
95
96                 reset-gpios = <&msmgpio 12 GPIO_ACTIVE_LOW>;
97
98                 vcc-supply = <&pm8916_l17>;
99                 iovcc-supply = <&pm8916_l6>;
100
101                 touchscreen-size-x = <720>;
102                 touchscreen-size-y = <1280>;
103
104                 pinctrl-names = "default";
105                 pinctrl-0 = <&touchscreen_default>;
106         };
107 };
108
109 &blsp_i2c6 {
110         status = "okay";
111
112         led-controller@45 {
113                 compatible = "awinic,aw2013";
114                 reg = <0x45>;
115                 #address-cells = <1>;
116                 #size-cells = <0>;
117
118                 vcc-supply = <&pm8916_l16>;
119
120                 led@0 {
121                         reg = <0>;
122                         led-max-microamp = <15000>;
123                         function = LED_FUNCTION_INDICATOR;
124                         color = <LED_COLOR_ID_RED>;
125                 };
126
127                 led@1 {
128                         reg = <1>;
129                         led-max-microamp = <15000>;
130                         function = LED_FUNCTION_INDICATOR;
131                         color = <LED_COLOR_ID_GREEN>;
132                 };
133
134                 led@2 {
135                         reg = <2>;
136                         led-max-microamp = <15000>;
137                         function = LED_FUNCTION_INDICATOR;
138                         color = <LED_COLOR_ID_BLUE>;
139                 };
140         };
141 };
142
143 &blsp1_uart2 {
144         status = "okay";
145 };
146
147 &pm8916_resin {
148         status = "okay";
149         linux,code = <KEY_VOLUMEDOWN>;
150 };
151
152 &pm8916_vib {
153         status = "okay";
154 };
155
156 &pronto {
157         status = "okay";
158 };
159
160 &sdhc_1 {
161         status = "okay";
162
163         pinctrl-names = "default", "sleep";
164         pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
165         pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
166 };
167
168 &sdhc_2 {
169         status = "okay";
170
171         pinctrl-names = "default", "sleep";
172         pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>;
173         pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;
174
175         non-removable;
176 };
177
178 &usb {
179         status = "okay";
180         extcon = <&usb_id>, <&usb_id>;
181 };
182
183 &usb_hs_phy {
184         extcon = <&usb_id>;
185 };
186
187 &smd_rpm_regulators {
188         vdd_l1_l2_l3-supply = <&pm8916_s3>;
189         vdd_l4_l5_l6-supply = <&pm8916_s4>;
190         vdd_l7-supply = <&pm8916_s4>;
191
192         s3 {
193                 regulator-min-microvolt = <1200000>;
194                 regulator-max-microvolt = <1300000>;
195         };
196
197         s4 {
198                 regulator-min-microvolt = <1800000>;
199                 regulator-max-microvolt = <2100000>;
200         };
201
202         l1 {
203                 regulator-min-microvolt = <1225000>;
204                 regulator-max-microvolt = <1225000>;
205         };
206
207         l2 {
208                 regulator-min-microvolt = <1200000>;
209                 regulator-max-microvolt = <1200000>;
210         };
211
212         l4 {
213                 regulator-min-microvolt = <2050000>;
214                 regulator-max-microvolt = <2050000>;
215         };
216
217         l5 {
218                 regulator-min-microvolt = <1800000>;
219                 regulator-max-microvolt = <1800000>;
220         };
221
222         l6 {
223                 regulator-min-microvolt = <1800000>;
224                 regulator-max-microvolt = <1800000>;
225         };
226
227         l7 {
228                 regulator-min-microvolt = <1800000>;
229                 regulator-max-microvolt = <1800000>;
230         };
231
232         l8 {
233                 regulator-min-microvolt = <2850000>;
234                 regulator-max-microvolt = <2900000>;
235         };
236
237         l9 {
238                 regulator-min-microvolt = <3300000>;
239                 regulator-max-microvolt = <3300000>;
240         };
241
242         l10 {
243                 regulator-min-microvolt = <2700000>;
244                 regulator-max-microvolt = <2800000>;
245         };
246
247         l11 {
248                 regulator-min-microvolt = <2950000>;
249                 regulator-max-microvolt = <2950000>;
250                 regulator-allow-set-load;
251                 regulator-system-load = <200000>;
252         };
253
254         l12 {
255                 regulator-min-microvolt = <1800000>;
256                 regulator-max-microvolt = <2950000>;
257         };
258
259         l13 {
260                 regulator-min-microvolt = <3075000>;
261                 regulator-max-microvolt = <3075000>;
262         };
263
264         l14 {
265                 regulator-min-microvolt = <1800000>;
266                 regulator-max-microvolt = <3300000>;
267         };
268
269         l15 {
270                 regulator-min-microvolt = <1800000>;
271                 regulator-max-microvolt = <3300000>;
272         };
273
274         l16 {
275                 regulator-min-microvolt = <2800000>;
276                 regulator-max-microvolt = <3300000>;
277         };
278
279         l17 {
280                 regulator-min-microvolt = <2850000>;
281                 regulator-max-microvolt = <2850000>;
282         };
283
284         l18 {
285                 regulator-min-microvolt = <2700000>;
286                 regulator-max-microvolt = <2700000>;
287         };
288 };
289
290 &msmgpio {
291         camera_flash_default: camera-flash-default-state {
292                 pins = "gpio31", "gpio32";
293                 function = "gpio";
294
295                 drive-strength = <2>;
296                 bias-disable;
297         };
298
299         gpio_keys_default: gpio-keys-default-state {
300                 pins = "gpio107";
301                 function = "gpio";
302
303                 drive-strength = <2>;
304                 bias-pull-up;
305         };
306
307         imu_default: imu-default-state {
308                 pins = "gpio115";
309                 function = "gpio";
310
311                 drive-strength = <2>;
312                 bias-disable;
313         };
314
315         touchscreen_default: touchscreen-default-state {
316                 touchscreen-pins {
317                         pins = "gpio13";
318                         function = "gpio";
319
320                         drive-strength = <2>;
321                         bias-pull-up;
322                 };
323                 reset-pins {
324                         pins = "gpio12";
325                         function = "gpio";
326
327                         drive-strength = <2>;
328                         bias-disable;
329                 };
330         };
331
332         usb_id_default: usb-id-default-state {
333                 pins = "gpio110";
334                 function = "gpio";
335
336                 drive-strength = <8>;
337                 bias-pull-up;
338         };
339 };