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 { 1716e8e807SStephan Gerhold serial0 = &blsp1_uart2; 1816e8e807SStephan Gerhold }; 1916e8e807SStephan Gerhold 2016e8e807SStephan Gerhold chosen { 2116e8e807SStephan Gerhold stdout-path = "serial0"; 2216e8e807SStephan Gerhold }; 2316e8e807SStephan Gerhold 24b0e1600dSNikita Travkin reserved-memory { 254bb376f6SKonrad Dybcio /* wcnss.mdt is not relocatable, so it must be loaded at 0x8b600000 */ 26b0e1600dSNikita Travkin /delete-node/ wcnss@89300000; 27b0e1600dSNikita Travkin 28b0e1600dSNikita Travkin wcnss_mem: wcnss@8b600000 { 29b0e1600dSNikita Travkin reg = <0x0 0x8b600000 0x0 0x600000>; 30b0e1600dSNikita Travkin no-map; 31b0e1600dSNikita Travkin }; 32b0e1600dSNikita Travkin }; 33b0e1600dSNikita Travkin 343ba8bbc4SNikita Travkin gpio-keys { 353ba8bbc4SNikita Travkin compatible = "gpio-keys"; 363ba8bbc4SNikita Travkin 373ba8bbc4SNikita Travkin pinctrl-names = "default"; 383ba8bbc4SNikita Travkin pinctrl-0 = <&gpio_keys_default>; 393ba8bbc4SNikita Travkin 403ba8bbc4SNikita Travkin label = "GPIO Buttons"; 413ba8bbc4SNikita Travkin 42b08f5cbdSKrzysztof Kozlowski button-volume-up { 433ba8bbc4SNikita Travkin label = "Volume Up"; 443ba8bbc4SNikita Travkin gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>; 453ba8bbc4SNikita Travkin linux,code = <KEY_VOLUMEUP>; 463ba8bbc4SNikita Travkin }; 473ba8bbc4SNikita Travkin }; 486eb81528SNikita Travkin 496eb81528SNikita Travkin reg_ctp: regulator-ctp { 506eb81528SNikita Travkin compatible = "regulator-fixed"; 516eb81528SNikita Travkin regulator-name = "ctp"; 526eb81528SNikita Travkin 536eb81528SNikita Travkin regulator-min-microvolt = <2800000>; 546eb81528SNikita Travkin regulator-max-microvolt = <2800000>; 556eb81528SNikita Travkin 566eb81528SNikita Travkin gpio = <&msmgpio 17 GPIO_ACTIVE_HIGH>; 576eb81528SNikita Travkin enable-active-high; 586eb81528SNikita Travkin 596eb81528SNikita Travkin pinctrl-names = "default"; 606eb81528SNikita Travkin pinctrl-0 = <&ctp_pwr_en_default>; 616eb81528SNikita Travkin }; 626b4ad4beSNikita Travkin 636b4ad4beSNikita Travkin flash-led-controller { 646b4ad4beSNikita Travkin compatible = "sgmicro,sgm3140"; 656b4ad4beSNikita Travkin flash-gpios = <&msmgpio 31 GPIO_ACTIVE_HIGH>; 666b4ad4beSNikita Travkin enable-gpios = <&msmgpio 32 GPIO_ACTIVE_HIGH>; 676b4ad4beSNikita Travkin 686b4ad4beSNikita Travkin pinctrl-names = "default"; 696b4ad4beSNikita Travkin pinctrl-0 = <&camera_flash_default>; 706b4ad4beSNikita Travkin 716b4ad4beSNikita Travkin flash_led: led { 726b4ad4beSNikita Travkin function = LED_FUNCTION_FLASH; 736b4ad4beSNikita Travkin color = <LED_COLOR_ID_WHITE>; 746b4ad4beSNikita Travkin flash-max-timeout-us = <250000>; 756b4ad4beSNikita Travkin }; 766b4ad4beSNikita Travkin }; 776eb81528SNikita Travkin}; 786eb81528SNikita Travkin 7938260b9eSNikita Travkin&blsp_i2c1 { 8038260b9eSNikita Travkin status = "okay"; 8138260b9eSNikita Travkin 8238260b9eSNikita Travkin led-controller@45 { 8338260b9eSNikita Travkin compatible = "awinic,aw2013"; 8438260b9eSNikita Travkin reg = <0x45>; 8538260b9eSNikita Travkin #address-cells = <1>; 8638260b9eSNikita Travkin #size-cells = <0>; 8738260b9eSNikita Travkin 8838260b9eSNikita Travkin vcc-supply = <&pm8916_l17>; 8938260b9eSNikita Travkin 9038260b9eSNikita Travkin led@0 { 9138260b9eSNikita Travkin reg = <0>; 9238260b9eSNikita Travkin led-max-microamp = <5000>; 9338260b9eSNikita Travkin function = LED_FUNCTION_INDICATOR; 9438260b9eSNikita Travkin color = <LED_COLOR_ID_RED>; 9538260b9eSNikita Travkin }; 9638260b9eSNikita Travkin 9738260b9eSNikita Travkin led@1 { 9838260b9eSNikita Travkin reg = <1>; 9938260b9eSNikita Travkin led-max-microamp = <5000>; 10038260b9eSNikita Travkin function = LED_FUNCTION_INDICATOR; 10138260b9eSNikita Travkin color = <LED_COLOR_ID_GREEN>; 10238260b9eSNikita Travkin }; 10338260b9eSNikita Travkin 10438260b9eSNikita Travkin led@2 { 10538260b9eSNikita Travkin reg = <2>; 10638260b9eSNikita Travkin led-max-microamp = <5000>; 10738260b9eSNikita Travkin function = LED_FUNCTION_INDICATOR; 10838260b9eSNikita Travkin color = <LED_COLOR_ID_BLUE>; 10938260b9eSNikita Travkin }; 11038260b9eSNikita Travkin }; 11138260b9eSNikita Travkin}; 11238260b9eSNikita Travkin 1136bd2cae7SNikita Travkin&blsp_i2c2 { 1146bd2cae7SNikita Travkin status = "okay"; 1156bd2cae7SNikita Travkin 1166bd2cae7SNikita Travkin accelerometer@10 { 11751c7786fSStephan Gerhold compatible = "bosch,bmc156_accel"; 1186bd2cae7SNikita Travkin reg = <0x10>; 1196bd2cae7SNikita Travkin 12051c7786fSStephan Gerhold /* 12151c7786fSStephan Gerhold * For some reason the interrupt line is usually not connected 12251c7786fSStephan Gerhold * to the BMC156. However, there are two pads next to the chip 12351c7786fSStephan Gerhold * that can be shorted to make it work if needed. 12451c7786fSStephan Gerhold * 12551c7786fSStephan Gerhold * interrupt-parent = <&msmgpio>; 12651c7786fSStephan Gerhold * interrupts = <116 IRQ_TYPE_EDGE_RISING>; 12751c7786fSStephan Gerhold */ 12851c7786fSStephan Gerhold 12951c7786fSStephan Gerhold pinctrl-names = "default"; 13051c7786fSStephan Gerhold pinctrl-0 = <&accel_int_default>; 13151c7786fSStephan Gerhold 1326bd2cae7SNikita Travkin vdd-supply = <&pm8916_l17>; 1336bd2cae7SNikita Travkin vddio-supply = <&pm8916_l6>; 1346bd2cae7SNikita Travkin 1356bd2cae7SNikita Travkin mount-matrix = "0", "1", "0", 1366bd2cae7SNikita Travkin "-1", "0", "0", 1376bd2cae7SNikita Travkin "0", "0", "1"; 1386bd2cae7SNikita Travkin }; 1396bd2cae7SNikita Travkin 1406bd2cae7SNikita Travkin magnetometer@12 { 14151c7786fSStephan Gerhold compatible = "bosch,bmc156_magn"; 1426bd2cae7SNikita Travkin reg = <0x12>; 1436bd2cae7SNikita Travkin 14451c7786fSStephan Gerhold interrupt-parent = <&msmgpio>; 14551c7786fSStephan Gerhold interrupts = <113 IRQ_TYPE_EDGE_RISING>; 14651c7786fSStephan Gerhold 14751c7786fSStephan Gerhold pinctrl-names = "default"; 14851c7786fSStephan Gerhold pinctrl-0 = <&magn_int_default>; 14951c7786fSStephan Gerhold 1506bd2cae7SNikita Travkin vdd-supply = <&pm8916_l17>; 1516bd2cae7SNikita Travkin vddio-supply = <&pm8916_l6>; 1526bd2cae7SNikita Travkin }; 1536bd2cae7SNikita Travkin 1543016af34SNikita Travkin light-sensor@23 { 1553016af34SNikita Travkin compatible = "liteon,ltr559"; 1563016af34SNikita Travkin reg = <0x23>; 1573016af34SNikita Travkin proximity-near-level = <75>; 1583016af34SNikita Travkin 1593016af34SNikita Travkin interrupt-parent = <&msmgpio>; 1603016af34SNikita Travkin interrupts = <115 IRQ_TYPE_EDGE_FALLING>; 1613016af34SNikita Travkin 1623016af34SNikita Travkin pinctrl-names = "default"; 1633016af34SNikita Travkin pinctrl-0 = <&light_int_default>; 1643016af34SNikita Travkin 1653016af34SNikita Travkin vdd-supply = <&pm8916_l17>; 1663016af34SNikita Travkin vio-supply = <&pm8916_l6>; 1673016af34SNikita Travkin }; 1683016af34SNikita Travkin 1696bd2cae7SNikita Travkin gyroscope@68 { 1706bd2cae7SNikita Travkin compatible = "bosch,bmg160"; 1716bd2cae7SNikita Travkin reg = <0x68>; 1726bd2cae7SNikita Travkin 1736bd2cae7SNikita Travkin interrupt-parent = <&msmgpio>; 17451c7786fSStephan Gerhold interrupts = <23 IRQ_TYPE_EDGE_RISING>, 17551c7786fSStephan Gerhold <22 IRQ_TYPE_EDGE_RISING>; 1766bd2cae7SNikita Travkin 1776bd2cae7SNikita Travkin pinctrl-names = "default"; 1786bd2cae7SNikita Travkin pinctrl-0 = <&gyro_int_default>; 1796bd2cae7SNikita Travkin 1806bd2cae7SNikita Travkin vdd-supply = <&pm8916_l17>; 1816bd2cae7SNikita Travkin vddio-supply = <&pm8916_l6>; 1826bd2cae7SNikita Travkin }; 1836bd2cae7SNikita Travkin}; 1846bd2cae7SNikita Travkin 1856eb81528SNikita Travkin&blsp_i2c5 { 1866eb81528SNikita Travkin status = "okay"; 1876eb81528SNikita Travkin 1886eb81528SNikita Travkin rmi4@20 { 1896eb81528SNikita Travkin compatible = "syna,rmi4-i2c"; 1906eb81528SNikita Travkin reg = <0x20>; 1916eb81528SNikita Travkin #address-cells = <1>; 1926eb81528SNikita Travkin #size-cells = <0>; 1936eb81528SNikita Travkin 1946eb81528SNikita Travkin interrupt-parent = <&msmgpio>; 1956eb81528SNikita Travkin interrupts = <13 IRQ_TYPE_EDGE_FALLING>; 1966eb81528SNikita Travkin 1976eb81528SNikita Travkin vdd-supply = <®_ctp>; 1986eb81528SNikita Travkin vio-supply = <&pm8916_l6>; 1996eb81528SNikita Travkin 2006eb81528SNikita Travkin pinctrl-names = "default"; 2016eb81528SNikita Travkin pinctrl-0 = <&tp_int_default>; 2026eb81528SNikita Travkin 2036eb81528SNikita Travkin syna,startup-delay-ms = <10>; 2046eb81528SNikita Travkin 2056eb81528SNikita Travkin rmi4-f01@1 { 2066eb81528SNikita Travkin reg = <0x1>; 2074bb376f6SKonrad Dybcio syna,nosleep-mode = <1>; /* Allow sleeping */ 2086eb81528SNikita Travkin }; 2096eb81528SNikita Travkin 2106eb81528SNikita Travkin rmi4-f12@12 { 2116eb81528SNikita Travkin reg = <0x12>; 2124bb376f6SKonrad Dybcio syna,sensor-type = <1>; /* Touchscreen */ 2136eb81528SNikita Travkin }; 2146eb81528SNikita Travkin }; 21516e8e807SStephan Gerhold}; 21616e8e807SStephan Gerhold 217e2f6482aSStephan Gerhold&blsp1_uart2 { 218e2f6482aSStephan Gerhold status = "okay"; 219e2f6482aSStephan Gerhold}; 220e2f6482aSStephan Gerhold 2214eb7b63dSStephan Gerhold&pm8916_resin { 2224eb7b63dSStephan Gerhold status = "okay"; 2234eb7b63dSStephan Gerhold linux,code = <KEY_VOLUMEDOWN>; 2244eb7b63dSStephan Gerhold}; 2254eb7b63dSStephan Gerhold 226*b0a8f16aSStephan Gerhold&pm8916_rpm_regulators { 227*b0a8f16aSStephan Gerhold pm8916_l17: l17 { 228*b0a8f16aSStephan Gerhold regulator-min-microvolt = <2850000>; 229*b0a8f16aSStephan Gerhold regulator-max-microvolt = <2850000>; 230*b0a8f16aSStephan Gerhold }; 231*b0a8f16aSStephan Gerhold}; 232*b0a8f16aSStephan Gerhold 233b30cad26SStephan Gerhold&pm8916_usbin { 234b30cad26SStephan Gerhold status = "okay"; 235b30cad26SStephan Gerhold}; 236b30cad26SStephan Gerhold 2370af8bbdbSNikita Travkin&pm8916_vib { 2380af8bbdbSNikita Travkin status = "okay"; 2390af8bbdbSNikita Travkin}; 2400af8bbdbSNikita Travkin 241e2f6482aSStephan Gerhold&sdhc_1 { 242e2f6482aSStephan Gerhold status = "okay"; 243e2f6482aSStephan Gerhold 244e2f6482aSStephan Gerhold pinctrl-names = "default", "sleep"; 245e2f6482aSStephan Gerhold pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>; 246e2f6482aSStephan Gerhold pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>; 247e2f6482aSStephan Gerhold}; 248e2f6482aSStephan Gerhold 249e2f6482aSStephan Gerhold&sdhc_2 { 250e2f6482aSStephan Gerhold status = "okay"; 251e2f6482aSStephan Gerhold 252e2f6482aSStephan Gerhold pinctrl-names = "default", "sleep"; 253e2f6482aSStephan Gerhold pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>; 254e2f6482aSStephan Gerhold pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>; 255e2f6482aSStephan Gerhold 256e2f6482aSStephan Gerhold non-removable; 257e2f6482aSStephan Gerhold}; 258e2f6482aSStephan Gerhold 259e2f6482aSStephan Gerhold&usb { 260e2f6482aSStephan Gerhold status = "okay"; 261e2f6482aSStephan Gerhold dr_mode = "peripheral"; 262b30cad26SStephan Gerhold extcon = <&pm8916_usbin>; 263e2f6482aSStephan Gerhold}; 264e2f6482aSStephan Gerhold 265e2f6482aSStephan Gerhold&usb_hs_phy { 266b30cad26SStephan Gerhold extcon = <&pm8916_usbin>; 267e2f6482aSStephan Gerhold}; 268e2f6482aSStephan Gerhold 26932444424SStephan Gerhold&wcnss { 27032444424SStephan Gerhold status = "okay"; 27132444424SStephan Gerhold}; 27232444424SStephan Gerhold 27332444424SStephan Gerhold&wcnss_iris { 27432444424SStephan Gerhold compatible = "qcom,wcn3620"; 27532444424SStephan Gerhold}; 27632444424SStephan Gerhold 277f7f394f0SStephan Gerhold&msmgpio { 2788b276ca0SKrzysztof Kozlowski accel_int_default: accel-int-default-state { 27951c7786fSStephan Gerhold pins = "gpio116"; 28051c7786fSStephan Gerhold function = "gpio"; 28151c7786fSStephan Gerhold 28251c7786fSStephan Gerhold drive-strength = <2>; 28351c7786fSStephan Gerhold bias-disable; 28451c7786fSStephan Gerhold }; 28551c7786fSStephan Gerhold 2868b276ca0SKrzysztof Kozlowski camera_flash_default: camera-flash-default-state { 2876b4ad4beSNikita Travkin pins = "gpio31", "gpio32"; 2886b4ad4beSNikita Travkin function = "gpio"; 2896b4ad4beSNikita Travkin 2906b4ad4beSNikita Travkin drive-strength = <2>; 2916b4ad4beSNikita Travkin bias-disable; 2926b4ad4beSNikita Travkin }; 2936b4ad4beSNikita Travkin 2948b276ca0SKrzysztof Kozlowski ctp_pwr_en_default: ctp-pwr-en-default-state { 2956eb81528SNikita Travkin pins = "gpio17"; 2966eb81528SNikita Travkin function = "gpio"; 2976eb81528SNikita Travkin 2986eb81528SNikita Travkin drive-strength = <2>; 2996eb81528SNikita Travkin bias-disable; 3006eb81528SNikita Travkin }; 3016eb81528SNikita Travkin 3028b276ca0SKrzysztof Kozlowski gpio_keys_default: gpio-keys-default-state { 3036554a295SStephan Gerhold pins = "gpio107"; 304f7f394f0SStephan Gerhold function = "gpio"; 3056554a295SStephan Gerhold 306f7f394f0SStephan Gerhold drive-strength = <2>; 307f7f394f0SStephan Gerhold bias-pull-up; 308f7f394f0SStephan Gerhold }; 309f7f394f0SStephan Gerhold 3108b276ca0SKrzysztof Kozlowski gyro_int_default: gyro-int-default-state { 31151c7786fSStephan Gerhold pins = "gpio22", "gpio23"; 31251c7786fSStephan Gerhold function = "gpio"; 31351c7786fSStephan Gerhold 31451c7786fSStephan Gerhold drive-strength = <2>; 31551c7786fSStephan Gerhold bias-disable; 31651c7786fSStephan Gerhold }; 31751c7786fSStephan Gerhold 3188b276ca0SKrzysztof Kozlowski light_int_default: light-int-default-state { 3193016af34SNikita Travkin pins = "gpio115"; 3203016af34SNikita Travkin function = "gpio"; 3213016af34SNikita Travkin 3223016af34SNikita Travkin drive-strength = <2>; 3233016af34SNikita Travkin bias-disable; 3243016af34SNikita Travkin }; 3253016af34SNikita Travkin 3268b276ca0SKrzysztof Kozlowski magn_int_default: magn-int-default-state { 32751c7786fSStephan Gerhold pins = "gpio113"; 3286bd2cae7SNikita Travkin function = "gpio"; 3296bd2cae7SNikita Travkin 3306bd2cae7SNikita Travkin drive-strength = <2>; 3316bd2cae7SNikita Travkin bias-disable; 3326bd2cae7SNikita Travkin }; 3336bd2cae7SNikita Travkin 3348b276ca0SKrzysztof Kozlowski tp_int_default: tp-int-default-state { 3356eb81528SNikita Travkin pins = "gpio13"; 3366eb81528SNikita Travkin function = "gpio"; 3376eb81528SNikita Travkin 3386eb81528SNikita Travkin drive-strength = <2>; 3396eb81528SNikita Travkin bias-disable; 3406eb81528SNikita Travkin }; 341f7f394f0SStephan Gerhold}; 342