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>
816e8e807SStephan Gerhold
916e8e807SStephan Gerhold/ {
1016e8e807SStephan Gerhold	model = "Longcheer L8150";
1116e8e807SStephan Gerhold	compatible = "longcheer,l8150", "qcom,msm8916-v1-qrd/9-v1", "qcom,msm8916";
1216e8e807SStephan Gerhold
1316e8e807SStephan Gerhold	aliases {
1416e8e807SStephan Gerhold		serial0 = &blsp1_uart2;
1516e8e807SStephan Gerhold	};
1616e8e807SStephan Gerhold
1716e8e807SStephan Gerhold	chosen {
1816e8e807SStephan Gerhold		stdout-path = "serial0";
1916e8e807SStephan Gerhold	};
2016e8e807SStephan Gerhold
2116e8e807SStephan Gerhold	soc {
2216e8e807SStephan Gerhold		sdhci@7824000 {
2316e8e807SStephan Gerhold			status = "okay";
2416e8e807SStephan Gerhold
2516e8e807SStephan Gerhold			vmmc-supply = <&pm8916_l8>;
2616e8e807SStephan Gerhold			vqmmc-supply = <&pm8916_l5>;
2716e8e807SStephan Gerhold
2816e8e807SStephan Gerhold			pinctrl-names = "default", "sleep";
2916e8e807SStephan Gerhold			pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
3016e8e807SStephan Gerhold			pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
3116e8e807SStephan Gerhold		};
3216e8e807SStephan Gerhold
3316e8e807SStephan Gerhold		sdhci@7864000 {
3416e8e807SStephan Gerhold			status = "okay";
3516e8e807SStephan Gerhold
3616e8e807SStephan Gerhold			vmmc-supply = <&pm8916_l11>;
3716e8e807SStephan Gerhold			vqmmc-supply = <&pm8916_l12>;
3816e8e807SStephan Gerhold
3916e8e807SStephan Gerhold			pinctrl-names = "default", "sleep";
4016e8e807SStephan Gerhold			pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>;
4116e8e807SStephan Gerhold			pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;
4216e8e807SStephan Gerhold
4316e8e807SStephan Gerhold			non-removable;
4416e8e807SStephan Gerhold		};
4516e8e807SStephan Gerhold
4616e8e807SStephan Gerhold		serial@78b0000 {
4716e8e807SStephan Gerhold			status = "okay";
4816e8e807SStephan Gerhold			pinctrl-names = "default", "sleep";
4916e8e807SStephan Gerhold			pinctrl-0 = <&blsp1_uart2_default>;
5016e8e807SStephan Gerhold			pinctrl-1 = <&blsp1_uart2_sleep>;
5116e8e807SStephan Gerhold		};
5216e8e807SStephan Gerhold
5316e8e807SStephan Gerhold		usb@78d9000 {
5416e8e807SStephan Gerhold			status = "okay";
5516e8e807SStephan Gerhold			dr_mode = "peripheral";
5616e8e807SStephan Gerhold			extcon = <&usb_vbus>;
5716e8e807SStephan Gerhold
5816e8e807SStephan Gerhold			hnp-disable;
5916e8e807SStephan Gerhold			srp-disable;
6016e8e807SStephan Gerhold			adp-disable;
6116e8e807SStephan Gerhold
6216e8e807SStephan Gerhold			ulpi {
6316e8e807SStephan Gerhold				phy {
6416e8e807SStephan Gerhold					extcon = <&usb_vbus>;
6516e8e807SStephan Gerhold					v1p8-supply = <&pm8916_l7>;
6616e8e807SStephan Gerhold					v3p3-supply = <&pm8916_l13>;
6716e8e807SStephan Gerhold				};
6816e8e807SStephan Gerhold			};
6916e8e807SStephan Gerhold		};
7016e8e807SStephan Gerhold
7116e8e807SStephan Gerhold		/*
7216e8e807SStephan Gerhold		 * Attempting to enable these devices causes a "synchronous
7316e8e807SStephan Gerhold		 * external abort". Suspected cause is that the debug power
7416e8e807SStephan Gerhold		 * domain is not enabled by default on this device.
7516e8e807SStephan Gerhold		 * Disable these devices for now to avoid the crash.
7616e8e807SStephan Gerhold		 *
7716e8e807SStephan Gerhold		 * See: https://lore.kernel.org/linux-arm-msm/20190618202623.GA53651@gerhold.net/
7816e8e807SStephan Gerhold		 */
7916e8e807SStephan Gerhold		tpiu@820000 { status = "disabled"; };
8016e8e807SStephan Gerhold		funnel@821000 { status = "disabled"; };
8116e8e807SStephan Gerhold		replicator@824000 { status = "disabled"; };
8216e8e807SStephan Gerhold		etf@825000 { status = "disabled"; };
8316e8e807SStephan Gerhold		etr@826000 { status = "disabled"; };
8416e8e807SStephan Gerhold		funnel@841000 { status = "disabled"; };
8516e8e807SStephan Gerhold		debug@850000 { status = "disabled"; };
8616e8e807SStephan Gerhold		debug@852000 { status = "disabled"; };
8716e8e807SStephan Gerhold		debug@854000 { status = "disabled"; };
8816e8e807SStephan Gerhold		debug@856000 { status = "disabled"; };
8916e8e807SStephan Gerhold		etm@85c000 { status = "disabled"; };
9016e8e807SStephan Gerhold		etm@85d000 { status = "disabled"; };
9116e8e807SStephan Gerhold		etm@85e000 { status = "disabled"; };
9216e8e807SStephan Gerhold		etm@85f000 { status = "disabled"; };
9316e8e807SStephan Gerhold	};
9416e8e807SStephan Gerhold
9516e8e807SStephan Gerhold	// FIXME: Use extcon device provided by charger driver when available
9616e8e807SStephan Gerhold	usb_vbus: usb-vbus {
9716e8e807SStephan Gerhold		compatible = "linux,extcon-usb-gpio";
9816e8e807SStephan Gerhold		vbus-gpio = <&msmgpio 62 GPIO_ACTIVE_HIGH>;
9916e8e807SStephan Gerhold		pinctrl-names = "default";
10016e8e807SStephan Gerhold		pinctrl-0 = <&usb_vbus_default>;
10116e8e807SStephan Gerhold	};
10216e8e807SStephan Gerhold};
10316e8e807SStephan Gerhold
10416e8e807SStephan Gerhold&msmgpio {
10516e8e807SStephan Gerhold	usb_vbus_default: usb-vbus-default {
10616e8e807SStephan Gerhold		pinmux {
10716e8e807SStephan Gerhold			function = "gpio";
10816e8e807SStephan Gerhold			pins = "gpio62";
10916e8e807SStephan Gerhold		};
11016e8e807SStephan Gerhold		pinconf {
11116e8e807SStephan Gerhold			pins = "gpio62";
11216e8e807SStephan Gerhold			bias-pull-up;
11316e8e807SStephan Gerhold		};
11416e8e807SStephan Gerhold	};
11516e8e807SStephan Gerhold};
11616e8e807SStephan Gerhold
11716e8e807SStephan Gerhold&smd_rpm_regulators {
11816e8e807SStephan Gerhold	vdd_l1_l2_l3-supply = <&pm8916_s3>;
11916e8e807SStephan Gerhold	vdd_l4_l5_l6-supply = <&pm8916_s4>;
12016e8e807SStephan Gerhold	vdd_l7-supply = <&pm8916_s4>;
12116e8e807SStephan Gerhold
12216e8e807SStephan Gerhold	s1 {
12316e8e807SStephan Gerhold		regulator-min-microvolt = <500000>;
12416e8e807SStephan Gerhold		regulator-max-microvolt = <1300000>;
12516e8e807SStephan Gerhold	};
12616e8e807SStephan Gerhold
12716e8e807SStephan Gerhold	s3 {
12816e8e807SStephan Gerhold		regulator-min-microvolt = <1200000>;
12916e8e807SStephan Gerhold		regulator-max-microvolt = <1300000>;
13016e8e807SStephan Gerhold	};
13116e8e807SStephan Gerhold
13216e8e807SStephan Gerhold	s4 {
13316e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
13416e8e807SStephan Gerhold		regulator-max-microvolt = <2100000>;
13516e8e807SStephan Gerhold	};
13616e8e807SStephan Gerhold
13716e8e807SStephan Gerhold	l1 {
13816e8e807SStephan Gerhold		regulator-min-microvolt = <1225000>;
13916e8e807SStephan Gerhold		regulator-max-microvolt = <1225000>;
14016e8e807SStephan Gerhold	};
14116e8e807SStephan Gerhold
14216e8e807SStephan Gerhold	l2 {
14316e8e807SStephan Gerhold		regulator-min-microvolt = <1200000>;
14416e8e807SStephan Gerhold		regulator-max-microvolt = <1200000>;
14516e8e807SStephan Gerhold	};
14616e8e807SStephan Gerhold
14716e8e807SStephan Gerhold	l3 {
14816e8e807SStephan Gerhold		regulator-min-microvolt = <500000>;
14916e8e807SStephan Gerhold		regulator-max-microvolt = <1287500>;
15016e8e807SStephan Gerhold	};
15116e8e807SStephan Gerhold
15216e8e807SStephan Gerhold	l4 {
15316e8e807SStephan Gerhold		regulator-min-microvolt = <2050000>;
15416e8e807SStephan Gerhold		regulator-max-microvolt = <2050000>;
15516e8e807SStephan Gerhold	};
15616e8e807SStephan Gerhold
15716e8e807SStephan Gerhold	l5 {
15816e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
15916e8e807SStephan Gerhold		regulator-max-microvolt = <1800000>;
16016e8e807SStephan Gerhold	};
16116e8e807SStephan Gerhold
16216e8e807SStephan Gerhold	l6 {
16316e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
16416e8e807SStephan Gerhold		regulator-max-microvolt = <1800000>;
16516e8e807SStephan Gerhold	};
16616e8e807SStephan Gerhold
16716e8e807SStephan Gerhold	l7 {
16816e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
16916e8e807SStephan Gerhold		regulator-max-microvolt = <1800000>;
17016e8e807SStephan Gerhold	};
17116e8e807SStephan Gerhold
17216e8e807SStephan Gerhold	l8 {
17316e8e807SStephan Gerhold		regulator-min-microvolt = <2850000>;
17416e8e807SStephan Gerhold		regulator-max-microvolt = <2900000>;
17516e8e807SStephan Gerhold	};
17616e8e807SStephan Gerhold
17716e8e807SStephan Gerhold	l9 {
17816e8e807SStephan Gerhold		regulator-min-microvolt = <3300000>;
17916e8e807SStephan Gerhold		regulator-max-microvolt = <3300000>;
18016e8e807SStephan Gerhold	};
18116e8e807SStephan Gerhold
18216e8e807SStephan Gerhold	l10 {
18316e8e807SStephan Gerhold		regulator-min-microvolt = <2700000>;
18416e8e807SStephan Gerhold		regulator-max-microvolt = <2800000>;
18516e8e807SStephan Gerhold	};
18616e8e807SStephan Gerhold
18716e8e807SStephan Gerhold	l11 {
18816e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
18916e8e807SStephan Gerhold		regulator-max-microvolt = <2950000>;
19016e8e807SStephan Gerhold		regulator-allow-set-load;
19116e8e807SStephan Gerhold		regulator-system-load = <200000>;
19216e8e807SStephan Gerhold	};
19316e8e807SStephan Gerhold
19416e8e807SStephan Gerhold	l12 {
19516e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
19616e8e807SStephan Gerhold		regulator-max-microvolt = <2950000>;
19716e8e807SStephan Gerhold	};
19816e8e807SStephan Gerhold
19916e8e807SStephan Gerhold	l13 {
20016e8e807SStephan Gerhold		regulator-min-microvolt = <3075000>;
20116e8e807SStephan Gerhold		regulator-max-microvolt = <3075000>;
20216e8e807SStephan Gerhold	};
20316e8e807SStephan Gerhold
20416e8e807SStephan Gerhold	l14 {
20516e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
20616e8e807SStephan Gerhold		regulator-max-microvolt = <3300000>;
20716e8e807SStephan Gerhold	};
20816e8e807SStephan Gerhold
20916e8e807SStephan Gerhold	l15 {
21016e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
21116e8e807SStephan Gerhold		regulator-max-microvolt = <3300000>;
21216e8e807SStephan Gerhold	};
21316e8e807SStephan Gerhold
21416e8e807SStephan Gerhold	l16 {
21516e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
21616e8e807SStephan Gerhold		regulator-max-microvolt = <3300000>;
21716e8e807SStephan Gerhold	};
21816e8e807SStephan Gerhold
21916e8e807SStephan Gerhold	l17 {
22016e8e807SStephan Gerhold		regulator-min-microvolt = <2850000>;
22116e8e807SStephan Gerhold		regulator-max-microvolt = <2850000>;
22216e8e807SStephan Gerhold	};
22316e8e807SStephan Gerhold
22416e8e807SStephan Gerhold	l18 {
22516e8e807SStephan Gerhold		regulator-min-microvolt = <2700000>;
22616e8e807SStephan Gerhold		regulator-max-microvolt = <2700000>;
22716e8e807SStephan Gerhold	};
22816e8e807SStephan Gerhold};
229