1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (c) 2015, The Linux Foundation. All rights reserved.
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 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
13 #include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
14 #include <dt-bindings/sound/apq8016-lpass.h>
17 model = "Qualcomm Technologies, Inc. APQ 8016 SBC";
18 compatible = "qcom,apq8016-sbc", "qcom,apq8016";
21 serial0 = &blsp1_uart2;
22 serial1 = &blsp1_uart1;
32 stdout-path = "serial0";
35 camera_vdddo_1v8: camera-vdddo-1v8 {
36 compatible = "regulator-fixed";
37 regulator-name = "camera_vdddo";
38 regulator-min-microvolt = <1800000>;
39 regulator-max-microvolt = <1800000>;
43 camera_vdda_2v8: camera-vdda-2v8 {
44 compatible = "regulator-fixed";
45 regulator-name = "camera_vdda";
46 regulator-min-microvolt = <2800000>;
47 regulator-max-microvolt = <2800000>;
51 camera_vddd_1v5: camera-vddd-1v5 {
52 compatible = "regulator-fixed";
53 regulator-name = "camera_vddd";
54 regulator-min-microvolt = <1500000>;
55 regulator-max-microvolt = <1500000>;
61 compatible = "ramoops";
62 reg = <0x0 0xbff00000 0x0 0x100000>;
64 record-size = <0x20000>;
65 console-size = <0x20000>;
66 ftrace-size = <0x20000>;
71 compatible = "smsc,usb3503";
72 reset-gpios = <&pm8916_gpios 3 GPIO_ACTIVE_LOW>;
77 compatible = "linux,extcon-usb-gpio";
78 id-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>;
79 pinctrl-names = "default";
80 pinctrl-0 = <&usb_id_default>;
84 compatible = "hdmi-connector";
89 remote-endpoint = <&adv7533_out>;
95 compatible = "gpio-keys";
98 pinctrl-names = "default";
99 pinctrl-0 = <&msm_key_volp_n_default>;
103 linux,code = <KEY_VOLUMEUP>;
104 gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
109 pinctrl-names = "default";
110 pinctrl-0 = <&msmgpio_leds>,
111 <&pm8916_gpios_leds>,
114 compatible = "gpio-leds";
117 label = "apq8016-sbc:green:user1";
118 function = LED_FUNCTION_HEARTBEAT;
119 color = <LED_COLOR_ID_GREEN>;
120 gpios = <&msmgpio 21 GPIO_ACTIVE_HIGH>;
121 linux,default-trigger = "heartbeat";
122 default-state = "off";
126 label = "apq8016-sbc:green:user2";
127 function = LED_FUNCTION_DISK_ACTIVITY;
128 color = <LED_COLOR_ID_GREEN>;
129 gpios = <&msmgpio 120 GPIO_ACTIVE_HIGH>;
130 linux,default-trigger = "mmc0";
131 default-state = "off";
135 label = "apq8016-sbc:green:user3";
136 function = LED_FUNCTION_DISK_ACTIVITY;
137 color = <LED_COLOR_ID_GREEN>;
138 gpios = <&pm8916_gpios 1 GPIO_ACTIVE_HIGH>;
139 linux,default-trigger = "mmc1";
140 default-state = "off";
144 label = "apq8016-sbc:green:user4";
145 color = <LED_COLOR_ID_GREEN>;
146 gpios = <&pm8916_gpios 2 GPIO_ACTIVE_HIGH>;
147 linux,default-trigger = "none";
149 default-state = "off";
153 label = "apq8016-sbc:yellow:wlan";
154 function = LED_FUNCTION_WLAN;
155 color = <LED_COLOR_ID_YELLOW>;
156 gpios = <&pm8916_mpps 2 GPIO_ACTIVE_HIGH>;
157 linux,default-trigger = "phy0tx";
158 default-state = "off";
162 label = "apq8016-sbc:blue:bt";
163 function = LED_FUNCTION_BLUETOOTH;
164 color = <LED_COLOR_ID_BLUE>;
165 gpios = <&pm8916_mpps 3 GPIO_ACTIVE_HIGH>;
166 linux,default-trigger = "bluetooth-power";
167 default-state = "off";
173 /* On Low speed expansion */
179 /* On High speed expansion */
183 adv_bridge: bridge@39 {
186 compatible = "adi,adv7533";
189 interrupt-parent = <&msmgpio>;
190 interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
193 clocks = <&rpmcc RPM_SMD_BB_CLK2>;
196 pd-gpios = <&msmgpio 32 GPIO_ACTIVE_HIGH>;
198 avdd-supply = <&pm8916_l6>;
199 a2vdd-supply = <&pm8916_l6>;
200 dvdd-supply = <&pm8916_l6>;
201 pvdd-supply = <&pm8916_l6>;
202 v1p2-supply = <&pm8916_l6>;
203 v3p3-supply = <&pm8916_l17>;
205 pinctrl-names = "default","sleep";
206 pinctrl-0 = <&adv7533_int_active &adv7533_switch_active>;
207 pinctrl-1 = <&adv7533_int_suspend &adv7533_switch_suspend>;
208 #sound-dai-cells = <1>;
211 #address-cells = <1>;
216 adv7533_in: endpoint {
217 remote-endpoint = <&dsi0_out>;
223 adv7533_out: endpoint {
224 remote-endpoint = <&hdmi_con>;
232 /* On Low speed expansion */
238 /* On High speed expansion */
244 /* On Low speed expansion */
264 csiphy0_ep: endpoint {
266 remote-endpoint = <&ov5640_ep>;
279 compatible = "ovti,ov5640";
282 enable-gpios = <&msmgpio 34 GPIO_ACTIVE_HIGH>;
283 reset-gpios = <&msmgpio 35 GPIO_ACTIVE_LOW>;
284 pinctrl-names = "default";
285 pinctrl-0 = <&camera_rear_default>;
287 clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
288 clock-names = "xclk";
289 clock-frequency = <23880000>;
291 DOVDD-supply = <&camera_vdddo_1v8>;
292 AVDD-supply = <&camera_vdda_2v8>;
293 DVDD-supply = <&camera_vddd_1v5>;
295 /* No camera mezzanine by default */
299 ov5640_ep: endpoint {
301 remote-endpoint = <&csiphy0_ep>;
308 data-lanes = <0 1 2 3>;
309 remote-endpoint = <&adv7533_in>;
323 firmware-name = "/*(DEBLOBBED)*/", "/*(DEBLOBBED)*/";
328 linux,code = <KEY_VOLUMEDOWN>;
334 firmware-name = "/*(DEBLOBBED)*/";
340 pinctrl-names = "default", "sleep";
341 pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
342 pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
348 pinctrl-names = "default", "sleep";
349 pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
350 pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
352 cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
358 pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>;
359 pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>;
360 pinctrl-names = "default", "sleep";
363 "AMIC2", "MIC BIAS Internal2",
364 "AMIC3", "MIC BIAS External1";
366 quaternary-dai-link {
367 link-name = "ADV7533";
369 sound-dai = <&lpass MI2S_QUATERNARY>;
372 sound-dai = <&adv_bridge 0>;
379 sound-dai = <&lpass MI2S_PRIMARY>;
382 sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
387 link-name = "WCD-Capture";
389 sound-dai = <&lpass MI2S_TERTIARY>;
392 sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
399 extcon = <&usb_id>, <&usb_id>;
401 pinctrl-names = "default", "device";
402 pinctrl-0 = <&usb_sw_sel_pm &usb_hub_reset_pm>;
403 pinctrl-1 = <&usb_sw_sel_pm_device &usb_hub_reset_pm_device>;
411 clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
412 clock-names = "mclk";
413 qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
414 qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
418 firmware-name = "/*(DEBLOBBED)*/";
421 /* Enable CoreSight */
422 &cti0 { status = "okay"; };
423 &cti1 { status = "okay"; };
424 &cti12 { status = "okay"; };
425 &cti13 { status = "okay"; };
426 &cti14 { status = "okay"; };
427 &cti15 { status = "okay"; };
428 &debug0 { status = "okay"; };
429 &debug1 { status = "okay"; };
430 &debug2 { status = "okay"; };
431 &debug3 { status = "okay"; };
432 &etf { status = "okay"; };
433 &etm0 { status = "okay"; };
434 &etm1 { status = "okay"; };
435 &etm2 { status = "okay"; };
436 &etm3 { status = "okay"; };
437 &etr { status = "okay"; };
438 &funnel0 { status = "okay"; };
439 &funnel1 { status = "okay"; };
440 &replicator { status = "okay"; };
441 &stm { status = "okay"; };
442 &tpiu { status = "okay"; };
444 &smd_rpm_regulators {
445 vdd_l1_l2_l3-supply = <&pm8916_s3>;
446 vdd_l4_l5_l6-supply = <&pm8916_s4>;
447 vdd_l7-supply = <&pm8916_s4>;
450 regulator-min-microvolt = <1250000>;
451 regulator-max-microvolt = <1350000>;
455 regulator-min-microvolt = <1850000>;
456 regulator-max-microvolt = <2150000>;
463 regulator-min-microvolt = <1225000>;
464 regulator-max-microvolt = <1225000>;
468 regulator-min-microvolt = <1200000>;
469 regulator-max-microvolt = <1200000>;
473 regulator-min-microvolt = <2050000>;
474 regulator-max-microvolt = <2050000>;
478 regulator-min-microvolt = <1800000>;
479 regulator-max-microvolt = <1800000>;
483 regulator-min-microvolt = <1800000>;
484 regulator-max-microvolt = <1800000>;
488 regulator-min-microvolt = <1800000>;
489 regulator-max-microvolt = <1800000>;
493 regulator-min-microvolt = <2900000>;
494 regulator-max-microvolt = <2900000>;
498 regulator-min-microvolt = <3300000>;
499 regulator-max-microvolt = <3300000>;
503 regulator-min-microvolt = <2800000>;
504 regulator-max-microvolt = <2800000>;
508 regulator-min-microvolt = <2950000>;
509 regulator-max-microvolt = <2950000>;
510 regulator-allow-set-load;
511 regulator-system-load = <200000>;
515 regulator-min-microvolt = <1800000>;
516 regulator-max-microvolt = <2950000>;
520 regulator-min-microvolt = <3075000>;
521 regulator-max-microvolt = <3075000>;
525 regulator-min-microvolt = <1800000>;
526 regulator-max-microvolt = <3300000>;
530 * The 96Boards specification expects a 1.8V power rail on the low-speed
531 * expansion connector that is able to provide at least 0.18W / 100 mA.
532 * L15/L16 are connected in parallel to provide 55 mA each. A minimum load
533 * must be specified to ensure the regulators are not put in LPM where they
534 * would only provide 5 mA.
537 regulator-min-microvolt = <1800000>;
538 regulator-max-microvolt = <1800000>;
539 regulator-system-load = <50000>;
540 regulator-allow-set-load;
545 regulator-min-microvolt = <1800000>;
546 regulator-max-microvolt = <1800000>;
547 regulator-system-load = <50000>;
548 regulator-allow-set-load;
553 regulator-min-microvolt = <3300000>;
554 regulator-max-microvolt = <3300000>;
558 regulator-min-microvolt = <2700000>;
559 regulator-max-microvolt = <2700000>;
564 * 2mA drive strength is not enough when connecting multiple
565 * I2C devices with different pull up resistors.
568 drive-strength = <16>;
572 drive-strength = <16>;
576 drive-strength = <16>;
580 * GPIO name legend: proper name = the GPIO line is used as GPIO
581 * NC = not connected (pin out but not routed from the chip to
582 * anything the board)
583 * "[PER]" = pin is muxed for [peripheral] (not GPIO)
584 * LSEC = Low Speed External Connector
585 * HSEC = High Speed External Connector
587 * Line names are taken from the schematic "DragonBoard410c"
588 * dated monday, august 31, 2015. Page 5 in particular.
590 * For the lines routed to the external connectors the
591 * lines are named after the 96Boards CE Specification 1.0,
592 * Appendix "Expansion Connector Signal Description".
594 * When the 96Board naming of a line and the schematic name of
595 * the same line are in conflict, the 96Board specification
596 * takes precedence, which means that the external UART on the
597 * LSEC is named UART0 while the schematic and SoC names this
598 * UART3. This is only for the informational lines i.e. "[FOO]",
599 * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only
600 * ones actually used for GPIO.
605 "[UART0_TX]", /* GPIO_0, LSEC pin 5 */
606 "[UART0_RX]", /* GPIO_1, LSEC pin 7 */
607 "[UART0_CTS_N]", /* GPIO_2, LSEC pin 3 */
608 "[UART0_RTS_N]", /* GPIO_3, LSEC pin 9 */
609 "[UART1_TX]", /* GPIO_4, LSEC pin 11 */
610 "[UART1_RX]", /* GPIO_5, LSEC pin 13 */
611 "[I2C0_SDA]", /* GPIO_8, LSEC pin 17 */
612 "[I2C0_SCL]", /* GPIO_7, LSEC pin 15 */
613 "[SPI1_DOUT]", /* SPI1_MOSI, HSEC pin 1 */
614 "[SPI1_DIN]", /* SPI1_MISO, HSEC pin 11 */
615 "[SPI1_CS]", /* SPI1_CS_N, HSEC pin 7 */
616 "[SPI1_SCLK]", /* SPI1_CLK, HSEC pin 9 */
617 "GPIO-B", /* LS_EXP_GPIO_B, LSEC pin 24 */
618 "GPIO-C", /* LS_EXP_GPIO_C, LSEC pin 25 */
619 "[I2C3_SDA]", /* HSEC pin 38 */
620 "[I2C3_SCL]", /* HSEC pin 36 */
621 "[SPI0_MOSI]", /* LSEC pin 14 */
622 "[SPI0_MISO]", /* LSEC pin 10 */
623 "[SPI0_CS_N]", /* LSEC pin 12 */
624 "[SPI0_CLK]", /* LSEC pin 8 */
625 "HDMI_HPD_N", /* GPIO 20 */
627 "[I2C1_SDA]", /* GPIO_22, LSEC pin 21 */
628 "[I2C1_SCL]", /* GPIO_23, LSEC pin 19 */
629 "GPIO-G", /* LS_EXP_GPIO_G, LSEC pin 29 */
630 "GPIO-H", /* LS_EXP_GPIO_H, LSEC pin 30 */
631 "[CSI0_MCLK]", /* HSEC pin 15 */
632 "[CSI1_MCLK]", /* HSEC pin 17 */
633 "GPIO-K", /* LS_EXP_GPIO_K, LSEC pin 33 */
634 "[I2C2_SDA]", /* HSEC pin 34 */
635 "[I2C2_SCL]", /* HSEC pin 32 */
638 "GPIO-L", /* LS_EXP_GPIO_L, LSEC pin 34 */
639 "GPIO-J", /* LS_EXP_GPIO_J, LSEC pin 32 */
640 "GPIO-I", /* LS_EXP_GPIO_I, LSEC pin 31 */
641 "GPIO-A", /* LS_EXP_GPIO_A, LSEC pin 23 */
645 "[WCSS_WLAN_DATA_2]", /* GPIO 40 */
646 "[WCSS_WLAN_DATA_1]",
647 "[WCSS_WLAN_DATA_0]",
674 "GPIO-D", /* LS_EXP_GPIO_D, LSEC pin 26 */
685 "BOOT_CONFIG_0", /* GPIO 80 */
715 "[LS_EXP_MI2S_WS]", /* GPIO 110 */
719 "[LS_EXP_MI2S_DATA0]",
720 "GPIO-E", /* LS_EXP_GPIO_E, LSEC pin 27 */
722 "[DSI2HDMI_MI2S_WS]",
723 "[DSI2HDMI_MI2S_SCK]",
724 "[DSI2HDMI_MI2S_DATA0]",
725 "USR_LED_2_CTRL", /* GPIO 120 */
728 msmgpio_leds: msmgpio-leds {
729 pins = "gpio21", "gpio120";
735 usb_id_default: usb-id-default {
739 drive-strength = <8>;
744 adv7533_int_active: adv533-int-active {
748 drive-strength = <16>;
752 adv7533_int_suspend: adv7533-int-suspend {
756 drive-strength = <2>;
760 adv7533_switch_active: adv7533-switch-active {
764 drive-strength = <16>;
768 adv7533_switch_suspend: adv7533-switch-suspend {
772 drive-strength = <2>;
776 msm_key_volp_n_default: msm-key-volp-n-default {
780 drive-strength = <8>;
790 "USB_HUB_RESET_N_PM",
793 usb_hub_reset_pm: usb-hub-reset-pm-state {
795 function = PMIC_GPIO_FUNC_NORMAL;
801 usb_hub_reset_pm_device: usb-hub-reset-pm-device-state {
803 function = PMIC_GPIO_FUNC_NORMAL;
808 usb_sw_sel_pm: usb-sw-sel-pm-state {
810 function = PMIC_GPIO_FUNC_NORMAL;
812 power-source = <PM8916_GPIO_VPH>;
817 usb_sw_sel_pm_device: usb-sw-sel-pm-device-state {
819 function = PMIC_GPIO_FUNC_NORMAL;
821 power-source = <PM8916_GPIO_VPH>;
826 pm8916_gpios_leds: pm8916-gpios-leds-state {
827 pins = "gpio1", "gpio2";
828 function = PMIC_GPIO_FUNC_NORMAL;
839 "GPIO-F"; /* LS_EXP_GPIO_F, LSEC pin 28 */
841 pinctrl-names = "default";
842 pinctrl-0 = <&ls_exp_gpio_f>;
844 ls_exp_gpio_f: pm8916-mpp4-state {
846 function = "digital";
849 power-source = <PM8916_MPP_L5>; // 1.8V
852 pm8916_mpps_leds: pm8916-mpps-state {
853 pins = "mpp2", "mpp3";
854 function = "digital";