1*0b63fb8cSPaul Adam// SPDX-License-Identifier: GPL-2.0-only 2*0b63fb8cSPaul Adam 3*0b63fb8cSPaul Adam/dts-v1/; 4*0b63fb8cSPaul Adam 5*0b63fb8cSPaul Adam#include "msm8916-pm8916.dtsi" 6*0b63fb8cSPaul Adam#include "msm8916-modem-qdsp6.dtsi" 7*0b63fb8cSPaul Adam 8*0b63fb8cSPaul Adam#include <dt-bindings/gpio/gpio.h> 9*0b63fb8cSPaul Adam#include <dt-bindings/input/input.h> 10*0b63fb8cSPaul Adam#include <dt-bindings/pinctrl/qcom,pmic-mpp.h> 11*0b63fb8cSPaul Adam 12*0b63fb8cSPaul Adam/ { 13*0b63fb8cSPaul Adam model = "Wiko Pulp 4G"; 14*0b63fb8cSPaul Adam compatible = "wiko,chuppito", "qcom,msm8916"; 15*0b63fb8cSPaul Adam chassis-type = "handset"; 16*0b63fb8cSPaul Adam 17*0b63fb8cSPaul Adam aliases { 18*0b63fb8cSPaul Adam mmc0 = &sdhc_1; /* eMMC */ 19*0b63fb8cSPaul Adam mmc1 = &sdhc_2; /* SD card */ 20*0b63fb8cSPaul Adam serial0 = &blsp_uart2; 21*0b63fb8cSPaul Adam }; 22*0b63fb8cSPaul Adam 23*0b63fb8cSPaul Adam chosen { 24*0b63fb8cSPaul Adam stdout-path = "serial0"; 25*0b63fb8cSPaul Adam }; 26*0b63fb8cSPaul Adam 27*0b63fb8cSPaul Adam backlight: backlight { 28*0b63fb8cSPaul Adam compatible = "pwm-backlight"; 29*0b63fb8cSPaul Adam pwms = <&pm8916_pwm 0 100000>; 30*0b63fb8cSPaul Adam brightness-levels = <0 255>; 31*0b63fb8cSPaul Adam num-interpolated-steps = <255>; 32*0b63fb8cSPaul Adam default-brightness-level = <255>; 33*0b63fb8cSPaul Adam enable-gpios = <&tlmm 119 GPIO_ACTIVE_HIGH>; 34*0b63fb8cSPaul Adam pinctrl-0 = <&button_backlight_default>; 35*0b63fb8cSPaul Adam pinctrl-names = "default"; 36*0b63fb8cSPaul Adam }; 37*0b63fb8cSPaul Adam 38*0b63fb8cSPaul Adam gpio-hall-sensor { 39*0b63fb8cSPaul Adam compatible = "gpio-keys"; 40*0b63fb8cSPaul Adam pinctrl-0 = <&gpio_hall_sensor_default>; 41*0b63fb8cSPaul Adam pinctrl-names = "default"; 42*0b63fb8cSPaul Adam label = "Hall Effect Sensor"; 43*0b63fb8cSPaul Adam 44*0b63fb8cSPaul Adam event-hall-sensor { 45*0b63fb8cSPaul Adam label = "Hall Effect Sensor"; 46*0b63fb8cSPaul Adam gpios = <&tlmm 117 GPIO_ACTIVE_LOW>; 47*0b63fb8cSPaul Adam linux,input-type = <EV_SW>; 48*0b63fb8cSPaul Adam linux,code = <SW_LID>; 49*0b63fb8cSPaul Adam linux,can-disable; 50*0b63fb8cSPaul Adam }; 51*0b63fb8cSPaul Adam }; 52*0b63fb8cSPaul Adam 53*0b63fb8cSPaul Adam gpio-keys { 54*0b63fb8cSPaul Adam compatible = "gpio-keys"; 55*0b63fb8cSPaul Adam pinctrl-0 = <&gpio_keys_default>; 56*0b63fb8cSPaul Adam pinctrl-names = "default"; 57*0b63fb8cSPaul Adam label = "Buttons"; 58*0b63fb8cSPaul Adam 59*0b63fb8cSPaul Adam button-volume-up { 60*0b63fb8cSPaul Adam label = "Volume up"; 61*0b63fb8cSPaul Adam gpios = <&tlmm 107 GPIO_ACTIVE_LOW>; 62*0b63fb8cSPaul Adam linux,code = <KEY_VOLUMEUP>; 63*0b63fb8cSPaul Adam }; 64*0b63fb8cSPaul Adam }; 65*0b63fb8cSPaul Adam 66*0b63fb8cSPaul Adam usb_id: usb-id { 67*0b63fb8cSPaul Adam compatible = "linux,extcon-usb-gpio"; 68*0b63fb8cSPaul Adam id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>; 69*0b63fb8cSPaul Adam pinctrl-0 = <&usb_id_default>; 70*0b63fb8cSPaul Adam pinctrl-names = "default"; 71*0b63fb8cSPaul Adam }; 72*0b63fb8cSPaul Adam}; 73*0b63fb8cSPaul Adam 74*0b63fb8cSPaul Adam&blsp_i2c2 { 75*0b63fb8cSPaul Adam status = "okay"; 76*0b63fb8cSPaul Adam 77*0b63fb8cSPaul Adam magnetometer@c { 78*0b63fb8cSPaul Adam compatible = "asahi-kasei,ak09911"; 79*0b63fb8cSPaul Adam reg = <0x0c>; 80*0b63fb8cSPaul Adam vdd-supply = <&pm8916_l17>; 81*0b63fb8cSPaul Adam vid-supply = <&pm8916_l6>; 82*0b63fb8cSPaul Adam reset-gpios = <&tlmm 120 GPIO_ACTIVE_LOW>; 83*0b63fb8cSPaul Adam pinctrl-0 = <&mag_reset_default>; 84*0b63fb8cSPaul Adam pinctrl-names = "default"; 85*0b63fb8cSPaul Adam mount-matrix = "1", "0", "0", 86*0b63fb8cSPaul Adam "0", "1", "0", 87*0b63fb8cSPaul Adam "0", "0", "1"; 88*0b63fb8cSPaul Adam }; 89*0b63fb8cSPaul Adam 90*0b63fb8cSPaul Adam proximity@48 { 91*0b63fb8cSPaul Adam compatible = "sensortek,stk3310"; 92*0b63fb8cSPaul Adam reg = <0x48>; 93*0b63fb8cSPaul Adam interrupts-extended = <&tlmm 113 IRQ_TYPE_EDGE_FALLING>; 94*0b63fb8cSPaul Adam pinctrl-0 = <&proximity_int_default>; 95*0b63fb8cSPaul Adam pinctrl-names = "default"; 96*0b63fb8cSPaul Adam }; 97*0b63fb8cSPaul Adam 98*0b63fb8cSPaul Adam imu@68 { 99*0b63fb8cSPaul Adam compatible = "invensense,mpu6880"; 100*0b63fb8cSPaul Adam reg = <0x68>; 101*0b63fb8cSPaul Adam interrupts-extended = <&tlmm 115 IRQ_TYPE_EDGE_FALLING>; 102*0b63fb8cSPaul Adam vdd-supply = <&pm8916_l17>; 103*0b63fb8cSPaul Adam vddio-supply = <&pm8916_l6>; 104*0b63fb8cSPaul Adam pinctrl-0 = <&imu_int_default>; 105*0b63fb8cSPaul Adam pinctrl-names = "default"; 106*0b63fb8cSPaul Adam mount-matrix = "0", "-1", "0", 107*0b63fb8cSPaul Adam "-1", "0", "0", 108*0b63fb8cSPaul Adam "0", "0", "-1"; 109*0b63fb8cSPaul Adam }; 110*0b63fb8cSPaul Adam}; 111*0b63fb8cSPaul Adam 112*0b63fb8cSPaul Adam&blsp_i2c5 { 113*0b63fb8cSPaul Adam status = "okay"; 114*0b63fb8cSPaul Adam 115*0b63fb8cSPaul Adam touchscreen@39 { 116*0b63fb8cSPaul Adam compatible = "syna,rmi4-i2c"; 117*0b63fb8cSPaul Adam reg = <0x39>; 118*0b63fb8cSPaul Adam interrupts-extended = <&tlmm 13 IRQ_TYPE_EDGE_FALLING>; 119*0b63fb8cSPaul Adam vdd-supply = <&pm8916_l17>; 120*0b63fb8cSPaul Adam vio-supply = <&pm8916_l6>; 121*0b63fb8cSPaul Adam pinctrl-0 = <&touchscreen_default>; 122*0b63fb8cSPaul Adam pinctrl-names = "default"; 123*0b63fb8cSPaul Adam #address-cells = <1>; 124*0b63fb8cSPaul Adam #size-cells = <0>; 125*0b63fb8cSPaul Adam syna,startup-delay-ms = <100>; 126*0b63fb8cSPaul Adam syna,reset-delay-ms = <160>; 127*0b63fb8cSPaul Adam 128*0b63fb8cSPaul Adam rmi4-f01@1 { 129*0b63fb8cSPaul Adam reg = <0x1>; 130*0b63fb8cSPaul Adam syna,nosleep-mode = <1>; 131*0b63fb8cSPaul Adam }; 132*0b63fb8cSPaul Adam 133*0b63fb8cSPaul Adam rmi4-f11@11 { 134*0b63fb8cSPaul Adam reg = <0x11>; 135*0b63fb8cSPaul Adam syna,sensor-type = <1>; 136*0b63fb8cSPaul Adam }; 137*0b63fb8cSPaul Adam }; 138*0b63fb8cSPaul Adam}; 139*0b63fb8cSPaul Adam 140*0b63fb8cSPaul Adam&blsp_uart2 { 141*0b63fb8cSPaul Adam status = "okay"; 142*0b63fb8cSPaul Adam}; 143*0b63fb8cSPaul Adam 144*0b63fb8cSPaul Adam&gpu { 145*0b63fb8cSPaul Adam status = "okay"; 146*0b63fb8cSPaul Adam}; 147*0b63fb8cSPaul Adam 148*0b63fb8cSPaul Adam&mdss { 149*0b63fb8cSPaul Adam status = "okay"; 150*0b63fb8cSPaul Adam}; 151*0b63fb8cSPaul Adam 152*0b63fb8cSPaul Adam&mpss_mem { 153*0b63fb8cSPaul Adam reg = <0x0 0x86800000 0x0 0x5600000>; 154*0b63fb8cSPaul Adam}; 155*0b63fb8cSPaul Adam 156*0b63fb8cSPaul Adam&pm8916_codec { 157*0b63fb8cSPaul Adam qcom,hphl-jack-type-normally-open; 158*0b63fb8cSPaul Adam}; 159*0b63fb8cSPaul Adam 160*0b63fb8cSPaul Adam&pm8916_mpps { 161*0b63fb8cSPaul Adam pwm_out: mpp4-state { 162*0b63fb8cSPaul Adam pins = "mpp4"; 163*0b63fb8cSPaul Adam function = "digital"; 164*0b63fb8cSPaul Adam power-source = <PM8916_MPP_VPH>; 165*0b63fb8cSPaul Adam output-low; 166*0b63fb8cSPaul Adam qcom,dtest = <1>; 167*0b63fb8cSPaul Adam }; 168*0b63fb8cSPaul Adam}; 169*0b63fb8cSPaul Adam 170*0b63fb8cSPaul Adam&pm8916_pwm { 171*0b63fb8cSPaul Adam pinctrl-0 = <&pwm_out>; 172*0b63fb8cSPaul Adam pinctrl-names = "default"; 173*0b63fb8cSPaul Adam 174*0b63fb8cSPaul Adam status = "okay"; 175*0b63fb8cSPaul Adam}; 176*0b63fb8cSPaul Adam 177*0b63fb8cSPaul Adam&pm8916_resin { 178*0b63fb8cSPaul Adam linux,code = <KEY_VOLUMEDOWN>; 179*0b63fb8cSPaul Adam 180*0b63fb8cSPaul Adam status = "okay"; 181*0b63fb8cSPaul Adam}; 182*0b63fb8cSPaul Adam 183*0b63fb8cSPaul Adam&pm8916_rpm_regulators { 184*0b63fb8cSPaul Adam pm8916_l17: l17 { 185*0b63fb8cSPaul Adam regulator-min-microvolt = <2850000>; 186*0b63fb8cSPaul Adam regulator-max-microvolt = <2850000>; 187*0b63fb8cSPaul Adam }; 188*0b63fb8cSPaul Adam}; 189*0b63fb8cSPaul Adam 190*0b63fb8cSPaul Adam&pm8916_vib { 191*0b63fb8cSPaul Adam status = "okay"; 192*0b63fb8cSPaul Adam}; 193*0b63fb8cSPaul Adam 194*0b63fb8cSPaul Adam&sdhc_1 { 195*0b63fb8cSPaul Adam status = "okay"; 196*0b63fb8cSPaul Adam}; 197*0b63fb8cSPaul Adam 198*0b63fb8cSPaul Adam&sdhc_2 { 199*0b63fb8cSPaul Adam pinctrl-0 = <&sdc2_default>, <&sdc2_cd_default>; 200*0b63fb8cSPaul Adam pinctrl-1 = <&sdc2_sleep>, <&sdc2_cd_default>; 201*0b63fb8cSPaul Adam pinctrl-names = "default", "sleep"; 202*0b63fb8cSPaul Adam cd-gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>; 203*0b63fb8cSPaul Adam 204*0b63fb8cSPaul Adam status = "okay"; 205*0b63fb8cSPaul Adam}; 206*0b63fb8cSPaul Adam 207*0b63fb8cSPaul Adam&sound { 208*0b63fb8cSPaul Adam audio-routing = "AMIC1", "MIC BIAS Internal1", 209*0b63fb8cSPaul Adam "AMIC2", "MIC BIAS Internal2"; 210*0b63fb8cSPaul Adam}; 211*0b63fb8cSPaul Adam 212*0b63fb8cSPaul Adam&tlmm { 213*0b63fb8cSPaul Adam button_backlight_default: button-backlight-default-state { 214*0b63fb8cSPaul Adam pins = "gpio119"; 215*0b63fb8cSPaul Adam function = "gpio"; 216*0b63fb8cSPaul Adam drive-strength = <2>; 217*0b63fb8cSPaul Adam bias-disable; 218*0b63fb8cSPaul Adam }; 219*0b63fb8cSPaul Adam 220*0b63fb8cSPaul Adam gpio_hall_sensor_default: gpio-hall-sensor-default-state { 221*0b63fb8cSPaul Adam pins = "gpio117"; 222*0b63fb8cSPaul Adam function = "gpio"; 223*0b63fb8cSPaul Adam drive-strength = <6>; 224*0b63fb8cSPaul Adam bias-pull-up; 225*0b63fb8cSPaul Adam }; 226*0b63fb8cSPaul Adam 227*0b63fb8cSPaul Adam gpio_keys_default: gpio-keys-default-state { 228*0b63fb8cSPaul Adam pins = "gpio107"; 229*0b63fb8cSPaul Adam function = "gpio"; 230*0b63fb8cSPaul Adam drive-strength = <2>; 231*0b63fb8cSPaul Adam bias-pull-up; 232*0b63fb8cSPaul Adam }; 233*0b63fb8cSPaul Adam 234*0b63fb8cSPaul Adam imu_int_default: imu-int-default-state { 235*0b63fb8cSPaul Adam pins = "gpio115"; 236*0b63fb8cSPaul Adam function = "gpio"; 237*0b63fb8cSPaul Adam drive-strength = <2>; 238*0b63fb8cSPaul Adam bias-disable; 239*0b63fb8cSPaul Adam }; 240*0b63fb8cSPaul Adam 241*0b63fb8cSPaul Adam mag_reset_default: mag-reset-default-state { 242*0b63fb8cSPaul Adam pins = "gpio120"; 243*0b63fb8cSPaul Adam function = "gpio"; 244*0b63fb8cSPaul Adam drive-strength = <2>; 245*0b63fb8cSPaul Adam bias-disable; 246*0b63fb8cSPaul Adam }; 247*0b63fb8cSPaul Adam 248*0b63fb8cSPaul Adam proximity_int_default: proximity-int-default-state { 249*0b63fb8cSPaul Adam pins = "gpio113"; 250*0b63fb8cSPaul Adam function = "gpio"; 251*0b63fb8cSPaul Adam drive-strength = <6>; 252*0b63fb8cSPaul Adam bias-pull-up; 253*0b63fb8cSPaul Adam }; 254*0b63fb8cSPaul Adam 255*0b63fb8cSPaul Adam sdc2_cd_default: sdc2-cd-default-state { 256*0b63fb8cSPaul Adam pins = "gpio38"; 257*0b63fb8cSPaul Adam function = "gpio"; 258*0b63fb8cSPaul Adam drive-strength = <2>; 259*0b63fb8cSPaul Adam bias-disable; 260*0b63fb8cSPaul Adam }; 261*0b63fb8cSPaul Adam 262*0b63fb8cSPaul Adam touchscreen_default: touchscreen-default-state { 263*0b63fb8cSPaul Adam touchscreen-pins { 264*0b63fb8cSPaul Adam pins = "gpio13"; 265*0b63fb8cSPaul Adam function = "gpio"; 266*0b63fb8cSPaul Adam drive-strength = <2>; 267*0b63fb8cSPaul Adam bias-pull-up; 268*0b63fb8cSPaul Adam }; 269*0b63fb8cSPaul Adam 270*0b63fb8cSPaul Adam reset-pins { 271*0b63fb8cSPaul Adam pins = "gpio12"; 272*0b63fb8cSPaul Adam function = "gpio"; 273*0b63fb8cSPaul Adam drive-strength = <2>; 274*0b63fb8cSPaul Adam bias-disable; 275*0b63fb8cSPaul Adam }; 276*0b63fb8cSPaul Adam }; 277*0b63fb8cSPaul Adam 278*0b63fb8cSPaul Adam usb_id_default: usb-id-default-state { 279*0b63fb8cSPaul Adam pins = "gpio110"; 280*0b63fb8cSPaul Adam function = "gpio"; 281*0b63fb8cSPaul Adam drive-strength = <8>; 282*0b63fb8cSPaul Adam bias-pull-up; 283*0b63fb8cSPaul Adam }; 284*0b63fb8cSPaul Adam}; 285*0b63fb8cSPaul Adam 286*0b63fb8cSPaul Adam&usb { 287*0b63fb8cSPaul Adam extcon = <&usb_id>, <&usb_id>; 288*0b63fb8cSPaul Adam 289*0b63fb8cSPaul Adam status = "okay"; 290*0b63fb8cSPaul Adam}; 291*0b63fb8cSPaul Adam 292*0b63fb8cSPaul Adam&usb_hs_phy { 293*0b63fb8cSPaul Adam extcon = <&usb_id>; 294*0b63fb8cSPaul Adam}; 295*0b63fb8cSPaul Adam 296*0b63fb8cSPaul Adam&venus { 297*0b63fb8cSPaul Adam status = "okay"; 298*0b63fb8cSPaul Adam}; 299*0b63fb8cSPaul Adam 300*0b63fb8cSPaul Adam&venus_mem { 301*0b63fb8cSPaul Adam status = "okay"; 302*0b63fb8cSPaul Adam}; 303*0b63fb8cSPaul Adam 304*0b63fb8cSPaul Adam&wcnss { 305*0b63fb8cSPaul Adam status = "okay"; 306*0b63fb8cSPaul Adam}; 307*0b63fb8cSPaul Adam 308*0b63fb8cSPaul Adam&wcnss_iris { 309*0b63fb8cSPaul Adam compatible = "qcom,wcn3620"; 310*0b63fb8cSPaul Adam}; 311*0b63fb8cSPaul Adam 312*0b63fb8cSPaul Adam&wcnss_mem { 313*0b63fb8cSPaul Adam status = "okay"; 314*0b63fb8cSPaul Adam}; 315