1 // SPDX-License-Identifier: GPL-2.0-only 2 /* 3 * Copyright (C) 2019 Stephan Gerhold 4 */ 5 6 /dts-v1/; 7 8 #include "msm8916-pm8916.dtsi" 9 #include "msm8916-modem-qdsp6.dtsi" 10 11 #include <dt-bindings/gpio/gpio.h> 12 #include <dt-bindings/input/input.h> 13 #include <dt-bindings/interrupt-controller/irq 14 15 /* 16 * NOTE: The original firmware from Samsung ca 17 * Unfortunately, the firmware is signed and c 18 * There seems to be no way to boot ARM64 kern 19 * even though the hardware would support it. 20 * 21 * However, it is possible to use this device 22 * instead. For clarity and build testing this 23 * to the other MSM8916 device trees. However, 24 * arch/arm/boot/dts/qcom-msm8916-samsung-se 25 */ 26 27 / { 28 model = "Samsung Galaxy S4 Mini Value 29 compatible = "samsung,serranove", "qco 30 chassis-type = "handset"; 31 32 aliases { 33 mmc0 = &sdhc_1; /* eMMC */ 34 mmc1 = &sdhc_2; /* SD card */ 35 serial0 = &blsp_uart2; 36 }; 37 38 chosen { 39 stdout-path = "serial0"; 40 }; 41 42 reserved-memory { 43 /* Additional memory used by S 44 tz-apps@85500000 { 45 reg = <0x0 0x85500000 46 no-map; 47 }; 48 }; 49 50 gpio-keys { 51 compatible = "gpio-keys"; 52 53 pinctrl-names = "default"; 54 pinctrl-0 = <&gpio_keys_defaul 55 56 label = "GPIO Buttons"; 57 58 button-volume-up { 59 label = "Volume Up"; 60 gpios = <&tlmm 107 GPI 61 linux,code = <KEY_VOLU 62 }; 63 64 button-home { 65 label = "Home"; 66 gpios = <&tlmm 109 GPI 67 linux,code = <KEY_HOME 68 }; 69 }; 70 71 gpio-hall-sensor { 72 compatible = "gpio-keys"; 73 74 pinctrl-names = "default"; 75 pinctrl-0 = <&gpio_hall_sensor 76 77 label = "GPIO Hall Effect Sens 78 79 event-hall-sensor { 80 label = "Hall Effect S 81 gpios = <&tlmm 52 GPIO 82 linux,input-type = <EV 83 linux,code = <SW_LID>; 84 linux,can-disable; 85 }; 86 }; 87 88 reg_vdd_tsp: regulator-vdd-tsp { 89 compatible = "regulator-fixed" 90 regulator-name = "vdd_tsp"; 91 regulator-min-microvolt = <330 92 regulator-max-microvolt = <330 93 94 gpio = <&tlmm 73 GPIO_ACTIVE_H 95 enable-active-high; 96 97 pinctrl-names = "default"; 98 pinctrl-0 = <&tsp_en_default>; 99 }; 100 101 reg_touch_key: regulator-touch-key { 102 compatible = "regulator-fixed" 103 regulator-name = "touch_key"; 104 regulator-min-microvolt = <280 105 regulator-max-microvolt = <280 106 107 gpio = <&tlmm 86 GPIO_ACTIVE_H 108 enable-active-high; 109 110 pinctrl-names = "default"; 111 pinctrl-0 = <&tkey_en_default> 112 }; 113 114 reg_key_led: regulator-key-led { 115 compatible = "regulator-fixed" 116 regulator-name = "key_led"; 117 regulator-min-microvolt = <330 118 regulator-max-microvolt = <330 119 120 gpio = <&tlmm 60 GPIO_ACTIVE_H 121 enable-active-high; 122 123 pinctrl-names = "default"; 124 pinctrl-0 = <&tkey_led_en_defa 125 }; 126 127 i2c-muic { 128 compatible = "i2c-gpio"; 129 sda-gpios = <&tlmm 105 (GPIO_A 130 scl-gpios = <&tlmm 106 (GPIO_A 131 132 pinctrl-names = "default"; 133 pinctrl-0 = <&muic_i2c_default 134 135 #address-cells = <1>; 136 #size-cells = <0>; 137 138 muic: extcon@14 { 139 compatible = "siliconm 140 reg = <0x14>; 141 142 interrupt-parent = <&t 143 interrupts = <12 IRQ_T 144 145 pinctrl-names = "defau 146 pinctrl-0 = <&muic_irq 147 148 usb_con: connector { 149 compatible = " 150 label = "micro 151 type = "micro" 152 }; 153 }; 154 }; 155 156 i2c-tkey { 157 compatible = "i2c-gpio"; 158 sda-gpios = <&tlmm 16 (GPIO_AC 159 scl-gpios = <&tlmm 17 (GPIO_AC 160 161 pinctrl-names = "default"; 162 pinctrl-0 = <&tkey_i2c_default 163 164 #address-cells = <1>; 165 #size-cells = <0>; 166 167 touchkey@20 { 168 compatible = "corerive 169 reg = <0x20>; 170 171 interrupt-parent = <&t 172 interrupts = <98 IRQ_T 173 174 vcc-supply = <®_tou 175 vdd-supply = <®_key 176 vddio-supply = <&pm891 177 178 linux,keycodes = <KEY_ 179 180 pinctrl-names = "defau 181 pinctrl-0 = <&tkey_def 182 }; 183 }; 184 185 i2c-nfc { 186 compatible = "i2c-gpio"; 187 sda-gpios = <&tlmm 0 (GPIO_ACT 188 scl-gpios = <&tlmm 1 (GPIO_ACT 189 190 pinctrl-names = "default"; 191 pinctrl-0 = <&nfc_i2c_default> 192 193 #address-cells = <1>; 194 #size-cells = <0>; 195 196 nfc@2b { 197 compatible = "nxp,pn54 198 reg = <0x2b>; 199 200 interrupt-parent = <&t 201 interrupts = <21 IRQ_T 202 203 enable-gpios = <&tlmm 204 firmware-gpios = <&tlm 205 206 pinctrl-names = "defau 207 pinctrl-0 = <&nfc_defa 208 }; 209 }; 210 211 battery: battery { 212 compatible = "simple-battery"; 213 precharge-current-microamp = < 214 constant-charge-current-max-mi 215 charge-term-current-microamp = 216 precharge-upper-limit-microvol 217 constant-charge-voltage-max-mi 218 }; 219 }; 220 221 &blsp_i2c2 { 222 status = "okay"; 223 224 imu@6b { 225 compatible = "st,lsm6ds3"; 226 reg = <0x6b>; 227 228 interrupt-parent = <&tlmm>; 229 interrupts = <115 IRQ_TYPE_EDG 230 231 pinctrl-names = "default"; 232 pinctrl-0 = <&imu_irq_default> 233 }; 234 235 magnetometer@2e { 236 compatible = "yamaha,yas537"; 237 reg = <0x2e>; 238 239 mount-matrix = "0", "1", "0" 240 "1", "0", "0" 241 "0", "0", "-1" 242 }; 243 }; 244 245 &blsp_i2c4 { 246 status = "okay"; 247 248 fuel-gauge@35 { 249 compatible = "richtek,rt5033-b 250 reg = <0x35>; 251 252 interrupt-parent = <&tlmm>; 253 interrupts = <121 IRQ_TYPE_EDG 254 255 pinctrl-names = "default"; 256 pinctrl-0 = <&fg_alert_default 257 258 power-supplies = <&rt5033_char 259 }; 260 }; 261 262 &blsp_i2c5 { 263 status = "okay"; 264 265 touchscreen@20 { 266 compatible = "zinitix,bt541"; 267 reg = <0x20>; 268 269 interrupt-parent = <&tlmm>; 270 interrupts = <13 IRQ_TYPE_EDGE 271 272 touchscreen-size-x = <540>; 273 touchscreen-size-y = <960>; 274 275 vdd-supply = <®_vdd_tsp>; 276 vddo-supply = <&pm8916_l6>; 277 278 pinctrl-names = "default"; 279 pinctrl-0 = <&tsp_irq_default> 280 }; 281 }; 282 283 &blsp_i2c6 { 284 status = "okay"; 285 286 pmic@34 { 287 compatible = "richtek,rt5033"; 288 reg = <0x34>; 289 290 interrupt-parent = <&tlmm>; 291 interrupts = <62 IRQ_TYPE_EDGE 292 293 pinctrl-names = "default"; 294 pinctrl-0 = <&pmic_int_default 295 296 regulators { 297 rt5033_reg_safe_ldo: S 298 regulator-min- 299 regulator-max- 300 regulator-alwa 301 }; 302 rt5033_reg_ldo: LDO { 303 regulator-min- 304 regulator-max- 305 }; 306 rt5033_reg_buck: BUCK 307 regulator-min- 308 regulator-max- 309 }; 310 }; 311 312 rt5033_charger: charger { 313 compatible = "richtek, 314 monitored-battery = <& 315 richtek,usb-connector 316 }; 317 }; 318 }; 319 320 &blsp_uart2 { 321 status = "okay"; 322 }; 323 324 &mpss_mem { 325 reg = <0x0 0x86800000 0x0 0x5a00000>; 326 }; 327 328 &pm8916_resin { 329 status = "okay"; 330 linux,code = <KEY_VOLUMEDOWN>; 331 }; 332 333 &pm8916_vib { 334 status = "okay"; 335 }; 336 337 &sdhc_1 { 338 status = "okay"; 339 }; 340 341 &sdhc_2 { 342 status = "okay"; 343 non-removable; 344 345 /* 346 * FIXME: Disable UHS-I modes since tu 347 * 348 * sdhci_msm 7864900.sdhci: mmc1: No t 349 * mmc1: tuning execution failed: -5 350 * mmc1: error -5 whilst initialising 351 * 352 * This is the quirk used on downstrea 353 * a hardware limitation. However, pro 354 * (without tuning), so maybe only tun 355 */ 356 no-1-8-v; 357 }; 358 359 &sound { 360 audio-routing = 361 "AMIC1", "MIC BIAS External1", 362 "AMIC2", "MIC BIAS Internal2", 363 "AMIC3", "MIC BIAS External1"; 364 }; 365 366 &usb { 367 status = "okay"; 368 extcon = <&muic>, <&muic>; 369 }; 370 371 &usb_hs_phy { 372 extcon = <&muic>; 373 }; 374 375 &venus { 376 status = "okay"; 377 }; 378 379 &venus_mem { 380 status = "okay"; 381 }; 382 383 &wcnss { 384 status = "okay"; 385 }; 386 387 &wcnss_iris { 388 compatible = "qcom,wcn3660b"; 389 }; 390 391 &wcnss_mem { 392 status = "okay"; 393 }; 394 395 &tlmm { 396 fg_alert_default: fg-alert-default-sta 397 pins = "gpio121"; 398 function = "gpio"; 399 400 drive-strength = <2>; 401 bias-disable; 402 }; 403 404 gpio_keys_default: gpio-keys-default-s 405 pins = "gpio107", "gpio109"; 406 function = "gpio"; 407 408 drive-strength = <2>; 409 bias-pull-up; 410 }; 411 412 gpio_hall_sensor_default: gpio-hall-se 413 pins = "gpio52"; 414 function = "gpio"; 415 416 drive-strength = <2>; 417 bias-disable; 418 }; 419 420 imu_irq_default: imu-irq-default-state 421 pins = "gpio115"; 422 function = "gpio"; 423 424 drive-strength = <2>; 425 bias-disable; 426 }; 427 428 muic_i2c_default: muic-i2c-default-sta 429 pins = "gpio105", "gpio106"; 430 function = "gpio"; 431 432 drive-strength = <2>; 433 bias-disable; 434 }; 435 436 muic_irq_default: muic-irq-default-sta 437 pins = "gpio12"; 438 function = "gpio"; 439 440 drive-strength = <2>; 441 bias-disable; 442 }; 443 444 nfc_default: nfc-default-state { 445 nfc-pins { 446 pins = "gpio20", "gpio 447 function = "gpio"; 448 449 drive-strength = <2>; 450 bias-disable; 451 }; 452 irq-pins { 453 pins = "gpio21"; 454 function = "gpio"; 455 456 drive-strength = <2>; 457 bias-pull-down; 458 }; 459 }; 460 461 nfc_i2c_default: nfc-i2c-default-state 462 pins = "gpio0", "gpio1"; 463 function = "gpio"; 464 465 drive-strength = <2>; 466 bias-disable; 467 }; 468 469 pmic_int_default: pmic-int-default-sta 470 pins = "gpio62"; 471 function = "gpio"; 472 473 drive-strength = <2>; 474 bias-disable; 475 }; 476 477 tkey_default: tkey-default-state { 478 pins = "gpio98"; 479 function = "gpio"; 480 481 drive-strength = <2>; 482 bias-disable; 483 }; 484 485 tkey_en_default: tkey-en-default-state 486 pins = "gpio86"; 487 function = "gpio"; 488 489 drive-strength = <2>; 490 bias-disable; 491 }; 492 493 tkey_i2c_default: tkey-i2c-default-sta 494 pins = "gpio16", "gpio17"; 495 function = "gpio"; 496 497 drive-strength = <2>; 498 bias-disable; 499 }; 500 501 tkey_led_en_default: tkey-led-en-defau 502 pins = "gpio60"; 503 function = "gpio"; 504 505 drive-strength = <2>; 506 bias-disable; 507 }; 508 509 tsp_en_default: tsp-en-default-state { 510 pins = "gpio73"; 511 function = "gpio"; 512 513 drive-strength = <2>; 514 bias-disable; 515 }; 516 517 tsp_irq_default: tsp-irq-default-state 518 pins = "gpio13"; 519 function = "gpio"; 520 521 drive-strength = <2>; 522 bias-disable; 523 }; 524 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.