hc
2023-02-13 e440ec23c5a540cdd3f7464e8779219be6fd3d95
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
#include "qcom-msm8974.dtsi"
#include "qcom-pm8841.dtsi"
#include "qcom-pm8941.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 
 
/ {
   model = "Fairphone 2";
   compatible = "fairphone,fp2", "qcom,msm8974";
 
   aliases {
       serial0 = &blsp1_uart2;
   };
 
   chosen {
       stdout-path = "serial0:115200n8";
   };
 
   gpio-keys {
       compatible = "gpio-keys";
       input-name = "gpio-keys";
 
       pinctrl-names = "default";
       pinctrl-0 = <&gpio_keys_pin_a>;
 
       camera-snapshot {
           label = "camera_snapshot";
           gpios = <&pm8941_gpios 1 GPIO_ACTIVE_LOW>;
           linux,code = <KEY_CAMERA>;
           wakeup-source;
           debounce-interval = <15>;
       };
 
       volume-down {
           label = "volume_down";
           gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
           linux,code = <KEY_VOLUMEDOWN>;
           wakeup-source;
           debounce-interval = <15>;
       };
 
       volume-up {
           label = "volume_up";
           gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
           linux,code = <KEY_VOLUMEUP>;
           wakeup-source;
           debounce-interval = <15>;
       };
   };
 
   smd {
       rpm {
           rpm_requests {
               pm8841-regulators {
                   s1 {
                       regulator-min-microvolt = <675000>;
                       regulator-max-microvolt = <1050000>;
                   };
 
                   s2 {
                       regulator-min-microvolt = <500000>;
                       regulator-max-microvolt = <1050000>;
                   };
 
                   s3 {
                       regulator-min-microvolt = <1050000>;
                       regulator-max-microvolt = <1050000>;
                   };
               };
 
               pm8941-regulators {
                   vdd_l1_l3-supply = <&pm8941_s1>;
                   vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
                   vdd_l4_l11-supply = <&pm8941_s1>;
                   vdd_l5_l7-supply = <&pm8941_s2>;
                   vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
                   vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
                   vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
                   vdd_l21-supply = <&vreg_boost>;
 
                   s1 {
                       regulator-min-microvolt = <1300000>;
                       regulator-max-microvolt = <1300000>;
 
                       regulator-always-on;
                       regulator-boot-on;
                   };
 
                   s2 {
                       regulator-min-microvolt = <2150000>;
                       regulator-max-microvolt = <2150000>;
 
                       regulator-boot-on;
                   };
 
                   s3 {
                       regulator-min-microvolt = <1800000>;
                       regulator-max-microvolt = <1800000>;
 
                       regulator-always-on;
                       regulator-boot-on;
                   };
 
                   l1 {
                       regulator-min-microvolt = <1225000>;
                       regulator-max-microvolt = <1225000>;
 
                       regulator-always-on;
                       regulator-boot-on;
                   };
 
                   l2 {
                       regulator-min-microvolt = <1200000>;
                       regulator-max-microvolt = <1200000>;
                   };
 
                   l3 {
                       regulator-min-microvolt = <1225000>;
                       regulator-max-microvolt = <1225000>;
                   };
 
                   l4 {
                       regulator-min-microvolt = <1225000>;
                       regulator-max-microvolt = <1225000>;
                   };
 
                   l5 {
                       regulator-min-microvolt = <1800000>;
                       regulator-max-microvolt = <1800000>;
                   };
 
                   l6 {
                       regulator-min-microvolt = <1800000>;
                       regulator-max-microvolt = <1800000>;
 
                       regulator-boot-on;
                   };
 
                   l7 {
                       regulator-min-microvolt = <1800000>;
                       regulator-max-microvolt = <1800000>;
 
                       regulator-boot-on;
                   };
 
                   l8 {
                       regulator-min-microvolt = <1800000>;
                       regulator-max-microvolt = <1800000>;
                   };
 
                   l9 {
                       regulator-min-microvolt = <1800000>;
                       regulator-max-microvolt = <2950000>;
                   };
 
                   l10 {
                       regulator-min-microvolt = <1800000>;
                       regulator-max-microvolt = <2950000>;
                   };
 
                   l11 {
                       regulator-min-microvolt = <1225000>;
                       regulator-max-microvolt = <1350000>;
                   };
 
                   l12 {
                       regulator-min-microvolt = <1800000>;
                       regulator-max-microvolt = <1800000>;
 
                       regulator-always-on;
                       regulator-boot-on;
                   };
 
                   l13 {
                       regulator-min-microvolt = <1800000>;
                       regulator-max-microvolt = <2950000>;
 
                       regulator-boot-on;
                   };
 
                   l14 {
                       regulator-min-microvolt = <1800000>;
                       regulator-max-microvolt = <1800000>;
                   };
 
                   l15 {
                       regulator-min-microvolt = <2050000>;
                       regulator-max-microvolt = <2050000>;
                   };
 
                   l16 {
                       regulator-min-microvolt = <2700000>;
                       regulator-max-microvolt = <2700000>;
                   };
 
                   l17 {
                       regulator-min-microvolt = <2850000>;
                       regulator-max-microvolt = <2850000>;
                   };
 
                   l18 {
                       regulator-min-microvolt = <2850000>;
                       regulator-max-microvolt = <2850000>;
                   };
 
                   l19 {
                       regulator-min-microvolt = <2900000>;
                       regulator-max-microvolt = <3350000>;
                   };
 
                   l20 {
                       regulator-min-microvolt = <2950000>;
                       regulator-max-microvolt = <2950000>;
 
                       regulator-boot-on;
                   };
 
                   l21 {
                       regulator-min-microvolt = <2950000>;
                       regulator-max-microvolt = <2950000>;
 
                       regulator-boot-on;
                   };
 
                   l22 {
                       regulator-min-microvolt = <3000000>;
                       regulator-max-microvolt = <3300000>;
                   };
 
                   l23 {
                       regulator-min-microvolt = <3000000>;
                       regulator-max-microvolt = <3000000>;
                   };
 
                   l24 {
                       regulator-min-microvolt = <3075000>;
                       regulator-max-microvolt = <3075000>;
 
                       regulator-boot-on;
                   };
               };
           };
       };
   };
};
 
