forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-06 08f87f769b595151be1afeff53e144f543faa614
kernel/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
....@@ -1,47 +1,14 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * Copyright (c) 2015, The Linux Foundation. All rights reserved.
3
- *
4
- * This program is free software; you can redistribute it and/or modify
5
- * it under the terms of the GNU General Public License version 2 and
6
- * only version 2 as published by the Free Software Foundation.
7
- *
8
- * This program is distributed in the hope that it will be useful,
9
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
10
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
- * GNU General Public License for more details.
124 */
135
14
-#include "msm8916.dtsi"
15
-#include "pm8916.dtsi"
16
-#include "apq8016-sbc-soc-pins.dtsi"
17
-#include "apq8016-sbc-pmic-pins.dtsi"
6
+#include "msm8916-pm8916.dtsi"
187 #include <dt-bindings/gpio/gpio.h>
198 #include <dt-bindings/input/input.h>
9
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
10
+#include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
2011 #include <dt-bindings/sound/apq8016-lpass.h>
21
-
22
-/*
23
- * GPIO name legend: proper name = the GPIO line is used as GPIO
24
- * NC = not connected (pin out but not routed from the chip to
25
- * anything the board)
26
- * "[PER]" = pin is muxed for [peripheral] (not GPIO)
27
- * LSEC = Low Speed External Connector
28
- * HSEC = High Speed External Connector
29
- *
30
- * Line names are taken from the schematic "DragonBoard410c"
31
- * dated monday, august 31, 2015. Page 5 in particular.
32
- *
33
- * For the lines routed to the external connectors the
34
- * lines are named after the 96Boards CE Specification 1.0,
35
- * Appendix "Expansion Connector Signal Description".
36
- *
37
- * When the 96Board naming of a line and the schematic name of
38
- * the same line are in conflict, the 96Board specification
39
- * takes precedence, which means that the external UART on the
40
- * LSEC is named UART0 while the schematic and SoC names this
41
- * UART3. This is only for the informational lines i.e. "[FOO]",
42
- * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only
43
- * ones actually used for GPIO.
44
- */
4512
4613 / {
4714 aliases {
....@@ -59,448 +26,38 @@
5926 stdout-path = "serial0";
6027 };
6128
29
+ camera_vdddo_1v8: camera-vdddo-1v8 {
30
+ compatible = "regulator-fixed";
31
+ regulator-name = "camera_vdddo";
32
+ regulator-min-microvolt = <1800000>;
33
+ regulator-max-microvolt = <1800000>;
34
+ regulator-always-on;
35
+ };
36
+
37
+ camera_vdda_2v8: camera-vdda-2v8 {
38
+ compatible = "regulator-fixed";
39
+ regulator-name = "camera_vdda";
40
+ regulator-min-microvolt = <2800000>;
41
+ regulator-max-microvolt = <2800000>;
42
+ regulator-always-on;
43
+ };
44
+
45
+ camera_vddd_1v5: camera-vddd-1v5 {
46
+ compatible = "regulator-fixed";
47
+ regulator-name = "camera_vddd";
48
+ regulator-min-microvolt = <1500000>;
49
+ regulator-max-microvolt = <1500000>;
50
+ regulator-always-on;
51
+ };
52
+
6253 reserved-memory {
63
- ramoops@bff00000{
54
+ ramoops@bff00000 {
6455 compatible = "ramoops";
6556 reg = <0x0 0xbff00000 0x0 0x100000>;
6657
6758 record-size = <0x20000>;
6859 console-size = <0x20000>;
6960 ftrace-size = <0x20000>;
70
- };
71
- };
72
-
73
- soc {
74
- pinctrl@1000000 {
75
- gpio-line-names =
76
- "[UART0_TX]", /* GPIO_0, LSEC pin 5 */
77
- "[UART0_RX]", /* GPIO_1, LSEC pin 7 */
78
- "[UART0_CTS_N]", /* GPIO_2, LSEC pin 3 */
79
- "[UART0_RTS_N]", /* GPIO_3, LSEC pin 9 */
80
- "[UART1_TX]", /* GPIO_4, LSEC pin 11 */
81
- "[UART1_RX]", /* GPIO_5, LSEC pin 13 */
82
- "[I2C0_SDA]", /* GPIO_8, LSEC pin 17 */
83
- "[I2C0_SCL]", /* GPIO_7, LSEC pin 15 */
84
- "[SPI1_DOUT]", /* SPI1_MOSI, HSEC pin 1 */
85
- "[SPI1_DIN]", /* SPI1_MISO, HSEC pin 11 */
86
- "[SPI1_CS]", /* SPI1_CS_N, HSEC pin 7 */
87
- "[SPI1_SCLK]", /* SPI1_CLK, HSEC pin 9 */
88
- "GPIO-B", /* LS_EXP_GPIO_B, LSEC pin 24 */
89
- "GPIO-C", /* LS_EXP_GPIO_C, LSEC pin 25 */
90
- "[I2C3_SDA]", /* HSEC pin 38 */
91
- "[I2C3_SCL]", /* HSEC pin 36 */
92
- "[SPI0_MOSI]", /* LSEC pin 14 */
93
- "[SPI0_MISO]", /* LSEC pin 10 */
94
- "[SPI0_CS_N]", /* LSEC pin 12 */
95
- "[SPI0_CLK]", /* LSEC pin 8 */
96
- "HDMI_HPD_N", /* GPIO 20 */
97
- "USR_LED_1_CTRL",
98
- "[I2C1_SDA]", /* GPIO_22, LSEC pin 21 */
99
- "[I2C1_SCL]", /* GPIO_23, LSEC pin 19 */
100
- "GPIO-G", /* LS_EXP_GPIO_G, LSEC pin 29 */
101
- "GPIO-H", /* LS_EXP_GPIO_H, LSEC pin 30 */
102
- "[CSI0_MCLK]", /* HSEC pin 15 */
103
- "[CSI1_MCLK]", /* HSEC pin 17 */
104
- "GPIO-K", /* LS_EXP_GPIO_K, LSEC pin 33 */
105
- "[I2C2_SDA]", /* HSEC pin 34 */
106
- "[I2C2_SCL]", /* HSEC pin 32 */
107
- "DSI2HDMI_INT_N",
108
- "DSI_SW_SEL_APQ",
109
- "GPIO-L", /* LS_EXP_GPIO_L, LSEC pin 34 */
110
- "GPIO-J", /* LS_EXP_GPIO_J, LSEC pin 32 */
111
- "GPIO-I", /* LS_EXP_GPIO_I, LSEC pin 31 */
112
- "GPIO-A", /* LS_EXP_GPIO_A, LSEC pin 23 */
113
- "FORCED_USB_BOOT",
114
- "SD_CARD_DET_N",
115
- "[WCSS_BT_SSBI]",
116
- "[WCSS_WLAN_DATA_2]", /* GPIO 40 */
117
- "[WCSS_WLAN_DATA_1]",
118
- "[WCSS_WLAN_DATA_0]",
119
- "[WCSS_WLAN_SET]",
120
- "[WCSS_WLAN_CLK]",
121
- "[WCSS_FM_SSBI]",
122
- "[WCSS_FM_SDI]",
123
- "[WCSS_BT_DAT_CTL]",
124
- "[WCSS_BT_DAT_STB]",
125
- "NC",
126
- "NC", /* GPIO 50 */
127
- "NC",
128
- "NC",
129
- "NC",
130
- "NC",
131
- "NC",
132
- "NC",
133
- "NC",
134
- "NC",
135
- "NC",
136
- "NC", /* GPIO 60 */
137
- "NC",
138
- "NC",
139
- "[CDC_PDM0_CLK]",
140
- "[CDC_PDM0_SYNC]",
141
- "[CDC_PDM0_TX0]",
142
- "[CDC_PDM0_RX0]",
143
- "[CDC_PDM0_RX1]",
144
- "[CDC_PDM0_RX2]",
145
- "GPIO-D", /* LS_EXP_GPIO_D, LSEC pin 26 */
146
- "NC", /* GPIO 70 */
147
- "NC",
148
- "NC",
149
- "NC",
150
- "NC", /* GPIO 74 */
151
- "NC",
152
- "NC",
153
- "NC",
154
- "NC",
155
- "NC",
156
- "BOOT_CONFIG_0", /* GPIO 80 */
157
- "BOOT_CONFIG_1",
158
- "BOOT_CONFIG_2",
159
- "BOOT_CONFIG_3",
160
- "NC",
161
- "NC",
162
- "BOOT_CONFIG_5",
163
- "NC",
164
- "NC",
165
- "NC",
166
- "NC", /* GPIO 90 */
167
- "NC",
168
- "NC",
169
- "NC",
170
- "NC",
171
- "NC",
172
- "NC",
173
- "NC",
174
- "NC",
175
- "NC",
176
- "NC", /* GPIO 100 */
177
- "NC",
178
- "NC",
179
- "NC",
180
- "SSBI_GPS",
181
- "NC",
182
- "NC",
183
- "KEY_VOLP_N",
184
- "NC",
185
- "NC",
186
- "[LS_EXP_MI2S_WS]", /* GPIO 110 */
187
- "NC",
188
- "NC",
189
- "[LS_EXP_MI2S_SCK]",
190
- "[LS_EXP_MI2S_DATA0]",
191
- "GPIO-E", /* LS_EXP_GPIO_E, LSEC pin 27 */
192
- "NC",
193
- "[DSI2HDMI_MI2S_WS]",
194
- "[DSI2HDMI_MI2S_SCK]",
195
- "[DSI2HDMI_MI2S_DATA0]",
196
- "USR_LED_2_CTRL", /* GPIO 120 */
197
- "SB_HS_ID";
198
- };
199
-
200
- dma@7884000 {
201
- status = "okay";
202
- };
203
-
204
- serial@78af000 {
205
- label = "LS-UART0";
206
- status = "okay";
207
- pinctrl-names = "default", "sleep";
208
- pinctrl-0 = <&blsp1_uart1_default>;
209
- pinctrl-1 = <&blsp1_uart1_sleep>;
210
- };
211
-
212
- serial@78b0000 {
213
- label = "LS-UART1";
214
- status = "okay";
215
- pinctrl-names = "default", "sleep";
216
- pinctrl-0 = <&blsp1_uart2_default>;
217
- pinctrl-1 = <&blsp1_uart2_sleep>;
218
- };
219
-
220
- i2c@78b6000 {
221
- /* On Low speed expansion */
222
- label = "LS-I2C0";
223
- status = "okay";
224
- };
225
-
226
- i2c@78b8000 {
227
- /* On High speed expansion */
228
- label = "HS-I2C2";
229
- status = "okay";
230
-
231
- adv_bridge: bridge@39 {
232
- status = "okay";
233
-
234
- compatible = "adi,adv7533";
235
- reg = <0x39>;
236
-
237
- interrupt-parent = <&msmgpio>;
238
- interrupts = <31 2>;
239
-
240
- adi,dsi-lanes = <4>;
241
- clocks = <&rpmcc RPM_SMD_BB_CLK2>;
242
- clock-names = "cec";
243
-
244
- pd-gpios = <&msmgpio 32 0>;
245
-
246
- avdd-supply = <&pm8916_l6>;
247
- v1p2-supply = <&pm8916_l6>;
248
- v3p3-supply = <&pm8916_l17>;
249
-
250
- pinctrl-names = "default","sleep";
251
- pinctrl-0 = <&adv7533_int_active &adv7533_switch_active>;
252
- pinctrl-1 = <&adv7533_int_suspend &adv7533_switch_suspend>;
253
- #sound-dai-cells = <1>;
254
-
255
- ports {
256
- #address-cells = <1>;
257
- #size-cells = <0>;
258
-
259
- port@0 {
260
- reg = <0>;
261
- adv7533_in: endpoint {
262
- remote-endpoint = <&dsi0_out>;
263
- };
264
- };
265
-
266
- port@1 {
267
- reg = <1>;
268
- adv7533_out: endpoint {
269
- remote-endpoint = <&hdmi_con>;
270
- };
271
- };
272
- };
273
- };
274
- };
275
-
276
- i2c@78ba000 {
277
- /* On Low speed expansion */
278
- label = "LS-I2C1";
279
- status = "okay";
280
- };
281
-
282
- spi@78b7000 {
283
- /* On High speed expansion */
284
- label = "HS-SPI1";
285
- status = "okay";
286
- };
287
-
288
- spi@78b9000 {
289
- /* On Low speed expansion */
290
- label = "LS-SPI0";
291
- status = "okay";
292
- };
293
-
294
- leds {
295
- pinctrl-names = "default";
296
- pinctrl-0 = <&msmgpio_leds>,
297
- <&pm8916_gpios_leds>,
298
- <&pm8916_mpps_leds>;
299
-
300
- compatible = "gpio-leds";
301
-
302
- led@1 {
303
- label = "apq8016-sbc:green:user1";
304
- gpios = <&msmgpio 21 GPIO_ACTIVE_HIGH>;
305
- linux,default-trigger = "heartbeat";
306
- default-state = "off";
307
- };
308
-
309
- led@2 {
310
- label = "apq8016-sbc:green:user2";
311
- gpios = <&msmgpio 120 GPIO_ACTIVE_HIGH>;
312
- linux,default-trigger = "mmc0";
313
- default-state = "off";
314
- };
315
-
316
- led@3 {
317
- label = "apq8016-sbc:green:user3";
318
- gpios = <&pm8916_gpios 1 GPIO_ACTIVE_HIGH>;
319
- linux,default-trigger = "mmc1";
320
- default-state = "off";
321
- };
322
-
323
- led@4 {
324
- label = "apq8016-sbc:green:user4";
325
- gpios = <&pm8916_gpios 2 GPIO_ACTIVE_HIGH>;
326
- linux,default-trigger = "none";
327
- panic-indicator;
328
- default-state = "off";
329
- };
330
-
331
- led@5 {
332
- label = "apq8016-sbc:yellow:wlan";
333
- gpios = <&pm8916_mpps 2 GPIO_ACTIVE_HIGH>;
334
- linux,default-trigger = "phy0tx";
335
- default-state = "off";
336
- };
337
-
338
- led@6 {
339
- label = "apq8016-sbc:blue:bt";
340
- gpios = <&pm8916_mpps 3 GPIO_ACTIVE_HIGH>;
341
- linux,default-trigger = "bluetooth-power";
342
- default-state = "off";
343
- };
344
- };
345
-
346
- sdhci@7824000 {
347
- vmmc-supply = <&pm8916_l8>;
348
- vqmmc-supply = <&pm8916_l5>;
349
-
350
- pinctrl-names = "default", "sleep";
351
- pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
352
- pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
353
- status = "okay";
354
- };
355
-
356
- sdhci@7864000 {
357
- vmmc-supply = <&pm8916_l11>;
358
- vqmmc-supply = <&pm8916_l12>;
359
-
360
- pinctrl-names = "default", "sleep";
361
- pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
362
- pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
363
-
364
- cd-gpios = <&msmgpio 38 0x1>;
365
- status = "okay";
366
- };
367
-
368
- usb@78d9000 {
369
- extcon = <&usb_id>;
370
- status = "okay";
371
- adp-disable;
372
- hnp-disable;
373
- srp-disable;
374
- dr_mode = "host";
375
- pinctrl-names = "default";
376
- pinctrl-0 = <&usb_sw_sel_pm>;
377
- ulpi {
378
- phy {
379
- v1p8-supply = <&pm8916_l7>;
380
- v3p3-supply = <&pm8916_l13>;
381
- extcon = <&usb_id>;
382
- };
383
- };
384
- };
385
-
386
- lpass@7708000 {
387
- status = "okay";
388
- };
389
-
390
- mdss@1a00000 {
391
- status = "okay";
392
-
393
- mdp@1a01000 {
394
- status = "okay";
395
- };
396
-
397
- dsi@1a98000 {
398
- status = "okay";
399
-
400
- vdda-supply = <&pm8916_l2>;
401
- vddio-supply = <&pm8916_l6>;
402
-
403
- ports {
404
- port@1 {
405
- endpoint {
406
- remote-endpoint = <&adv7533_in>;
407
- data-lanes = <0 1 2 3>;
408
- };
409
- };
410
- };
411
- };
412
-
413
- dsi-phy@1a98300 {
414
- status = "okay";
415
-
416
- vddio-supply = <&pm8916_l6>;
417
- };
418
- };
419
-
420
- lpass_codec: codec{
421
- status = "okay";
422
- };
423
-
424
- /*
425
- Internal Codec
426
- playback - Primary MI2S
427
- capture - Ter MI2S
428
-
429
- External Primary:
430
- playback - secondary MI2S
431
- capture - Quat MI2S
432
-
433
- External Secondary:
434
- playback - Quat MI2S
435
- capture - Quat MI2S
436
-
437
- */
438
-
439
- sound: sound {
440
- compatible = "qcom,apq8016-sbc-sndcard";
441
- reg = <0x07702000 0x4>, <0x07702004 0x4>;
442
- reg-names = "mic-iomux", "spkr-iomux";
443
-
444
- status = "okay";
445
- pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>;
446
- pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>;
447
- pinctrl-names = "default", "sleep";
448
- qcom,model = "DB410c";
449
- qcom,audio-routing =
450
- "AMIC2", "MIC BIAS Internal2",
451
- "AMIC3", "MIC BIAS External1";
452
- external-dai-link@0 {
453
- link-name = "ADV7533";
454
- cpu { /* QUAT */
455
- sound-dai = <&lpass MI2S_QUATERNARY>;
456
- };
457
- codec {
458
- sound-dai = <&adv_bridge 0>;
459
- };
460
- };
461
-
462
- internal-codec-playback-dai-link@0 { /* I2S - Internal codec */
463
- link-name = "WCD";
464
- cpu { /* PRIMARY */
465
- sound-dai = <&lpass MI2S_PRIMARY>;
466
- };
467
- codec {
468
- sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
469
- };
470
- };
471
-
472
- internal-codec-capture-dai-link@0 { /* I2S - Internal codec */
473
- link-name = "WCD-Capture";
474
- cpu { /* PRIMARY */
475
- sound-dai = <&lpass MI2S_TERTIARY>;
476
- };
477
- codec {
478
- sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
479
- };
480
- };
481
- };
482
-
483
- spmi@200f000 {
484
- pm8916@0 {
485
- gpios@c000 {
486
- gpio-line-names =
487
- "USR_LED_3_CTRL",
488
- "USR_LED_4_CTRL",
489
- "USB_HUB_RESET_N_PM",
490
- "USB_SW_SEL_PM";
491
- };
492
- mpps@a000 {
493
- gpio-line-names =
494
- "VDD_PX_BIAS",
495
- "WLAN_LED_CTRL",
496
- "BT_LED_CTRL",
497
- "GPIO-F"; /* LS_EXP_GPIO_F, LSEC pin 28 */
498
- };
499
- };
500
- };
501
-
502
- wcnss@a21b000 {
503
- status = "okay";
50461 };
50562 };
50663
....@@ -512,7 +69,7 @@
51269
51370 usb_id: usb-id {
51471 compatible = "linux,extcon-usb-gpio";
515
- vbus-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>;
72
+ id-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>;
51673 pinctrl-names = "default";
51774 pinctrl-0 = <&usb_id_default>;
51875 };
....@@ -528,7 +85,7 @@
52885 };
52986 };
53087
531
- gpio_keys {
88
+ gpio-keys {
53289 compatible = "gpio-keys";
53390 #address-cells = <1>;
53491 #size-cells = <0>;
....@@ -543,19 +100,320 @@
543100 gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
544101 };
545102 };
103
+
104
+ leds {
105
+ pinctrl-names = "default";
106
+ pinctrl-0 = <&msmgpio_leds>,
107
+ <&pm8916_gpios_leds>,
108
+ <&pm8916_mpps_leds>;
109
+
110
+ compatible = "gpio-leds";
111
+
112
+ led@1 {
113
+ label = "apq8016-sbc:green:user1";
114
+ gpios = <&msmgpio 21 GPIO_ACTIVE_HIGH>;
115
+ linux,default-trigger = "heartbeat";
116
+ default-state = "off";
117
+ };
118
+
119
+ led@2 {
120
+ label = "apq8016-sbc:green:user2";
121
+ gpios = <&msmgpio 120 GPIO_ACTIVE_HIGH>;
122
+ linux,default-trigger = "mmc0";
123
+ default-state = "off";
124
+ };
125
+
126
+ led@3 {
127
+ label = "apq8016-sbc:green:user3";
128
+ gpios = <&pm8916_gpios 1 GPIO_ACTIVE_HIGH>;
129
+ linux,default-trigger = "mmc1";
130
+ default-state = "off";
131
+ };
132
+
133
+ led@4 {
134
+ label = "apq8016-sbc:green:user4";
135
+ gpios = <&pm8916_gpios 2 GPIO_ACTIVE_HIGH>;
136
+ linux,default-trigger = "none";
137
+ panic-indicator;
138
+ default-state = "off";
139
+ };
140
+
141
+ led@5 {
142
+ label = "apq8016-sbc:yellow:wlan";
143
+ gpios = <&pm8916_mpps 2 GPIO_ACTIVE_HIGH>;
144
+ linux,default-trigger = "phy0tx";
145
+ default-state = "off";
146
+ };
147
+
148
+ led@6 {
149
+ label = "apq8016-sbc:blue:bt";
150
+ gpios = <&pm8916_mpps 3 GPIO_ACTIVE_HIGH>;
151
+ linux,default-trigger = "bluetooth-power";
152
+ default-state = "off";
153
+ };
154
+ };
155
+};
156
+
157
+&blsp_dma {
158
+ status = "okay";
159
+};
160
+
161
+&blsp_i2c2 {
162
+ /* On Low speed expansion */
163
+ status = "okay";
164
+ label = "LS-I2C0";
165
+};
166
+
167
+&blsp_i2c4 {
168
+ /* On High speed expansion */
169
+ status = "okay";
170
+ label = "HS-I2C2";
171
+
172
+ adv_bridge: bridge@39 {
173
+ status = "okay";
174
+
175
+ compatible = "adi,adv7533";
176
+ reg = <0x39>;
177
+
178
+ interrupt-parent = <&msmgpio>;
179
+ interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
180
+
181
+ adi,dsi-lanes = <4>;
182
+ clocks = <&rpmcc RPM_SMD_BB_CLK2>;
183
+ clock-names = "cec";
184
+
185
+ pd-gpios = <&msmgpio 32 GPIO_ACTIVE_HIGH>;
186
+
187
+ avdd-supply = <&pm8916_l6>;
188
+ v1p2-supply = <&pm8916_l6>;
189
+ v3p3-supply = <&pm8916_l17>;
190
+
191
+ pinctrl-names = "default","sleep";
192
+ pinctrl-0 = <&adv7533_int_active &adv7533_switch_active>;
193
+ pinctrl-1 = <&adv7533_int_suspend &adv7533_switch_suspend>;
194
+ #sound-dai-cells = <1>;
195
+
196
+ ports {
197
+ #address-cells = <1>;
198
+ #size-cells = <0>;
199
+
200
+ port@0 {
201
+ reg = <0>;
202
+ adv7533_in: endpoint {
203
+ remote-endpoint = <&dsi0_out>;
204
+ };
205
+ };
206
+
207
+ port@1 {
208
+ reg = <1>;
209
+ adv7533_out: endpoint {
210
+ remote-endpoint = <&hdmi_con>;
211
+ };
212
+ };
213
+ };
214
+ };
215
+};
216
+
217
+&blsp_i2c6 {
218
+ /* On Low speed expansion */
219
+ status = "okay";
220
+ label = "LS-I2C1";
221
+};
222
+
223
+&blsp_spi3 {
224
+ /* On High speed expansion */
225
+ status = "okay";
226
+ label = "HS-SPI1";
227
+};
228
+
229
+&blsp_spi5 {
230
+ /* On Low speed expansion */
231
+ status = "okay";
232
+ label = "LS-SPI0";
233
+};
234
+
235
+&blsp1_uart1 {
236
+ status = "okay";
237
+ label = "LS-UART0";
238
+};
239
+
240
+&blsp1_uart2 {
241
+ status = "okay";
242
+ label = "LS-UART1";
243
+};
244
+
245
+&camss {
246
+ status = "okay";
247
+ ports {
248
+ port@0 {
249
+ reg = <0>;
250
+ csiphy0_ep: endpoint {
251
+ clock-lanes = <1>;
252
+ data-lanes = <0 2>;
253
+ remote-endpoint = <&ov5640_ep>;
254
+ status = "okay";
255
+ };
256
+ };
257
+ };
258
+};
259
+
260
+&cci {
261
+ status = "okay";
262
+};
263
+
264
+&cci_i2c0 {
265
+ camera_rear@3b {
266
+ compatible = "ovti,ov5640";
267
+ reg = <0x3b>;
268
+
269
+ enable-gpios = <&msmgpio 34 GPIO_ACTIVE_HIGH>;
270
+ reset-gpios = <&msmgpio 35 GPIO_ACTIVE_LOW>;
271
+ pinctrl-names = "default";
272
+ pinctrl-0 = <&camera_rear_default>;
273
+
274
+ clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
275
+ clock-names = "xclk";
276
+ clock-frequency = <23880000>;
277
+
278
+ vdddo-supply = <&camera_vdddo_1v8>;
279
+ vdda-supply = <&camera_vdda_2v8>;
280
+ vddd-supply = <&camera_vddd_1v5>;
281
+
282
+ /* No camera mezzanine by default */
283
+ status = "disabled";
284
+
285
+ port {
286
+ ov5640_ep: endpoint {
287
+ clock-lanes = <1>;
288
+ data-lanes = <0 2>;
289
+ remote-endpoint = <&csiphy0_ep>;
290
+ };
291
+ };
292
+ };
293
+};
294
+
295
+&dsi0_out {
296
+ data-lanes = <0 1 2 3>;
297
+ remote-endpoint = <&adv7533_in>;
298
+};
299
+
300
+&lpass {
301
+ status = "okay";
302
+};
303
+
304
+&pm8916_resin {
305
+ status = "okay";
306
+ linux,code = <KEY_VOLUMEDOWN>;
307
+};
308
+
309
+&pronto {
310
+ status = "okay";
311
+};
312
+
313
+&sdhc_1 {
314
+ status = "okay";
315
+
316
+ pinctrl-names = "default", "sleep";
317
+ pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
318
+ pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
319
+};
320
+
321
+&sdhc_2 {
322
+ status = "okay";
323
+
324
+ pinctrl-names = "default", "sleep";
325
+ pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
326
+ pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
327
+
328
+ cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
329
+};
330
+
331
+&sound {
332
+ status = "okay";
333
+
334
+ pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>;
335
+ pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>;
336
+ pinctrl-names = "default", "sleep";
337
+ qcom,model = "DB410c";
338
+ qcom,audio-routing =
339
+ "AMIC2", "MIC BIAS Internal2",
340
+ "AMIC3", "MIC BIAS External1";
341
+
342
+ external-dai-link@0 {
343
+ link-name = "ADV7533";
344
+ cpu {
345
+ sound-dai = <&lpass MI2S_QUATERNARY>;
346
+ };
347
+ codec {
348
+ sound-dai = <&adv_bridge 0>;
349
+ };
350
+ };
351
+
352
+ internal-codec-playback-dai-link@0 {
353
+ link-name = "WCD";
354
+ cpu {
355
+ sound-dai = <&lpass MI2S_PRIMARY>;
356
+ };
357
+ codec {
358
+ sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
359
+ };
360
+ };
361
+
362
+ internal-codec-capture-dai-link@0 {
363
+ link-name = "WCD-Capture";
364
+ cpu {
365
+ sound-dai = <&lpass MI2S_TERTIARY>;
366
+ };
367
+ codec {
368
+ sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
369
+ };
370
+ };
371
+};
372
+
373
+&usb {
374
+ status = "okay";
375
+ extcon = <&usb_id>, <&usb_id>;
376
+
377
+ pinctrl-names = "default", "device";
378
+ pinctrl-0 = <&usb_sw_sel_pm &usb_hub_reset_pm>;
379
+ pinctrl-1 = <&usb_sw_sel_pm_device &usb_hub_reset_pm_device>;
380
+};
381
+
382
+&usb_hs_phy {
383
+ extcon = <&usb_id>;
546384 };
547385
548386 &wcd_codec {
549
- status = "okay";
550
- clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
551
- clock-names = "mclk";
387
+ clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
388
+ clock-names = "mclk";
552389 qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
553390 qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
554391 };
555392
393
+/* Enable CoreSight */
394
+&cti0 { status = "okay"; };
395
+&cti1 { status = "okay"; };
396
+&cti12 { status = "okay"; };
397
+&cti13 { status = "okay"; };
398
+&cti14 { status = "okay"; };
399
+&cti15 { status = "okay"; };
400
+&debug0 { status = "okay"; };
401
+&debug1 { status = "okay"; };
402
+&debug2 { status = "okay"; };
403
+&debug3 { status = "okay"; };
404
+&etf { status = "okay"; };
405
+&etm0 { status = "okay"; };
406
+&etm1 { status = "okay"; };
407
+&etm2 { status = "okay"; };
408
+&etm3 { status = "okay"; };
409
+&etr { status = "okay"; };
410
+&funnel0 { status = "okay"; };
411
+&funnel1 { status = "okay"; };
412
+&replicator { status = "okay"; };
413
+&tpiu { status = "okay"; };
414
+
556415 &smd_rpm_regulators {
557416 vdd_l1_l2_l3-supply = <&pm8916_s3>;
558
- vdd_l5-supply = <&pm8916_s3>;
559417 vdd_l4_l5_l6-supply = <&pm8916_s4>;
560418 vdd_l7-supply = <&pm8916_s4>;
561419
....@@ -674,3 +532,300 @@
674532 regulator-max-microvolt = <3337000>;
675533 };
676534 };
535
+
536
+/*
537
+ * 2mA drive strength is not enough when connecting multiple
538
+ * I2C devices with different pull up resistors.
539
+ */
540
+&i2c2_default {
541
+ drive-strength = <16>;
542
+};
543
+
544
+&i2c4_default {
545
+ drive-strength = <16>;
546
+};
547
+
548
+&i2c6_default {
549
+ drive-strength = <16>;
550
+};
551
+
552
+/*
553
+ * GPIO name legend: proper name = the GPIO line is used as GPIO
554
+ * NC = not connected (pin out but not routed from the chip to
555
+ * anything the board)
556
+ * "[PER]" = pin is muxed for [peripheral] (not GPIO)
557
+ * LSEC = Low Speed External Connector
558
+ * HSEC = High Speed External Connector
559
+ *
560
+ * Line names are taken from the schematic "DragonBoard410c"
561
+ * dated monday, august 31, 2015. Page 5 in particular.
562
+ *
563
+ * For the lines routed to the external connectors the
564
+ * lines are named after the 96Boards CE Specification 1.0,
565
+ * Appendix "Expansion Connector Signal Description".
566
+ *
567
+ * When the 96Board naming of a line and the schematic name of
568
+ * the same line are in conflict, the 96Board specification
569
+ * takes precedence, which means that the external UART on the
570
+ * LSEC is named UART0 while the schematic and SoC names this
571
+ * UART3. This is only for the informational lines i.e. "[FOO]",
572
+ * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only
573
+ * ones actually used for GPIO.
574
+ */
575
+
576
+&msmgpio {
577
+ gpio-line-names =
578
+ "[UART0_TX]", /* GPIO_0, LSEC pin 5 */
579
+ "[UART0_RX]", /* GPIO_1, LSEC pin 7 */
580
+ "[UART0_CTS_N]", /* GPIO_2, LSEC pin 3 */
581
+ "[UART0_RTS_N]", /* GPIO_3, LSEC pin 9 */
582
+ "[UART1_TX]", /* GPIO_4, LSEC pin 11 */
583
+ "[UART1_RX]", /* GPIO_5, LSEC pin 13 */
584
+ "[I2C0_SDA]", /* GPIO_8, LSEC pin 17 */
585
+ "[I2C0_SCL]", /* GPIO_7, LSEC pin 15 */
586
+ "[SPI1_DOUT]", /* SPI1_MOSI, HSEC pin 1 */
587
+ "[SPI1_DIN]", /* SPI1_MISO, HSEC pin 11 */
588
+ "[SPI1_CS]", /* SPI1_CS_N, HSEC pin 7 */
589
+ "[SPI1_SCLK]", /* SPI1_CLK, HSEC pin 9 */
590
+ "GPIO-B", /* LS_EXP_GPIO_B, LSEC pin 24 */
591
+ "GPIO-C", /* LS_EXP_GPIO_C, LSEC pin 25 */
592
+ "[I2C3_SDA]", /* HSEC pin 38 */
593
+ "[I2C3_SCL]", /* HSEC pin 36 */
594
+ "[SPI0_MOSI]", /* LSEC pin 14 */
595
+ "[SPI0_MISO]", /* LSEC pin 10 */
596
+ "[SPI0_CS_N]", /* LSEC pin 12 */
597
+ "[SPI0_CLK]", /* LSEC pin 8 */
598
+ "HDMI_HPD_N", /* GPIO 20 */
599
+ "USR_LED_1_CTRL",
600
+ "[I2C1_SDA]", /* GPIO_22, LSEC pin 21 */
601
+ "[I2C1_SCL]", /* GPIO_23, LSEC pin 19 */
602
+ "GPIO-G", /* LS_EXP_GPIO_G, LSEC pin 29 */
603
+ "GPIO-H", /* LS_EXP_GPIO_H, LSEC pin 30 */
604
+ "[CSI0_MCLK]", /* HSEC pin 15 */
605
+ "[CSI1_MCLK]", /* HSEC pin 17 */
606
+ "GPIO-K", /* LS_EXP_GPIO_K, LSEC pin 33 */
607
+ "[I2C2_SDA]", /* HSEC pin 34 */
608
+ "[I2C2_SCL]", /* HSEC pin 32 */
609
+ "DSI2HDMI_INT_N",
610
+ "DSI_SW_SEL_APQ",
611
+ "GPIO-L", /* LS_EXP_GPIO_L, LSEC pin 34 */
612
+ "GPIO-J", /* LS_EXP_GPIO_J, LSEC pin 32 */
613
+ "GPIO-I", /* LS_EXP_GPIO_I, LSEC pin 31 */
614
+ "GPIO-A", /* LS_EXP_GPIO_A, LSEC pin 23 */
615
+ "FORCED_USB_BOOT",
616
+ "SD_CARD_DET_N",
617
+ "[WCSS_BT_SSBI]",
618
+ "[WCSS_WLAN_DATA_2]", /* GPIO 40 */
619
+ "[WCSS_WLAN_DATA_1]",
620
+ "[WCSS_WLAN_DATA_0]",
621
+ "[WCSS_WLAN_SET]",
622
+ "[WCSS_WLAN_CLK]",
623
+ "[WCSS_FM_SSBI]",
624
+ "[WCSS_FM_SDI]",
625
+ "[WCSS_BT_DAT_CTL]",
626
+ "[WCSS_BT_DAT_STB]",
627
+ "NC",
628
+ "NC", /* GPIO 50 */
629
+ "NC",
630
+ "NC",
631
+ "NC",
632
+ "NC",
633
+ "NC",
634
+ "NC",
635
+ "NC",
636
+ "NC",
637
+ "NC",
638
+ "NC", /* GPIO 60 */
639
+ "NC",
640
+ "NC",
641
+ "[CDC_PDM0_CLK]",
642
+ "[CDC_PDM0_SYNC]",
643
+ "[CDC_PDM0_TX0]",
644
+ "[CDC_PDM0_RX0]",
645
+ "[CDC_PDM0_RX1]",
646
+ "[CDC_PDM0_RX2]",
647
+ "GPIO-D", /* LS_EXP_GPIO_D, LSEC pin 26 */
648
+ "NC", /* GPIO 70 */
649
+ "NC",
650
+ "NC",
651
+ "NC",
652
+ "NC", /* GPIO 74 */
653
+ "NC",
654
+ "NC",
655
+ "NC",
656
+ "NC",
657
+ "NC",
658
+ "BOOT_CONFIG_0", /* GPIO 80 */
659
+ "BOOT_CONFIG_1",
660
+ "BOOT_CONFIG_2",
661
+ "BOOT_CONFIG_3",
662
+ "NC",
663
+ "NC",
664
+ "BOOT_CONFIG_5",
665
+ "NC",
666
+ "NC",
667
+ "NC",
668
+ "NC", /* GPIO 90 */
669
+ "NC",
670
+ "NC",
671
+ "NC",
672
+ "NC",
673
+ "NC",
674
+ "NC",
675
+ "NC",
676
+ "NC",
677
+ "NC",
678
+ "NC", /* GPIO 100 */
679
+ "NC",
680
+ "NC",
681
+ "NC",
682
+ "SSBI_GPS",
683
+ "NC",
684
+ "NC",
685
+ "KEY_VOLP_N",
686
+ "NC",
687
+ "NC",
688
+ "[LS_EXP_MI2S_WS]", /* GPIO 110 */
689
+ "NC",
690
+ "NC",
691
+ "[LS_EXP_MI2S_SCK]",
692
+ "[LS_EXP_MI2S_DATA0]",
693
+ "GPIO-E", /* LS_EXP_GPIO_E, LSEC pin 27 */
694
+ "NC",
695
+ "[DSI2HDMI_MI2S_WS]",
696
+ "[DSI2HDMI_MI2S_SCK]",
697
+ "[DSI2HDMI_MI2S_DATA0]",
698
+ "USR_LED_2_CTRL", /* GPIO 120 */
699
+ "SB_HS_ID";
700
+
701
+ msmgpio_leds: msmgpio-leds {
702
+ pins = "gpio21", "gpio120";
703
+ function = "gpio";
704
+
705
+ output-low;
706
+ };
707
+
708
+ usb_id_default: usb-id-default {
709
+ pins = "gpio121";
710
+ function = "gpio";
711
+
712
+ drive-strength = <8>;
713
+ input-enable;
714
+ bias-pull-up;
715
+ };
716
+
717
+ adv7533_int_active: adv533-int-active {
718
+ pins = "gpio31";
719
+ function = "gpio";
720
+
721
+ drive-strength = <16>;
722
+ bias-disable;
723
+ };
724
+
725
+ adv7533_int_suspend: adv7533-int-suspend {
726
+ pins = "gpio31";
727
+ function = "gpio";
728
+
729
+ drive-strength = <2>;
730
+ bias-disable;
731
+ };
732
+
733
+ adv7533_switch_active: adv7533-switch-active {
734
+ pins = "gpio32";
735
+ function = "gpio";
736
+
737
+ drive-strength = <16>;
738
+ bias-disable;
739
+ };
740
+
741
+ adv7533_switch_suspend: adv7533-switch-suspend {
742
+ pins = "gpio32";
743
+ function = "gpio";
744
+
745
+ drive-strength = <2>;
746
+ bias-disable;
747
+ };
748
+
749
+ msm_key_volp_n_default: msm-key-volp-n-default {
750
+ pins = "gpio107";
751
+ function = "gpio";
752
+
753
+ drive-strength = <8>;
754
+ input-enable;
755
+ bias-pull-up;
756
+ };
757
+};
758
+
759
+&pm8916_gpios {
760
+ gpio-line-names =
761
+ "USR_LED_3_CTRL",
762
+ "USR_LED_4_CTRL",
763
+ "USB_HUB_RESET_N_PM",
764
+ "USB_SW_SEL_PM";
765
+
766
+ usb_hub_reset_pm: usb-hub-reset-pm {
767
+ pins = "gpio3";
768
+ function = PMIC_GPIO_FUNC_NORMAL;
769
+
770
+ input-disable;
771
+ output-high;
772
+ };
773
+
774
+ usb_hub_reset_pm_device: usb-hub-reset-pm-device {
775
+ pins = "gpio3";
776
+ function = PMIC_GPIO_FUNC_NORMAL;
777
+
778
+ output-low;
779
+ };
780
+
781
+ usb_sw_sel_pm: usb-sw-sel-pm {
782
+ pins = "gpio4";
783
+ function = PMIC_GPIO_FUNC_NORMAL;
784
+
785
+ power-source = <PM8916_GPIO_VPH>;
786
+ input-disable;
787
+ output-high;
788
+ };
789
+
790
+ usb_sw_sel_pm_device: usb-sw-sel-pm-device {
791
+ pins = "gpio4";
792
+ function = PMIC_GPIO_FUNC_NORMAL;
793
+
794
+ power-source = <PM8916_GPIO_VPH>;
795
+ input-disable;
796
+ output-low;
797
+ };
798
+
799
+ pm8916_gpios_leds: pm8916-gpios-leds {
800
+ pins = "gpio1", "gpio2";
801
+ function = PMIC_GPIO_FUNC_NORMAL;
802
+
803
+ output-low;
804
+ };
805
+};
806
+
807
+&pm8916_mpps {
808
+ gpio-line-names =
809
+ "VDD_PX_BIAS",
810
+ "WLAN_LED_CTRL",
811
+ "BT_LED_CTRL",
812
+ "GPIO-F"; /* LS_EXP_GPIO_F, LSEC pin 28 */
813
+
814
+ pinctrl-names = "default";
815
+ pinctrl-0 = <&ls_exp_gpio_f>;
816
+
817
+ ls_exp_gpio_f: pm8916-mpp4 {
818
+ pins = "mpp4";
819
+ function = "digital";
820
+
821
+ output-low;
822
+ power-source = <PM8916_MPP_L5>; // 1.8V
823
+ };
824
+
825
+ pm8916_mpps_leds: pm8916-mpps-leds {
826
+ pins = "mpp2", "mpp3";
827
+ function = "digital";
828
+
829
+ output-low;
830
+ };
831
+};