1 // SPDX-License-Identifier: GPL-2.0-only 1 // SPDX-License-Identifier: GPL-2.0-only 2 2 3 /dts-v1/; 3 /dts-v1/; 4 4 5 #include "msm8916-pm8916.dtsi" !! 5 #include "msm8916.dtsi" 6 #include "msm8916-modem-qdsp6.dtsi" !! 6 #include "pm8916.dtsi" 7 << 8 #include <dt-bindings/gpio/gpio.h> 7 #include <dt-bindings/gpio/gpio.h> 9 #include <dt-bindings/input/input.h> 8 #include <dt-bindings/input/input.h> 10 #include <dt-bindings/interrupt-controller/irq << 11 #include <dt-bindings/leds/common.h> << 12 9 13 / { 10 / { 14 model = "Longcheer L8150"; 11 model = "Longcheer L8150"; 15 compatible = "longcheer,l8150", "qcom, !! 12 compatible = "longcheer,l8150", "qcom,msm8916-v1-qrd/9-v1", "qcom,msm8916"; 16 chassis-type = "handset"; << 17 13 18 aliases { 14 aliases { 19 mmc0 = &sdhc_1; /* eMMC */ !! 15 serial0 = &blsp1_uart2; 20 mmc1 = &sdhc_2; /* SD card */ << 21 serial0 = &blsp_uart2; << 22 }; 16 }; 23 17 24 chosen { 18 chosen { 25 stdout-path = "serial0"; 19 stdout-path = "serial0"; 26 }; 20 }; 27 21 28 /* << 29 * For some reason, the signed wcnss f << 30 * It must be loaded at 0x8b600000. Un << 31 * mpss_mem does not fit when loaded t << 32 * << 33 * Load wcnss_mem to the fixed address << 34 * working higher address. For some re << 35 * boot when placed at 0x8a800000 to 0 << 36 */ << 37 reserved-memory { 22 reserved-memory { 38 /delete-node/ mpss@86800000; !! 23 // wcnss.mdt is not relocatable, so it must be loaded at 0x8b600000 39 /delete-node/ wcnss; !! 24 /delete-node/ wcnss@89300000; 40 25 41 wcnss_mem: wcnss@8b600000 { 26 wcnss_mem: wcnss@8b600000 { 42 reg = <0x0 0x8b600000 27 reg = <0x0 0x8b600000 0x0 0x600000>; 43 no-map; 28 no-map; 44 }; 29 }; 45 << 46 mpss_mem: mpss@8e800000 { << 47 reg = <0x0 0x8e800000 << 48 no-map; << 49 }; << 50 }; 30 }; 51 31 52 battery: battery { !! 32 soc { 53 compatible = "simple-battery"; !! 33 sdhci@7824000 { 54 voltage-min-design-microvolt = !! 34 status = "okay"; 55 voltage-max-design-microvolt = << 56 energy-full-design-microwatt-h << 57 charge-full-design-microamp-ho << 58 << 59 ocv-capacity-celsius = <25>; << 60 ocv-capacity-table-0 = <433000 << 61 <4208000 90>, <4153000 << 62 <4001000 70>, <3962000 << 63 <3839000 50>, <3817000 << 64 <3767000 30>, <3747000 << 65 <3688000 13>, <3681000 << 66 <3677000 8>, <3674000 << 67 <3597000 4>, <3537000 << 68 <3000000 0>; << 69 }; << 70 << 71 gpio-keys { << 72 compatible = "gpio-keys"; << 73 << 74 pinctrl-names = "default"; << 75 pinctrl-0 = <&gpio_keys_defaul << 76 35 77 label = "GPIO Buttons"; !! 36 vmmc-supply = <&pm8916_l8>; >> 37 vqmmc-supply = <&pm8916_l5>; 78 38 79 button-volume-up { !! 39 pinctrl-names = "default", "sleep"; 80 label = "Volume Up"; !! 40 pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>; 81 gpios = <&tlmm 107 GPI !! 41 pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>; 82 linux,code = <KEY_VOLU << 83 }; 42 }; 84 }; << 85 43 86 reg_ctp: regulator-ctp { !! 44 sdhci@7864000 { 87 compatible = "regulator-fixed" !! 45 status = "okay"; 88 regulator-name = "ctp"; << 89 46 90 regulator-min-microvolt = <280 !! 47 vmmc-supply = <&pm8916_l11>; 91 regulator-max-microvolt = <280 !! 48 vqmmc-supply = <&pm8916_l12>; 92 49 93 gpio = <&tlmm 17 GPIO_ACTIVE_H !! 50 pinctrl-names = "default", "sleep"; 94 enable-active-high; !! 51 pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>; >> 52 pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>; 95 53 96 pinctrl-names = "default"; !! 54 non-removable; 97 pinctrl-0 = <&ctp_pwr_en_defau !! 55 }; 98 }; << 99 << 100 flash-led-controller { << 101 compatible = "sgmicro,sgm3140" << 102 flash-gpios = <&tlmm 31 GPIO_A << 103 enable-gpios = <&tlmm 32 GPIO_ << 104 << 105 pinctrl-names = "default"; << 106 pinctrl-0 = <&camera_flash_def << 107 56 108 flash_led: led { !! 57 serial@78b0000 { 109 function = LED_FUNCTIO !! 58 status = "okay"; 110 color = <LED_COLOR_ID_ !! 59 pinctrl-names = "default", "sleep"; 111 flash-max-timeout-us = !! 60 pinctrl-0 = <&blsp1_uart2_default>; >> 61 pinctrl-1 = <&blsp1_uart2_sleep>; 112 }; 62 }; 113 }; << 114 }; << 115 63 116 &blsp_i2c1 { !! 64 usb@78d9000 { 117 status = "okay"; !! 65 status = "okay"; >> 66 dr_mode = "peripheral"; >> 67 extcon = <&usb_vbus>; 118 68 119 led-controller@45 { !! 69 hnp-disable; 120 compatible = "awinic,aw2013"; !! 70 srp-disable; 121 reg = <0x45>; !! 71 adp-disable; 122 #address-cells = <1>; << 123 #size-cells = <0>; << 124 << 125 vcc-supply = <&pm8916_l17>; << 126 vio-supply = <&pm8916_l6>; << 127 << 128 led@0 { << 129 reg = <0>; << 130 led-max-microamp = <50 << 131 function = LED_FUNCTIO << 132 color = <LED_COLOR_ID_ << 133 }; << 134 72 135 led@1 { !! 73 ulpi { 136 reg = <1>; !! 74 phy { 137 led-max-microamp = <50 !! 75 extcon = <&usb_vbus>; 138 function = LED_FUNCTIO !! 76 v1p8-supply = <&pm8916_l7>; 139 color = <LED_COLOR_ID_ !! 77 v3p3-supply = <&pm8916_l13>; >> 78 }; >> 79 }; 140 }; 80 }; 141 81 142 led@2 { !! 82 wcnss@a21b000 { 143 reg = <2>; !! 83 status = "okay"; 144 led-max-microamp = <50 << 145 function = LED_FUNCTIO << 146 color = <LED_COLOR_ID_ << 147 }; 84 }; 148 }; 85 }; 149 }; << 150 << 151 &blsp_i2c2 { << 152 status = "okay"; << 153 << 154 accelerometer@10 { << 155 compatible = "bosch,bmc156_acc << 156 reg = <0x10>; << 157 << 158 /* << 159 * For some reason the interru << 160 * to the BMC156. However, the << 161 * that can be shorted to make << 162 * << 163 * interrupt-parent = <&tlmm>; << 164 * interrupts = <116 IRQ_TYPE_ << 165 */ << 166 << 167 pinctrl-names = "default"; << 168 pinctrl-0 = <&accel_int_defaul << 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 magnetometer@12 { << 179 compatible = "bosch,bmc156_mag << 180 reg = <0x12>; << 181 << 182 interrupt-parent = <&tlmm>; << 183 interrupts = <113 IRQ_TYPE_EDG << 184 86 >> 87 // FIXME: Use extcon device provided by charger driver when available >> 88 usb_vbus: usb-vbus { >> 89 compatible = "linux,extcon-usb-gpio"; >> 90 vbus-gpio = <&msmgpio 62 GPIO_ACTIVE_HIGH>; 185 pinctrl-names = "default"; 91 pinctrl-names = "default"; 186 pinctrl-0 = <&magn_int_default !! 92 pinctrl-0 = <&usb_vbus_default>; 187 << 188 vdd-supply = <&pm8916_l17>; << 189 vddio-supply = <&pm8916_l6>; << 190 }; 93 }; 191 94 192 light-sensor@23 { !! 95 gpio-keys { 193 compatible = "liteon,ltr559"; !! 96 compatible = "gpio-keys"; 194 reg = <0x23>; << 195 proximity-near-level = <75>; << 196 << 197 interrupt-parent = <&tlmm>; << 198 interrupts = <115 IRQ_TYPE_EDG << 199 97 200 pinctrl-names = "default"; 98 pinctrl-names = "default"; 201 pinctrl-0 = <&light_int_defaul !! 99 pinctrl-0 = <&gpio_keys_default>; 202 << 203 vdd-supply = <&pm8916_l17>; << 204 vddio-supply = <&pm8916_l6>; << 205 }; << 206 << 207 gyroscope@68 { << 208 compatible = "bosch,bmg160"; << 209 reg = <0x68>; << 210 << 211 interrupt-parent = <&tlmm>; << 212 interrupts = <23 IRQ_TYPE_EDGE << 213 <22 IRQ_TYPE_EDGE << 214 100 215 pinctrl-names = "default"; !! 101 label = "GPIO Buttons"; 216 pinctrl-0 = <&gyro_int_default << 217 102 218 vdd-supply = <&pm8916_l17>; !! 103 volume-up { 219 vddio-supply = <&pm8916_l6>; !! 104 label = "Volume Up"; >> 105 gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>; >> 106 linux,code = <KEY_VOLUMEUP>; >> 107 }; 220 }; 108 }; 221 }; 109 }; 222 110 223 &blsp_i2c5 { !! 111 &spmi_bus { 224 status = "okay"; !! 112 pm8916@0 { 225 !! 113 pon@800 { 226 rmi4@20 { !! 114 volume-down { 227 compatible = "syna,rmi4-i2c"; !! 115 compatible = "qcom,pm8941-resin"; 228 reg = <0x20>; !! 116 interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>; 229 #address-cells = <1>; !! 117 bias-pull-up; 230 #size-cells = <0>; !! 118 linux,code = <KEY_VOLUMEDOWN>; 231 !! 119 }; 232 interrupt-parent = <&tlmm>; << 233 interrupts = <13 IRQ_TYPE_EDGE << 234 << 235 vdd-supply = <®_ctp>; << 236 vio-supply = <&pm8916_l6>; << 237 << 238 pinctrl-names = "default"; << 239 pinctrl-0 = <&tp_int_default>; << 240 << 241 syna,startup-delay-ms = <10>; << 242 << 243 rmi4-f01@1 { << 244 reg = <0x1>; << 245 syna,nosleep-mode = <1 << 246 }; << 247 << 248 rmi4-f12@12 { << 249 reg = <0x12>; << 250 syna,sensor-type = <1> << 251 }; 120 }; 252 }; 121 }; 253 }; 122 }; 254 123 255 &blsp_uart2 { !! 124 &smd_rpm_regulators { 256 status = "okay"; !! 125 vdd_l1_l2_l3-supply = <&pm8916_s3>; 257 }; !! 126 vdd_l4_l5_l6-supply = <&pm8916_s4>; 258 !! 127 vdd_l7-supply = <&pm8916_s4>; 259 &pm8916_bms { << 260 status = "okay"; << 261 << 262 monitored-battery = <&battery>; << 263 power-supplies = <&pm8916_charger>; << 264 }; << 265 << 266 &pm8916_charger { << 267 status = "okay"; << 268 << 269 monitored-battery = <&battery>; << 270 << 271 qcom,fast-charge-safe-current = <90000 << 272 qcom,fast-charge-safe-voltage = <43000 << 273 }; << 274 << 275 &pm8916_codec { << 276 qcom,micbias-lvl = <2800>; << 277 qcom,mbhc-vthreshold-low = <75 150 237 << 278 qcom,mbhc-vthreshold-high = <75 150 23 << 279 qcom,hphl-jack-type-normally-open; << 280 }; << 281 << 282 &pm8916_resin { << 283 status = "okay"; << 284 linux,code = <KEY_VOLUMEDOWN>; << 285 }; << 286 128 287 &pm8916_rpm_regulators { !! 129 s1 { 288 pm8916_l17: l17 { !! 130 regulator-min-microvolt = <500000>; 289 regulator-min-microvolt = <285 !! 131 regulator-max-microvolt = <1300000>; 290 regulator-max-microvolt = <285 << 291 }; 132 }; 292 }; << 293 << 294 &pm8916_vib { << 295 status = "okay"; << 296 }; << 297 << 298 &sdhc_1 { << 299 status = "okay"; << 300 }; << 301 133 302 &sdhc_2 { !! 134 s3 { 303 status = "okay"; !! 135 regulator-min-microvolt = <1200000>; 304 non-removable; !! 136 regulator-max-microvolt = <1300000>; 305 }; !! 137 }; 306 << 307 &sound { << 308 audio-routing = << 309 "AMIC1", "MIC BIAS Internal1", << 310 "AMIC2", "MIC BIAS Internal2", << 311 "AMIC3", "MIC BIAS Internal3"; << 312 }; << 313 138 314 &usb { !! 139 s4 { 315 status = "okay"; !! 140 regulator-min-microvolt = <1800000>; 316 dr_mode = "peripheral"; !! 141 regulator-max-microvolt = <2100000>; 317 extcon = <&pm8916_charger>; !! 142 }; 318 }; << 319 143 320 &usb_hs_phy { !! 144 l1 { 321 extcon = <&pm8916_charger>; !! 145 regulator-min-microvolt = <1225000>; 322 }; !! 146 regulator-max-microvolt = <1225000>; >> 147 }; 323 148 324 &venus { !! 149 l2 { 325 status = "okay"; !! 150 regulator-min-microvolt = <1200000>; 326 }; !! 151 regulator-max-microvolt = <1200000>; >> 152 }; 327 153 328 &venus_mem { !! 154 l3 { 329 status = "okay"; !! 155 regulator-min-microvolt = <500000>; 330 }; !! 156 regulator-max-microvolt = <1287500>; >> 157 }; 331 158 332 &wcnss { !! 159 l4 { 333 status = "okay"; !! 160 regulator-min-microvolt = <2050000>; 334 }; !! 161 regulator-max-microvolt = <2050000>; >> 162 }; 335 163 336 &wcnss_iris { !! 164 l5 { 337 compatible = "qcom,wcn3620"; !! 165 regulator-min-microvolt = <1800000>; 338 }; !! 166 regulator-max-microvolt = <1800000>; >> 167 }; 339 168 340 &wcnss_mem { !! 169 l6 { 341 status = "okay"; !! 170 regulator-min-microvolt = <1800000>; 342 }; !! 171 regulator-max-microvolt = <1800000>; >> 172 }; 343 173 344 &tlmm { !! 174 l7 { 345 accel_int_default: accel-int-default-s !! 175 regulator-min-microvolt = <1800000>; 346 pins = "gpio116"; !! 176 regulator-max-microvolt = <1800000>; 347 function = "gpio"; !! 177 }; 348 178 349 drive-strength = <2>; !! 179 l8 { 350 bias-disable; !! 180 regulator-min-microvolt = <2850000>; >> 181 regulator-max-microvolt = <2900000>; 351 }; 182 }; 352 183 353 camera_flash_default: camera-flash-def !! 184 l9 { 354 pins = "gpio31", "gpio32"; !! 185 regulator-min-microvolt = <3300000>; 355 function = "gpio"; !! 186 regulator-max-microvolt = <3300000>; >> 187 }; 356 188 357 drive-strength = <2>; !! 189 l10 { 358 bias-disable; !! 190 regulator-min-microvolt = <2700000>; >> 191 regulator-max-microvolt = <2800000>; 359 }; 192 }; 360 193 361 ctp_pwr_en_default: ctp-pwr-en-default !! 194 l11 { 362 pins = "gpio17"; !! 195 regulator-min-microvolt = <1800000>; 363 function = "gpio"; !! 196 regulator-max-microvolt = <2950000>; >> 197 regulator-allow-set-load; >> 198 regulator-system-load = <200000>; >> 199 }; 364 200 365 drive-strength = <2>; !! 201 l12 { 366 bias-disable; !! 202 regulator-min-microvolt = <1800000>; >> 203 regulator-max-microvolt = <2950000>; 367 }; 204 }; 368 205 369 gpio_keys_default: gpio-keys-default-s !! 206 l13 { 370 pins = "gpio107"; !! 207 regulator-min-microvolt = <3075000>; 371 function = "gpio"; !! 208 regulator-max-microvolt = <3075000>; >> 209 }; 372 210 373 drive-strength = <2>; !! 211 l14 { 374 bias-pull-up; !! 212 regulator-min-microvolt = <1800000>; >> 213 regulator-max-microvolt = <3300000>; 375 }; 214 }; 376 215 377 gyro_int_default: gyro-int-default-sta !! 216 l15 { 378 pins = "gpio22", "gpio23"; !! 217 regulator-min-microvolt = <1800000>; 379 function = "gpio"; !! 218 regulator-max-microvolt = <3300000>; >> 219 }; 380 220 381 drive-strength = <2>; !! 221 l16 { 382 bias-disable; !! 222 regulator-min-microvolt = <1800000>; >> 223 regulator-max-microvolt = <3300000>; 383 }; 224 }; 384 225 385 light_int_default: light-int-default-s !! 226 l17 { 386 pins = "gpio115"; !! 227 regulator-min-microvolt = <2850000>; 387 function = "gpio"; !! 228 regulator-max-microvolt = <2850000>; >> 229 }; 388 230 389 drive-strength = <2>; !! 231 l18 { 390 bias-disable; !! 232 regulator-min-microvolt = <2700000>; >> 233 regulator-max-microvolt = <2700000>; 391 }; 234 }; >> 235 }; 392 236 393 magn_int_default: magn-int-default-sta !! 237 &msmgpio { 394 pins = "gpio113"; !! 238 gpio_keys_default: gpio-keys-default { >> 239 pins = "gpio107"; 395 function = "gpio"; 240 function = "gpio"; 396 241 397 drive-strength = <2>; 242 drive-strength = <2>; 398 bias-disable; !! 243 bias-pull-up; 399 }; 244 }; 400 245 401 tp_int_default: tp-int-default-state { !! 246 usb_vbus_default: usb-vbus-default { 402 pins = "gpio13"; !! 247 pins = "gpio62"; 403 function = "gpio"; 248 function = "gpio"; 404 249 405 drive-strength = <2>; !! 250 bias-pull-up; 406 bias-disable; << 407 }; 251 }; 408 }; 252 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.