Linux 6.7-rc7
[linux-modified.git] / arch / arm64 / boot / dts / qcom / msm8916-asus-z00l.dts
1 // SPDX-License-Identifier: GPL-2.0-only
2
3 /dts-v1/;
4
5 #include "msm8916-pm8916.dtsi"
6 #include <dt-bindings/gpio/gpio.h>
7 #include <dt-bindings/input/input.h>
8 #include <dt-bindings/interrupt-controller/irq.h>
9
10 / {
11         model = "Asus Zenfone 2 Laser";
12         compatible = "asus,z00l", "qcom,msm8916";
13         chassis-type = "handset";
14
15         aliases {
16                 mmc0 = &sdhc_1; /* eMMC */
17                 mmc1 = &sdhc_2; /* SD card */
18                 serial0 = &blsp_uart2;
19         };
20
21         chosen {
22                 stdout-path = "serial0";
23         };
24
25         gpio-keys {
26                 compatible = "gpio-keys";
27
28                 pinctrl-names = "default";
29                 pinctrl-0 = <&gpio_keys_default>;
30
31                 label = "GPIO Buttons";
32
33                 button-volume-up {
34                         label = "Volume Up";
35                         gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
36                         linux,code = <KEY_VOLUMEUP>;
37                         debounce-interval = <15>;
38                 };
39
40                 button-volume-down {
41                         label = "Volume Down";
42                         gpios = <&tlmm 117 GPIO_ACTIVE_LOW>;
43                         linux,code = <KEY_VOLUMEDOWN>;
44                         debounce-interval = <15>;
45                 };
46         };
47
48         reg_sd_vmmc: regulator-sdcard-vmmc {
49                 compatible = "regulator-fixed";
50                 regulator-name = "sdcard-vmmc";
51                 regulator-min-microvolt = <2950000>;
52                 regulator-max-microvolt = <2950000>;
53
54                 gpio = <&tlmm 87 GPIO_ACTIVE_HIGH>;
55                 enable-active-high;
56
57                 startup-delay-us = <200>;
58
59                 pinctrl-names = "default";
60                 pinctrl-0 = <&sd_vmmc_en_default>;
61         };
62
63         usb_id: usb-id {
64                 compatible = "linux,extcon-usb-gpio";
65                 id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
66                 pinctrl-names = "default";
67                 pinctrl-0 = <&usb_id_default>;
68         };
69 };
70
71 &blsp_i2c2 {
72         status = "okay";
73
74         magnetometer@c {
75                 compatible = "asahi-kasei,ak09911";
76                 reg = <0x0c>;
77
78                 vdd-supply = <&pm8916_l8>;
79                 vid-supply = <&pm8916_l6>;
80
81                 reset-gpios = <&tlmm 112 GPIO_ACTIVE_LOW>;
82
83                 pinctrl-names = "default";
84                 pinctrl-0 = <&mag_reset_default>;
85         };
86
87         imu@68 {
88                 compatible = "invensense,mpu6515";
89                 reg = <0x68>;
90
91                 interrupt-parent = <&tlmm>;
92                 interrupts = <36 IRQ_TYPE_EDGE_RISING>;
93
94                 vdd-supply = <&pm8916_l17>;
95                 vddio-supply = <&pm8916_l6>;
96
97                 pinctrl-names = "default";
98                 pinctrl-0 = <&imu_default>;
99
100                 mount-matrix = "1",  "0", "0",
101                                "0", "-1", "0",
102                                "0",  "0", "1";
103         };
104 };
105
106 &blsp_i2c5 {
107         status = "okay";
108
109         touchscreen@38 {
110                 compatible = "edt,edt-ft5306";
111                 reg = <0x38>;
112
113                 interrupt-parent = <&tlmm>;
114                 interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
115
116                 reset-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>;
117
118                 vcc-supply = <&pm8916_l11>;
119                 iovcc-supply = <&pm8916_l6>;
120
121                 touchscreen-size-x = <720>;
122                 touchscreen-size-y = <1280>;
123
124                 pinctrl-names = "default";
125                 pinctrl-0 = <&touchscreen_default>;
126         };
127 };
128
129 &blsp_uart2 {
130         status = "okay";
131 };
132
133 &pm8916_rpm_regulators {
134         pm8916_l17: l17 {
135                 regulator-min-microvolt = <2850000>;
136                 regulator-max-microvolt = <2850000>;
137         };
138 };
139
140 &sdhc_1 {
141         status = "okay";
142 };
143
144 &sdhc_2 {
145         status = "okay";
146         vmmc-supply = <&reg_sd_vmmc>;
147
148         pinctrl-names = "default", "sleep";
149         pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
150         pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
151         cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
152 };
153
154 &usb {
155         status = "okay";
156         extcon = <&usb_id>, <&usb_id>;
157 };
158
159 &usb_hs_phy {
160         extcon = <&usb_id>;
161 };
162
163 &venus {
164         status = "okay";
165 };
166
167 &venus_mem {
168         status = "okay";
169 };
170
171 &wcnss {
172         status = "okay";
173 };
174
175 &wcnss_iris {
176         compatible = "qcom,wcn3620";
177 };
178
179 &wcnss_mem {
180         status = "okay";
181 };
182
183 &tlmm {
184         gpio_keys_default: gpio-keys-default-state {
185                 pins = "gpio107", "gpio117";
186                 function = "gpio";
187
188                 drive-strength = <2>;
189                 bias-pull-up;
190         };
191
192         imu_default: imu-default-state {
193                 pins = "gpio36";
194                 function = "gpio";
195
196                 drive-strength = <2>;
197                 bias-disable;
198         };
199
200         mag_reset_default: mag-reset-default-state {
201                 pins = "gpio112";
202                 function = "gpio";
203
204                 drive-strength = <2>;
205                 bias-disable;
206         };
207
208         sd_vmmc_en_default: sd-vmmc-en-default-state {
209                 pins = "gpio87";
210                 function = "gpio";
211
212                 drive-strength = <2>;
213                 bias-disable;
214         };
215
216         sdc2_cd_default: sdc2-cd-default-state {
217                 pins = "gpio38";
218                 function = "gpio";
219                 drive-strength = <2>;
220                 bias-disable;
221         };
222
223         touchscreen_default: touchscreen-default-state {
224                 touch-pins {
225                         pins = "gpio13";
226                         function = "gpio";
227
228                         drive-strength = <2>;
229                         bias-pull-up;
230                 };
231
232                 reset-pins {
233                         pins = "gpio12";
234                         function = "gpio";
235
236                         drive-strength = <2>;
237                         bias-disable;
238                 };
239         };
240
241         usb_id_default: usb-id-default-state {
242                 pins = "gpio110";
243                 function = "gpio";
244
245                 drive-strength = <8>;
246                 bias-pull-up;
247         };
248 };