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