1// SPDX-License-Identifier: GPL-2.0-only 2 3/dts-v1/; 4 5#include "msm8939-pm8916.dtsi" 6 7#include <dt-bindings/gpio/gpio.h> 8#include <dt-bindings/input/input.h> 9#include <dt-bindings/interrupt-controller/irq.h> 10#include <dt-bindings/leds/common.h> 11#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 12#include <dt-bindings/pinctrl/qcom,pmic-mpp.h> 13 14/ { 15 model = "BQ Aquaris M5 (Longcheer L9100)"; 16 compatible = "longcheer,l9100", "qcom,msm8939"; 17 chassis-type = "handset"; 18 19 aliases { 20 mmc0 = &sdhc_1; /* eMMC */ 21 mmc1 = &sdhc_2; /* SD card */ 22 serial0 = &blsp_uart2; 23 }; 24 25 chosen { 26 stdout-path = "serial0"; 27 }; 28 29 gpio-hall-sensor { 30 compatible = "gpio-keys"; 31 32 pinctrl-0 = <&gpio_hall_sensor_default>; 33 pinctrl-names = "default"; 34 35 label = "GPIO Hall Effect Sensor"; 36 37 event-hall-sensor { 38 label = "Hall Effect Sensor"; 39 gpios = <&tlmm 20 GPIO_ACTIVE_LOW>; 40 linux,input-type = <EV_SW>; 41 linux,code = <SW_LID>; 42 linux,can-disable; 43 }; 44 }; 45 46 gpio-keys { 47 compatible = "gpio-keys"; 48 49 pinctrl-0 = <&gpio_keys_default>; 50 pinctrl-names = "default"; 51 52 label = "GPIO Buttons"; 53 54 button-volume-up { 55 label = "Volume Up"; 56 gpios = <&tlmm 107 GPIO_ACTIVE_LOW>; 57 linux,code = <KEY_VOLUMEUP>; 58 }; 59 }; 60 61 leds { 62 compatible = "gpio-leds"; 63 64 led-0 { 65 gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>; 66 color = <LED_COLOR_ID_WHITE>; 67 default-state = "off"; 68 function = LED_FUNCTION_KBD_BACKLIGHT; 69 70 pinctrl-0 = <&button_backlight_default>; 71 pinctrl-names = "default"; 72 }; 73 }; 74 75 reg_ts_vdd: regulator-vdd-ts { 76 compatible = "regulator-fixed"; 77 regulator-name = "regulator-vdd-ts"; 78 regulator-min-microvolt = <2850000>; 79 regulator-max-microvolt = <2850000>; 80 81 gpio = <&tlmm 78 GPIO_ACTIVE_HIGH>; 82 enable-active-high; 83 84 pinctrl-0 = <&ts_vdd_default>; 85 pinctrl-names = "default"; 86 }; 87 88 backlight { 89 compatible = "pwm-backlight"; 90 pwms = <&pm8916_pwm 0 100000>; 91 brightness-levels = <0 255>; 92 num-interpolated-steps = <255>; 93 default-brightness-level = <128>; 94 enable-gpios = <&tlmm 98 GPIO_ACTIVE_HIGH>; 95 96 pinctrl-0 = <&lcd_bl_en_default>; 97 pinctrl-names = "default"; 98 }; 99 100 flash-led-controller { 101 compatible = "ocs,ocp8110"; 102 flash-gpios = <&tlmm 8 GPIO_ACTIVE_HIGH>; 103 enable-gpios = <&tlmm 49 GPIO_ACTIVE_HIGH>; 104 105 pinctrl-0 = <&camera_front_flash_default>; 106 pinctrl-names = "default"; 107 108 led { 109 function = LED_FUNCTION_FLASH; 110 color = <LED_COLOR_ID_WHITE>; 111 flash-max-timeout-us = <250000>; 112 }; 113 }; 114 115 usb_id: usb-id { 116 compatible = "linux,extcon-usb-gpio"; 117 id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>; 118 pinctrl-0 = <&usb_id_default &usb_id_switch_default>; 119 pinctrl-names = "default"; 120 }; 121 122}; 123 124&blsp_i2c2 { 125 status = "okay"; 126 127 led-controller@30 { 128 compatible = "kinetic,ktd2026"; 129 reg = <0x30>; 130 #address-cells = <1>; 131 #size-cells = <0>; 132 133 vin-supply = <&pm8916_l17>; 134 vio-supply = <&pm8916_l6>; 135 136 pinctrl-0 = <&status_led_default>; 137 pinctrl-names = "default"; 138 139 multi-led { 140 color = <LED_COLOR_ID_RGB>; 141 function = LED_FUNCTION_STATUS; 142 143 #address-cells = <1>; 144 #size-cells = <0>; 145 146 led@0 { 147 reg = <0>; 148 color = <LED_COLOR_ID_RED>; 149 }; 150 151 led@1 { 152 reg = <1>; 153 color = <LED_COLOR_ID_GREEN>; 154 }; 155 156 led@2 { 157 reg = <2>; 158 color = <LED_COLOR_ID_BLUE>; 159 }; 160 }; 161 }; 162}; 163 164&blsp_i2c3 { 165 status = "okay"; 166 167 magnetometer@d { 168 compatible = "asahi-kasei,ak09911"; 169 reg = <0x0d>; 170 171 vdd-supply = <&pm8916_l17>; 172 vid-supply = <&pm8916_l6>; 173 174 reset-gpios = <&tlmm 68 GPIO_ACTIVE_HIGH>; 175 176 pinctrl-0 = <&mag_reset_default>; 177 pinctrl-names = "default"; 178 }; 179 180 light-sensor@23 { 181 compatible = "liteon,ltr559"; 182 reg = <0x23>; 183 proximity-near-level = <75>; 184 185 vdd-supply = <&pm8916_l17>; 186 vddio-supply = <&pm8916_l5>; 187 188 interrupts-extended = <&tlmm 113 IRQ_TYPE_EDGE_FALLING>; 189 190 pinctrl-0 = <&light_int_default>; 191 pinctrl-names = "default"; 192 }; 193 194 imu@68 { 195 compatible = "bosch,bmi160"; 196 reg = <0x68>; 197 198 vdd-supply = <&pm8916_l17>; 199 vddio-supply = <&pm8916_l6>; 200 }; 201}; 202 203&blsp_i2c5 { 204 status = "okay"; 205 206 touchscreen@4a { 207 compatible = "atmel,maxtouch"; 208 reg = <0x4a>; 209 210 interrupts-extended = <&tlmm 13 IRQ_TYPE_LEVEL_LOW>; 211 212 reset-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>; 213 214 vdda-supply = <&pm8916_l6>; 215 vdd-supply = <®_ts_vdd>; 216 217 pinctrl-0 = <&ts_int_reset_default>; 218 pinctrl-names = "default"; 219 220 /* Keys listed from right to left */ 221 linux,keycodes = <KEY_APPSELECT KEY_HOMEPAGE KEY_BACK>; 222 }; 223}; 224 225&blsp_uart2 { 226 status = "okay"; 227}; 228 229&pm8916_gpios { 230 status_led_default: status-led-default-state { 231 pins = "gpio3"; 232 function = PMIC_GPIO_FUNC_NORMAL; 233 power-source = <PM8916_GPIO_VPH>; 234 bias-disable; 235 output-high; 236 }; 237}; 238 239&pm8916_mpps { 240 pwm_out: mpp4-state { 241 pins = "mpp4"; 242 function = "digital"; 243 power-source = <PM8916_MPP_VPH>; 244 output-low; 245 qcom,dtest = <1>; 246 }; 247}; 248 249&pm8916_pwm { 250 pinctrl-0 = <&pwm_out>; 251 pinctrl-names = "default"; 252 status = "okay"; 253}; 254 255&pm8916_resin { 256 linux,code = <KEY_VOLUMEDOWN>; 257 status = "okay"; 258}; 259 260&pm8916_rpm_regulators { 261 pm8916_l17: l17 { 262 regulator-min-microvolt = <2850000>; 263 regulator-max-microvolt = <2850000>; 264 }; 265}; 266 267&pm8916_vib { 268 status = "okay"; 269}; 270 271&sdhc_1 { 272 status = "okay"; 273}; 274 275&sdhc_2 { 276 pinctrl-0 = <&sdc2_default &sdc2_cd_default>; 277 pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>; 278 pinctrl-names = "default", "sleep"; 279 280 cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; 281 282 status = "okay"; 283}; 284 285&usb { 286 extcon = <&usb_id>, <&usb_id>; 287 status = "okay"; 288}; 289 290&usb_hs_phy { 291 extcon = <&usb_id>; 292}; 293 294&wcnss { 295 status = "okay"; 296}; 297 298&wcnss_iris { 299 compatible = "qcom,wcn3620"; 300}; 301 302&wcnss_mem { 303 status = "okay"; 304}; 305 306&tlmm { 307 button_backlight_default: button-backlight-default-state { 308 pins = "gpio17"; 309 function = "gpio"; 310 drive-strength = <2>; 311 bias-disable; 312 }; 313 314 camera_front_flash_default: camera-front-flash-default-state { 315 pins = "gpio8", "gpio49"; 316 function = "gpio"; 317 drive-strength = <2>; 318 bias-disable; 319 }; 320 321 gpio_hall_sensor_default: gpio-hall-sensor-default-state { 322 pins = "gpio20"; 323 function = "gpio"; 324 drive-strength = <2>; 325 bias-disable; 326 }; 327 328 gpio_keys_default: gpio-keys-default-state { 329 pins = "gpio107"; 330 function = "gpio"; 331 drive-strength = <2>; 332 bias-pull-up; 333 }; 334 335 lcd_bl_en_default: lcd-bl-en-default-state { 336 pins = "gpio98"; 337 function = "gpio"; 338 drive-strength = <2>; 339 bias-disable; 340 }; 341 342 light_int_default: light-int-default-state { 343 pins = "gpio113"; 344 function = "gpio"; 345 drive-strength = <2>; 346 bias-disable; 347 }; 348 349 mag_reset_default: mag-reset-default-state { 350 pins = "gpio68"; 351 function = "gpio"; 352 drive-strength = <2>; 353 bias-disable; 354 }; 355 356 sdc2_cd_default: sdc2-cd-default-state { 357 pins = "gpio38"; 358 function = "gpio"; 359 drive-strength = <2>; 360 bias-disable; 361 }; 362 363 ts_int_reset_default: ts-int-reset-default-state { 364 pins = "gpio12", "gpio13"; 365 function = "gpio"; 366 drive-strength = <2>; 367 bias-disable; 368 }; 369 370 ts_vdd_default: ts-vdd-default-state { 371 pins = "gpio78"; 372 function = "gpio"; 373 drive-strength = <2>; 374 bias-disable; 375 }; 376 377 usb_id_default: usb-id-default-state { 378 pins = "gpio110"; 379 function = "gpio"; 380 drive-strength = <8>; 381 bias-pull-up; 382 }; 383 384 usb_id_switch_default: usb-id-switch-default-state { 385 pins = "gpio121"; 386 function = "gpio"; 387 drive-strength = <2>; 388 output-high; 389 }; 390}; 391