Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[sfrench/cifs-2.6.git] / arch / arm64 / boot / dts / qcom / apq8016-sbc.dtsi
1 /*
2  * 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.
12  */
13
14 #include "msm8916.dtsi"
15 #include "pm8916.dtsi"
16 #include "apq8016-sbc-soc-pins.dtsi"
17 #include "apq8016-sbc-pmic-pins.dtsi"
18 #include <dt-bindings/gpio/gpio.h>
19 #include <dt-bindings/input/input.h>
20 #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  */
45
46 / {
47         aliases {
48                 serial0 = &blsp1_uart2;
49                 serial1 = &blsp1_uart1;
50                 usid0 = &pm8916_0;
51                 i2c0    = &blsp_i2c2;
52                 i2c1    = &blsp_i2c6;
53                 i2c3    = &blsp_i2c4;
54                 spi0    = &blsp_spi5;
55                 spi1    = &blsp_spi3;
56         };
57
58         chosen {
59                 stdout-path = "serial0";
60         };
61
62         reserved-memory {
63                 ramoops@bff00000{
64                         compatible = "ramoops";
65                         reg = <0x0 0xbff00000 0x0 0x100000>;
66
67                         record-size = <0x20000>;
68                         console-size = <0x20000>;
69                         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";
504                 };
505         };
506
507         usb2513 {
508                 compatible = "smsc,usb3503";
509                 reset-gpios = <&pm8916_gpios 3 GPIO_ACTIVE_LOW>;
510                 initial-mode = <1>;
511         };
512
513         usb_id: usb-id {
514                 compatible = "linux,extcon-usb-gpio";
515                 vbus-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>;
516                 pinctrl-names = "default";
517                 pinctrl-0 = <&usb_id_default>;
518         };
519
520         hdmi-out {
521                 compatible = "hdmi-connector";
522                 type = "a";
523
524                 port {
525                         hdmi_con: endpoint {
526                                 remote-endpoint = <&adv7533_out>;
527                         };
528                 };
529         };
530
531         gpio_keys {
532                 compatible = "gpio-keys";
533                 #address-cells = <1>;
534                 #size-cells = <0>;
535                 autorepeat;
536
537                 pinctrl-names = "default";
538                 pinctrl-0 = <&msm_key_volp_n_default>;
539
540                 button@0 {
541                         label = "Volume Up";
542                         linux,code = <KEY_VOLUMEUP>;
543                         gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
544                 };
545         };
546 };
547
548 &spmi_bus {
549         pm8916_0: pm8916@0 {
550                 pon@800 {
551                         resin {
552                                 compatible = "qcom,pm8941-resin";
553                                 interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
554                                 debounce = <15625>;
555                                 bias-pull-up;
556                                 linux,code = <KEY_VOLUMEDOWN>;
557                         };
558                 };
559         };
560 };
561
562 &wcd_codec {
563         status = "okay";
564         clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
565         clock-names = "mclk";
566         qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
567         qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
568 };
569
570 &smd_rpm_regulators {
571         vdd_l1_l2_l3-supply = <&pm8916_s3>;
572         vdd_l5-supply = <&pm8916_s3>;
573         vdd_l4_l5_l6-supply = <&pm8916_s4>;
574         vdd_l7-supply = <&pm8916_s4>;
575
576         s1 {
577                 regulator-min-microvolt = <375000>;
578                 regulator-max-microvolt = <1562000>;
579         };
580
581         s3 {
582                 regulator-min-microvolt = <375000>;
583                 regulator-max-microvolt = <1562000>;
584         };
585
586         s4 {
587                 regulator-min-microvolt = <1800000>;
588                 regulator-max-microvolt = <1800000>;
589
590                 regulator-always-on;
591                 regulator-boot-on;
592         };
593
594         l1 {
595                 regulator-min-microvolt = <375000>;
596                 regulator-max-microvolt = <1525000>;
597         };
598
599         l2 {
600                 regulator-min-microvolt = <1200000>;
601                 regulator-max-microvolt = <1200000>;
602         };
603
604         l3 {
605                 regulator-min-microvolt = <375000>;
606                 regulator-max-microvolt = <1525000>;
607         };
608
609         l4 {
610                 regulator-min-microvolt = <1750000>;
611                 regulator-max-microvolt = <3337000>;
612         };
613
614         l5 {
615                 regulator-min-microvolt = <1750000>;
616                 regulator-max-microvolt = <3337000>;
617         };
618
619         l6 {
620                 regulator-min-microvolt = <1800000>;
621                 regulator-max-microvolt = <1800000>;
622         };
623
624         l7 {
625                 regulator-min-microvolt = <1750000>;
626                 regulator-max-microvolt = <3337000>;
627         };
628
629         l8 {
630                 regulator-min-microvolt = <1750000>;
631                 regulator-max-microvolt = <3337000>;
632         };
633
634         l9 {
635                 regulator-min-microvolt = <1750000>;
636                 regulator-max-microvolt = <3337000>;
637         };
638
639         l10 {
640                 regulator-min-microvolt = <1750000>;
641                 regulator-max-microvolt = <3337000>;
642         };
643
644         l11 {
645                 regulator-min-microvolt = <1750000>;
646                 regulator-max-microvolt = <3337000>;
647         };
648
649         l12 {
650                 regulator-min-microvolt = <1750000>;
651                 regulator-max-microvolt = <3337000>;
652         };
653
654         l13 {
655                 regulator-min-microvolt = <1750000>;
656                 regulator-max-microvolt = <3337000>;
657         };
658
659         l14 {
660                 regulator-min-microvolt = <1750000>;
661                 regulator-max-microvolt = <3337000>;
662         };
663
664         /**
665          * 1.8v required on LS expansion
666          * for mezzanine boards
667          */
668         l15 {
669                 regulator-min-microvolt = <1750000>;
670                 regulator-max-microvolt = <3337000>;
671                 regulator-always-on;
672         };
673
674         l16 {
675                 regulator-min-microvolt = <1750000>;
676                 regulator-max-microvolt = <3337000>;
677         };
678
679         l17 {
680                 regulator-min-microvolt = <3300000>;
681                 regulator-max-microvolt = <3300000>;
682         };
683
684         l18 {
685                 regulator-min-microvolt = <1750000>;
686                 regulator-max-microvolt = <3337000>;
687         };
688 };