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
64e2f6482aSStephan Gerhold&pronto {
65e2f6482aSStephan Gerhold	status = "okay";
66e2f6482aSStephan Gerhold};
67e2f6482aSStephan Gerhold
68e2f6482aSStephan Gerhold&sdhc_1 {
69e2f6482aSStephan Gerhold	status = "okay";
70e2f6482aSStephan Gerhold
71e2f6482aSStephan Gerhold	vmmc-supply = <&pm8916_l8>;
72e2f6482aSStephan Gerhold	vqmmc-supply = <&pm8916_l5>;
73e2f6482aSStephan Gerhold
74e2f6482aSStephan Gerhold	pinctrl-names = "default", "sleep";
75e2f6482aSStephan Gerhold	pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
76e2f6482aSStephan Gerhold	pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
77e2f6482aSStephan Gerhold};
78e2f6482aSStephan Gerhold
79e2f6482aSStephan Gerhold&sdhc_2 {
80e2f6482aSStephan Gerhold	status = "okay";
81e2f6482aSStephan Gerhold
82e2f6482aSStephan Gerhold	vmmc-supply = <&pm8916_l11>;
83e2f6482aSStephan Gerhold	vqmmc-supply = <&pm8916_l12>;
84e2f6482aSStephan Gerhold
85e2f6482aSStephan Gerhold	pinctrl-names = "default", "sleep";
86e2f6482aSStephan Gerhold	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>;
87e2f6482aSStephan Gerhold	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;
88e2f6482aSStephan Gerhold
89e2f6482aSStephan Gerhold	non-removable;
90e2f6482aSStephan Gerhold};
91e2f6482aSStephan Gerhold
923ba8bbc4SNikita Travkin&spmi_bus {
933ba8bbc4SNikita Travkin	pm8916@0 {
943ba8bbc4SNikita Travkin		pon@800 {
953ba8bbc4SNikita Travkin			volume-down {
963ba8bbc4SNikita Travkin				compatible = "qcom,pm8941-resin";
973ba8bbc4SNikita Travkin				interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
983ba8bbc4SNikita Travkin				bias-pull-up;
993ba8bbc4SNikita Travkin				linux,code = <KEY_VOLUMEDOWN>;
1003ba8bbc4SNikita Travkin			};
1013ba8bbc4SNikita Travkin		};
1023ba8bbc4SNikita Travkin	};
1033ba8bbc4SNikita Travkin};
1043ba8bbc4SNikita Travkin
105e2f6482aSStephan Gerhold&usb {
106e2f6482aSStephan Gerhold	status = "okay";
107e2f6482aSStephan Gerhold	dr_mode = "peripheral";
108e2f6482aSStephan Gerhold	extcon = <&usb_vbus>;
109e2f6482aSStephan Gerhold
110e2f6482aSStephan Gerhold	hnp-disable;
111e2f6482aSStephan Gerhold	srp-disable;
112e2f6482aSStephan Gerhold	adp-disable;
113e2f6482aSStephan Gerhold};
114e2f6482aSStephan Gerhold
115e2f6482aSStephan Gerhold&usb_hs_phy {
116e2f6482aSStephan Gerhold	extcon = <&usb_vbus>;
117e2f6482aSStephan Gerhold	v1p8-supply = <&pm8916_l7>;
118e2f6482aSStephan Gerhold	v3p3-supply = <&pm8916_l13>;
119e2f6482aSStephan Gerhold};
120e2f6482aSStephan Gerhold
12116e8e807SStephan Gerhold&smd_rpm_regulators {
12216e8e807SStephan Gerhold	vdd_l1_l2_l3-supply = <&pm8916_s3>;
12316e8e807SStephan Gerhold	vdd_l4_l5_l6-supply = <&pm8916_s4>;
12416e8e807SStephan Gerhold	vdd_l7-supply = <&pm8916_s4>;
12516e8e807SStephan Gerhold
12616e8e807SStephan Gerhold	s1 {
12716e8e807SStephan Gerhold		regulator-min-microvolt = <500000>;
12816e8e807SStephan Gerhold		regulator-max-microvolt = <1300000>;
12916e8e807SStephan Gerhold	};
13016e8e807SStephan Gerhold
13116e8e807SStephan Gerhold	s3 {
13216e8e807SStephan Gerhold		regulator-min-microvolt = <1200000>;
13316e8e807SStephan Gerhold		regulator-max-microvolt = <1300000>;
13416e8e807SStephan Gerhold	};
13516e8e807SStephan Gerhold
13616e8e807SStephan Gerhold	s4 {
13716e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
13816e8e807SStephan Gerhold		regulator-max-microvolt = <2100000>;
13916e8e807SStephan Gerhold	};
14016e8e807SStephan Gerhold
14116e8e807SStephan Gerhold	l1 {
14216e8e807SStephan Gerhold		regulator-min-microvolt = <1225000>;
14316e8e807SStephan Gerhold		regulator-max-microvolt = <1225000>;
14416e8e807SStephan Gerhold	};
14516e8e807SStephan Gerhold
14616e8e807SStephan Gerhold	l2 {
14716e8e807SStephan Gerhold		regulator-min-microvolt = <1200000>;
14816e8e807SStephan Gerhold		regulator-max-microvolt = <1200000>;
14916e8e807SStephan Gerhold	};
15016e8e807SStephan Gerhold
15116e8e807SStephan Gerhold	l3 {
15216e8e807SStephan Gerhold		regulator-min-microvolt = <500000>;
15316e8e807SStephan Gerhold		regulator-max-microvolt = <1287500>;
15416e8e807SStephan Gerhold	};
15516e8e807SStephan Gerhold
15616e8e807SStephan Gerhold	l4 {
15716e8e807SStephan Gerhold		regulator-min-microvolt = <2050000>;
15816e8e807SStephan Gerhold		regulator-max-microvolt = <2050000>;
15916e8e807SStephan Gerhold	};
16016e8e807SStephan Gerhold
16116e8e807SStephan Gerhold	l5 {
16216e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
16316e8e807SStephan Gerhold		regulator-max-microvolt = <1800000>;
16416e8e807SStephan Gerhold	};
16516e8e807SStephan Gerhold
16616e8e807SStephan Gerhold	l6 {
16716e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
16816e8e807SStephan Gerhold		regulator-max-microvolt = <1800000>;
16916e8e807SStephan Gerhold	};
17016e8e807SStephan Gerhold
17116e8e807SStephan Gerhold	l7 {
17216e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
17316e8e807SStephan Gerhold		regulator-max-microvolt = <1800000>;
17416e8e807SStephan Gerhold	};
17516e8e807SStephan Gerhold
17616e8e807SStephan Gerhold	l8 {
17716e8e807SStephan Gerhold		regulator-min-microvolt = <2850000>;
17816e8e807SStephan Gerhold		regulator-max-microvolt = <2900000>;
17916e8e807SStephan Gerhold	};
18016e8e807SStephan Gerhold
18116e8e807SStephan Gerhold	l9 {
18216e8e807SStephan Gerhold		regulator-min-microvolt = <3300000>;
18316e8e807SStephan Gerhold		regulator-max-microvolt = <3300000>;
18416e8e807SStephan Gerhold	};
18516e8e807SStephan Gerhold
18616e8e807SStephan Gerhold	l10 {
18716e8e807SStephan Gerhold		regulator-min-microvolt = <2700000>;
18816e8e807SStephan Gerhold		regulator-max-microvolt = <2800000>;
18916e8e807SStephan Gerhold	};
19016e8e807SStephan Gerhold
19116e8e807SStephan Gerhold	l11 {
19216e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
19316e8e807SStephan Gerhold		regulator-max-microvolt = <2950000>;
19416e8e807SStephan Gerhold		regulator-allow-set-load;
19516e8e807SStephan Gerhold		regulator-system-load = <200000>;
19616e8e807SStephan Gerhold	};
19716e8e807SStephan Gerhold
19816e8e807SStephan Gerhold	l12 {
19916e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
20016e8e807SStephan Gerhold		regulator-max-microvolt = <2950000>;
20116e8e807SStephan Gerhold	};
20216e8e807SStephan Gerhold
20316e8e807SStephan Gerhold	l13 {
20416e8e807SStephan Gerhold		regulator-min-microvolt = <3075000>;
20516e8e807SStephan Gerhold		regulator-max-microvolt = <3075000>;
20616e8e807SStephan Gerhold	};
20716e8e807SStephan Gerhold
20816e8e807SStephan Gerhold	l14 {
20916e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
21016e8e807SStephan Gerhold		regulator-max-microvolt = <3300000>;
21116e8e807SStephan Gerhold	};
21216e8e807SStephan Gerhold
21316e8e807SStephan Gerhold	l15 {
21416e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
21516e8e807SStephan Gerhold		regulator-max-microvolt = <3300000>;
21616e8e807SStephan Gerhold	};
21716e8e807SStephan Gerhold
21816e8e807SStephan Gerhold	l16 {
21916e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
22016e8e807SStephan Gerhold		regulator-max-microvolt = <3300000>;
22116e8e807SStephan Gerhold	};
22216e8e807SStephan Gerhold
22316e8e807SStephan Gerhold	l17 {
22416e8e807SStephan Gerhold		regulator-min-microvolt = <2850000>;
22516e8e807SStephan Gerhold		regulator-max-microvolt = <2850000>;
22616e8e807SStephan Gerhold	};
22716e8e807SStephan Gerhold
22816e8e807SStephan Gerhold	l18 {
22916e8e807SStephan Gerhold		regulator-min-microvolt = <2700000>;
23016e8e807SStephan Gerhold		regulator-max-microvolt = <2700000>;
23116e8e807SStephan Gerhold	};
23216e8e807SStephan Gerhold};
233f7f394f0SStephan Gerhold
234f7f394f0SStephan Gerhold&msmgpio {
235f7f394f0SStephan Gerhold	gpio_keys_default: gpio-keys-default {
2366554a295SStephan Gerhold		pins = "gpio107";
237f7f394f0SStephan Gerhold		function = "gpio";
2386554a295SStephan Gerhold
239f7f394f0SStephan Gerhold		drive-strength = <2>;
240f7f394f0SStephan Gerhold		bias-pull-up;
241f7f394f0SStephan Gerhold	};
242f7f394f0SStephan Gerhold
243f7f394f0SStephan Gerhold	usb_vbus_default: usb-vbus-default {
2446554a295SStephan Gerhold		pins = "gpio62";
245f7f394f0SStephan Gerhold		function = "gpio";
2466554a295SStephan Gerhold
247f7f394f0SStephan Gerhold		bias-pull-up;
248f7f394f0SStephan Gerhold	};
249f7f394f0SStephan Gerhold};
250