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	soc {
3316e8e807SStephan Gerhold		sdhci@7824000 {
3416e8e807SStephan Gerhold			status = "okay";
3516e8e807SStephan Gerhold
3616e8e807SStephan Gerhold			vmmc-supply = <&pm8916_l8>;
3716e8e807SStephan Gerhold			vqmmc-supply = <&pm8916_l5>;
3816e8e807SStephan Gerhold
3916e8e807SStephan Gerhold			pinctrl-names = "default", "sleep";
4016e8e807SStephan Gerhold			pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
4116e8e807SStephan Gerhold			pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
4216e8e807SStephan Gerhold		};
4316e8e807SStephan Gerhold
4416e8e807SStephan Gerhold		sdhci@7864000 {
4516e8e807SStephan Gerhold			status = "okay";
4616e8e807SStephan Gerhold
4716e8e807SStephan Gerhold			vmmc-supply = <&pm8916_l11>;
4816e8e807SStephan Gerhold			vqmmc-supply = <&pm8916_l12>;
4916e8e807SStephan Gerhold
5016e8e807SStephan Gerhold			pinctrl-names = "default", "sleep";
5116e8e807SStephan Gerhold			pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>;
5216e8e807SStephan Gerhold			pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;
5316e8e807SStephan Gerhold
5416e8e807SStephan Gerhold			non-removable;
5516e8e807SStephan Gerhold		};
5616e8e807SStephan Gerhold
5716e8e807SStephan Gerhold		serial@78b0000 {
5816e8e807SStephan Gerhold			status = "okay";
5916e8e807SStephan Gerhold			pinctrl-names = "default", "sleep";
6016e8e807SStephan Gerhold			pinctrl-0 = <&blsp1_uart2_default>;
6116e8e807SStephan Gerhold			pinctrl-1 = <&blsp1_uart2_sleep>;
6216e8e807SStephan Gerhold		};
6316e8e807SStephan Gerhold
6416e8e807SStephan Gerhold		usb@78d9000 {
6516e8e807SStephan Gerhold			status = "okay";
6616e8e807SStephan Gerhold			dr_mode = "peripheral";
6716e8e807SStephan Gerhold			extcon = <&usb_vbus>;
6816e8e807SStephan Gerhold
6916e8e807SStephan Gerhold			hnp-disable;
7016e8e807SStephan Gerhold			srp-disable;
7116e8e807SStephan Gerhold			adp-disable;
7216e8e807SStephan Gerhold
7316e8e807SStephan Gerhold			ulpi {
7416e8e807SStephan Gerhold				phy {
7516e8e807SStephan Gerhold					extcon = <&usb_vbus>;
7616e8e807SStephan Gerhold					v1p8-supply = <&pm8916_l7>;
7716e8e807SStephan Gerhold					v3p3-supply = <&pm8916_l13>;
7816e8e807SStephan Gerhold				};
7916e8e807SStephan Gerhold			};
8016e8e807SStephan Gerhold		};
8116e8e807SStephan Gerhold
82b0e1600dSNikita Travkin		wcnss@a21b000 {
83b0e1600dSNikita Travkin			status = "okay";
84b0e1600dSNikita Travkin		};
8516e8e807SStephan Gerhold	};
8616e8e807SStephan Gerhold
8716e8e807SStephan Gerhold	// FIXME: Use extcon device provided by charger driver when available
8816e8e807SStephan Gerhold	usb_vbus: usb-vbus {
8916e8e807SStephan Gerhold		compatible = "linux,extcon-usb-gpio";
9016e8e807SStephan Gerhold		vbus-gpio = <&msmgpio 62 GPIO_ACTIVE_HIGH>;
9116e8e807SStephan Gerhold		pinctrl-names = "default";
9216e8e807SStephan Gerhold		pinctrl-0 = <&usb_vbus_default>;
9316e8e807SStephan Gerhold	};
943ba8bbc4SNikita Travkin
953ba8bbc4SNikita Travkin	gpio-keys {
963ba8bbc4SNikita Travkin		compatible = "gpio-keys";
973ba8bbc4SNikita Travkin
983ba8bbc4SNikita Travkin		pinctrl-names = "default";
993ba8bbc4SNikita Travkin		pinctrl-0 = <&gpio_keys_default>;
1003ba8bbc4SNikita Travkin
1013ba8bbc4SNikita Travkin		label = "GPIO Buttons";
1023ba8bbc4SNikita Travkin
1033ba8bbc4SNikita Travkin		volume-up {
1043ba8bbc4SNikita Travkin			label = "Volume Up";
1053ba8bbc4SNikita Travkin			gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
1063ba8bbc4SNikita Travkin			linux,code = <KEY_VOLUMEUP>;
1073ba8bbc4SNikita Travkin		};
1083ba8bbc4SNikita Travkin	};
10916e8e807SStephan Gerhold};
11016e8e807SStephan Gerhold
1113ba8bbc4SNikita Travkin&spmi_bus {
1123ba8bbc4SNikita Travkin	pm8916@0 {
1133ba8bbc4SNikita Travkin		pon@800 {
1143ba8bbc4SNikita Travkin			volume-down {
1153ba8bbc4SNikita Travkin				compatible = "qcom,pm8941-resin";
1163ba8bbc4SNikita Travkin				interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
1173ba8bbc4SNikita Travkin				bias-pull-up;
1183ba8bbc4SNikita Travkin				linux,code = <KEY_VOLUMEDOWN>;
1193ba8bbc4SNikita Travkin			};
1203ba8bbc4SNikita Travkin		};
1213ba8bbc4SNikita Travkin	};
1223ba8bbc4SNikita Travkin};
1233ba8bbc4SNikita Travkin
12416e8e807SStephan Gerhold&smd_rpm_regulators {
12516e8e807SStephan Gerhold	vdd_l1_l2_l3-supply = <&pm8916_s3>;
12616e8e807SStephan Gerhold	vdd_l4_l5_l6-supply = <&pm8916_s4>;
12716e8e807SStephan Gerhold	vdd_l7-supply = <&pm8916_s4>;
12816e8e807SStephan Gerhold
12916e8e807SStephan Gerhold	s1 {
13016e8e807SStephan Gerhold		regulator-min-microvolt = <500000>;
13116e8e807SStephan Gerhold		regulator-max-microvolt = <1300000>;
13216e8e807SStephan Gerhold	};
13316e8e807SStephan Gerhold
13416e8e807SStephan Gerhold	s3 {
13516e8e807SStephan Gerhold		regulator-min-microvolt = <1200000>;
13616e8e807SStephan Gerhold		regulator-max-microvolt = <1300000>;
13716e8e807SStephan Gerhold	};
13816e8e807SStephan Gerhold
13916e8e807SStephan Gerhold	s4 {
14016e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
14116e8e807SStephan Gerhold		regulator-max-microvolt = <2100000>;
14216e8e807SStephan Gerhold	};
14316e8e807SStephan Gerhold
14416e8e807SStephan Gerhold	l1 {
14516e8e807SStephan Gerhold		regulator-min-microvolt = <1225000>;
14616e8e807SStephan Gerhold		regulator-max-microvolt = <1225000>;
14716e8e807SStephan Gerhold	};
14816e8e807SStephan Gerhold
14916e8e807SStephan Gerhold	l2 {
15016e8e807SStephan Gerhold		regulator-min-microvolt = <1200000>;
15116e8e807SStephan Gerhold		regulator-max-microvolt = <1200000>;
15216e8e807SStephan Gerhold	};
15316e8e807SStephan Gerhold
15416e8e807SStephan Gerhold	l3 {
15516e8e807SStephan Gerhold		regulator-min-microvolt = <500000>;
15616e8e807SStephan Gerhold		regulator-max-microvolt = <1287500>;
15716e8e807SStephan Gerhold	};
15816e8e807SStephan Gerhold
15916e8e807SStephan Gerhold	l4 {
16016e8e807SStephan Gerhold		regulator-min-microvolt = <2050000>;
16116e8e807SStephan Gerhold		regulator-max-microvolt = <2050000>;
16216e8e807SStephan Gerhold	};
16316e8e807SStephan Gerhold
16416e8e807SStephan Gerhold	l5 {
16516e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
16616e8e807SStephan Gerhold		regulator-max-microvolt = <1800000>;
16716e8e807SStephan Gerhold	};
16816e8e807SStephan Gerhold
16916e8e807SStephan Gerhold	l6 {
17016e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
17116e8e807SStephan Gerhold		regulator-max-microvolt = <1800000>;
17216e8e807SStephan Gerhold	};
17316e8e807SStephan Gerhold
17416e8e807SStephan Gerhold	l7 {
17516e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
17616e8e807SStephan Gerhold		regulator-max-microvolt = <1800000>;
17716e8e807SStephan Gerhold	};
17816e8e807SStephan Gerhold
17916e8e807SStephan Gerhold	l8 {
18016e8e807SStephan Gerhold		regulator-min-microvolt = <2850000>;
18116e8e807SStephan Gerhold		regulator-max-microvolt = <2900000>;
18216e8e807SStephan Gerhold	};
18316e8e807SStephan Gerhold
18416e8e807SStephan Gerhold	l9 {
18516e8e807SStephan Gerhold		regulator-min-microvolt = <3300000>;
18616e8e807SStephan Gerhold		regulator-max-microvolt = <3300000>;
18716e8e807SStephan Gerhold	};
18816e8e807SStephan Gerhold
18916e8e807SStephan Gerhold	l10 {
19016e8e807SStephan Gerhold		regulator-min-microvolt = <2700000>;
19116e8e807SStephan Gerhold		regulator-max-microvolt = <2800000>;
19216e8e807SStephan Gerhold	};
19316e8e807SStephan Gerhold
19416e8e807SStephan Gerhold	l11 {
19516e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
19616e8e807SStephan Gerhold		regulator-max-microvolt = <2950000>;
19716e8e807SStephan Gerhold		regulator-allow-set-load;
19816e8e807SStephan Gerhold		regulator-system-load = <200000>;
19916e8e807SStephan Gerhold	};
20016e8e807SStephan Gerhold
20116e8e807SStephan Gerhold	l12 {
20216e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
20316e8e807SStephan Gerhold		regulator-max-microvolt = <2950000>;
20416e8e807SStephan Gerhold	};
20516e8e807SStephan Gerhold
20616e8e807SStephan Gerhold	l13 {
20716e8e807SStephan Gerhold		regulator-min-microvolt = <3075000>;
20816e8e807SStephan Gerhold		regulator-max-microvolt = <3075000>;
20916e8e807SStephan Gerhold	};
21016e8e807SStephan Gerhold
21116e8e807SStephan Gerhold	l14 {
21216e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
21316e8e807SStephan Gerhold		regulator-max-microvolt = <3300000>;
21416e8e807SStephan Gerhold	};
21516e8e807SStephan Gerhold
21616e8e807SStephan Gerhold	l15 {
21716e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
21816e8e807SStephan Gerhold		regulator-max-microvolt = <3300000>;
21916e8e807SStephan Gerhold	};
22016e8e807SStephan Gerhold
22116e8e807SStephan Gerhold	l16 {
22216e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
22316e8e807SStephan Gerhold		regulator-max-microvolt = <3300000>;
22416e8e807SStephan Gerhold	};
22516e8e807SStephan Gerhold
22616e8e807SStephan Gerhold	l17 {
22716e8e807SStephan Gerhold		regulator-min-microvolt = <2850000>;
22816e8e807SStephan Gerhold		regulator-max-microvolt = <2850000>;
22916e8e807SStephan Gerhold	};
23016e8e807SStephan Gerhold
23116e8e807SStephan Gerhold	l18 {
23216e8e807SStephan Gerhold		regulator-min-microvolt = <2700000>;
23316e8e807SStephan Gerhold		regulator-max-microvolt = <2700000>;
23416e8e807SStephan Gerhold	};
23516e8e807SStephan Gerhold};
236f7f394f0SStephan Gerhold
237f7f394f0SStephan Gerhold&msmgpio {
238f7f394f0SStephan Gerhold	gpio_keys_default: gpio-keys-default {
2396554a295SStephan Gerhold		pins = "gpio107";
240f7f394f0SStephan Gerhold		function = "gpio";
2416554a295SStephan Gerhold
242f7f394f0SStephan Gerhold		drive-strength = <2>;
243f7f394f0SStephan Gerhold		bias-pull-up;
244f7f394f0SStephan Gerhold	};
245f7f394f0SStephan Gerhold
246f7f394f0SStephan Gerhold	usb_vbus_default: usb-vbus-default {
2476554a295SStephan Gerhold		pins = "gpio62";
248f7f394f0SStephan Gerhold		function = "gpio";
2496554a295SStephan Gerhold
250f7f394f0SStephan Gerhold		bias-pull-up;
251f7f394f0SStephan Gerhold	};
252f7f394f0SStephan Gerhold};
253