1// SPDX-License-Identifier: GPL-2.0-only 2 3/dts-v1/; 4 5#include "msm8916-pm8916.dtsi" 6#include "msm8916-modem-qdsp6.dtsi" 7 8#include <dt-bindings/gpio/gpio.h> 9#include <dt-bindings/input/input.h> 10#include <dt-bindings/leds/common.h> 11#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 12 13/ { 14 model = "BQ Aquaris X5 (Longcheer L8910)"; 15 compatible = "longcheer,l8910", "qcom,msm8916"; 16 chassis-type = "handset"; 17 18 aliases { 19 mmc0 = &sdhc_1; /* eMMC */ 20 mmc1 = &sdhc_2; /* SD card */ 21 serial0 = &blsp_uart2; 22 }; 23 24 chosen { 25 stdout-path = "serial0"; 26 }; 27 28 speaker_amp: audio-amplifier { 29 compatible = "awinic,aw8738"; 30 mode-gpios = <&tlmm 114 GPIO_ACTIVE_HIGH>; 31 awinic,mode = <5>; 32 sound-name-prefix = "Speaker Amp"; 33 34 pinctrl-0 = <&spk_ext_pa_default>; 35 pinctrl-names = "default"; 36 }; 37 38 flash-led-controller { 39 compatible = "ocs,ocp8110"; 40 enable-gpios = <&tlmm 49 GPIO_ACTIVE_HIGH>; 41 flash-gpios = <&tlmm 119 GPIO_ACTIVE_HIGH>; 42 43 pinctrl-0 = <&camera_front_flash_default>; 44 pinctrl-names = "default"; 45 46 flash_led: led { 47 function = LED_FUNCTION_FLASH; 48 color = <LED_COLOR_ID_WHITE>; 49 flash-max-timeout-us = <250000>; 50 }; 51 }; 52 53 gpio-keys { 54 compatible = "gpio-keys"; 55 56 pinctrl-names = "default"; 57 pinctrl-0 = <&gpio_keys_default>; 58 59 label = "GPIO Buttons"; 60 61 button-volume-up { 62 label = "Volume Up"; 63 gpios = <&tlmm 107 GPIO_ACTIVE_LOW>; 64 linux,code = <KEY_VOLUMEUP>; 65 }; 66 }; 67 68 leds { 69 compatible = "gpio-leds"; 70 71 led-0 { 72 gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>; 73 color = <LED_COLOR_ID_WHITE>; 74 default-state = "off"; 75 function = LED_FUNCTION_KBD_BACKLIGHT; 76 77 pinctrl-names = "default"; 78 pinctrl-0 = <&button_backlight_default>; 79 }; 80 }; 81 82 usb_id: usb-id { 83 compatible = "linux,extcon-usb-gpio"; 84 id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>; 85 pinctrl-names = "default"; 86 pinctrl-0 = <&usb_id_default>; 87 }; 88}; 89 90&blsp_i2c2 { 91 status = "okay"; 92 93 led-controller@30 { 94 compatible = "kinetic,ktd2026"; 95 reg = <0x30>; 96 #address-cells = <1>; 97 #size-cells = <0>; 98 99 vin-supply = <&pm8916_l17>; 100 vio-supply = <&pm8916_l6>; 101 102 pinctrl-0 = <&status_led_default>; 103 pinctrl-names = "default"; 104 105 multi-led { 106 color = <LED_COLOR_ID_RGB>; 107 function = LED_FUNCTION_STATUS; 108 109 #address-cells = <1>; 110 #size-cells = <0>; 111 112 led@0 { 113 reg = <0>; 114 color = <LED_COLOR_ID_RED>; 115 }; 116 117 led@1 { 118 reg = <1>; 119 color = <LED_COLOR_ID_GREEN>; 120 }; 121 122 led@2 { 123 reg = <2>; 124 color = <LED_COLOR_ID_BLUE>; 125 }; 126 }; 127 }; 128 129 flash-led-controller@53 { 130 compatible = "silergy,sy7802"; 131 reg = <0x53>; 132 133 enable-gpios = <&tlmm 16 GPIO_ACTIVE_HIGH>; 134 135 pinctrl-0 = <&camera_rear_flash_default>; 136 pinctrl-names = "default"; 137 138 #address-cells = <1>; 139 #size-cells = <0>; 140 141 led@0 { 142 reg = <0>; 143 function = LED_FUNCTION_FLASH; 144 color = <LED_COLOR_ID_WHITE>; 145 led-sources = <0>, <1>; 146 }; 147 }; 148}; 149 150&blsp_i2c3 { 151 status = "okay"; 152 153 magnetometer@d { 154 compatible = "asahi-kasei,ak09911"; 155 reg = <0x0d>; 156 157 vdd-supply = <&pm8916_l17>; 158 vid-supply = <&pm8916_l6>; 159 160 reset-gpios = <&tlmm 111 GPIO_ACTIVE_LOW>; 161 162 pinctrl-names = "default"; 163 pinctrl-0 = <&mag_reset_default>; 164 }; 165 166 imu@68 { 167 compatible = "bosch,bmi160"; 168 reg = <0x68>; 169 170 vdd-supply = <&pm8916_l17>; 171 vddio-supply = <&pm8916_l6>; 172 173 mount-matrix = "0", "1", "0", 174 "-1", "0", "0", 175 "0", "0", "1"; 176 }; 177}; 178 179&blsp_uart2 { 180 status = "okay"; 181}; 182 183&mpss_mem { 184 reg = <0x0 0x86800000 0x0 0x5000000>; 185}; 186 187&pm8916_codec { 188 qcom,micbias-lvl = <2800>; 189 qcom,mbhc-vthreshold-low = <75 100 120 180 500>; 190 qcom,mbhc-vthreshold-high = <75 100 120 180 500>; 191 qcom,hphl-jack-type-normally-open; 192}; 193 194&pm8916_gpios { 195 status_led_default: status-led-default-state { 196 pins = "gpio3"; 197 function = PMIC_GPIO_FUNC_NORMAL; 198 power-source = <PM8916_GPIO_VPH>; 199 bias-disable; 200 output-high; 201 }; 202}; 203 204&pm8916_resin { 205 status = "okay"; 206 linux,code = <KEY_VOLUMEDOWN>; 207}; 208 209&pm8916_rpm_regulators { 210 pm8916_l17: l17 { 211 regulator-min-microvolt = <2850000>; 212 regulator-max-microvolt = <2850000>; 213 }; 214}; 215 216&pm8916_vib { 217 status = "okay"; 218}; 219 220&sdhc_1 { 221 status = "okay"; 222}; 223 224&sdhc_2 { 225 status = "okay"; 226 227 pinctrl-names = "default", "sleep"; 228 pinctrl-0 = <&sdc2_default &sdc2_cd_default>; 229 pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>; 230 231 cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; 232}; 233 234&sound { 235 /* 236 * Provide widgets/pin-switches to allow enabling speaker separately. 237 * The hardware does not provide a way to disable the output via the 238 * headphone jack when the speaker is enabled. 239 */ 240 model = "bq-paella"; 241 widgets = 242 "Speaker", "Speaker", 243 "Headphone", "Headphones"; 244 pin-switches = "Speaker"; 245 audio-routing = 246 "Speaker", "Speaker Amp OUT", 247 "Speaker Amp IN", "HPH_R", 248 "Headphones", "HPH_L", 249 "Headphones", "HPH_R", 250 "AMIC1", "MIC BIAS External1", 251 "AMIC2", "MIC BIAS Internal2", 252 "AMIC3", "MIC BIAS External1"; 253 aux-devs = <&speaker_amp>; 254}; 255 256&usb { 257 status = "okay"; 258 extcon = <&usb_id>, <&usb_id>; 259}; 260 261&usb_hs_phy { 262 extcon = <&usb_id>; 263}; 264 265&venus { 266 status = "okay"; 267}; 268 269&venus_mem { 270 status = "okay"; 271}; 272 273&wcnss { 274 status = "okay"; 275}; 276 277&wcnss_iris { 278 compatible = "qcom,wcn3620"; 279}; 280 281&wcnss_mem { 282 status = "okay"; 283}; 284 285&tlmm { 286 button_backlight_default: button-backlight-default-state { 287 pins = "gpio17"; 288 function = "gpio"; 289 290 drive-strength = <2>; 291 bias-disable; 292 }; 293 294 camera_front_flash_default: camera-front-flash-default-state { 295 pins = "gpio49", "gpio119"; 296 function = "gpio"; 297 drive-strength = <2>; 298 bias-disable; 299 }; 300 301 camera_rear_flash_default: camera-rear-flash-default-state { 302 pins = "gpio9", "gpio16", "gpio117"; 303 function = "gpio"; 304 drive-strength = <2>; 305 bias-disable; 306 }; 307 308 gpio_keys_default: gpio-keys-default-state { 309 pins = "gpio107"; 310 function = "gpio"; 311 312 drive-strength = <2>; 313 bias-pull-up; 314 }; 315 316 mag_reset_default: mag-reset-default-state { 317 pins = "gpio111"; 318 function = "gpio"; 319 320 drive-strength = <2>; 321 bias-disable; 322 }; 323 324 sdc2_cd_default: sdc2-cd-default-state { 325 pins = "gpio38"; 326 function = "gpio"; 327 drive-strength = <2>; 328 bias-disable; 329 }; 330 331 spk_ext_pa_default: spk-ext-pa-default-state { 332 pins = "gpio114"; 333 function = "gpio"; 334 drive-strength = <2>; 335 bias-disable; 336 }; 337 338 usb_id_default: usb-id-default-state { 339 pins = "gpio110"; 340 function = "gpio"; 341 342 drive-strength = <8>; 343 bias-pull-up; 344 }; 345}; 346