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>
96b4ad4beSNikita Travkin#include <dt-bindings/leds/common.h>
1016e8e807SStephan Gerhold
1116e8e807SStephan Gerhold/ {
1216e8e807SStephan Gerhold	model = "Longcheer L8150";
1316e8e807SStephan Gerhold	compatible = "longcheer,l8150", "qcom,msm8916-v1-qrd/9-v1", "qcom,msm8916";
14eaa744b1SArnaud Ferraris	chassis-type = "handset";
1516e8e807SStephan Gerhold
1616e8e807SStephan Gerhold	aliases {
17154f23a8SStephan Gerhold		mmc0 = &sdhc_1; /* eMMC */
18154f23a8SStephan Gerhold		mmc1 = &sdhc_2; /* SD card */
19c310ca82SStephan Gerhold		serial0 = &blsp_uart2;
2016e8e807SStephan Gerhold	};
2116e8e807SStephan Gerhold
2216e8e807SStephan Gerhold	chosen {
2316e8e807SStephan Gerhold		stdout-path = "serial0";
2416e8e807SStephan Gerhold	};
2516e8e807SStephan Gerhold
26b0e1600dSNikita Travkin	reserved-memory {
274bb376f6SKonrad Dybcio		/* wcnss.mdt is not relocatable, so it must be loaded at 0x8b600000 */
28b0e1600dSNikita Travkin		/delete-node/ wcnss@89300000;
29b0e1600dSNikita Travkin
30b0e1600dSNikita Travkin		wcnss_mem: wcnss@8b600000 {
31b0e1600dSNikita Travkin			reg = <0x0 0x8b600000 0x0 0x600000>;
32b0e1600dSNikita Travkin			no-map;
33b0e1600dSNikita Travkin		};
34b0e1600dSNikita Travkin	};
35b0e1600dSNikita Travkin
363ba8bbc4SNikita Travkin	gpio-keys {
373ba8bbc4SNikita Travkin		compatible = "gpio-keys";
383ba8bbc4SNikita Travkin
393ba8bbc4SNikita Travkin		pinctrl-names = "default";
403ba8bbc4SNikita Travkin		pinctrl-0 = <&gpio_keys_default>;
413ba8bbc4SNikita Travkin
423ba8bbc4SNikita Travkin		label = "GPIO Buttons";
433ba8bbc4SNikita Travkin
44b08f5cbdSKrzysztof Kozlowski		button-volume-up {
453ba8bbc4SNikita Travkin			label = "Volume Up";
4641e22c2fSStephan Gerhold			gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
473ba8bbc4SNikita Travkin			linux,code = <KEY_VOLUMEUP>;
483ba8bbc4SNikita Travkin		};
493ba8bbc4SNikita Travkin	};
506eb81528SNikita Travkin
516eb81528SNikita Travkin	reg_ctp: regulator-ctp {
526eb81528SNikita Travkin		compatible = "regulator-fixed";
536eb81528SNikita Travkin		regulator-name = "ctp";
546eb81528SNikita Travkin
556eb81528SNikita Travkin		regulator-min-microvolt = <2800000>;
566eb81528SNikita Travkin		regulator-max-microvolt = <2800000>;
576eb81528SNikita Travkin
5841e22c2fSStephan Gerhold		gpio = <&tlmm 17 GPIO_ACTIVE_HIGH>;
596eb81528SNikita Travkin		enable-active-high;
606eb81528SNikita Travkin
616eb81528SNikita Travkin		pinctrl-names = "default";
626eb81528SNikita Travkin		pinctrl-0 = <&ctp_pwr_en_default>;
636eb81528SNikita Travkin	};
646b4ad4beSNikita Travkin
656b4ad4beSNikita Travkin	flash-led-controller {
666b4ad4beSNikita Travkin		compatible = "sgmicro,sgm3140";
6741e22c2fSStephan Gerhold		flash-gpios = <&tlmm 31 GPIO_ACTIVE_HIGH>;
6841e22c2fSStephan Gerhold		enable-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
696b4ad4beSNikita Travkin
706b4ad4beSNikita Travkin		pinctrl-names = "default";
716b4ad4beSNikita Travkin		pinctrl-0 = <&camera_flash_default>;
726b4ad4beSNikita Travkin
736b4ad4beSNikita Travkin		flash_led: led {
746b4ad4beSNikita Travkin			function = LED_FUNCTION_FLASH;
756b4ad4beSNikita Travkin			color = <LED_COLOR_ID_WHITE>;
766b4ad4beSNikita Travkin			flash-max-timeout-us = <250000>;
776b4ad4beSNikita Travkin		};
786b4ad4beSNikita Travkin	};
796eb81528SNikita Travkin};
806eb81528SNikita Travkin
8138260b9eSNikita Travkin&blsp_i2c1 {
8238260b9eSNikita Travkin	status = "okay";
8338260b9eSNikita Travkin
8438260b9eSNikita Travkin	led-controller@45 {
8538260b9eSNikita Travkin		compatible = "awinic,aw2013";
8638260b9eSNikita Travkin		reg = <0x45>;
8738260b9eSNikita Travkin		#address-cells = <1>;
8838260b9eSNikita Travkin		#size-cells = <0>;
8938260b9eSNikita Travkin
9038260b9eSNikita Travkin		vcc-supply = <&pm8916_l17>;
91*8c80b6c3SStephan Gerhold		vio-supply = <&pm8916_l6>;
9238260b9eSNikita Travkin
9338260b9eSNikita Travkin		led@0 {
9438260b9eSNikita Travkin			reg = <0>;
9538260b9eSNikita Travkin			led-max-microamp = <5000>;
9638260b9eSNikita Travkin			function = LED_FUNCTION_INDICATOR;
9738260b9eSNikita Travkin			color = <LED_COLOR_ID_RED>;
9838260b9eSNikita Travkin		};
9938260b9eSNikita Travkin
10038260b9eSNikita Travkin		led@1 {
10138260b9eSNikita Travkin			reg = <1>;
10238260b9eSNikita Travkin			led-max-microamp = <5000>;
10338260b9eSNikita Travkin			function = LED_FUNCTION_INDICATOR;
10438260b9eSNikita Travkin			color = <LED_COLOR_ID_GREEN>;
10538260b9eSNikita Travkin		};
10638260b9eSNikita Travkin
10738260b9eSNikita Travkin		led@2 {
10838260b9eSNikita Travkin			reg = <2>;
10938260b9eSNikita Travkin			led-max-microamp = <5000>;
11038260b9eSNikita Travkin			function = LED_FUNCTION_INDICATOR;
11138260b9eSNikita Travkin			color = <LED_COLOR_ID_BLUE>;
11238260b9eSNikita Travkin		};
11338260b9eSNikita Travkin	};
11438260b9eSNikita Travkin};
11538260b9eSNikita Travkin
1166bd2cae7SNikita Travkin&blsp_i2c2 {
1176bd2cae7SNikita Travkin	status = "okay";
1186bd2cae7SNikita Travkin
1196bd2cae7SNikita Travkin	accelerometer@10 {
12051c7786fSStephan Gerhold		compatible = "bosch,bmc156_accel";
1216bd2cae7SNikita Travkin		reg = <0x10>;
1226bd2cae7SNikita Travkin
12351c7786fSStephan Gerhold		/*
12451c7786fSStephan Gerhold		 * For some reason the interrupt line is usually not connected
12551c7786fSStephan Gerhold		 * to the BMC156. However, there are two pads next to the chip
12651c7786fSStephan Gerhold		 * that can be shorted to make it work if needed.
12751c7786fSStephan Gerhold		 *
12841e22c2fSStephan Gerhold		 * interrupt-parent = <&tlmm>;
12951c7786fSStephan Gerhold		 * interrupts = <116 IRQ_TYPE_EDGE_RISING>;
13051c7786fSStephan Gerhold		 */
13151c7786fSStephan Gerhold
13251c7786fSStephan Gerhold		pinctrl-names = "default";
13351c7786fSStephan Gerhold		pinctrl-0 = <&accel_int_default>;
13451c7786fSStephan Gerhold
1356bd2cae7SNikita Travkin		vdd-supply = <&pm8916_l17>;
1366bd2cae7SNikita Travkin		vddio-supply = <&pm8916_l6>;
1376bd2cae7SNikita Travkin
1386bd2cae7SNikita Travkin		mount-matrix = "0", "1", "0",
1396bd2cae7SNikita Travkin			      "-1", "0", "0",
1406bd2cae7SNikita Travkin			       "0", "0", "1";
1416bd2cae7SNikita Travkin	};
1426bd2cae7SNikita Travkin
1436bd2cae7SNikita Travkin	magnetometer@12 {
14451c7786fSStephan Gerhold		compatible = "bosch,bmc156_magn";
1456bd2cae7SNikita Travkin		reg = <0x12>;
1466bd2cae7SNikita Travkin
14741e22c2fSStephan Gerhold		interrupt-parent = <&tlmm>;
14851c7786fSStephan Gerhold		interrupts = <113 IRQ_TYPE_EDGE_RISING>;
14951c7786fSStephan Gerhold
15051c7786fSStephan Gerhold		pinctrl-names = "default";
15151c7786fSStephan Gerhold		pinctrl-0 = <&magn_int_default>;
15251c7786fSStephan Gerhold
1536bd2cae7SNikita Travkin		vdd-supply = <&pm8916_l17>;
1546bd2cae7SNikita Travkin		vddio-supply = <&pm8916_l6>;
1556bd2cae7SNikita Travkin	};
1566bd2cae7SNikita Travkin
1573016af34SNikita Travkin	light-sensor@23 {
1583016af34SNikita Travkin		compatible = "liteon,ltr559";
1593016af34SNikita Travkin		reg = <0x23>;
1603016af34SNikita Travkin		proximity-near-level = <75>;
1613016af34SNikita Travkin
16241e22c2fSStephan Gerhold		interrupt-parent = <&tlmm>;
1633016af34SNikita Travkin		interrupts = <115 IRQ_TYPE_EDGE_FALLING>;
1643016af34SNikita Travkin
1653016af34SNikita Travkin		pinctrl-names = "default";
1663016af34SNikita Travkin		pinctrl-0 = <&light_int_default>;
1673016af34SNikita Travkin
1683016af34SNikita Travkin		vdd-supply = <&pm8916_l17>;
1696a541eaaSKrzysztof Kozlowski		vddio-supply = <&pm8916_l6>;
1703016af34SNikita Travkin	};
1713016af34SNikita Travkin
1726bd2cae7SNikita Travkin	gyroscope@68 {
1736bd2cae7SNikita Travkin		compatible = "bosch,bmg160";
1746bd2cae7SNikita Travkin		reg = <0x68>;
1756bd2cae7SNikita Travkin
17641e22c2fSStephan Gerhold		interrupt-parent = <&tlmm>;
17751c7786fSStephan Gerhold		interrupts = <23 IRQ_TYPE_EDGE_RISING>,
17851c7786fSStephan Gerhold			     <22 IRQ_TYPE_EDGE_RISING>;
1796bd2cae7SNikita Travkin
1806bd2cae7SNikita Travkin		pinctrl-names = "default";
1816bd2cae7SNikita Travkin		pinctrl-0 = <&gyro_int_default>;
1826bd2cae7SNikita Travkin
1836bd2cae7SNikita Travkin		vdd-supply = <&pm8916_l17>;
1846bd2cae7SNikita Travkin		vddio-supply = <&pm8916_l6>;
1856bd2cae7SNikita Travkin	};
1866bd2cae7SNikita Travkin};
1876bd2cae7SNikita Travkin
1886eb81528SNikita Travkin&blsp_i2c5 {
1896eb81528SNikita Travkin	status = "okay";
1906eb81528SNikita Travkin
1916eb81528SNikita Travkin	rmi4@20 {
1926eb81528SNikita Travkin		compatible = "syna,rmi4-i2c";
1936eb81528SNikita Travkin		reg = <0x20>;
1946eb81528SNikita Travkin		#address-cells = <1>;
1956eb81528SNikita Travkin		#size-cells = <0>;
1966eb81528SNikita Travkin
19741e22c2fSStephan Gerhold		interrupt-parent = <&tlmm>;
1986eb81528SNikita Travkin		interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
1996eb81528SNikita Travkin
2006eb81528SNikita Travkin		vdd-supply = <&reg_ctp>;
2016eb81528SNikita Travkin		vio-supply = <&pm8916_l6>;
2026eb81528SNikita Travkin
2036eb81528SNikita Travkin		pinctrl-names = "default";
2046eb81528SNikita Travkin		pinctrl-0 = <&tp_int_default>;
2056eb81528SNikita Travkin
2066eb81528SNikita Travkin		syna,startup-delay-ms = <10>;
2076eb81528SNikita Travkin
2086eb81528SNikita Travkin		rmi4-f01@1 {
2096eb81528SNikita Travkin			reg = <0x1>;
2104bb376f6SKonrad Dybcio			syna,nosleep-mode = <1>; /* Allow sleeping */
2116eb81528SNikita Travkin		};
2126eb81528SNikita Travkin
2136eb81528SNikita Travkin		rmi4-f12@12 {
2146eb81528SNikita Travkin			reg = <0x12>;
2154bb376f6SKonrad Dybcio			syna,sensor-type = <1>; /* Touchscreen */
2166eb81528SNikita Travkin		};
2176eb81528SNikita Travkin	};
21816e8e807SStephan Gerhold};
21916e8e807SStephan Gerhold
220c310ca82SStephan Gerhold&blsp_uart2 {
221e2f6482aSStephan Gerhold	status = "okay";
222e2f6482aSStephan Gerhold};
223e2f6482aSStephan Gerhold
2244eb7b63dSStephan Gerhold&pm8916_resin {
2254eb7b63dSStephan Gerhold	status = "okay";
2264eb7b63dSStephan Gerhold	linux,code = <KEY_VOLUMEDOWN>;
2274eb7b63dSStephan Gerhold};
2284eb7b63dSStephan Gerhold
229b0a8f16aSStephan Gerhold&pm8916_rpm_regulators {
230b0a8f16aSStephan Gerhold	pm8916_l17: l17 {
231b0a8f16aSStephan Gerhold		regulator-min-microvolt = <2850000>;
232b0a8f16aSStephan Gerhold		regulator-max-microvolt = <2850000>;
233b0a8f16aSStephan Gerhold	};
234b0a8f16aSStephan Gerhold};
235b0a8f16aSStephan Gerhold
236b30cad26SStephan Gerhold&pm8916_usbin {
237b30cad26SStephan Gerhold	status = "okay";
238b30cad26SStephan Gerhold};
239b30cad26SStephan Gerhold
2400af8bbdbSNikita Travkin&pm8916_vib {
2410af8bbdbSNikita Travkin	status = "okay";
2420af8bbdbSNikita Travkin};
2430af8bbdbSNikita Travkin
244e2f6482aSStephan Gerhold&sdhc_1 {
245e2f6482aSStephan Gerhold	status = "okay";
246e2f6482aSStephan Gerhold};
247e2f6482aSStephan Gerhold
248e2f6482aSStephan Gerhold&sdhc_2 {
249e2f6482aSStephan Gerhold	status = "okay";
250e2f6482aSStephan Gerhold	non-removable;
251e2f6482aSStephan Gerhold};
252e2f6482aSStephan Gerhold
253e2f6482aSStephan Gerhold&usb {
254e2f6482aSStephan Gerhold	status = "okay";
255e2f6482aSStephan Gerhold	dr_mode = "peripheral";
256b30cad26SStephan Gerhold	extcon = <&pm8916_usbin>;
257e2f6482aSStephan Gerhold};
258e2f6482aSStephan Gerhold
259e2f6482aSStephan Gerhold&usb_hs_phy {
260b30cad26SStephan Gerhold	extcon = <&pm8916_usbin>;
261e2f6482aSStephan Gerhold};
262e2f6482aSStephan Gerhold
26332444424SStephan Gerhold&wcnss {
26432444424SStephan Gerhold	status = "okay";
26532444424SStephan Gerhold};
26632444424SStephan Gerhold
26732444424SStephan Gerhold&wcnss_iris {
26832444424SStephan Gerhold	compatible = "qcom,wcn3620";
26932444424SStephan Gerhold};
27032444424SStephan Gerhold
27141e22c2fSStephan Gerhold&tlmm {
2728b276ca0SKrzysztof Kozlowski	accel_int_default: accel-int-default-state {
27351c7786fSStephan Gerhold		pins = "gpio116";
27451c7786fSStephan Gerhold		function = "gpio";
27551c7786fSStephan Gerhold
27651c7786fSStephan Gerhold		drive-strength = <2>;
27751c7786fSStephan Gerhold		bias-disable;
27851c7786fSStephan Gerhold	};
27951c7786fSStephan Gerhold
2808b276ca0SKrzysztof Kozlowski	camera_flash_default: camera-flash-default-state {
2816b4ad4beSNikita Travkin		pins = "gpio31", "gpio32";
2826b4ad4beSNikita Travkin		function = "gpio";
2836b4ad4beSNikita Travkin
2846b4ad4beSNikita Travkin		drive-strength = <2>;
2856b4ad4beSNikita Travkin		bias-disable;
2866b4ad4beSNikita Travkin	};
2876b4ad4beSNikita Travkin
2888b276ca0SKrzysztof Kozlowski	ctp_pwr_en_default: ctp-pwr-en-default-state {
2896eb81528SNikita Travkin		pins = "gpio17";
2906eb81528SNikita Travkin		function = "gpio";
2916eb81528SNikita Travkin
2926eb81528SNikita Travkin		drive-strength = <2>;
2936eb81528SNikita Travkin		bias-disable;
2946eb81528SNikita Travkin	};
2956eb81528SNikita Travkin
2968b276ca0SKrzysztof Kozlowski	gpio_keys_default: gpio-keys-default-state {
2976554a295SStephan Gerhold		pins = "gpio107";
298f7f394f0SStephan Gerhold		function = "gpio";
2996554a295SStephan Gerhold
300f7f394f0SStephan Gerhold		drive-strength = <2>;
301f7f394f0SStephan Gerhold		bias-pull-up;
302f7f394f0SStephan Gerhold	};
303f7f394f0SStephan Gerhold
3048b276ca0SKrzysztof Kozlowski	gyro_int_default: gyro-int-default-state {
30551c7786fSStephan Gerhold		pins = "gpio22", "gpio23";
30651c7786fSStephan Gerhold		function = "gpio";
30751c7786fSStephan Gerhold
30851c7786fSStephan Gerhold		drive-strength = <2>;
30951c7786fSStephan Gerhold		bias-disable;
31051c7786fSStephan Gerhold	};
31151c7786fSStephan Gerhold
3128b276ca0SKrzysztof Kozlowski	light_int_default: light-int-default-state {
3133016af34SNikita Travkin		pins = "gpio115";
3143016af34SNikita Travkin		function = "gpio";
3153016af34SNikita Travkin
3163016af34SNikita Travkin		drive-strength = <2>;
3173016af34SNikita Travkin		bias-disable;
3183016af34SNikita Travkin	};
3193016af34SNikita Travkin
3208b276ca0SKrzysztof Kozlowski	magn_int_default: magn-int-default-state {
32151c7786fSStephan Gerhold		pins = "gpio113";
3226bd2cae7SNikita Travkin		function = "gpio";
3236bd2cae7SNikita Travkin
3246bd2cae7SNikita Travkin		drive-strength = <2>;
3256bd2cae7SNikita Travkin		bias-disable;
3266bd2cae7SNikita Travkin	};
3276bd2cae7SNikita Travkin
3288b276ca0SKrzysztof Kozlowski	tp_int_default: tp-int-default-state {
3296eb81528SNikita Travkin		pins = "gpio13";
3306eb81528SNikita Travkin		function = "gpio";
3316eb81528SNikita Travkin
3326eb81528SNikita Travkin		drive-strength = <2>;
3336eb81528SNikita Travkin		bias-disable;
3346eb81528SNikita Travkin	};
335f7f394f0SStephan Gerhold};
336