1// SPDX-License-Identifier: GPL-2.0-only 2#include "pxa1908.dtsi" 3#include <dt-bindings/gpio/gpio.h> 4#include <dt-bindings/input/linux-event-codes.h> 5 6/ { 7 model = "Samsung Galaxy Core Prime VE LTE"; 8 compatible = "samsung,coreprimevelte", "marvell,pxa1908"; 9 10 aliases { 11 mmc0 = &sdh2; /* eMMC */ 12 mmc1 = &sdh0; /* SD card */ 13 mmc2 = &sdh1; /* SDIO */ 14 serial0 = &uart0; 15 }; 16 17 chosen { 18 #address-cells = <2>; 19 #size-cells = <2>; 20 ranges; 21 22 stdout-path = "serial0:115200n8"; 23 24 fb0: framebuffer@17177000 { 25 compatible = "simple-framebuffer"; 26 reg = <0 0x17177000 0 (480 * 800 * 4)>; 27 power-domains = <&apmu PXA1908_POWER_DOMAIN_DSI>; 28 width = <480>; 29 height = <800>; 30 stride = <(480 * 4)>; 31 format = "a8r8g8b8"; 32 }; 33 }; 34 35 memory@0 { 36 device_type = "memory"; 37 reg = <0 0 0 0x40000000>; 38 }; 39 40 reserved-memory { 41 /* 42 * Reserved by the vendor bootloader as a "secure region". 43 * 44 * TODO: See if the responsible stage of the bootloader can be 45 * replaced 46 */ 47 secure-region@0 { 48 reg = <0 0 0 0x1000000>; 49 }; 50 51 framebuffer@17000000 { 52 reg = <0 0x17000000 0 0x1800000>; 53 no-map; 54 }; 55 }; 56 57 i2c-muic { 58 compatible = "i2c-gpio"; 59 sda-gpios = <&gpio 30 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 60 scl-gpios = <&gpio 29 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 61 i2c-gpio,delay-us = <3>; 62 i2c-gpio,timeout-ms = <100>; 63 #address-cells = <1>; 64 #size-cells = <0>; 65 pinctrl-names = "default"; 66 pinctrl-0 = <&i2c_muic_pins>; 67 68 muic: extcon@14 { 69 compatible = "siliconmitus,sm5504-muic"; 70 reg = <0x14>; 71 interrupt-parent = <&gpio>; 72 interrupts = <0 IRQ_TYPE_EDGE_FALLING>; 73 74 usb_con: connector { 75 compatible = "usb-b-connector"; 76 label = "micro-USB"; 77 type = "micro"; 78 }; 79 }; 80 }; 81 82 gpio-keys { 83 compatible = "gpio-keys"; 84 pinctrl-names = "default"; 85 pinctrl-0 = <&gpio_keys_pins>; 86 autorepeat; 87 88 key-home { 89 label = "Home"; 90 linux,code = <KEY_HOME>; 91 gpios = <&gpio 50 GPIO_ACTIVE_LOW>; 92 }; 93 94 key-volup { 95 label = "Volume Up"; 96 linux,code = <KEY_VOLUMEUP>; 97 gpios = <&gpio 16 GPIO_ACTIVE_LOW>; 98 }; 99 100 key-voldown { 101 label = "Volume Down"; 102 linux,code = <KEY_VOLUMEDOWN>; 103 gpios = <&gpio 17 GPIO_ACTIVE_LOW>; 104 }; 105 }; 106 107 backlight { 108 compatible = "kinetic,ktd2801"; 109 ctrl-gpios = <&gpio 97 GPIO_ACTIVE_HIGH>; 110 max-brightness = <210>; 111 }; 112 113 vibrator { 114 compatible = "pwm-vibrator"; 115 pwm-names = "enable"; 116 pwms = <&pwm3 100000>; 117 enable-gpios = <&gpio 20 GPIO_ACTIVE_HIGH>; 118 pinctrl-names = "default"; 119 pinctrl-0 = <&vibrator_pin>; 120 }; 121}; 122 123&smmu { 124 status = "okay"; 125}; 126 127&pmx { 128 pinctrl-single,gpio-range = <&range 55 55 0>, 129 <&range 110 32 0>, 130 <&range 52 1 0>; 131 132 pinctrl-names = "default"; 133 pinctrl-0 = <&board_pins_0 &board_pins_1 &board_pins_2>; 134 135 board_pins_0: board-pins-0 { 136 pinctrl-single,pins = < 137 0x160 0 138 0x164 0 139 0x168 0 140 0x16c 0 141 >; 142 pinctrl-single,drive-strength = <0x1000 0x1800>; 143 pinctrl-single,bias-pullup = <0x8000 0x8000 0 0xc000>; 144 pinctrl-single,bias-pulldown = <0x8000 0x8000 0 0xa000>; 145 pinctrl-single,input-schmitt = <0 0x30>; 146 pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; 147 pinctrl-single,low-power-mode = <0x288 0x388>; 148 }; 149 150 board_pins_1: board-pins-1 { 151 pinctrl-single,pins = < 152 0x44 1 153 0x48 1 154 0x20 1 155 0x18 1 156 0x14 1 157 0x10 1 158 0xc 1 159 0x8 1 160 0x68 1 161 0x58 0 162 0x54 0 163 0x7c 0 164 0x6c 0 165 0x70 0 166 0x4c 1 167 0x50 1 168 0xac 0 169 0x90 0 170 0x8c 0 171 0x88 0 172 0x84 0 173 0xc8 0 174 0x128 0 175 0x190 0 176 0x194 0 177 0x1a0 0 178 0x114 0 179 0x118 0 180 0x1d8 0 181 0x1e4 0 182 0xe8 0 183 0x100 0 184 0x204 0 185 0x210 0 186 0x218 0 187 >; 188 pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>; 189 pinctrl-single,bias-pulldown = <0x8000 0xa000 0x8000 0xc000>; 190 pinctrl-single,low-power-mode = <0x288 0x388>; 191 }; 192 193 board_pins_2: board-pins-2 { 194 pinctrl-single,pins = < 195 0x260 0 196 0x264 0 197 0x268 0 198 0x26c 0 199 0x270 0 200 0x274 0 201 0x78 0 202 0x74 0 203 0xb0 1 204 >; 205 pinctrl-single,drive-strength = <0x1000 0x1800>; 206 pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; 207 pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; 208 pinctrl-single,input-schmitt = <0 0x30>; 209 pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; 210 pinctrl-single,low-power-mode = <0 0x388>; 211 }; 212 213 uart0_pins: uart0-pins { 214 pinctrl-single,pins = < 215 0x198 6 216 0x19c 6 217 >; 218 pinctrl-single,drive-strength = <0x1000 0x1800>; 219 pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; 220 pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; 221 pinctrl-single,input-schmitt = <0 0x30>; 222 pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; 223 pinctrl-single,low-power-mode = <0 0x388>; 224 }; 225 226 gpio_keys_pins: gpio-keys-pins { 227 pinctrl-single,pins = < 228 0x11c 0 229 0x120 0 230 0x1a4 0 231 >; 232 pinctrl-single,drive-strength = <0x1000 0x1800>; 233 pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>; 234 pinctrl-single,bias-pulldown = <0x8000 0xa0000 0x8000 0xa000>; 235 pinctrl-single,input-schmitt = <0 0x30>; 236 pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; 237 pinctrl-single,low-power-mode = <0 0x388>; 238 }; 239 240 i2c_muic_pins: i2c-muic-pins { 241 pinctrl-single,pins = < 242 0x154 0 243 0x150 0 244 >; 245 pinctrl-single,drive-strength = <0x1000 0x1800>; 246 pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; 247 pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; 248 pinctrl-single,input-schmitt = <0 0x30>; 249 pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; 250 pinctrl-single,low-power-mode = <0x288 0x388>; 251 }; 252 253 sdh0_pins_0: sdh0-pins-0 { 254 pinctrl-single,pins = < 255 0x108 0 256 >; 257 pinctrl-single,drive-strength = <0x1000 0x1800>; 258 pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>; 259 pinctrl-single,bias-pulldown = <0x8000 0xa000 0x8000 0xa000>; 260 pinctrl-single,input-schmitt = <0 0x30>; 261 pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; 262 pinctrl-single,low-power-mode = <0 0x388>; 263 }; 264 265 sdh0_pins_1: sdh0-pins-1 { 266 pinctrl-single,pins = < 267 0x94 0 268 0x98 0 269 0x9c 0 270 0xa0 0 271 0xa4 0 272 >; 273 pinctrl-single,drive-strength = <0x800 0x1800>; 274 pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>; 275 pinctrl-single,bias-pulldown = <0x8000 0xa000 0x8000 0xa000>; 276 pinctrl-single,input-schmitt = <0 0x30>; 277 pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; 278 pinctrl-single,low-power-mode = <0 0x388>; 279 }; 280 281 sdh0_pins_2: sdh0-pins-2 { 282 pinctrl-single,pins = < 283 0xa8 0 284 >; 285 pinctrl-single,drive-strength = <0x1000 0x1800>; 286 pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; 287 pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; 288 pinctrl-single,input-schmitt = <0 0x30>; 289 pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; 290 pinctrl-single,low-power-mode = <0x208 0x388>; 291 }; 292 293 sdh1_pins_0: sdh1-pins-0 { 294 pinctrl-single,pins = < 295 0x170 1 296 0x174 1 297 0x178 1 298 0x17c 1 299 0x180 1 300 >; 301 pinctrl-single,drive-strength = <0x1000 0x1800>; 302 pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; 303 pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; 304 pinctrl-single,input-schmitt = <0 0x30>; 305 pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; 306 pinctrl-single,low-power-mode = <0 0x388>; 307 }; 308 309 sdh1_pins_1: sdh1-pins-1 { 310 pinctrl-single,pins = <0x184 1>; 311 pinctrl-single,drive-strength = <0 0x1800>; 312 pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; 313 pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; 314 pinctrl-single,input-schmitt = <0 0x30>; 315 pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; 316 pinctrl-single,low-power-mode = <0x208 0x388>; 317 }; 318 319 sdh1_pins_2: sdh1-pins-2 { 320 pinctrl-single,pins = <0xec 0>; 321 pinctrl-single,drive-strength = <0x1000 0x1800>; 322 pinctrl-single,bias-pullup = <0x8000 0x8000 0 0xc000>; 323 pinctrl-single,bias-pulldown = <0x8000 0x8000 0 0xa000>; 324 pinctrl-single,input-schmitt = <0 0x30>; 325 pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; 326 pinctrl-single,low-power-mode = <0 0x388>; 327 }; 328 329 sdh1_fast_pins_0: sdh1-fast-pins-0 { 330 pinctrl-single,pins = < 331 0x170 1 332 0x174 1 333 0x178 1 334 0x17c 1 335 0x180 1 336 >; 337 pinctrl-single,drive-strength = <0x1800 0x1800>; 338 pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; 339 pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; 340 pinctrl-single,input-schmitt = <0 0x30>; 341 pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; 342 pinctrl-single,low-power-mode = <0 0x388>; 343 }; 344 345 sdh1_fast_pins_1: sdh1-fast-pins-1 { 346 pinctrl-single,pins = <0x184 1>; 347 pinctrl-single,drive-strength = <0x1800 0x1800>; 348 pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; 349 pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; 350 pinctrl-single,input-schmitt = <0 0x30>; 351 pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; 352 pinctrl-single,low-power-mode = <0x208 0x388>; 353 }; 354 355 sdh2_pins_0: sdh2-pins-0 { 356 pinctrl-single,pins = < 357 0x24 1 358 0x28 1 359 0x2c 1 360 0x30 1 361 0x34 1 362 0x38 1 363 0x3c 1 364 0x40 1 365 >; 366 pinctrl-single,drive-strength = <0x1000 0x1800>; 367 pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; 368 pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; 369 pinctrl-single,input-schmitt = <0 0x30>; 370 pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; 371 pinctrl-single,low-power-mode = <0 0x388>; 372 }; 373 374 sdh2_pins_1: sdh2-pins-1 { 375 pinctrl-single,pins = <0x64 1>; 376 pinctrl-single,drive-strength = <0x1000 0x1800>; 377 pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; 378 pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; 379 pinctrl-single,input-schmitt = <0 0x30>; 380 pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; 381 pinctrl-single,low-power-mode = <0x208 0x388>; 382 }; 383 384 sdh2_pins_2: sdh2-pins-2 { 385 pinctrl-single,pins = <0x5c 1>; 386 pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>; 387 pinctrl-single,bias-pulldown = <0x8000 0xa000 0x8000 0xa000>; 388 pinctrl-single,low-power-mode = <0x288 0x388>; 389 }; 390 391 sdh2_fast_pins_0: sdh2-fast-pins-0 { 392 pinctrl-single,pins = < 393 0x24 1 394 0x28 1 395 0x2c 1 396 0x30 1 397 0x34 1 398 0x38 1 399 0x3c 1 400 0x40 1 401 >; 402 pinctrl-single,drive-strength = <0x1800 0x1800>; 403 pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; 404 pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; 405 pinctrl-single,input-schmitt = <0 0x30>; 406 pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; 407 pinctrl-single,low-power-mode = <0 0x388>; 408 }; 409 410 sdh2_fast_pins_1: sdh2-fast-pins-1 { 411 pinctrl-single,pins = <0x64 1>; 412 pinctrl-single,drive-strength = <0x1800 0x1800>; 413 pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>; 414 pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>; 415 pinctrl-single,input-schmitt = <0 0x30>; 416 pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; 417 pinctrl-single,low-power-mode = <0x208 0x388>; 418 }; 419 420 sdh2_fast_pins_2: sdh2-fast-pins-2 { 421 pinctrl-single,pins = <0x5c 1>; 422 pinctrl-single,drive-strength = <0x1800 0x1800>; 423 pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>; 424 pinctrl-single,bias-pulldown = <0x8000 0xa000 0x8000 0xa000>; 425 pinctrl-single,low-power-mode = <0x288 0x388>; 426 }; 427 428 vibrator_pin: vibrator-pin { 429 pinctrl-single,pins = <0x12c 0>; 430 pinctrl-single,drive-strength = <0x1000 0x1800>; 431 pinctrl-single,bias-pullup = <0x8000 0xc000 0x8000 0xc000>; 432 pinctrl-single,bias-pulldown = <0xa000 0xa000 0 0xa000>; 433 pinctrl-single,input-schmitt = <0 0x30>; 434 pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>; 435 pinctrl-single,low-power-mode = <0 0x388>; 436 }; 437}; 438 439&uart0 { 440 pinctrl-names = "default"; 441 pinctrl-0 = <&uart0_pins>; 442}; 443 444&twsi0 { 445 status = "okay"; 446}; 447 448&twsi1 { 449 status = "okay"; 450}; 451 452&twsi2 { 453 status = "okay"; 454 455 pmic@30 { 456 compatible = "marvell,88pm886-a1"; 457 reg = <0x30>; 458 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 459 wakeup-source; 460 461 regulators { 462 ldo2: ldo2 { 463 regulator-min-microvolt = <1900000>; 464 regulator-max-microvolt = <3100000>; 465 }; 466 467 ldo6: ldo6 { 468 regulator-boot-on; 469 regulator-min-microvolt = <1200000>; 470 regulator-max-microvolt = <3300000>; 471 }; 472 473 ldo14: ldo14 { 474 regulator-boot-on; 475 regulator-min-microvolt = <1200000>; 476 regulator-max-microvolt = <3300000>; 477 }; 478 }; 479 }; 480}; 481 482&twsi3 { 483 status = "okay"; 484 485 touchscreen@50 { 486 compatible = "imagis,ist3032c"; 487 reg = <0x50>; 488 interrupt-parent = <&gpio>; 489 interrupts = <72 IRQ_TYPE_EDGE_FALLING>; 490 vdd-supply = <&ldo2>; 491 touchscreen-size-x = <480>; 492 touchscreen-size-y = <800>; 493 }; 494}; 495 496&usb { 497 extcon = <&muic>, <&muic>; 498}; 499 500&sdh2 { 501 pinctrl-names = "default", "state_uhs"; 502 pinctrl-0 = <&sdh2_pins_0 &sdh2_pins_1 &sdh2_pins_2>; 503 pinctrl-1 = <&sdh2_fast_pins_0 &sdh2_fast_pins_1 &sdh2_fast_pins_2>; 504 bus-width = <8>; 505 non-removable; 506 mmc-ddr-1_8v; 507 mmc-hs200-1_8v; 508}; 509 510&sdh0 { 511 pinctrl-names = "default"; 512 pinctrl-0 = <&sdh0_pins_0 &sdh0_pins_1 &sdh0_pins_2>; 513 cd-gpios = <&gpio 11 GPIO_ACTIVE_LOW>; 514 bus-width = <4>; 515 wp-inverted; 516 vmmc-supply = <&ldo14>; 517 vqmmc-supply = <&ldo6>; 518}; 519 520&sdh1 { 521 pinctrl-names = "default", "state_uhs"; 522 pinctrl-0 = <&sdh1_pins_0 &sdh1_pins_1 &sdh1_pins_2>; 523 pinctrl-1 = <&sdh1_fast_pins_0 &sdh1_fast_pins_1 &sdh1_pins_2>; 524 bus-width = <4>; 525 non-removable; 526}; 527 528&pwm3 { 529 status = "okay"; 530}; 531