1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * Copyright 2012 Linaro Ltd 4 */ 5 6#include <dt-bindings/interrupt-controller/irq.h> 7#include <dt-bindings/interrupt-controller/arm-gic.h> 8#include <dt-bindings/reset/stericsson,db8500-prcc-reset.h> 9#include <dt-bindings/mfd/dbx500-prcmu.h> 10#include <dt-bindings/arm/ux500_pm_domains.h> 11#include <dt-bindings/gpio/gpio.h> 12#include <dt-bindings/thermal/thermal.h> 13 14/ { 15 #address-cells = <1>; 16 #size-cells = <1>; 17 18 /* This stablilizes the device enumeration */ 19 aliases { 20 i2c0 = &i2c0; 21 i2c1 = &i2c1; 22 i2c2 = &i2c2; 23 i2c3 = &i2c3; 24 i2c4 = &i2c4; 25 spi0 = &spi0; 26 spi1 = &spi1; 27 spi2 = &spi2; 28 spi3 = &spi3; 29 serial0 = &serial0; 30 serial1 = &serial1; 31 serial2 = &serial2; 32 }; 33 34 chosen { 35 }; 36 37 cpus { 38 #address-cells = <1>; 39 #size-cells = <0>; 40 enable-method = "ste,dbx500-smp"; 41 42 cpu-map { 43 cluster0 { 44 core0 { 45 cpu = <&CPU0>; 46 }; 47 core1 { 48 cpu = <&CPU1>; 49 }; 50 }; 51 }; 52 CPU0: cpu@300 { 53 device_type = "cpu"; 54 compatible = "arm,cortex-a9"; 55 reg = <0x300>; 56 clocks = <&prcmu_clk PRCMU_ARMSS>; 57 clock-names = "cpu"; 58 clock-latency = <20000>; 59 #cooling-cells = <2>; 60 }; 61 CPU1: cpu@301 { 62 device_type = "cpu"; 63 compatible = "arm,cortex-a9"; 64 reg = <0x301>; 65 }; 66 }; 67 68 thermal-zones { 69 /* 70 * Thermal zone for the SoC, using the thermal sensor in the 71 * PRCMU for temperature and the cpufreq driver for passive 72 * cooling. 73 */ 74 cpu_thermal: cpu-thermal { 75 polling-delay-passive = <250>; 76 /* 77 * This sensor fires interrupts to update the thermal 78 * zone, so no polling is needed. 79 */ 80 polling-delay = <0>; 81 82 thermal-sensors = <&thermal>; 83 84 trips { 85 cpu_alert: cpu-alert { 86 temperature = <70000>; 87 hysteresis = <2000>; 88 type = "passive"; 89 }; 90 cpu-crit { 91 temperature = <85000>; 92 hysteresis = <0>; 93 type = "critical"; 94 }; 95 }; 96 97 cooling-maps { 98 trip = <&cpu_alert>; 99 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 100 contribution = <100>; 101 }; 102 }; 103 }; 104 105 soc { 106 #address-cells = <1>; 107 #size-cells = <1>; 108 compatible = "stericsson,db8500", "simple-bus"; 109 interrupt-parent = <&intc>; 110 ranges; 111 112 ptm@801ae000 { 113 compatible = "arm,coresight-etm3x", "arm,primecell"; 114 reg = <0x801ae000 0x1000>; 115 116 clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>; 117 clock-names = "apb_pclk", "atclk"; 118 cpu = <&CPU0>; 119 out-ports { 120 port { 121 ptm0_out_port: endpoint { 122 remote-endpoint = <&funnel_in_port0>; 123 }; 124 }; 125 }; 126 }; 127 128 ptm@801af000 { 129 compatible = "arm,coresight-etm3x", "arm,primecell"; 130 reg = <0x801af000 0x1000>; 131 132 clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>; 133 clock-names = "apb_pclk", "atclk"; 134 cpu = <&CPU1>; 135 out-ports { 136 port { 137 ptm1_out_port: endpoint { 138 remote-endpoint = <&funnel_in_port1>; 139 }; 140 }; 141 }; 142 }; 143 144 funnel@801a6000 { 145 compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; 146 reg = <0x801a6000 0x1000>; 147 148 clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>; 149 clock-names = "apb_pclk", "atclk"; 150 out-ports { 151 port { 152 funnel_out_port: endpoint { 153 remote-endpoint = 154 <&replicator_in_port0>; 155 }; 156 }; 157 }; 158 159 in-ports { 160 #address-cells = <1>; 161 #size-cells = <0>; 162 163 port@0 { 164 reg = <0>; 165 funnel_in_port0: endpoint { 166 remote-endpoint = <&ptm0_out_port>; 167 }; 168 }; 169 170 port@1 { 171 reg = <1>; 172 funnel_in_port1: endpoint { 173 remote-endpoint = <&ptm1_out_port>; 174 }; 175 }; 176 }; 177 }; 178 179 replicator { 180 compatible = "arm,coresight-static-replicator"; 181 clocks = <&prcmu_clk PRCMU_APEATCLK>; 182 clock-names = "atclk"; 183 184 out-ports { 185 #address-cells = <1>; 186 #size-cells = <0>; 187 188 port@0 { 189 reg = <0>; 190 replicator_out_port0: endpoint { 191 remote-endpoint = <&tpiu_in_port>; 192 }; 193 }; 194 port@1 { 195 reg = <1>; 196 replicator_out_port1: endpoint { 197 remote-endpoint = <&etb_in_port>; 198 }; 199 }; 200 }; 201 202 in-ports { 203 port { 204 replicator_in_port0: endpoint { 205 remote-endpoint = <&funnel_out_port>; 206 }; 207 }; 208 }; 209 }; 210 211 tpiu@80190000 { 212 compatible = "arm,coresight-tpiu", "arm,primecell"; 213 reg = <0x80190000 0x1000>; 214 215 clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>; 216 clock-names = "apb_pclk", "atclk"; 217 in-ports { 218 port { 219 tpiu_in_port: endpoint { 220 remote-endpoint = <&replicator_out_port0>; 221 }; 222 }; 223 }; 224 }; 225 226 etb@801a4000 { 227 compatible = "arm,coresight-etb10", "arm,primecell"; 228 reg = <0x801a4000 0x1000>; 229 230 clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>; 231 clock-names = "apb_pclk", "atclk"; 232 in-ports { 233 port { 234 etb_in_port: endpoint { 235 remote-endpoint = <&replicator_out_port1>; 236 }; 237 }; 238 }; 239 }; 240 241 intc: interrupt-controller@a0411000 { 242 compatible = "arm,cortex-a9-gic"; 243 #interrupt-cells = <3>; 244 #address-cells = <1>; 245 interrupt-controller; 246 reg = <0xa0411000 0x1000>, 247 <0xa0410100 0x100>; 248 }; 249 250 scu@a0410000 { 251 compatible = "arm,cortex-a9-scu"; 252 reg = <0xa0410000 0x100>; 253 }; 254 255 /* 256 * The backup RAM is used for retention during sleep 257 * and various things like spin tables 258 */ 259 backupram@80150000 { 260 compatible = "ste,dbx500-backupram"; 261 reg = <0x80150000 0x2000>; 262 }; 263 264 L2: cache-controller { 265 compatible = "arm,pl310-cache"; 266 reg = <0xa0412000 0x1000>; 267 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 268 cache-unified; 269 cache-level = <2>; 270 }; 271 272 pmu { 273 compatible = "arm,cortex-a9-pmu"; 274 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 275 }; 276 277 pm_domains: pm_domains0 { 278 compatible = "stericsson,ux500-pm-domains"; 279 #power-domain-cells = <1>; 280 }; 281 282 clocks { 283 compatible = "stericsson,u8500-clks"; 284 /* 285 * Registers for the CLKRST block on peripheral 286 * groups 1, 2, 3, 5, 6, 287 */ 288 reg = <0x8012f000 0x1000>, <0x8011f000 0x1000>, 289 <0x8000f000 0x1000>, <0xa03ff000 0x1000>, 290 <0xa03cf000 0x1000>; 291 292 prcmu_clk: prcmu-clock { 293 #clock-cells = <1>; 294 }; 295 296 prcc_pclk: prcc-periph-clock { 297 #clock-cells = <2>; 298 }; 299 300 prcc_kclk: prcc-kernel-clock { 301 #clock-cells = <2>; 302 }; 303 304 prcc_reset: prcc-reset-controller { 305 #reset-cells = <2>; 306 }; 307 308 rtc_clk: rtc32k-clock { 309 #clock-cells = <0>; 310 }; 311 312 smp_twd_clk: smp-twd-clock { 313 #clock-cells = <0>; 314 }; 315 }; 316 317 mtu@a03c6000 { 318 /* Nomadik System Timer */ 319 compatible = "st,nomadik-mtu"; 320 reg = <0xa03c6000 0x1000>; 321 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 322 323 clocks = <&prcmu_clk PRCMU_TIMCLK>, <&prcc_pclk 6 6>; 324 clock-names = "timclk", "apb_pclk"; 325 }; 326 327 timer@a0410600 { 328 compatible = "arm,cortex-a9-twd-timer"; 329 reg = <0xa0410600 0x20>; 330 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_HIGH)>; 331 332 clocks = <&smp_twd_clk>; 333 }; 334 335 watchdog@a0410620 { 336 compatible = "arm,cortex-a9-twd-wdt"; 337 reg = <0xa0410620 0x20>; 338 interrupts = <GIC_PPI 14 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_HIGH)>; 339 clocks = <&smp_twd_clk>; 340 }; 341 342 rtc@80154000 { 343 compatible = "arm,pl031", "arm,primecell"; 344 reg = <0x80154000 0x1000>; 345 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 346 347 clocks = <&rtc_clk>; 348 clock-names = "apb_pclk"; 349 }; 350 351 gpio0: gpio@8012e000 { 352 compatible = "stericsson,db8500-gpio", 353 "st,nomadik-gpio"; 354 reg = <0x8012e000 0x80>; 355 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; 356 interrupt-controller; 357 #interrupt-cells = <2>; 358 st,supports-sleepmode; 359 gpio-controller; 360 #gpio-cells = <2>; 361 gpio-bank = <0>; 362 gpio-ranges = <&pinctrl 0 0 32>; 363 clocks = <&prcc_pclk 1 9>; 364 }; 365 366 gpio1: gpio@8012e080 { 367 compatible = "stericsson,db8500-gpio", 368 "st,nomadik-gpio"; 369 reg = <0x8012e080 0x80>; 370 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 371 interrupt-controller; 372 #interrupt-cells = <2>; 373 st,supports-sleepmode; 374 gpio-controller; 375 #gpio-cells = <2>; 376 gpio-bank = <1>; 377 gpio-ranges = <&pinctrl 0 32 5>; 378 clocks = <&prcc_pclk 1 9>; 379 }; 380 381 gpio2: gpio@8000e000 { 382 compatible = "stericsson,db8500-gpio", 383 "st,nomadik-gpio"; 384 reg = <0x8000e000 0x80>; 385 interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; 386 interrupt-controller; 387 #interrupt-cells = <2>; 388 st,supports-sleepmode; 389 gpio-controller; 390 #gpio-cells = <2>; 391 gpio-bank = <2>; 392 gpio-ranges = <&pinctrl 0 64 32>; 393 clocks = <&prcc_pclk 3 8>; 394 }; 395 396 gpio3: gpio@8000e080 { 397 compatible = "stericsson,db8500-gpio", 398 "st,nomadik-gpio"; 399 reg = <0x8000e080 0x80>; 400 interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; 401 interrupt-controller; 402 #interrupt-cells = <2>; 403 st,supports-sleepmode; 404 gpio-controller; 405 #gpio-cells = <2>; 406 gpio-bank = <3>; 407 gpio-ranges = <&pinctrl 0 96 2>; 408 clocks = <&prcc_pclk 3 8>; 409 }; 410 411 gpio4: gpio@8000e100 { 412 compatible = "stericsson,db8500-gpio", 413 "st,nomadik-gpio"; 414 reg = <0x8000e100 0x80>; 415 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>; 416 interrupt-controller; 417 #interrupt-cells = <2>; 418 st,supports-sleepmode; 419 gpio-controller; 420 #gpio-cells = <2>; 421 gpio-bank = <4>; 422 gpio-ranges = <&pinctrl 0 128 32>; 423 clocks = <&prcc_pclk 3 8>; 424 }; 425 426 gpio5: gpio@8000e180 { 427 compatible = "stericsson,db8500-gpio", 428 "st,nomadik-gpio"; 429 reg = <0x8000e180 0x80>; 430 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>; 431 interrupt-controller; 432 #interrupt-cells = <2>; 433 st,supports-sleepmode; 434 gpio-controller; 435 #gpio-cells = <2>; 436 gpio-bank = <5>; 437 gpio-ranges = <&pinctrl 0 160 12>; 438 clocks = <&prcc_pclk 3 8>; 439 }; 440 441 gpio6: gpio@8011e000 { 442 compatible = "stericsson,db8500-gpio", 443 "st,nomadik-gpio"; 444 reg = <0x8011e000 0x80>; 445 interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>; 446 interrupt-controller; 447 #interrupt-cells = <2>; 448 st,supports-sleepmode; 449 gpio-controller; 450 #gpio-cells = <2>; 451 gpio-bank = <6>; 452 gpio-ranges = <&pinctrl 0 192 32>; 453 clocks = <&prcc_pclk 2 11>; 454 }; 455 456 gpio7: gpio@8011e080 { 457 compatible = "stericsson,db8500-gpio", 458 "st,nomadik-gpio"; 459 reg = <0x8011e080 0x80>; 460 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>; 461 interrupt-controller; 462 #interrupt-cells = <2>; 463 st,supports-sleepmode; 464 gpio-controller; 465 #gpio-cells = <2>; 466 gpio-bank = <7>; 467 gpio-ranges = <&pinctrl 0 224 7>; 468 clocks = <&prcc_pclk 2 11>; 469 }; 470 471 gpio8: gpio@a03fe000 { 472 compatible = "stericsson,db8500-gpio", 473 "st,nomadik-gpio"; 474 reg = <0xa03fe000 0x80>; 475 interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; 476 interrupt-controller; 477 #interrupt-cells = <2>; 478 st,supports-sleepmode; 479 gpio-controller; 480 #gpio-cells = <2>; 481 gpio-bank = <8>; 482 gpio-ranges = <&pinctrl 0 256 12>; 483 clocks = <&prcc_pclk 5 1>; 484 }; 485 486 pinctrl: pinctrl { 487 compatible = "stericsson,db8500-pinctrl"; 488 nomadik-gpio-chips = <&gpio0>, <&gpio1>, <&gpio2>, <&gpio3>, 489 <&gpio4>, <&gpio5>, <&gpio6>, <&gpio7>, 490 <&gpio8>; 491 prcm = <&prcmu>; 492 }; 493 494 usb_per5@a03e0000 { 495 compatible = "stericsson,db8500-musb"; 496 reg = <0xa03e0000 0x10000>; 497 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 498 interrupt-names = "mc"; 499 500 dr_mode = "otg"; 501 502 dmas = <&dma 38 0 0x2>, /* Logical - DevToMem */ 503 <&dma 38 0 0x0>, /* Logical - MemToDev */ 504 <&dma 37 0 0x2>, /* Logical - DevToMem */ 505 <&dma 37 0 0x0>, /* Logical - MemToDev */ 506 <&dma 36 0 0x2>, /* Logical - DevToMem */ 507 <&dma 36 0 0x0>, /* Logical - MemToDev */ 508 <&dma 19 0 0x2>, /* Logical - DevToMem */ 509 <&dma 19 0 0x0>, /* Logical - MemToDev */ 510 <&dma 18 0 0x2>, /* Logical - DevToMem */ 511 <&dma 18 0 0x0>, /* Logical - MemToDev */ 512 <&dma 17 0 0x2>, /* Logical - DevToMem */ 513 <&dma 17 0 0x0>, /* Logical - MemToDev */ 514 <&dma 16 0 0x2>, /* Logical - DevToMem */ 515 <&dma 16 0 0x0>, /* Logical - MemToDev */ 516 <&dma 39 0 0x2>, /* Logical - DevToMem */ 517 <&dma 39 0 0x0>; /* Logical - MemToDev */ 518 519 dma-names = "iep_1_9", "oep_1_9", 520 "iep_2_10", "oep_2_10", 521 "iep_3_11", "oep_3_11", 522 "iep_4_12", "oep_4_12", 523 "iep_5_13", "oep_5_13", 524 "iep_6_14", "oep_6_14", 525 "iep_7_15", "oep_7_15", 526 "iep_8", "oep_8"; 527 528 clocks = <&prcc_pclk 5 0>; 529 }; 530 531 dma: dma-controller@801C0000 { 532 compatible = "stericsson,db8500-dma40", "stericsson,dma40"; 533 reg = <0x801C0000 0x1000 0x40010000 0x800>; 534 reg-names = "base", "lcpa"; 535 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 536 537 #dma-cells = <3>; 538 memcpy-channels = <56 57 58 59 60>; 539 540 clocks = <&prcmu_clk PRCMU_DMACLK>; 541 }; 542 543 prcmu: prcmu@80157000 { 544 compatible = "stericsson,db8500-prcmu", "syscon"; 545 reg = <0x80157000 0x2000>, <0x801b0000 0x8000>, <0x801b8000 0x1000>; 546 reg-names = "prcmu", "prcmu-tcpm", "prcmu-tcdm"; 547 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 548 #address-cells = <1>; 549 #size-cells = <1>; 550 interrupt-controller; 551 #interrupt-cells = <2>; 552 ranges; 553 554 prcmu-timer-4@80157450 { 555 compatible = "stericsson,db8500-prcmu-timer-4"; 556 reg = <0x80157450 0xC>; 557 }; 558 559 thermal: thermal@801573c0 { 560 compatible = "stericsson,db8500-thermal"; 561 reg = <0x801573c0 0x40>; 562 interrupt-parent = <&prcmu>; 563 interrupts = <21 IRQ_TYPE_LEVEL_HIGH>, 564 <22 IRQ_TYPE_LEVEL_HIGH>; 565 interrupt-names = "IRQ_HOTMON_LOW", "IRQ_HOTMON_HIGH"; 566 #thermal-sensor-cells = <0>; 567 }; 568 569 db8500-prcmu-regulators { 570 compatible = "stericsson,db8500-prcmu-regulator"; 571 572 // DB8500_REGULATOR_VAPE 573 db8500_vape_reg: db8500_vape { 574 regulator-always-on; 575 }; 576 577 // DB8500_REGULATOR_VARM 578 db8500_varm_reg: db8500_varm { 579 }; 580 581 // DB8500_REGULATOR_VMODEM 582 db8500_vmodem_reg: db8500_vmodem { 583 }; 584 585 // DB8500_REGULATOR_VPLL 586 db8500_vpll_reg: db8500_vpll { 587 }; 588 589 // DB8500_REGULATOR_VSMPS1 590 db8500_vsmps1_reg: db8500_vsmps1 { 591 }; 592 593 // DB8500_REGULATOR_VSMPS2 594 db8500_vsmps2_reg: db8500_vsmps2 { 595 }; 596 597 // DB8500_REGULATOR_VSMPS3 598 db8500_vsmps3_reg: db8500_vsmps3 { 599 }; 600 601 // DB8500_REGULATOR_VRF1 602 db8500_vrf1_reg: db8500_vrf1 { 603 }; 604 605 // DB8500_REGULATOR_SWITCH_SVAMMDSP 606 db8500_sva_mmdsp_reg: db8500_sva_mmdsp { 607 }; 608 609 // DB8500_REGULATOR_SWITCH_SVAMMDSPRET 610 db8500_sva_mmdsp_ret_reg: db8500_sva_mmdsp_ret { 611 }; 612 613 // DB8500_REGULATOR_SWITCH_SVAPIPE 614 db8500_sva_pipe_reg: db8500_sva_pipe { 615 }; 616 617 // DB8500_REGULATOR_SWITCH_SIAMMDSP 618 db8500_sia_mmdsp_reg: db8500_sia_mmdsp { 619 }; 620 621 // DB8500_REGULATOR_SWITCH_SIAMMDSPRET 622 db8500_sia_mmdsp_ret_reg: db8500_sia_mmdsp_ret { 623 }; 624 625 // DB8500_REGULATOR_SWITCH_SIAPIPE 626 db8500_sia_pipe_reg: db8500_sia_pipe { 627 }; 628 629 // DB8500_REGULATOR_SWITCH_SGA 630 db8500_sga_reg: db8500_sga { 631 vin-supply = <&db8500_vape_reg>; 632 }; 633 634 // DB8500_REGULATOR_SWITCH_B2R2_MCDE 635 db8500_b2r2_mcde_reg: db8500_b2r2_mcde { 636 vin-supply = <&db8500_vape_reg>; 637 }; 638 639 // DB8500_REGULATOR_SWITCH_ESRAM12 640 db8500_esram12_reg: db8500_esram12 { 641 }; 642 643 // DB8500_REGULATOR_SWITCH_ESRAM12RET 644 db8500_esram12_ret_reg: db8500_esram12_ret { 645 }; 646 647 // DB8500_REGULATOR_SWITCH_ESRAM34 648 db8500_esram34_reg: db8500_esram34 { 649 }; 650 651 // DB8500_REGULATOR_SWITCH_ESRAM34RET 652 db8500_esram34_ret_reg: db8500_esram34_ret { 653 }; 654 }; 655 }; 656 657 i2c0: i2c@80004000 { 658 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell"; 659 reg = <0x80004000 0x1000>; 660 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 661 662 #address-cells = <1>; 663 #size-cells = <0>; 664 665 clock-frequency = <400000>; 666 clocks = <&prcc_kclk 3 3>, <&prcc_pclk 3 3>; 667 clock-names = "i2cclk", "apb_pclk"; 668 power-domains = <&pm_domains DOMAIN_VAPE>; 669 resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_I2C0>; 670 671 status = "disabled"; 672 }; 673 674 i2c1: i2c@80122000 { 675 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell"; 676 reg = <0x80122000 0x1000>; 677 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 678 679 #address-cells = <1>; 680 #size-cells = <0>; 681 682 clock-frequency = <400000>; 683 684 clocks = <&prcc_kclk 1 2>, <&prcc_pclk 1 2>; 685 clock-names = "i2cclk", "apb_pclk"; 686 power-domains = <&pm_domains DOMAIN_VAPE>; 687 resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_I2C1>; 688 689 status = "disabled"; 690 }; 691 692 i2c2: i2c@80128000 { 693 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell"; 694 reg = <0x80128000 0x1000>; 695 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 696 697 #address-cells = <1>; 698 #size-cells = <0>; 699 700 clock-frequency = <400000>; 701 702 clocks = <&prcc_kclk 1 6>, <&prcc_pclk 1 6>; 703 clock-names = "i2cclk", "apb_pclk"; 704 power-domains = <&pm_domains DOMAIN_VAPE>; 705 resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_I2C2>; 706 707 status = "disabled"; 708 }; 709 710 i2c3: i2c@80110000 { 711 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell"; 712 reg = <0x80110000 0x1000>; 713 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 714 715 #address-cells = <1>; 716 #size-cells = <0>; 717 718 clock-frequency = <400000>; 719 720 clocks = <&prcc_kclk 2 0>, <&prcc_pclk 2 0>; 721 clock-names = "i2cclk", "apb_pclk"; 722 power-domains = <&pm_domains DOMAIN_VAPE>; 723 resets = <&prcc_reset DB8500_PRCC_2 DB8500_PRCC_2_RESET_I2C3>; 724 725 status = "disabled"; 726 }; 727 728 i2c4: i2c@8012a000 { 729 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell"; 730 reg = <0x8012a000 0x1000>; 731 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; 732 733 #address-cells = <1>; 734 #size-cells = <0>; 735 736 clock-frequency = <400000>; 737 738 clocks = <&prcc_kclk 1 9>, <&prcc_pclk 1 10>; 739 clock-names = "i2cclk", "apb_pclk"; 740 power-domains = <&pm_domains DOMAIN_VAPE>; 741 resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_I2C4>; 742 743 status = "disabled"; 744 }; 745 746 ssp0: spi@80002000 { 747 compatible = "arm,pl022", "arm,primecell"; 748 reg = <0x80002000 0x1000>; 749 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 750 #address-cells = <1>; 751 #size-cells = <0>; 752 clocks = <&prcc_kclk 3 1>, <&prcc_pclk 3 1>; 753 clock-names = "sspclk", "apb_pclk"; 754 dmas = <&dma 8 0 0x2>, /* Logical - DevToMem */ 755 <&dma 8 0 0x0>; /* Logical - MemToDev */ 756 dma-names = "rx", "tx"; 757 power-domains = <&pm_domains DOMAIN_VAPE>; 758 resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_SSP0>; 759 760 status = "disabled"; 761 }; 762 763 ssp1: spi@80003000 { 764 compatible = "arm,pl022", "arm,primecell"; 765 reg = <0x80003000 0x1000>; 766 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; 767 #address-cells = <1>; 768 #size-cells = <0>; 769 clocks = <&prcc_kclk 3 2>, <&prcc_pclk 3 2>; 770 clock-names = "sspclk", "apb_pclk"; 771 dmas = <&dma 9 0 0x2>, /* Logical - DevToMem */ 772 <&dma 9 0 0x0>; /* Logical - MemToDev */ 773 dma-names = "rx", "tx"; 774 power-domains = <&pm_domains DOMAIN_VAPE>; 775 resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_SSP1>; 776 777 status = "disabled"; 778 }; 779 780 spi0: spi@8011a000 { 781 compatible = "arm,pl022", "arm,primecell"; 782 reg = <0x8011a000 0x1000>; 783 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 784 #address-cells = <1>; 785 #size-cells = <0>; 786 /* Same clock wired to kernel and pclk */ 787 clocks = <&prcc_pclk 2 8>, <&prcc_pclk 2 8>; 788 clock-names = "sspclk", "apb_pclk"; 789 dmas = <&dma 0 0 0x2>, /* Logical - DevToMem */ 790 <&dma 0 0 0x0>; /* Logical - MemToDev */ 791 dma-names = "rx", "tx"; 792 power-domains = <&pm_domains DOMAIN_VAPE>; 793 794 status = "disabled"; 795 }; 796 797 spi1: spi@80112000 { 798 compatible = "arm,pl022", "arm,primecell"; 799 reg = <0x80112000 0x1000>; 800 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 801 #address-cells = <1>; 802 #size-cells = <0>; 803 /* Same clock wired to kernel and pclk */ 804 clocks = <&prcc_pclk 2 2>, <&prcc_pclk 2 2>; 805 clock-names = "sspclk", "apb_pclk"; 806 dmas = <&dma 35 0 0x2>, /* Logical - DevToMem */ 807 <&dma 35 0 0x0>; /* Logical - MemToDev */ 808 dma-names = "rx", "tx"; 809 power-domains = <&pm_domains DOMAIN_VAPE>; 810 811 status = "disabled"; 812 }; 813 814 spi2: spi@80111000 { 815 compatible = "arm,pl022", "arm,primecell"; 816 reg = <0x80111000 0x1000>; 817 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 818 #address-cells = <1>; 819 #size-cells = <0>; 820 /* Same clock wired to kernel and pclk */ 821 clocks = <&prcc_pclk 2 1>, <&prcc_pclk 2 1>; 822 clock-names = "sspclk", "apb_pclk"; 823 dmas = <&dma 33 0 0x2>, /* Logical - DevToMem */ 824 <&dma 33 0 0x0>; /* Logical - MemToDev */ 825 dma-names = "rx", "tx"; 826 power-domains = <&pm_domains DOMAIN_VAPE>; 827 828 status = "disabled"; 829 }; 830 831 spi3: spi@80129000 { 832 compatible = "arm,pl022", "arm,primecell"; 833 reg = <0x80129000 0x1000>; 834 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 835 #address-cells = <1>; 836 #size-cells = <0>; 837 /* Same clock wired to kernel and pclk */ 838 clocks = <&prcc_pclk 1 7>, <&prcc_pclk 1 7>; 839 clock-names = "sspclk", "apb_pclk"; 840 dmas = <&dma 40 0 0x2>, /* Logical - DevToMem */ 841 <&dma 40 0 0x0>; /* Logical - MemToDev */ 842 dma-names = "rx", "tx"; 843 power-domains = <&pm_domains DOMAIN_VAPE>; 844 resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_SPI3>; 845 846 status = "disabled"; 847 }; 848 849 serial0: uart@80120000 { 850 compatible = "arm,pl011", "arm,primecell"; 851 reg = <0x80120000 0x1000>; 852 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 853 854 dmas = <&dma 13 0 0x2>, /* Logical - DevToMem */ 855 <&dma 13 0 0x0>; /* Logical - MemToDev */ 856 dma-names = "rx", "tx"; 857 858 clocks = <&prcc_kclk 1 0>, <&prcc_pclk 1 0>; 859 clock-names = "uart", "apb_pclk"; 860 resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_UART0>; 861 862 status = "disabled"; 863 }; 864 865 serial1: uart@80121000 { 866 compatible = "arm,pl011", "arm,primecell"; 867 reg = <0x80121000 0x1000>; 868 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 869 870 dmas = <&dma 12 0 0x2>, /* Logical - DevToMem */ 871 <&dma 12 0 0x0>; /* Logical - MemToDev */ 872 dma-names = "rx", "tx"; 873 874 clocks = <&prcc_kclk 1 1>, <&prcc_pclk 1 1>; 875 clock-names = "uart", "apb_pclk"; 876 resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_UART1>; 877 878 status = "disabled"; 879 }; 880 881 serial2: uart@80007000 { 882 compatible = "arm,pl011", "arm,primecell"; 883 reg = <0x80007000 0x1000>; 884 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 885 886 dmas = <&dma 11 0 0x2>, /* Logical - DevToMem */ 887 <&dma 11 0 0x0>; /* Logical - MemToDev */ 888 dma-names = "rx", "tx"; 889 890 clocks = <&prcc_kclk 3 6>, <&prcc_pclk 3 6>; 891 clock-names = "uart", "apb_pclk"; 892 resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_UART2>; 893 894 status = "disabled"; 895 }; 896 897 mmc@80126000 { 898 compatible = "arm,pl18x", "arm,primecell"; 899 reg = <0x80126000 0x1000>; 900 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 901 902 dmas = <&dma 29 0 0x2>, /* Logical - DevToMem */ 903 <&dma 29 0 0x0>; /* Logical - MemToDev */ 904 dma-names = "rx", "tx"; 905 906 clocks = <&prcc_kclk 1 5>, <&prcc_pclk 1 5>; 907 clock-names = "sdi", "apb_pclk"; 908 power-domains = <&pm_domains DOMAIN_VAPE>; 909 resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_SDI0>; 910 911 status = "disabled"; 912 }; 913 914 mmc@80118000 { 915 compatible = "arm,pl18x", "arm,primecell"; 916 reg = <0x80118000 0x1000>; 917 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 918 919 dmas = <&dma 32 0 0x2>, /* Logical - DevToMem */ 920 <&dma 32 0 0x0>; /* Logical - MemToDev */ 921 dma-names = "rx", "tx"; 922 923 clocks = <&prcc_kclk 2 4>, <&prcc_pclk 2 6>; 924 clock-names = "sdi", "apb_pclk"; 925 power-domains = <&pm_domains DOMAIN_VAPE>; 926 resets = <&prcc_reset DB8500_PRCC_2 DB8500_PRCC_2_RESET_SDI1>; 927 928 status = "disabled"; 929 }; 930 931 mmc@80005000 { 932 compatible = "arm,pl18x", "arm,primecell"; 933 reg = <0x80005000 0x1000>; 934 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 935 936 dmas = <&dma 28 0 0x2>, /* Logical - DevToMem */ 937 <&dma 28 0 0x0>; /* Logical - MemToDev */ 938 dma-names = "rx", "tx"; 939 940 clocks = <&prcc_kclk 3 4>, <&prcc_pclk 3 4>; 941 clock-names = "sdi", "apb_pclk"; 942 power-domains = <&pm_domains DOMAIN_VAPE>; 943 resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_SDI2>; 944 945 status = "disabled"; 946 }; 947 948 mmc@80119000 { 949 compatible = "arm,pl18x", "arm,primecell"; 950 reg = <0x80119000 0x1000>; 951 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; 952 953 dmas = <&dma 41 0 0x2>, /* Logical - DevToMem */ 954 <&dma 41 0 0x0>; /* Logical - MemToDev */ 955 dma-names = "rx", "tx"; 956 957 clocks = <&prcc_kclk 2 5>, <&prcc_pclk 2 7>; 958 clock-names = "sdi", "apb_pclk"; 959 power-domains = <&pm_domains DOMAIN_VAPE>; 960 resets = <&prcc_reset DB8500_PRCC_2 DB8500_PRCC_2_RESET_SDI3>; 961 962 status = "disabled"; 963 }; 964 965 mmc@80114000 { 966 compatible = "arm,pl18x", "arm,primecell"; 967 reg = <0x80114000 0x1000>; 968 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; 969 970 dmas = <&dma 42 0 0x2>, /* Logical - DevToMem */ 971 <&dma 42 0 0x0>; /* Logical - MemToDev */ 972 dma-names = "rx", "tx"; 973 974 clocks = <&prcc_kclk 2 2>, <&prcc_pclk 2 4>; 975 clock-names = "sdi", "apb_pclk"; 976 power-domains = <&pm_domains DOMAIN_VAPE>; 977 resets = <&prcc_reset DB8500_PRCC_2 DB8500_PRCC_2_RESET_SDI4>; 978 979 status = "disabled"; 980 }; 981 982 mmc@80008000 { 983 compatible = "arm,pl18x", "arm,primecell"; 984 reg = <0x80008000 0x1000>; 985 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 986 987 dmas = <&dma 43 0 0x2>, /* Logical - DevToMem */ 988 <&dma 43 0 0x0>; /* Logical - MemToDev */ 989 dma-names = "rx", "tx"; 990 991 clocks = <&prcc_kclk 3 7>, <&prcc_pclk 3 7>; 992 clock-names = "sdi", "apb_pclk"; 993 power-domains = <&pm_domains DOMAIN_VAPE>; 994 resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_SDI5>; 995 996 status = "disabled"; 997 }; 998 999 sound { 1000 compatible = "stericsson,snd-soc-mop500"; 1001 stericsson,cpu-dai = <&msp1 &msp3>; 1002 }; 1003 1004 msp0: msp@80123000 { 1005 compatible = "stericsson,ux500-msp-i2s"; 1006 reg = <0x80123000 0x1000>; 1007 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 1008 v-ape-supply = <&db8500_vape_reg>; 1009 1010 dmas = <&dma 31 0 0x12>, /* Logical - DevToMem - HighPrio */ 1011 <&dma 31 0 0x10>; /* Logical - MemToDev - HighPrio */ 1012 dma-names = "rx", "tx"; 1013 1014 clocks = <&prcc_kclk 1 3>, <&prcc_pclk 1 3>; 1015 clock-names = "msp", "apb_pclk"; 1016 resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_MSP0>; 1017 1018 status = "disabled"; 1019 }; 1020 1021 msp1: msp@80124000 { 1022 compatible = "stericsson,ux500-msp-i2s"; 1023 reg = <0x80124000 0x1000>; 1024 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 1025 v-ape-supply = <&db8500_vape_reg>; 1026 1027 /* This DMA channel only exist on DB8500 v1 */ 1028 dmas = <&dma 30 0 0x10>; /* Logical - MemToDev - HighPrio */ 1029 dma-names = "tx"; 1030 1031 clocks = <&prcc_kclk 1 4>, <&prcc_pclk 1 4>; 1032 clock-names = "msp", "apb_pclk"; 1033 resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_MSP1>; 1034 1035 status = "disabled"; 1036 }; 1037 1038 // HDMI sound 1039 msp2: msp@80117000 { 1040 compatible = "stericsson,ux500-msp-i2s"; 1041 reg = <0x80117000 0x1000>; 1042 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 1043 v-ape-supply = <&db8500_vape_reg>; 1044 1045 dmas = <&dma 14 0 0x12>, /* Logical - DevToMem - HighPrio */ 1046 <&dma 14 1 0x19>; /* Physical Chan 1 - MemToDev 1047 HighPrio - Fixed */ 1048 dma-names = "rx", "tx"; 1049 1050 clocks = <&prcc_kclk 2 3>, <&prcc_pclk 2 5>; 1051 clock-names = "msp", "apb_pclk"; 1052 resets = <&prcc_reset DB8500_PRCC_2 DB8500_PRCC_2_RESET_MSP2>; 1053 1054 status = "disabled"; 1055 }; 1056 1057 msp3: msp@80125000 { 1058 compatible = "stericsson,ux500-msp-i2s"; 1059 reg = <0x80125000 0x1000>; 1060 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 1061 v-ape-supply = <&db8500_vape_reg>; 1062 1063 /* This DMA channel only exist on DB8500 v2 */ 1064 dmas = <&dma 30 0 0x12>; /* Logical - DevToMem - HighPrio */ 1065 dma-names = "rx"; 1066 1067 clocks = <&prcc_kclk 1 10>, <&prcc_pclk 1 11>; 1068 clock-names = "msp", "apb_pclk"; 1069 resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_MSP3>; 1070 1071 status = "disabled"; 1072 }; 1073 1074 external-bus@50000000 { 1075 compatible = "simple-bus"; 1076 reg = <0x50000000 0x4000000>; 1077 #address-cells = <1>; 1078 #size-cells = <1>; 1079 ranges = <0 0x50000000 0x4000000>; 1080 status = "disabled"; 1081 }; 1082 1083 gpu@a0300000 { 1084 /* 1085 * This block is referred to as "Smart Graphics Adapter SGA500" 1086 * in documentation but is in practice a pretty straight-forward 1087 * MALI-400 GPU block. 1088 */ 1089 compatible = "stericsson,db8500-mali", "arm,mali-400"; 1090 reg = <0xa0300000 0x10000>; 1091 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>, 1092 <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>, 1093 <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>, 1094 <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>, 1095 <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; 1096 interrupt-names = "gp", 1097 "gpmmu", 1098 "pp0", 1099 "ppmmu0", 1100 "combined"; 1101 clocks = <&prcmu_clk PRCMU_ACLK>, <&prcmu_clk PRCMU_SGACLK>; 1102 clock-names = "bus", "core"; 1103 mali-supply = <&db8500_sga_reg>; 1104 power-domains = <&pm_domains DOMAIN_VAPE>; 1105 }; 1106 1107 mcde@a0350000 { 1108 compatible = "ste,mcde"; 1109 reg = <0xa0350000 0x1000>; 1110 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 1111 epod-supply = <&db8500_b2r2_mcde_reg>; 1112 clocks = <&prcmu_clk PRCMU_MCDECLK>, /* Main MCDE clock */ 1113 <&prcmu_clk PRCMU_LCDCLK>, /* LCD clock */ 1114 <&prcmu_clk PRCMU_PLLDSI>; /* HDMI clock */ 1115 clock-names = "mcde", "lcd", "hdmi"; 1116 #address-cells = <1>; 1117 #size-cells = <1>; 1118 ranges; 1119 status = "disabled"; 1120 1121 dsi0: dsi@a0351000 { 1122 compatible = "ste,mcde-dsi"; 1123 reg = <0xa0351000 0x1000>; 1124 clocks = <&prcmu_clk PRCMU_DSI0CLK>, <&prcmu_clk PRCMU_DSI0ESCCLK>; 1125 clock-names = "hs", "lp"; 1126 #address-cells = <1>; 1127 #size-cells = <0>; 1128 }; 1129 dsi1: dsi@a0352000 { 1130 compatible = "ste,mcde-dsi"; 1131 reg = <0xa0352000 0x1000>; 1132 clocks = <&prcmu_clk PRCMU_DSI1CLK>, <&prcmu_clk PRCMU_DSI1ESCCLK>; 1133 clock-names = "hs", "lp"; 1134 #address-cells = <1>; 1135 #size-cells = <0>; 1136 }; 1137 dsi2: dsi@a0353000 { 1138 compatible = "ste,mcde-dsi"; 1139 reg = <0xa0353000 0x1000>; 1140 /* This DSI port only has the Low Power / Energy Save clock */ 1141 clocks = <&prcmu_clk PRCMU_DSI2ESCCLK>; 1142 clock-names = "lp"; 1143 #address-cells = <1>; 1144 #size-cells = <0>; 1145 }; 1146 }; 1147 1148 cryp@a03cb000 { 1149 compatible = "stericsson,ux500-cryp"; 1150 reg = <0xa03cb000 0x1000>; 1151 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 1152 1153 v-ape-supply = <&db8500_vape_reg>; 1154 clocks = <&prcc_pclk 6 1>; 1155 }; 1156 1157 hash@a03c2000 { 1158 compatible = "stericsson,ux500-hash"; 1159 reg = <0xa03c2000 0x1000>; 1160 1161 v-ape-supply = <&db8500_vape_reg>; 1162 clocks = <&prcc_pclk 6 2>; 1163 }; 1164 }; 1165}; 1166