116e8e807SStephan Gerhold// SPDX-License-Identifier: GPL-2.0-only
216e8e807SStephan Gerhold
316e8e807SStephan Gerhold/dts-v1/;
416e8e807SStephan Gerhold
5bfe9d754SStephan Gerhold#include "msm8916-pm8916.dtsi"
616e8e807SStephan Gerhold#include <dt-bindings/gpio/gpio.h>
73ba8bbc4SNikita Travkin#include <dt-bindings/input/input.h>
86eb81528SNikita Travkin#include <dt-bindings/interrupt-controller/irq.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	};
546eb81528SNikita Travkin
556eb81528SNikita Travkin	reg_ctp: regulator-ctp {
566eb81528SNikita Travkin		compatible = "regulator-fixed";
576eb81528SNikita Travkin		regulator-name = "ctp";
586eb81528SNikita Travkin
596eb81528SNikita Travkin		regulator-min-microvolt = <2800000>;
606eb81528SNikita Travkin		regulator-max-microvolt = <2800000>;
616eb81528SNikita Travkin
626eb81528SNikita Travkin		gpio = <&msmgpio 17 GPIO_ACTIVE_HIGH>;
636eb81528SNikita Travkin		enable-active-high;
646eb81528SNikita Travkin
656eb81528SNikita Travkin		pinctrl-names = "default";
666eb81528SNikita Travkin		pinctrl-0 = <&ctp_pwr_en_default>;
676eb81528SNikita Travkin	};
686eb81528SNikita Travkin};
696eb81528SNikita Travkin
70*6bd2cae7SNikita Travkin&blsp_i2c2 {
71*6bd2cae7SNikita Travkin	status = "okay";
72*6bd2cae7SNikita Travkin
73*6bd2cae7SNikita Travkin	accelerometer@10 {
74*6bd2cae7SNikita Travkin		compatible = "bosch,bmc150_accel";
75*6bd2cae7SNikita Travkin		reg = <0x10>;
76*6bd2cae7SNikita Travkin
77*6bd2cae7SNikita Travkin		vdd-supply = <&pm8916_l17>;
78*6bd2cae7SNikita Travkin		vddio-supply = <&pm8916_l6>;
79*6bd2cae7SNikita Travkin
80*6bd2cae7SNikita Travkin		mount-matrix = "0", "1", "0",
81*6bd2cae7SNikita Travkin			      "-1", "0", "0",
82*6bd2cae7SNikita Travkin			       "0", "0", "1";
83*6bd2cae7SNikita Travkin	};
84*6bd2cae7SNikita Travkin
85*6bd2cae7SNikita Travkin	magnetometer@12 {
86*6bd2cae7SNikita Travkin		compatible = "bosch,bmc150_magn";
87*6bd2cae7SNikita Travkin		reg = <0x12>;
88*6bd2cae7SNikita Travkin
89*6bd2cae7SNikita Travkin		vdd-supply = <&pm8916_l17>;
90*6bd2cae7SNikita Travkin		vddio-supply = <&pm8916_l6>;
91*6bd2cae7SNikita Travkin	};
92*6bd2cae7SNikita Travkin
93*6bd2cae7SNikita Travkin	gyroscope@68 {
94*6bd2cae7SNikita Travkin		compatible = "bosch,bmg160";
95*6bd2cae7SNikita Travkin		reg = <0x68>;
96*6bd2cae7SNikita Travkin
97*6bd2cae7SNikita Travkin		interrupt-parent = <&msmgpio>;
98*6bd2cae7SNikita Travkin		interrupts = <23 IRQ_TYPE_EDGE_RISING>;
99*6bd2cae7SNikita Travkin
100*6bd2cae7SNikita Travkin		pinctrl-names = "default";
101*6bd2cae7SNikita Travkin		pinctrl-0 = <&gyro_int_default>;
102*6bd2cae7SNikita Travkin
103*6bd2cae7SNikita Travkin		vdd-supply = <&pm8916_l17>;
104*6bd2cae7SNikita Travkin		vddio-supply = <&pm8916_l6>;
105*6bd2cae7SNikita Travkin	};
106*6bd2cae7SNikita Travkin};
107*6bd2cae7SNikita Travkin
1086eb81528SNikita Travkin&blsp_i2c5 {
1096eb81528SNikita Travkin	status = "okay";
1106eb81528SNikita Travkin
1116eb81528SNikita Travkin	rmi4@20 {
1126eb81528SNikita Travkin		compatible = "syna,rmi4-i2c";
1136eb81528SNikita Travkin		reg = <0x20>;
1146eb81528SNikita Travkin		#address-cells = <1>;
1156eb81528SNikita Travkin		#size-cells = <0>;
1166eb81528SNikita Travkin
1176eb81528SNikita Travkin		interrupt-parent = <&msmgpio>;
1186eb81528SNikita Travkin		interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
1196eb81528SNikita Travkin
1206eb81528SNikita Travkin		vdd-supply = <&reg_ctp>;
1216eb81528SNikita Travkin		vio-supply = <&pm8916_l6>;
1226eb81528SNikita Travkin
1236eb81528SNikita Travkin		pinctrl-names = "default";
1246eb81528SNikita Travkin		pinctrl-0 = <&tp_int_default>;
1256eb81528SNikita Travkin
1266eb81528SNikita Travkin		syna,startup-delay-ms = <10>;
1276eb81528SNikita Travkin
1286eb81528SNikita Travkin		rmi4-f01@1 {
1296eb81528SNikita Travkin			reg = <0x1>;
1306eb81528SNikita Travkin			syna,nosleep-mode = <1>; // Allow sleeping
1316eb81528SNikita Travkin		};
1326eb81528SNikita Travkin
1336eb81528SNikita Travkin		rmi4-f12@12 {
1346eb81528SNikita Travkin			reg = <0x12>;
1356eb81528SNikita Travkin			syna,sensor-type = <1>; // Touchscreen
1366eb81528SNikita Travkin		};
1376eb81528SNikita Travkin	};
13816e8e807SStephan Gerhold};
13916e8e807SStephan Gerhold
140e2f6482aSStephan Gerhold&blsp1_uart2 {
141e2f6482aSStephan Gerhold	status = "okay";
142e2f6482aSStephan Gerhold};
143e2f6482aSStephan Gerhold
1444eb7b63dSStephan Gerhold&pm8916_resin {
1454eb7b63dSStephan Gerhold	status = "okay";
1464eb7b63dSStephan Gerhold	linux,code = <KEY_VOLUMEDOWN>;
1474eb7b63dSStephan Gerhold};
1484eb7b63dSStephan Gerhold
1490af8bbdbSNikita Travkin&pm8916_vib {
1500af8bbdbSNikita Travkin	status = "okay";
1510af8bbdbSNikita Travkin};
1520af8bbdbSNikita Travkin
153e2f6482aSStephan Gerhold&pronto {
154e2f6482aSStephan Gerhold	status = "okay";
155e2f6482aSStephan Gerhold};
156e2f6482aSStephan Gerhold
157e2f6482aSStephan Gerhold&sdhc_1 {
158e2f6482aSStephan Gerhold	status = "okay";
159e2f6482aSStephan Gerhold
160e2f6482aSStephan Gerhold	pinctrl-names = "default", "sleep";
161e2f6482aSStephan Gerhold	pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
162e2f6482aSStephan Gerhold	pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
163e2f6482aSStephan Gerhold};
164e2f6482aSStephan Gerhold
165e2f6482aSStephan Gerhold&sdhc_2 {
166e2f6482aSStephan Gerhold	status = "okay";
167e2f6482aSStephan Gerhold
168e2f6482aSStephan Gerhold	pinctrl-names = "default", "sleep";
169e2f6482aSStephan Gerhold	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>;
170e2f6482aSStephan Gerhold	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;
171e2f6482aSStephan Gerhold
172e2f6482aSStephan Gerhold	non-removable;
173e2f6482aSStephan Gerhold};
174e2f6482aSStephan Gerhold
175e2f6482aSStephan Gerhold&usb {
176e2f6482aSStephan Gerhold	status = "okay";
177e2f6482aSStephan Gerhold	dr_mode = "peripheral";
178e2f6482aSStephan Gerhold	extcon = <&usb_vbus>;
179e2f6482aSStephan Gerhold};
180e2f6482aSStephan Gerhold
181e2f6482aSStephan Gerhold&usb_hs_phy {
182e2f6482aSStephan Gerhold	extcon = <&usb_vbus>;
183e2f6482aSStephan Gerhold};
184e2f6482aSStephan Gerhold
18516e8e807SStephan Gerhold&smd_rpm_regulators {
18616e8e807SStephan Gerhold	vdd_l1_l2_l3-supply = <&pm8916_s3>;
18716e8e807SStephan Gerhold	vdd_l4_l5_l6-supply = <&pm8916_s4>;
18816e8e807SStephan Gerhold	vdd_l7-supply = <&pm8916_s4>;
18916e8e807SStephan Gerhold
19016e8e807SStephan Gerhold	s3 {
19116e8e807SStephan Gerhold		regulator-min-microvolt = <1200000>;
19216e8e807SStephan Gerhold		regulator-max-microvolt = <1300000>;
19316e8e807SStephan Gerhold	};
19416e8e807SStephan Gerhold
19516e8e807SStephan Gerhold	s4 {
19616e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
19716e8e807SStephan Gerhold		regulator-max-microvolt = <2100000>;
19816e8e807SStephan Gerhold	};
19916e8e807SStephan Gerhold
20016e8e807SStephan Gerhold	l1 {
20116e8e807SStephan Gerhold		regulator-min-microvolt = <1225000>;
20216e8e807SStephan Gerhold		regulator-max-microvolt = <1225000>;
20316e8e807SStephan Gerhold	};
20416e8e807SStephan Gerhold
20516e8e807SStephan Gerhold	l2 {
20616e8e807SStephan Gerhold		regulator-min-microvolt = <1200000>;
20716e8e807SStephan Gerhold		regulator-max-microvolt = <1200000>;
20816e8e807SStephan Gerhold	};
20916e8e807SStephan Gerhold
21016e8e807SStephan Gerhold	l4 {
21116e8e807SStephan Gerhold		regulator-min-microvolt = <2050000>;
21216e8e807SStephan Gerhold		regulator-max-microvolt = <2050000>;
21316e8e807SStephan Gerhold	};
21416e8e807SStephan Gerhold
21516e8e807SStephan Gerhold	l5 {
21616e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
21716e8e807SStephan Gerhold		regulator-max-microvolt = <1800000>;
21816e8e807SStephan Gerhold	};
21916e8e807SStephan Gerhold
22016e8e807SStephan Gerhold	l6 {
22116e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
22216e8e807SStephan Gerhold		regulator-max-microvolt = <1800000>;
22316e8e807SStephan Gerhold	};
22416e8e807SStephan Gerhold
22516e8e807SStephan Gerhold	l7 {
22616e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
22716e8e807SStephan Gerhold		regulator-max-microvolt = <1800000>;
22816e8e807SStephan Gerhold	};
22916e8e807SStephan Gerhold
23016e8e807SStephan Gerhold	l8 {
23116e8e807SStephan Gerhold		regulator-min-microvolt = <2850000>;
23216e8e807SStephan Gerhold		regulator-max-microvolt = <2900000>;
23316e8e807SStephan Gerhold	};
23416e8e807SStephan Gerhold
23516e8e807SStephan Gerhold	l9 {
23616e8e807SStephan Gerhold		regulator-min-microvolt = <3300000>;
23716e8e807SStephan Gerhold		regulator-max-microvolt = <3300000>;
23816e8e807SStephan Gerhold	};
23916e8e807SStephan Gerhold
24016e8e807SStephan Gerhold	l10 {
24116e8e807SStephan Gerhold		regulator-min-microvolt = <2700000>;
24216e8e807SStephan Gerhold		regulator-max-microvolt = <2800000>;
24316e8e807SStephan Gerhold	};
24416e8e807SStephan Gerhold
24516e8e807SStephan Gerhold	l11 {
24616e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
24716e8e807SStephan Gerhold		regulator-max-microvolt = <2950000>;
24816e8e807SStephan Gerhold		regulator-allow-set-load;
24916e8e807SStephan Gerhold		regulator-system-load = <200000>;
25016e8e807SStephan Gerhold	};
25116e8e807SStephan Gerhold
25216e8e807SStephan Gerhold	l12 {
25316e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
25416e8e807SStephan Gerhold		regulator-max-microvolt = <2950000>;
25516e8e807SStephan Gerhold	};
25616e8e807SStephan Gerhold
25716e8e807SStephan Gerhold	l13 {
25816e8e807SStephan Gerhold		regulator-min-microvolt = <3075000>;
25916e8e807SStephan Gerhold		regulator-max-microvolt = <3075000>;
26016e8e807SStephan Gerhold	};
26116e8e807SStephan Gerhold
26216e8e807SStephan Gerhold	l14 {
26316e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
26416e8e807SStephan Gerhold		regulator-max-microvolt = <3300000>;
26516e8e807SStephan Gerhold	};
26616e8e807SStephan Gerhold
26716e8e807SStephan Gerhold	l15 {
26816e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
26916e8e807SStephan Gerhold		regulator-max-microvolt = <3300000>;
27016e8e807SStephan Gerhold	};
27116e8e807SStephan Gerhold
27216e8e807SStephan Gerhold	l16 {
27316e8e807SStephan Gerhold		regulator-min-microvolt = <1800000>;
27416e8e807SStephan Gerhold		regulator-max-microvolt = <3300000>;
27516e8e807SStephan Gerhold	};
27616e8e807SStephan Gerhold
27716e8e807SStephan Gerhold	l17 {
27816e8e807SStephan Gerhold		regulator-min-microvolt = <2850000>;
27916e8e807SStephan Gerhold		regulator-max-microvolt = <2850000>;
28016e8e807SStephan Gerhold	};
28116e8e807SStephan Gerhold
28216e8e807SStephan Gerhold	l18 {
28316e8e807SStephan Gerhold		regulator-min-microvolt = <2700000>;
28416e8e807SStephan Gerhold		regulator-max-microvolt = <2700000>;
28516e8e807SStephan Gerhold	};
28616e8e807SStephan Gerhold};
287f7f394f0SStephan Gerhold
288f7f394f0SStephan Gerhold&msmgpio {
2896eb81528SNikita Travkin	ctp_pwr_en_default: ctp-pwr-en-default {
2906eb81528SNikita Travkin		pins = "gpio17";
2916eb81528SNikita Travkin		function = "gpio";
2926eb81528SNikita Travkin
2936eb81528SNikita Travkin		drive-strength = <2>;
2946eb81528SNikita Travkin		bias-disable;
2956eb81528SNikita Travkin	};
2966eb81528SNikita Travkin
297f7f394f0SStephan Gerhold	gpio_keys_default: gpio-keys-default {
2986554a295SStephan Gerhold		pins = "gpio107";
299f7f394f0SStephan Gerhold		function = "gpio";
3006554a295SStephan Gerhold
301f7f394f0SStephan Gerhold		drive-strength = <2>;
302f7f394f0SStephan Gerhold		bias-pull-up;
303f7f394f0SStephan Gerhold	};
304f7f394f0SStephan Gerhold
305*6bd2cae7SNikita Travkin	gyro_int_default: gyro-int-default {
306*6bd2cae7SNikita Travkin		pins = "gpio23";
307*6bd2cae7SNikita Travkin		function = "gpio";
308*6bd2cae7SNikita Travkin
309*6bd2cae7SNikita Travkin		drive-strength = <2>;
310*6bd2cae7SNikita Travkin		bias-disable;
311*6bd2cae7SNikita Travkin	};
312*6bd2cae7SNikita Travkin
3136eb81528SNikita Travkin	tp_int_default: tp-int-default {
3146eb81528SNikita Travkin		pins = "gpio13";
3156eb81528SNikita Travkin		function = "gpio";
3166eb81528SNikita Travkin
3176eb81528SNikita Travkin		drive-strength = <2>;
3186eb81528SNikita Travkin		bias-disable;
3196eb81528SNikita Travkin	};
3206eb81528SNikita Travkin
321f7f394f0SStephan Gerhold	usb_vbus_default: usb-vbus-default {
3226554a295SStephan Gerhold		pins = "gpio62";
323f7f394f0SStephan Gerhold		function = "gpio";
3246554a295SStephan Gerhold
325f7f394f0SStephan Gerhold		bias-pull-up;
326f7f394f0SStephan Gerhold	};
327f7f394f0SStephan Gerhold};
328