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