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