1/* 2 * dts file for Hisilicon Hi3660 SoC 3 * 4 * Copyright (C) 2016, Hisilicon Ltd. 5 */ 6 7#include <dt-bindings/interrupt-controller/arm-gic.h> 8#include <dt-bindings/clock/hi3660-clock.h> 9 10/ { 11 compatible = "hisilicon,hi3660"; 12 interrupt-parent = <&gic>; 13 #address-cells = <2>; 14 #size-cells = <2>; 15 16 psci { 17 compatible = "arm,psci-0.2"; 18 method = "smc"; 19 }; 20 21 cpus { 22 #address-cells = <2>; 23 #size-cells = <0>; 24 25 cpu-map { 26 cluster0 { 27 core0 { 28 cpu = <&cpu0>; 29 }; 30 core1 { 31 cpu = <&cpu1>; 32 }; 33 core2 { 34 cpu = <&cpu2>; 35 }; 36 core3 { 37 cpu = <&cpu3>; 38 }; 39 }; 40 cluster1 { 41 core0 { 42 cpu = <&cpu4>; 43 }; 44 core1 { 45 cpu = <&cpu5>; 46 }; 47 core2 { 48 cpu = <&cpu6>; 49 }; 50 core3 { 51 cpu = <&cpu7>; 52 }; 53 }; 54 }; 55 56 cpu0: cpu@0 { 57 compatible = "arm,cortex-a53", "arm,armv8"; 58 device_type = "cpu"; 59 reg = <0x0 0x0>; 60 enable-method = "psci"; 61 next-level-cache = <&A53_L2>; 62 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_0>; 63 }; 64 65 cpu1: cpu@1 { 66 compatible = "arm,cortex-a53", "arm,armv8"; 67 device_type = "cpu"; 68 reg = <0x0 0x1>; 69 enable-method = "psci"; 70 next-level-cache = <&A53_L2>; 71 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_0>; 72 }; 73 74 cpu2: cpu@2 { 75 compatible = "arm,cortex-a53", "arm,armv8"; 76 device_type = "cpu"; 77 reg = <0x0 0x2>; 78 enable-method = "psci"; 79 next-level-cache = <&A53_L2>; 80 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_0>; 81 }; 82 83 cpu3: cpu@3 { 84 compatible = "arm,cortex-a53", "arm,armv8"; 85 device_type = "cpu"; 86 reg = <0x0 0x3>; 87 enable-method = "psci"; 88 next-level-cache = <&A53_L2>; 89 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_0>; 90 }; 91 92 cpu4: cpu@100 { 93 compatible = "arm,cortex-a73", "arm,armv8"; 94 device_type = "cpu"; 95 reg = <0x0 0x100>; 96 enable-method = "psci"; 97 next-level-cache = <&A73_L2>; 98 cpu-idle-states = < 99 &CPU_NAP 100 &CPU_SLEEP 101 &CLUSTER_SLEEP_1 102 >; 103 }; 104 105 cpu5: cpu@101 { 106 compatible = "arm,cortex-a73", "arm,armv8"; 107 device_type = "cpu"; 108 reg = <0x0 0x101>; 109 enable-method = "psci"; 110 next-level-cache = <&A73_L2>; 111 cpu-idle-states = < 112 &CPU_NAP 113 &CPU_SLEEP 114 &CLUSTER_SLEEP_1 115 >; 116 }; 117 118 cpu6: cpu@102 { 119 compatible = "arm,cortex-a73", "arm,armv8"; 120 device_type = "cpu"; 121 reg = <0x0 0x102>; 122 enable-method = "psci"; 123 next-level-cache = <&A73_L2>; 124 cpu-idle-states = < 125 &CPU_NAP 126 &CPU_SLEEP 127 &CLUSTER_SLEEP_1 128 >; 129 }; 130 131 cpu7: cpu@103 { 132 compatible = "arm,cortex-a73", "arm,armv8"; 133 device_type = "cpu"; 134 reg = <0x0 0x103>; 135 enable-method = "psci"; 136 next-level-cache = <&A73_L2>; 137 cpu-idle-states = < 138 &CPU_NAP 139 &CPU_SLEEP 140 &CLUSTER_SLEEP_1 141 >; 142 }; 143 144 idle-states { 145 entry-method = "psci"; 146 147 CPU_NAP: cpu-nap { 148 compatible = "arm,idle-state"; 149 arm,psci-suspend-param = <0x0000001>; 150 entry-latency-us = <7>; 151 exit-latency-us = <2>; 152 min-residency-us = <15>; 153 }; 154 155 CPU_SLEEP: cpu-sleep { 156 compatible = "arm,idle-state"; 157 local-timer-stop; 158 arm,psci-suspend-param = <0x0010000>; 159 entry-latency-us = <40>; 160 exit-latency-us = <70>; 161 min-residency-us = <3000>; 162 }; 163 164 CLUSTER_SLEEP_0: cluster-sleep-0 { 165 compatible = "arm,idle-state"; 166 local-timer-stop; 167 arm,psci-suspend-param = <0x1010000>; 168 entry-latency-us = <500>; 169 exit-latency-us = <5000>; 170 min-residency-us = <20000>; 171 }; 172 173 CLUSTER_SLEEP_1: cluster-sleep-1 { 174 compatible = "arm,idle-state"; 175 local-timer-stop; 176 arm,psci-suspend-param = <0x1010000>; 177 entry-latency-us = <1000>; 178 exit-latency-us = <5000>; 179 min-residency-us = <20000>; 180 }; 181 }; 182 183 A53_L2: l2-cache0 { 184 compatible = "cache"; 185 }; 186 187 A73_L2: l2-cache1 { 188 compatible = "cache"; 189 }; 190 }; 191 192 gic: interrupt-controller@e82b0000 { 193 compatible = "arm,gic-400"; 194 reg = <0x0 0xe82b1000 0 0x1000>, /* GICD */ 195 <0x0 0xe82b2000 0 0x2000>, /* GICC */ 196 <0x0 0xe82b4000 0 0x2000>, /* GICH */ 197 <0x0 0xe82b6000 0 0x2000>; /* GICV */ 198 #address-cells = <0>; 199 #interrupt-cells = <3>; 200 interrupt-controller; 201 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | 202 IRQ_TYPE_LEVEL_HIGH)>; 203 }; 204 205 pmu { 206 compatible = "arm,armv8-pmuv3"; 207 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>, 208 <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>, 209 <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>, 210 <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>, 211 <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, 212 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>, 213 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>, 214 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 215 interrupt-affinity = <&cpu0>, 216 <&cpu1>, 217 <&cpu2>, 218 <&cpu3>, 219 <&cpu4>, 220 <&cpu5>, 221 <&cpu6>, 222 <&cpu7>; 223 }; 224 225 timer { 226 compatible = "arm,armv8-timer"; 227 interrupt-parent = <&gic>; 228 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | 229 IRQ_TYPE_LEVEL_LOW)>, 230 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | 231 IRQ_TYPE_LEVEL_LOW)>, 232 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | 233 IRQ_TYPE_LEVEL_LOW)>, 234 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | 235 IRQ_TYPE_LEVEL_LOW)>; 236 }; 237 238 soc { 239 compatible = "simple-bus"; 240 #address-cells = <2>; 241 #size-cells = <2>; 242 ranges; 243 244 crg_ctrl: crg_ctrl@fff35000 { 245 compatible = "hisilicon,hi3660-crgctrl", "syscon"; 246 reg = <0x0 0xfff35000 0x0 0x1000>; 247 #clock-cells = <1>; 248 }; 249 250 crg_rst: crg_rst_controller { 251 compatible = "hisilicon,hi3660-reset"; 252 #reset-cells = <2>; 253 hisi,rst-syscon = <&crg_ctrl>; 254 }; 255 256 257 pctrl: pctrl@e8a09000 { 258 compatible = "hisilicon,hi3660-pctrl", "syscon"; 259 reg = <0x0 0xe8a09000 0x0 0x2000>; 260 #clock-cells = <1>; 261 }; 262 263 pmuctrl: crg_ctrl@fff34000 { 264 compatible = "hisilicon,hi3660-pmuctrl", "syscon"; 265 reg = <0x0 0xfff34000 0x0 0x1000>; 266 #clock-cells = <1>; 267 }; 268 269 sctrl: sctrl@fff0a000 { 270 compatible = "hisilicon,hi3660-sctrl", "syscon"; 271 reg = <0x0 0xfff0a000 0x0 0x1000>; 272 #clock-cells = <1>; 273 }; 274 275 iomcu: iomcu@ffd7e000 { 276 compatible = "hisilicon,hi3660-iomcu", "syscon"; 277 reg = <0x0 0xffd7e000 0x0 0x1000>; 278 #clock-cells = <1>; 279 280 }; 281 282 iomcu_rst: reset { 283 compatible = "hisilicon,hi3660-reset"; 284 hisi,rst-syscon = <&iomcu>; 285 #reset-cells = <2>; 286 }; 287 288 dual_timer0: timer@fff14000 { 289 compatible = "arm,sp804", "arm,primecell"; 290 reg = <0x0 0xfff14000 0x0 0x1000>; 291 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, 292 <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 293 clocks = <&crg_ctrl HI3660_OSC32K>, 294 <&crg_ctrl HI3660_OSC32K>, 295 <&crg_ctrl HI3660_OSC32K>; 296 clock-names = "timer1", "timer2", "apb_pclk"; 297 }; 298 299 i2c0: i2c@ffd71000 { 300 compatible = "snps,designware-i2c"; 301 reg = <0x0 0xffd71000 0x0 0x1000>; 302 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; 303 #address-cells = <1>; 304 #size-cells = <0>; 305 clock-frequency = <400000>; 306 clocks = <&crg_ctrl HI3660_CLK_GATE_I2C0>; 307 resets = <&iomcu_rst 0x20 3>; 308 pinctrl-names = "default"; 309 pinctrl-0 = <&i2c0_pmx_func &i2c0_cfg_func>; 310 status = "disabled"; 311 }; 312 313 i2c1: i2c@ffd72000 { 314 compatible = "snps,designware-i2c"; 315 reg = <0x0 0xffd72000 0x0 0x1000>; 316 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; 317 #address-cells = <1>; 318 #size-cells = <0>; 319 clock-frequency = <400000>; 320 clocks = <&crg_ctrl HI3660_CLK_GATE_I2C1>; 321 resets = <&iomcu_rst 0x20 4>; 322 pinctrl-names = "default"; 323 pinctrl-0 = <&i2c1_pmx_func &i2c1_cfg_func>; 324 status = "disabled"; 325 }; 326 327 i2c3: i2c@fdf0c000 { 328 compatible = "snps,designware-i2c"; 329 reg = <0x0 0xfdf0c000 0x0 0x1000>; 330 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 331 #address-cells = <1>; 332 #size-cells = <0>; 333 clock-frequency = <400000>; 334 clocks = <&crg_ctrl HI3660_CLK_GATE_I2C3>; 335 resets = <&crg_rst 0x78 7>; 336 pinctrl-names = "default"; 337 pinctrl-0 = <&i2c3_pmx_func &i2c3_cfg_func>; 338 status = "disabled"; 339 }; 340 341 i2c7: i2c@fdf0b000 { 342 compatible = "snps,designware-i2c"; 343 reg = <0x0 0xfdf0b000 0x0 0x1000>; 344 interrupts = <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>; 345 #address-cells = <1>; 346 #size-cells = <0>; 347 clock-frequency = <400000>; 348 clocks = <&crg_ctrl HI3660_CLK_GATE_I2C7>; 349 resets = <&crg_rst 0x60 14>; 350 pinctrl-names = "default"; 351 pinctrl-0 = <&i2c7_pmx_func &i2c7_cfg_func>; 352 status = "disabled"; 353 }; 354 355 uart0: serial@fdf02000 { 356 compatible = "arm,pl011", "arm,primecell"; 357 reg = <0x0 0xfdf02000 0x0 0x1000>; 358 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 359 clocks = <&crg_ctrl HI3660_CLK_MUX_UART0>, 360 <&crg_ctrl HI3660_PCLK>; 361 clock-names = "uartclk", "apb_pclk"; 362 pinctrl-names = "default"; 363 pinctrl-0 = <&uart0_pmx_func &uart0_cfg_func>; 364 status = "disabled"; 365 }; 366 367 uart1: serial@fdf00000 { 368 compatible = "arm,pl011", "arm,primecell"; 369 reg = <0x0 0xfdf00000 0x0 0x1000>; 370 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 371 clocks = <&crg_ctrl HI3660_CLK_GATE_UART1>, 372 <&crg_ctrl HI3660_CLK_GATE_UART1>; 373 clock-names = "uartclk", "apb_pclk"; 374 pinctrl-names = "default"; 375 pinctrl-0 = <&uart1_pmx_func &uart1_cfg_func>; 376 status = "disabled"; 377 }; 378 379 uart2: serial@fdf03000 { 380 compatible = "arm,pl011", "arm,primecell"; 381 reg = <0x0 0xfdf03000 0x0 0x1000>; 382 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 383 clocks = <&crg_ctrl HI3660_CLK_GATE_UART2>, 384 <&crg_ctrl HI3660_PCLK>; 385 clock-names = "uartclk", "apb_pclk"; 386 pinctrl-names = "default"; 387 pinctrl-0 = <&uart2_pmx_func &uart2_cfg_func>; 388 status = "disabled"; 389 }; 390 391 uart3: serial@ffd74000 { 392 compatible = "arm,pl011", "arm,primecell"; 393 reg = <0x0 0xffd74000 0x0 0x1000>; 394 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; 395 clocks = <&crg_ctrl HI3660_FACTOR_UART3>, 396 <&crg_ctrl HI3660_PCLK>; 397 clock-names = "uartclk", "apb_pclk"; 398 pinctrl-names = "default"; 399 pinctrl-0 = <&uart3_pmx_func &uart3_cfg_func>; 400 status = "disabled"; 401 }; 402 403 uart4: serial@fdf01000 { 404 compatible = "arm,pl011", "arm,primecell"; 405 reg = <0x0 0xfdf01000 0x0 0x1000>; 406 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 407 clocks = <&crg_ctrl HI3660_CLK_GATE_UART4>, 408 <&crg_ctrl HI3660_CLK_GATE_UART4>; 409 clock-names = "uartclk", "apb_pclk"; 410 pinctrl-names = "default"; 411 pinctrl-0 = <&uart4_pmx_func &uart4_cfg_func>; 412 status = "disabled"; 413 }; 414 415 uart5: serial@fdf05000 { 416 compatible = "arm,pl011", "arm,primecell"; 417 reg = <0x0 0xfdf05000 0x0 0x1000>; 418 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; 419 clocks = <&crg_ctrl HI3660_CLK_GATE_UART5>, 420 <&crg_ctrl HI3660_CLK_GATE_UART5>; 421 clock-names = "uartclk", "apb_pclk"; 422 pinctrl-names = "default"; 423 pinctrl-0 = <&uart5_pmx_func &uart5_cfg_func>; 424 status = "disabled"; 425 }; 426 427 uart6: serial@fff32000 { 428 compatible = "arm,pl011", "arm,primecell"; 429 reg = <0x0 0xfff32000 0x0 0x1000>; 430 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 431 clocks = <&crg_ctrl HI3660_CLK_UART6>, 432 <&crg_ctrl HI3660_PCLK>; 433 clock-names = "uartclk", "apb_pclk"; 434 pinctrl-names = "default"; 435 pinctrl-0 = <&uart6_pmx_func &uart6_cfg_func>; 436 status = "disabled"; 437 }; 438 439 dma0: dma@fdf30000 { 440 compatible = "hisilicon,k3-dma-1.0"; 441 reg = <0x0 0xfdf30000 0x0 0x1000>; 442 #dma-cells = <1>; 443 dma-channels = <16>; 444 dma-requests = <32>; 445 dma-min-chan = <1>; 446 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>; 447 clocks = <&crg_ctrl HI3660_CLK_GATE_DMAC>; 448 dma-no-cci; 449 dma-type = "hi3660_dma"; 450 }; 451 452 rtc0: rtc@fff04000 { 453 compatible = "arm,pl031", "arm,primecell"; 454 reg = <0x0 0Xfff04000 0x0 0x1000>; 455 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 456 clocks = <&crg_ctrl HI3660_PCLK>; 457 clock-names = "apb_pclk"; 458 }; 459 460 gpio0: gpio@e8a0b000 { 461 compatible = "arm,pl061", "arm,primecell"; 462 reg = <0 0xe8a0b000 0 0x1000>; 463 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 464 gpio-controller; 465 #gpio-cells = <2>; 466 gpio-ranges = <&pmx0 1 0 7>; 467 interrupt-controller; 468 #interrupt-cells = <2>; 469 clocks = <&crg_ctrl HI3660_PCLK_GPIO0>; 470 clock-names = "apb_pclk"; 471 }; 472 473 gpio1: gpio@e8a0c000 { 474 compatible = "arm,pl061", "arm,primecell"; 475 reg = <0 0xe8a0c000 0 0x1000>; 476 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 477 gpio-controller; 478 #gpio-cells = <2>; 479 gpio-ranges = <&pmx0 1 7 7>; 480 interrupt-controller; 481 #interrupt-cells = <2>; 482 clocks = <&crg_ctrl HI3660_PCLK_GPIO1>; 483 clock-names = "apb_pclk"; 484 }; 485 486 gpio2: gpio@e8a0d000 { 487 compatible = "arm,pl061", "arm,primecell"; 488 reg = <0 0xe8a0d000 0 0x1000>; 489 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 490 gpio-controller; 491 #gpio-cells = <2>; 492 gpio-ranges = <&pmx0 0 14 8>; 493 interrupt-controller; 494 #interrupt-cells = <2>; 495 clocks = <&crg_ctrl HI3660_PCLK_GPIO2>; 496 clock-names = "apb_pclk"; 497 }; 498 499 gpio3: gpio@e8a0e000 { 500 compatible = "arm,pl061", "arm,primecell"; 501 reg = <0 0xe8a0e000 0 0x1000>; 502 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 503 gpio-controller; 504 #gpio-cells = <2>; 505 gpio-ranges = <&pmx0 0 22 8>; 506 interrupt-controller; 507 #interrupt-cells = <2>; 508 clocks = <&crg_ctrl HI3660_PCLK_GPIO3>; 509 clock-names = "apb_pclk"; 510 }; 511 512 gpio4: gpio@e8a0f000 { 513 compatible = "arm,pl061", "arm,primecell"; 514 reg = <0 0xe8a0f000 0 0x1000>; 515 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 516 gpio-controller; 517 #gpio-cells = <2>; 518 gpio-ranges = <&pmx0 0 30 8>; 519 interrupt-controller; 520 #interrupt-cells = <2>; 521 clocks = <&crg_ctrl HI3660_PCLK_GPIO4>; 522 clock-names = "apb_pclk"; 523 }; 524 525 gpio5: gpio@e8a10000 { 526 compatible = "arm,pl061", "arm,primecell"; 527 reg = <0 0xe8a10000 0 0x1000>; 528 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 529 gpio-controller; 530 #gpio-cells = <2>; 531 gpio-ranges = <&pmx0 0 38 8>; 532 interrupt-controller; 533 #interrupt-cells = <2>; 534 clocks = <&crg_ctrl HI3660_PCLK_GPIO5>; 535 clock-names = "apb_pclk"; 536 }; 537 538 gpio6: gpio@e8a11000 { 539 compatible = "arm,pl061", "arm,primecell"; 540 reg = <0 0xe8a11000 0 0x1000>; 541 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 542 gpio-controller; 543 #gpio-cells = <2>; 544 gpio-ranges = <&pmx0 0 46 8>; 545 interrupt-controller; 546 #interrupt-cells = <2>; 547 clocks = <&crg_ctrl HI3660_PCLK_GPIO6>; 548 clock-names = "apb_pclk"; 549 }; 550 551 gpio7: gpio@e8a12000 { 552 compatible = "arm,pl061", "arm,primecell"; 553 reg = <0 0xe8a12000 0 0x1000>; 554 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 555 gpio-controller; 556 #gpio-cells = <2>; 557 gpio-ranges = <&pmx0 0 54 8>; 558 interrupt-controller; 559 #interrupt-cells = <2>; 560 clocks = <&crg_ctrl HI3660_PCLK_GPIO7>; 561 clock-names = "apb_pclk"; 562 }; 563 564 gpio8: gpio@e8a13000 { 565 compatible = "arm,pl061", "arm,primecell"; 566 reg = <0 0xe8a13000 0 0x1000>; 567 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; 568 gpio-controller; 569 #gpio-cells = <2>; 570 gpio-ranges = <&pmx0 0 62 8>; 571 interrupt-controller; 572 #interrupt-cells = <2>; 573 clocks = <&crg_ctrl HI3660_PCLK_GPIO8>; 574 clock-names = "apb_pclk"; 575 }; 576 577 gpio9: gpio@e8a14000 { 578 compatible = "arm,pl061", "arm,primecell"; 579 reg = <0 0xe8a14000 0 0x1000>; 580 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 581 gpio-controller; 582 #gpio-cells = <2>; 583 gpio-ranges = <&pmx0 0 70 8>; 584 interrupt-controller; 585 #interrupt-cells = <2>; 586 clocks = <&crg_ctrl HI3660_PCLK_GPIO9>; 587 clock-names = "apb_pclk"; 588 }; 589 590 gpio10: gpio@e8a15000 { 591 compatible = "arm,pl061", "arm,primecell"; 592 reg = <0 0xe8a15000 0 0x1000>; 593 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 594 gpio-controller; 595 #gpio-cells = <2>; 596 gpio-ranges = <&pmx0 0 78 8>; 597 interrupt-controller; 598 #interrupt-cells = <2>; 599 clocks = <&crg_ctrl HI3660_PCLK_GPIO10>; 600 clock-names = "apb_pclk"; 601 }; 602 603 gpio11: gpio@e8a16000 { 604 compatible = "arm,pl061", "arm,primecell"; 605 reg = <0 0xe8a16000 0 0x1000>; 606 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 607 gpio-controller; 608 #gpio-cells = <2>; 609 gpio-ranges = <&pmx0 0 86 8>; 610 interrupt-controller; 611 #interrupt-cells = <2>; 612 clocks = <&crg_ctrl HI3660_PCLK_GPIO11>; 613 clock-names = "apb_pclk"; 614 }; 615 616 gpio12: gpio@e8a17000 { 617 compatible = "arm,pl061", "arm,primecell"; 618 reg = <0 0xe8a17000 0 0x1000>; 619 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 620 gpio-controller; 621 #gpio-cells = <2>; 622 gpio-ranges = <&pmx0 0 94 3 &pmx0 7 101 1>; 623 interrupt-controller; 624 #interrupt-cells = <2>; 625 clocks = <&crg_ctrl HI3660_PCLK_GPIO12>; 626 clock-names = "apb_pclk"; 627 }; 628 629 gpio13: gpio@e8a18000 { 630 compatible = "arm,pl061", "arm,primecell"; 631 reg = <0 0xe8a18000 0 0x1000>; 632 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 633 gpio-controller; 634 #gpio-cells = <2>; 635 gpio-ranges = <&pmx0 0 102 8>; 636 interrupt-controller; 637 #interrupt-cells = <2>; 638 clocks = <&crg_ctrl HI3660_PCLK_GPIO13>; 639 clock-names = "apb_pclk"; 640 }; 641 642 gpio14: gpio@e8a19000 { 643 compatible = "arm,pl061", "arm,primecell"; 644 reg = <0 0xe8a19000 0 0x1000>; 645 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 646 gpio-controller; 647 #gpio-cells = <2>; 648 gpio-ranges = <&pmx0 0 110 8>; 649 interrupt-controller; 650 #interrupt-cells = <2>; 651 clocks = <&crg_ctrl HI3660_PCLK_GPIO14>; 652 clock-names = "apb_pclk"; 653 }; 654 655 gpio15: gpio@e8a1a000 { 656 compatible = "arm,pl061", "arm,primecell"; 657 reg = <0 0xe8a1a000 0 0x1000>; 658 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; 659 gpio-controller; 660 #gpio-cells = <2>; 661 gpio-ranges = <&pmx0 0 118 6>; 662 interrupt-controller; 663 #interrupt-cells = <2>; 664 clocks = <&crg_ctrl HI3660_PCLK_GPIO15>; 665 clock-names = "apb_pclk"; 666 }; 667 668 gpio16: gpio@e8a1b000 { 669 compatible = "arm,pl061", "arm,primecell"; 670 reg = <0 0xe8a1b000 0 0x1000>; 671 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 672 gpio-controller; 673 #gpio-cells = <2>; 674 interrupt-controller; 675 #interrupt-cells = <2>; 676 clocks = <&crg_ctrl HI3660_PCLK_GPIO16>; 677 clock-names = "apb_pclk"; 678 }; 679 680 gpio17: gpio@e8a1c000 { 681 compatible = "arm,pl061", "arm,primecell"; 682 reg = <0 0xe8a1c000 0 0x1000>; 683 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; 684 gpio-controller; 685 #gpio-cells = <2>; 686 interrupt-controller; 687 #interrupt-cells = <2>; 688 clocks = <&crg_ctrl HI3660_PCLK_GPIO17>; 689 clock-names = "apb_pclk"; 690 }; 691 692 gpio18: gpio@ff3b4000 { 693 compatible = "arm,pl061", "arm,primecell"; 694 reg = <0 0xff3b4000 0 0x1000>; 695 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; 696 gpio-controller; 697 #gpio-cells = <2>; 698 gpio-ranges = <&pmx2 0 0 8>; 699 interrupt-controller; 700 #interrupt-cells = <2>; 701 clocks = <&crg_ctrl HI3660_PCLK_GPIO18>; 702 clock-names = "apb_pclk"; 703 }; 704 705 gpio19: gpio@ff3b5000 { 706 compatible = "arm,pl061", "arm,primecell"; 707 reg = <0 0xff3b5000 0 0x1000>; 708 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 709 gpio-controller; 710 #gpio-cells = <2>; 711 gpio-ranges = <&pmx2 0 8 4>; 712 interrupt-controller; 713 #interrupt-cells = <2>; 714 clocks = <&crg_ctrl HI3660_PCLK_GPIO19>; 715 clock-names = "apb_pclk"; 716 }; 717 718 gpio20: gpio@e8a1f000 { 719 compatible = "arm,pl061", "arm,primecell"; 720 reg = <0 0xe8a1f000 0 0x1000>; 721 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; 722 gpio-controller; 723 #gpio-cells = <2>; 724 gpio-ranges = <&pmx1 0 0 6>; 725 interrupt-controller; 726 #interrupt-cells = <2>; 727 clocks = <&crg_ctrl HI3660_PCLK_GPIO20>; 728 clock-names = "apb_pclk"; 729 }; 730 731 gpio21: gpio@e8a20000 { 732 compatible = "arm,pl061", "arm,primecell"; 733 reg = <0 0xe8a20000 0 0x1000>; 734 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 735 gpio-controller; 736 #gpio-cells = <2>; 737 interrupt-controller; 738 #interrupt-cells = <2>; 739 gpio-ranges = <&pmx3 0 0 6>; 740 clocks = <&crg_ctrl HI3660_PCLK_GPIO21>; 741 clock-names = "apb_pclk"; 742 }; 743 744 gpio22: gpio@fff0b000 { 745 compatible = "arm,pl061", "arm,primecell"; 746 reg = <0 0xfff0b000 0 0x1000>; 747 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; 748 gpio-controller; 749 #gpio-cells = <2>; 750 /* GPIO176 */ 751 gpio-ranges = <&pmx4 2 0 6>; 752 interrupt-controller; 753 #interrupt-cells = <2>; 754 clocks = <&sctrl HI3660_PCLK_AO_GPIO0>; 755 clock-names = "apb_pclk"; 756 }; 757 758 gpio23: gpio@fff0c000 { 759 compatible = "arm,pl061", "arm,primecell"; 760 reg = <0 0xfff0c000 0 0x1000>; 761 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 762 gpio-controller; 763 #gpio-cells = <2>; 764 /* GPIO184 */ 765 gpio-ranges = <&pmx4 0 6 7>; 766 interrupt-controller; 767 #interrupt-cells = <2>; 768 clocks = <&sctrl HI3660_PCLK_AO_GPIO1>; 769 clock-names = "apb_pclk"; 770 }; 771 772 gpio24: gpio@fff0d000 { 773 compatible = "arm,pl061", "arm,primecell"; 774 reg = <0 0xfff0d000 0 0x1000>; 775 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 776 gpio-controller; 777 #gpio-cells = <2>; 778 /* GPIO192 */ 779 gpio-ranges = <&pmx4 0 13 8>; 780 interrupt-controller; 781 #interrupt-cells = <2>; 782 clocks = <&sctrl HI3660_PCLK_AO_GPIO2>; 783 clock-names = "apb_pclk"; 784 }; 785 786 gpio25: gpio@fff0e000 { 787 compatible = "arm,pl061", "arm,primecell"; 788 reg = <0 0xfff0e000 0 0x1000>; 789 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; 790 gpio-controller; 791 #gpio-cells = <2>; 792 /* GPIO200 */ 793 gpio-ranges = <&pmx4 0 21 4 &pmx4 5 25 3>; 794 interrupt-controller; 795 #interrupt-cells = <2>; 796 clocks = <&sctrl HI3660_PCLK_AO_GPIO3>; 797 clock-names = "apb_pclk"; 798 }; 799 800 gpio26: gpio@fff0f000 { 801 compatible = "arm,pl061", "arm,primecell"; 802 reg = <0 0xfff0f000 0 0x1000>; 803 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; 804 gpio-controller; 805 #gpio-cells = <2>; 806 /* GPIO208 */ 807 gpio-ranges = <&pmx4 0 28 8>; 808 interrupt-controller; 809 #interrupt-cells = <2>; 810 clocks = <&sctrl HI3660_PCLK_AO_GPIO4>; 811 clock-names = "apb_pclk"; 812 }; 813 814 gpio27: gpio@fff10000 { 815 compatible = "arm,pl061", "arm,primecell"; 816 reg = <0 0xfff10000 0 0x1000>; 817 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; 818 gpio-controller; 819 #gpio-cells = <2>; 820 /* GPIO216 */ 821 gpio-ranges = <&pmx4 0 36 6>; 822 interrupt-controller; 823 #interrupt-cells = <2>; 824 clocks = <&sctrl HI3660_PCLK_AO_GPIO5>; 825 clock-names = "apb_pclk"; 826 }; 827 828 gpio28: gpio@fff1d000 { 829 compatible = "arm,pl061", "arm,primecell"; 830 reg = <0 0xfff1d000 0 0x1000>; 831 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>; 832 gpio-controller; 833 #gpio-cells = <2>; 834 interrupt-controller; 835 #interrupt-cells = <2>; 836 clocks = <&sctrl HI3660_PCLK_AO_GPIO6>; 837 clock-names = "apb_pclk"; 838 }; 839 840 spi2: spi@ffd68000 { 841 compatible = "arm,pl022", "arm,primecell"; 842 reg = <0x0 0xffd68000 0x0 0x1000>; 843 #address-cells = <1>; 844 #size-cells = <0>; 845 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; 846 clocks = <&crg_ctrl HI3660_CLK_GATE_SPI2>; 847 clock-names = "apb_pclk"; 848 pinctrl-names = "default"; 849 pinctrl-0 = <&spi2_pmx_func>; 850 num-cs = <1>; 851 cs-gpios = <&gpio27 2 0>; 852 status = "disabled"; 853 }; 854 855 spi3: spi@ff3b3000 { 856 compatible = "arm,pl022", "arm,primecell"; 857 reg = <0x0 0xff3b3000 0x0 0x1000>; 858 #address-cells = <1>; 859 #size-cells = <0>; 860 interrupts = <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>; 861 clocks = <&crg_ctrl HI3660_CLK_GATE_SPI3>; 862 clock-names = "apb_pclk"; 863 pinctrl-names = "default"; 864 pinctrl-0 = <&spi3_pmx_func>; 865 num-cs = <1>; 866 cs-gpios = <&gpio18 5 0>; 867 status = "disabled"; 868 }; 869 870 pcie@f4000000 { 871 compatible = "hisilicon,kirin960-pcie"; 872 reg = <0x0 0xf4000000 0x0 0x1000>, 873 <0x0 0xff3fe000 0x0 0x1000>, 874 <0x0 0xf3f20000 0x0 0x40000>, 875 <0x0 0xf5000000 0x0 0x2000>; 876 reg-names = "dbi", "apb", "phy", "config"; 877 bus-range = <0x0 0x1>; 878 #address-cells = <3>; 879 #size-cells = <2>; 880 device_type = "pci"; 881 ranges = <0x02000000 0x0 0x00000000 882 0x0 0xf6000000 883 0x0 0x02000000>; 884 num-lanes = <1>; 885 #interrupt-cells = <1>; 886 interrupt-map-mask = <0xf800 0 0 7>; 887 interrupt-map = <0x0 0 0 1 888 &gic GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>, 889 <0x0 0 0 2 890 &gic GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>, 891 <0x0 0 0 3 892 &gic GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>, 893 <0x0 0 0 4 894 &gic GIC_SPI 285 IRQ_TYPE_LEVEL_HIGH>; 895 clocks = <&crg_ctrl HI3660_PCIEPHY_REF>, 896 <&crg_ctrl HI3660_CLK_GATE_PCIEAUX>, 897 <&crg_ctrl HI3660_PCLK_GATE_PCIE_PHY>, 898 <&crg_ctrl HI3660_PCLK_GATE_PCIE_SYS>, 899 <&crg_ctrl HI3660_ACLK_GATE_PCIE>; 900 clock-names = "pcie_phy_ref", "pcie_aux", 901 "pcie_apb_phy", "pcie_apb_sys", 902 "pcie_aclk"; 903 reset-gpios = <&gpio11 1 0 >; 904 }; 905 906 /* SD */ 907 dwmmc1: dwmmc1@ff37f000 { 908 #address-cells = <1>; 909 #size-cells = <0>; 910 cd-inverted; 911 compatible = "hisilicon,hi3660-dw-mshc"; 912 num-slots = <1>; 913 bus-width = <0x4>; 914 disable-wp; 915 cap-sd-highspeed; 916 supports-highspeed; 917 card-detect-delay = <200>; 918 reg = <0x0 0xff37f000 0x0 0x1000>; 919 interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>; 920 clocks = <&crg_ctrl HI3660_CLK_GATE_SD>, 921 <&crg_ctrl HI3660_HCLK_GATE_SD>; 922 clock-names = "ciu", "biu"; 923 clock-frequency = <3200000>; 924 resets = <&crg_rst 0x94 18>; 925 reset-names = "reset"; 926 cd-gpios = <&gpio25 3 0>; 927 hisilicon,peripheral-syscon = <&sctrl>; 928 pinctrl-names = "default"; 929 pinctrl-0 = <&sd_pmx_func 930 &sd_clk_cfg_func 931 &sd_cfg_func>; 932 sd-uhs-sdr12; 933 sd-uhs-sdr25; 934 sd-uhs-sdr50; 935 sd-uhs-sdr104; 936 status = "disabled"; 937 938 slot@0 { 939 reg = <0x0>; 940 bus-width = <4>; 941 disable-wp; 942 }; 943 }; 944 945 /* SDIO */ 946 dwmmc2: dwmmc2@ff3ff000 { 947 compatible = "hisilicon,hi3660-dw-mshc"; 948 reg = <0x0 0xff3ff000 0x0 0x1000>; 949 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; 950 num-slots = <1>; 951 clocks = <&crg_ctrl HI3660_CLK_GATE_SDIO0>, 952 <&crg_ctrl HI3660_HCLK_GATE_SDIO0>; 953 clock-names = "ciu", "biu"; 954 resets = <&crg_rst 0x94 20>; 955 reset-names = "reset"; 956 card-detect-delay = <200>; 957 supports-highspeed; 958 keep-power-in-suspend; 959 pinctrl-names = "default"; 960 pinctrl-0 = <&sdio_pmx_func 961 &sdio_clk_cfg_func 962 &sdio_cfg_func>; 963 status = "disabled"; 964 }; 965 966 watchdog0: watchdog@e8a06000 { 967 compatible = "arm,sp805-wdt", "arm,primecell"; 968 reg = <0x0 0xe8a06000 0x0 0x1000>; 969 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; 970 clocks = <&crg_ctrl HI3660_OSC32K>; 971 clock-names = "apb_pclk"; 972 }; 973 974 watchdog1: watchdog@e8a07000 { 975 compatible = "arm,sp805-wdt", "arm,primecell"; 976 reg = <0x0 0xe8a07000 0x0 0x1000>; 977 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 978 clocks = <&crg_ctrl HI3660_OSC32K>; 979 clock-names = "apb_pclk"; 980 }; 981 }; 982}; 983