&soc {
   serial@f991e000 {
       status = "ok";
   };
 
   pinctrl@fd510000 {
       sdhc1_pin_a: sdhc1-pin-active {
           clk {
               pins = "sdc1_clk";
               drive-strength = <16>;
               bias-disable;
           };
 
           cmd-data {
               pins = "sdc1_cmd", "sdc1_data";
               drive-strength = <10>;
               bias-pull-up;
           };
       };
 
       sdhc2_cd_pin_a: sdhc2-cd-pin-active {
           pins = "gpio62";
           function = "gpio";
 
           drive-strength = <2>;
           bias-disable;
       };
 
       sdhc2_pin_a: sdhc2-pin-active {
           clk {
               pins = "sdc2_clk";
               drive-strength = <10>;
               bias-disable;
           };
 
           cmd-data {
               pins = "sdc2_cmd", "sdc2_data";
               drive-strength = <6>;
               bias-pull-up;
           };
       };
   };
 
   sdhci@f9824900 {
       status = "ok";
 
       vmmc-supply = <&pm8941_l20>;
       vqmmc-supply = <&pm8941_s3>;
 
       bus-width = <8>;
       non-removable;
 
       pinctrl-names = "default";
       pinctrl-0 = <&sdhc1_pin_a>;
   };
 
   sdhci@f98a4900 {
       status = "ok";
 
       vmmc-supply = <&pm8941_l21>;
       vqmmc-supply = <&pm8941_l13>;
 
       bus-width = <4>;
 
       pinctrl-names = "default";
       pinctrl-0 = <&sdhc2_pin_a>, <&sdhc2_cd_pin_a>;
   };
 
   usb@f9a55000 {
       status = "ok";
 
       phys = <&usb_hs1_phy>;
       phy-select = <&tcsr 0xb000 0>;
       extcon = <&smbb>, <&usb_id>;
       vbus-supply = <&chg_otg>;
 
       hnp-disable;
       srp-disable;
       adp-disable;
 
       ulpi {
           phy@a {
               status = "ok";
 
               v1p8-supply = <&pm8941_l6>;
               v3p3-supply = <&pm8941_l24>;
 
               extcon = <&smbb>;
               qcom,init-seq = /bits/ 8 <0x1 0x64>;
           };
       };
   };
};
 
&spmi_bus {
   pm8941@0 {
       gpios@c000 {
           gpio_keys_pin_a: gpio-keys-active {
               pins = "gpio1", "gpio2", "gpio5";
               function = "normal";
 
               bias-pull-up;
               power-source = <PM8941_GPIO_S3>;
           };
       };
   };
};