116e8e807SStephan Gerhold// SPDX-License-Identifier: GPL-2.0-only
216e8e807SStephan Gerhold
316e8e807SStephan Gerhold/dts-v1/;
416e8e807SStephan Gerhold
516e8e807SStephan Gerhold#include "msm8916.dtsi"
616e8e807SStephan Gerhold#include "pm8916.dtsi"
716e8e807SStephan Gerhold#include <dt-bindings/gpio/gpio.h>
83ba8bbc4SNikita Travkin#include <dt-bindings/input/input.h>
916e8e807SStephan Gerhold
1016e8e807SStephan Gerhold/ {
1116e8e807SStephan Gerhold	model = "Longcheer L8150";
1216e8e807SStephan Gerhold	compatible = "longcheer,l8150", "qcom,msm8916-v1-qrd/9-v1", "qcom,msm8916";
1316e8e807SStephan Gerhold
1416e8e807SStephan Gerhold	aliases {
1516e8e807SStephan Gerhold		serial0 = &blsp1_uart2;
1616e8e807SStephan Gerhold	};
1716e8e807SStephan Gerhold
1816e8e807SStephan Gerhold	chosen {
1916e8e807SStephan Gerhold		stdout-path = "serial0";
2016e8e807SStephan Gerhold	};
2116e8e807SStephan Gerhold
22b0e1600dSNikita Travkin	reserved-memory {
23b0e1600dSNikita Travkin		// wcnss.mdt is not relocatable, so it must be loaded at 0x8b600000
24b0e1600dSNikita Travkin		/delete-node/ wcnss@89300000;
25b0e1600dSNikita Travkin
26b0e1600dSNikita Travkin		wcnss_mem: wcnss@8b600000 {
27b0e1600dSNikita Travkin			reg = <0x0 0x8b600000 0x0 0x600000>;
28b0e1600dSNikita Travkin			no-map;
29b0e1600dSNikita Travkin		};
30b0e1600dSNikita Travkin	};
31b0e1600dSNikita Travkin
3216e8e807SStephan Gerhold	// FIXME: Use extcon device provided by charger driver when available
3316e8e807SStephan Gerhold	usb_vbus: usb-vbus {
3416e8e807SStephan Gerhold		compatible = "linux,extcon-usb-gpio";
3516e8e807SStephan Gerhold		vbus-gpio = <&msmgpio 62 GPIO_ACTIVE_HIGH>;
3616e8e807SStephan Gerhold		pinctrl-names = "default";
3716e8e807SStephan Gerhold		pinctrl-0 = <&usb_vbus_default>;
3816e8e807SStephan Gerhold	};
393ba8bbc4SNikita Travkin
403ba8bbc4SNikita Travkin	gpio-keys {
413ba8bbc4SNikita Travkin		compatible = "gpio-keys";
423ba8bbc4SNikita Travkin
433ba8bbc4SNikita Travkin		pinctrl-names = "default";
443ba8bbc4SNikita Travkin		pinctrl-0 = <&gpio_keys_default>;
453ba8bbc4SNikita Travkin
463ba8bbc4SNikita Travkin		label = "GPIO Buttons";
473ba8bbc4SNikita Travkin
483ba8bbc4SNikita Travkin		volume-up {
493ba8bbc4SNikita Travkin			label = "Volume Up";
503ba8bbc4SNikita Travkin			gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
513ba8bbc4SNikita Travkin			linux,code = <KEY_VOLUMEUP>;
523ba8bbc4SNikita Travkin		};
533ba8bbc4SNikita Travkin	};
5416e8e807SStephan Gerhold};
5516e8e807SStephan Gerhold
56e2f6482aSStephan Gerhold&blsp1_uart2 {
57e2f6482aSStephan Gerhold	status = "okay";
58e2f6482aSStephan Gerhold
59e2f6482aSStephan Gerhold	pinctrl-names = "default", "sleep";
60e2f6482aSStephan Gerhold	pinctrl-0 = <&blsp1_uart2_default>;
61e2f6482aSStephan Gerhold	pinctrl-1 = <&blsp1_uart2_sleep>;
62e2f6482aSStephan Gerhold};
63e2f6482aSStephan Gerhold
644eb7b63dSStephan Gerhold&pm8916_resin {
654eb7b63dSStephan Gerhold	status = "okay";
664eb7b63dSStephan Gerhold	linux,code = <KEY_VOLUMEDOWN>;
674eb7b63dSStephan Gerhold};
684eb7b63dSStephan Gerhold
69e2f6482aSStephan Gerhold&pronto {
70e2f6482aSStephan Gerhold	status = "okay";
71e2f6482aSStephan Gerhold};
72e2f6482aSStephan Gerhold
73e2f6482aSStephan Gerhold&sdhc_1 {
74e2f6482aSStephan Gerhold	status = "okay";
75e2f6482aSStephan Gerhold
76e2f6482aSStephan Gerhold	vmmc-supply = <&pm8916_l8>;
77e2f6482aSStephan Gerhold	vqmmc-supply = <&pm8916_l5>;
78e2f6482aSStephan Gerhold
79e2f6482aSStephan Gerhold	pinctrl-names = "default", "sleep";
80e2f6482aSStephan Gerhold	pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
81e2f6482aSStephan Gerhold	pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
82e2f6482aSStephan Gerhold};
83e2f6482aSStephan Gerhold
84e2f6482aSStephan Gerhold&sdhc_2 {
85e2f6482aSStephan Gerhold	status = "okay";
86e2f6482aSStephan Gerhold
87e2f6482aSStephan Gerhold	vmmc-supply = <&pm8916_l11>;
88e2f6482aSStephan Gerhold	vqmmc-supply = <&pm8916_l12>;
89e2f6482aSStephan Gerhold
90e2f6482aSStephan Gerhold	pinctrl-names = "default", "sleep";
91e2f6482aSStephan Gerhold	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>;
92e2f6482aSStephan Gerhold	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;
93e2f6482aSStephan Gerhold
94e2f6482aSStephan Gerhold	non-removable;
95e2f6482aSStephan Gerhold};
96e2f6482aSStephan Gerhold
97e2f6482aSStephan Gerhold&usb {
98e2f6482aSStephan Gerhold	status = "okay";
99e2f6482aSStephan Gerhold	dr_mode = "peripheral";
100e2f6482aSStephan Gerhold	extcon = <&usb_vbus>;
101e2f6482aSStephan Gerhold
102e2f6482aSStephan Gerhold	hnp-disable;
103e2f6482aSStephan Gerhold	srp-disable;
104e2f6482aSStephan Gerhold	adp-disable;
105e2f6482aSStephan Gerhold};
106e2f6482aSStephan Gerhold
107e2f6482aSStephan Gerhold&usb_hs_phy {
108e2f6482aSStephan Gerhold	extcon = <&usb_vbus>;
109e2f6482aSStephan Gerhold	v1p8-supply = <&pm8916_l7>;
110e2f6482aSStephan Gerhold	v3p3-supply = <&pm8916_l13>;
111e2f6482aSStephan Gerhold};
112e2f6482aSStephan Gerhold
11316e8e807SStephan Gerhold&smd_rpm_regulators {
11416e8e807SStephan Gerhold	vdd_l1_l2_l3-supply = <&pm8916_s3>;
11516e8e807SStephan Gerhold	vdd_l4_l5_l6-supply = <&pm8916_s4>;
11616e8e807SStephan Gerhold	vdd_l7-supply = <&pm8916_s4>;
11716e8e807SStephan Gerhold
11816e8e807SStephan Gerhold	s1 {
11916e8e807SStephan Gerhold		regulator-min-microvolt = <500000>;
12016e8e807SStephan Gerhold		regulator-max-microvolt = <1300000>;
12116e8e807SStephan Gerhold	};
12216e8e807SStephan Gerhold
12316e8e807SStephan Gerhold	s3 {
12416e8e807SStephan Gerhold		regulator-min-microvolt = <1200000>;
12516e8e807SStephan Gerhold		regulator-max-microvolt = <1300000>;
12616e8e807SStephan Gerhold	};
12716e8e807SStephan Gerhold
12816e8e807SStephan Gerhold	s4 {
12916e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
13016e8e807SStephan Gerhold		regulator-max-microvolt = <2100000>;
13116e8e807SStephan Gerhold	};
13216e8e807SStephan Gerhold
13316e8e807SStephan Gerhold	l1 {
13416e8e807SStephan Gerhold		regulator-min-microvolt = <1225000>;
13516e8e807SStephan Gerhold		regulator-max-microvolt = <1225000>;
13616e8e807SStephan Gerhold	};
13716e8e807SStephan Gerhold
13816e8e807SStephan Gerhold	l2 {
13916e8e807SStephan Gerhold		regulator-min-microvolt = <1200000>;
14016e8e807SStephan Gerhold		regulator-max-microvolt = <1200000>;
14116e8e807SStephan Gerhold	};
14216e8e807SStephan Gerhold
14316e8e807SStephan Gerhold	l3 {
14416e8e807SStephan Gerhold		regulator-min-microvolt = <500000>;
14516e8e807SStephan Gerhold		regulator-max-microvolt = <1287500>;
14616e8e807SStephan Gerhold	};
14716e8e807SStephan Gerhold
14816e8e807SStephan Gerhold	l4 {
14916e8e807SStephan Gerhold		regulator-min-microvolt = <2050000>;
15016e8e807SStephan Gerhold		regulator-max-microvolt = <2050000>;
15116e8e807SStephan Gerhold	};
15216e8e807SStephan Gerhold
15316e8e807SStephan Gerhold	l5 {
15416e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
15516e8e807SStephan Gerhold		regulator-max-microvolt = <1800000>;
15616e8e807SStephan Gerhold	};
15716e8e807SStephan Gerhold
15816e8e807SStephan Gerhold	l6 {
15916e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
16016e8e807SStephan Gerhold		regulator-max-microvolt = <1800000>;
16116e8e807SStephan Gerhold	};
16216e8e807SStephan Gerhold
16316e8e807SStephan Gerhold	l7 {
16416e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
16516e8e807SStephan Gerhold		regulator-max-microvolt = <1800000>;
16616e8e807SStephan Gerhold	};
16716e8e807SStephan Gerhold
16816e8e807SStephan Gerhold	l8 {
16916e8e807SStephan Gerhold		regulator-min-microvolt = <2850000>;
17016e8e807SStephan Gerhold		regulator-max-microvolt = <2900000>;
17116e8e807SStephan Gerhold	};
17216e8e807SStephan Gerhold
17316e8e807SStephan Gerhold	l9 {
17416e8e807SStephan Gerhold		regulator-min-microvolt = <3300000>;
17516e8e807SStephan Gerhold		regulator-max-microvolt = <3300000>;
17616e8e807SStephan Gerhold	};
17716e8e807SStephan Gerhold
17816e8e807SStephan Gerhold	l10 {
17916e8e807SStephan Gerhold		regulator-min-microvolt = <2700000>;
18016e8e807SStephan Gerhold		regulator-max-microvolt = <2800000>;
18116e8e807SStephan Gerhold	};
18216e8e807SStephan Gerhold
18316e8e807SStephan Gerhold	l11 {
18416e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
18516e8e807SStephan Gerhold		regulator-max-microvolt = <2950000>;
18616e8e807SStephan Gerhold		regulator-allow-set-load;
18716e8e807SStephan Gerhold		regulator-system-load = <200000>;
18816e8e807SStephan Gerhold	};
18916e8e807SStephan Gerhold
19016e8e807SStephan Gerhold	l12 {
19116e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
19216e8e807SStephan Gerhold		regulator-max-microvolt = <2950000>;
19316e8e807SStephan Gerhold	};
19416e8e807SStephan Gerhold
19516e8e807SStephan Gerhold	l13 {
19616e8e807SStephan Gerhold		regulator-min-microvolt = <3075000>;
19716e8e807SStephan Gerhold		regulator-max-microvolt = <3075000>;
19816e8e807SStephan Gerhold	};
19916e8e807SStephan Gerhold
20016e8e807SStephan Gerhold	l14 {
20116e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
20216e8e807SStephan Gerhold		regulator-max-microvolt = <3300000>;
20316e8e807SStephan Gerhold	};
20416e8e807SStephan Gerhold
20516e8e807SStephan Gerhold	l15 {
20616e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
20716e8e807SStephan Gerhold		regulator-max-microvolt = <3300000>;
20816e8e807SStephan Gerhold	};
20916e8e807SStephan Gerhold
21016e8e807SStephan Gerhold	l16 {
21116e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
21216e8e807SStephan Gerhold		regulator-max-microvolt = <3300000>;
21316e8e807SStephan Gerhold	};
21416e8e807SStephan Gerhold
21516e8e807SStephan Gerhold	l17 {
21616e8e807SStephan Gerhold		regulator-min-microvolt = <2850000>;
21716e8e807SStephan Gerhold		regulator-max-microvolt = <2850000>;
21816e8e807SStephan Gerhold	};
21916e8e807SStephan Gerhold
22016e8e807SStephan Gerhold	l18 {
22116e8e807SStephan Gerhold		regulator-min-microvolt = <2700000>;
22216e8e807SStephan Gerhold		regulator-max-microvolt = <2700000>;
22316e8e807SStephan Gerhold	};
22416e8e807SStephan Gerhold};
225f7f394f0SStephan Gerhold
226f7f394f0SStephan Gerhold&msmgpio {
227f7f394f0SStephan Gerhold	gpio_keys_default: gpio-keys-default {
2286554a295SStephan Gerhold		pins = "gpio107";
229f7f394f0SStephan Gerhold		function = "gpio";
2306554a295SStephan Gerhold
231f7f394f0SStephan Gerhold		drive-strength = <2>;
232f7f394f0SStephan Gerhold		bias-pull-up;
233f7f394f0SStephan Gerhold	};
234f7f394f0SStephan Gerhold
235f7f394f0SStephan Gerhold	usb_vbus_default: usb-vbus-default {
2366554a295SStephan Gerhold		pins = "gpio62";
237f7f394f0SStephan Gerhold		function = "gpio";
2386554a295SStephan Gerhold
239f7f394f0SStephan Gerhold		bias-pull-up;
240f7f394f0SStephan Gerhold	};
241f7f394f0SStephan Gerhold};
242