Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM 64-bit DT updates from Arnd Bergmann:
"The 64-bit DT changes are surprisingly small this time, we only add
two SoC platforms: the ZTE ZX296718 Set-top-box SoC and the SocioNext
UniPhier LD11 TV SoC, each with their reference boards.

There are three new machines added for existing SoC platforms:

- The Marvell Armada 8040 development board is an impressive
quad-core Cortex-A72 machine with three 10gbit ethernet interfaces

- Qualcomms DragonBoard 820c single-board computer is their current
high-end phone platform in the 96boards form factor

- Rockchip: Tronsmart Orion r86 set-top-box is a popular mid-range
Android box based on the 8-core rk3368 SoC"

* tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (91 commits)
arm64: dts: berlin4ct: Add L2 cache topology
arm64: dts: berlin4ct: enable all wdt nodes unconditionally
arm64: dts: berlin4ct: switch to Cortex-A53 specific pmu nodes
arm64: dts: Add ZTE ZX296718 SoC dts and Makefile
arm64: dts: apm: Add DT node for APM X-Gene 2 CPU clocks
arm64: dts: apm: Add X-Gene SoC hwmon to device tree
arm64: dts: apm: Fix interrupt polarity for X-Gene PCIe legacy interrupts
arm64: dts: apm: Add APM X-Gene v2 SoC PMU DTS entries
arm64: dts: apm: Add APM X-Gene SoC PMU DTS entries
arm64: dts: marvell: enable MSI for PCIe on Armada 7K/8K
arm64: dts: ls2080a: Add 'dma-coherent' for ls2080a PCI nodes
arm64: dts: rockchip: add Type-C phy for RK3399
arm64: dts: rockchip: enable the gmac for rk3399 evb board
arm64: dts: rockchip: add the gmac needed node for rk3399
arm64: dts: rockchip: support the pmu node for rk3399
arm64: dts: rockchip: change all interrupts cells to 4 on rk3399 SoCs
arm64: dts: rockchip: add the tcpc for rk3399 power domain
arm64: dts: rockchip: add efuse0 device node for rk3399
arm64: dts: rockchip: configure PCIe support for rk3399-evb
arm64: dts: rockchip: add the PCIe controller support for RK3399
...

+4239 -371
+28 -11
Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt
··· 175 175 }; 176 176 177 177 ----------------------------------------------------------------------- 178 - Hisilicon HiP05 PCIe-SAS system controller 178 + Hisilicon HiP05/HiP06 PCIe-SAS sub system controller 179 179 180 180 Required properties: 181 181 - compatible : "hisilicon,pcie-sas-subctrl", "syscon"; 182 182 - reg : Register address and size 183 183 184 - The HiP05 PCIe-SAS system controller is shared by PCIe and SAS controllers in 185 - HiP05 Soc to implement some basic configurations. 184 + The PCIe-SAS sub system controller is shared by PCIe and SAS controllers in 185 + HiP05 or HiP06 Soc to implement some basic configurations. 186 186 187 187 Example: 188 - /* for HiP05 PCIe-SAS system */ 189 - pcie_sas: system_controller@0xb0000000 { 188 + /* for HiP05 PCIe-SAS sub system */ 189 + pcie_sas: system_controller@b0000000 { 190 190 compatible = "hisilicon,pcie-sas-subctrl", "syscon"; 191 191 reg = <0xb0000000 0x10000>; 192 192 }; 193 193 194 - Hisilicon HiP05 PERISUB system controller 194 + Hisilicon HiP05/HiP06 PERI sub system controller 195 195 196 196 Required properties: 197 - - compatible : "hisilicon,hip05-perisubc", "syscon"; 197 + - compatible : "hisilicon,peri-subctrl", "syscon"; 198 198 - reg : Register address and size 199 199 200 - The HiP05 PERISUB system controller is shared by peripheral controllers in 201 - HiP05 Soc to implement some basic configurations. The peripheral 200 + The PERI sub system controller is shared by peripheral controllers in 201 + HiP05 or HiP06 Soc to implement some basic configurations. The peripheral 202 202 controllers include mdio, ddr, iic, uart, timer and so on. 203 203 204 204 Example: 205 - /* for HiP05 perisub-ctrl-c system */ 205 + /* for HiP05 sub peri system */ 206 206 peri_c_subctrl: syscon@80000000 { 207 - compatible = "hisilicon,hip05-perisubc", "syscon"; 207 + compatible = "hisilicon,peri-subctrl", "syscon"; 208 208 reg = <0x0 0x80000000 0x0 0x10000>; 209 209 }; 210 + 211 + Hisilicon HiP05/HiP06 DSA sub system controller 212 + 213 + Required properties: 214 + - compatible : "hisilicon,dsa-subctrl", "syscon"; 215 + - reg : Register address and size 216 + 217 + The DSA sub system controller is shared by peripheral controllers in 218 + HiP05 or HiP06 Soc to implement some basic configurations. 219 + 220 + Example: 221 + /* for HiP05 dsa sub system */ 222 + pcie_sas: system_controller@a0000000 { 223 + compatible = "hisilicon,dsa-subctrl", "syscon"; 224 + reg = <0xa0000000 0x10000>; 225 + }; 226 + 210 227 ----------------------------------------------------------------------- 211 228 Hisilicon CPU controller 212 229
+4
Documentation/devicetree/bindings/arm/rockchip.txt
··· 121 121 - Rockchip RK3399 evb: 122 122 Required root node properties: 123 123 - compatible = "rockchip,rk3399-evb", "rockchip,rk3399"; 124 + 125 + - Tronsmart Orion R68 Meta 126 + Required root node properties: 127 + - compatible = "tronsmart,orion-r68-meta", "rockchip,rk3368";
+24
Documentation/devicetree/bindings/arm/zte.txt
··· 13 13 14 14 Bus matrix required properties: 15 15 - compatible = "zte,zx-bus-matrix" 16 + 17 + 18 + --------------------------------------- 19 + - ZX296718 SoC: 20 + Required root node properties: 21 + - compatible = "zte,zx296718" 22 + 23 + ZX296718 EVB board: 24 + - "zte,zx296718-evb" 25 + 26 + System management required properties: 27 + - compatible = "zte,zx296718-aon-sysctrl" 28 + - compatible = "zte,zx296718-sysctrl" 29 + 30 + Example: 31 + aon_sysctrl: aon-sysctrl@116000 { 32 + compatible = "zte,zx296718-aon-sysctrl", "syscon"; 33 + reg = <0x116000 0x1000>; 34 + }; 35 + 36 + sysctrl: sysctrl@1463000 { 37 + compatible = "zte,zx296718-sysctrl", "syscon"; 38 + reg = <0x1463000 0x1000>; 39 + };
+2
arch/arm64/Kconfig.platforms
··· 172 172 select GENERIC_CLOCKEVENTS 173 173 select GPIOLIB 174 174 select PINCTRL 175 + select PM 176 + select PM_GENERIC_DOMAINS 175 177 select RESET_CONTROLLER 176 178 help 177 179 This enables support for the NVIDIA Tegra SoC family.
+1
arch/arm64/boot/dts/Makefile
··· 19 19 dts-dirs += sprd 20 20 dts-dirs += xilinx 21 21 dts-dirs += lg 22 + dts-dirs += zte 22 23 23 24 subdir-y := $(dts-dirs) 24 25
+127 -8
arch/arm64/boot/dts/apm/apm-shadowcat.dtsi
··· 26 26 enable-method = "spin-table"; 27 27 cpu-release-addr = <0x1 0x0000fff8>; 28 28 next-level-cache = <&xgene_L2_0>; 29 + #clock-cells = <1>; 30 + clocks = <&pmd0clk 0>; 29 31 }; 30 32 cpu@001 { 31 33 device_type = "cpu"; ··· 36 34 enable-method = "spin-table"; 37 35 cpu-release-addr = <0x1 0x0000fff8>; 38 36 next-level-cache = <&xgene_L2_0>; 37 + #clock-cells = <1>; 38 + clocks = <&pmd0clk 0>; 39 39 }; 40 40 cpu@100 { 41 41 device_type = "cpu"; ··· 46 42 enable-method = "spin-table"; 47 43 cpu-release-addr = <0x1 0x0000fff8>; 48 44 next-level-cache = <&xgene_L2_1>; 45 + #clock-cells = <1>; 46 + clocks = <&pmd1clk 0>; 49 47 }; 50 48 cpu@101 { 51 49 device_type = "cpu"; ··· 56 50 enable-method = "spin-table"; 57 51 cpu-release-addr = <0x1 0x0000fff8>; 58 52 next-level-cache = <&xgene_L2_1>; 53 + #clock-cells = <1>; 54 + clocks = <&pmd1clk 0>; 59 55 }; 60 56 cpu@200 { 61 57 device_type = "cpu"; ··· 66 58 enable-method = "spin-table"; 67 59 cpu-release-addr = <0x1 0x0000fff8>; 68 60 next-level-cache = <&xgene_L2_2>; 61 + #clock-cells = <1>; 62 + clocks = <&pmd2clk 0>; 69 63 }; 70 64 cpu@201 { 71 65 device_type = "cpu"; ··· 76 66 enable-method = "spin-table"; 77 67 cpu-release-addr = <0x1 0x0000fff8>; 78 68 next-level-cache = <&xgene_L2_2>; 69 + #clock-cells = <1>; 70 + clocks = <&pmd2clk 0>; 79 71 }; 80 72 cpu@300 { 81 73 device_type = "cpu"; ··· 86 74 enable-method = "spin-table"; 87 75 cpu-release-addr = <0x1 0x0000fff8>; 88 76 next-level-cache = <&xgene_L2_3>; 77 + #clock-cells = <1>; 78 + clocks = <&pmd3clk 0>; 89 79 }; 90 80 cpu@301 { 91 81 device_type = "cpu"; ··· 96 82 enable-method = "spin-table"; 97 83 cpu-release-addr = <0x1 0x0000fff8>; 98 84 next-level-cache = <&xgene_L2_3>; 85 + #clock-cells = <1>; 86 + clocks = <&pmd3clk 0>; 99 87 }; 100 88 xgene_L2_0: l2-cache-0 { 101 89 compatible = "cache"; ··· 237 221 #clock-cells = <1>; 238 222 clock-frequency = <100000000>; 239 223 clock-output-names = "refclk"; 224 + }; 225 + 226 + pmdpll: pmdpll@170000f0 { 227 + compatible = "apm,xgene-pcppll-v2-clock"; 228 + #clock-cells = <1>; 229 + clocks = <&refclk 0>; 230 + reg = <0x0 0x170000f0 0x0 0x10>; 231 + clock-output-names = "pmdpll"; 232 + }; 233 + 234 + pmd0clk: pmd0clk@7e200200 { 235 + compatible = "apm,xgene-pmd-clock"; 236 + #clock-cells = <1>; 237 + clocks = <&pmdpll 0>; 238 + reg = <0x0 0x7e200200 0x0 0x10>; 239 + clock-output-names = "pmd0clk"; 240 + }; 241 + 242 + pmd1clk: pmd1clk@7e200210 { 243 + compatible = "apm,xgene-pmd-clock"; 244 + #clock-cells = <1>; 245 + clocks = <&pmdpll 0>; 246 + reg = <0x0 0x7e200210 0x0 0x10>; 247 + clock-output-names = "pmd1clk"; 248 + }; 249 + 250 + pmd2clk: pmd2clk@7e200220 { 251 + compatible = "apm,xgene-pmd-clock"; 252 + #clock-cells = <1>; 253 + clocks = <&pmdpll 0>; 254 + reg = <0x0 0x7e200220 0x0 0x10>; 255 + clock-output-names = "pmd2clk"; 256 + }; 257 + 258 + pmd3clk: pmd3clk@7e200230 { 259 + compatible = "apm,xgene-pmd-clock"; 260 + #clock-cells = <1>; 261 + clocks = <&pmdpll 0>; 262 + reg = <0x0 0x7e200230 0x0 0x10>; 263 + clock-output-names = "pmd3clk"; 240 264 }; 241 265 242 266 socpll: socpll@17000120 { ··· 509 453 }; 510 454 }; 511 455 456 + pmu: pmu@78810000 { 457 + compatible = "apm,xgene-pmu-v2"; 458 + #address-cells = <2>; 459 + #size-cells = <2>; 460 + ranges; 461 + regmap-csw = <&csw>; 462 + regmap-mcba = <&mcba>; 463 + regmap-mcbb = <&mcbb>; 464 + reg = <0x0 0x78810000 0x0 0x1000>; 465 + interrupts = <0x0 0x22 0x4>; 466 + 467 + pmul3c@7e610000 { 468 + compatible = "apm,xgene-pmu-l3c"; 469 + reg = <0x0 0x7e610000 0x0 0x1000>; 470 + }; 471 + 472 + pmuiob@7e940000 { 473 + compatible = "apm,xgene-pmu-iob"; 474 + reg = <0x0 0x7e940000 0x0 0x1000>; 475 + }; 476 + 477 + pmucmcb@7e710000 { 478 + compatible = "apm,xgene-pmu-mcb"; 479 + reg = <0x0 0x7e710000 0x0 0x1000>; 480 + enable-bit-index = <0>; 481 + }; 482 + 483 + pmucmcb@7e730000 { 484 + compatible = "apm,xgene-pmu-mcb"; 485 + reg = <0x0 0x7e730000 0x0 0x1000>; 486 + enable-bit-index = <1>; 487 + }; 488 + 489 + pmucmc@7e810000 { 490 + compatible = "apm,xgene-pmu-mc"; 491 + reg = <0x0 0x7e810000 0x0 0x1000>; 492 + enable-bit-index = <0>; 493 + }; 494 + 495 + pmucmc@7e850000 { 496 + compatible = "apm,xgene-pmu-mc"; 497 + reg = <0x0 0x7e850000 0x0 0x1000>; 498 + enable-bit-index = <1>; 499 + }; 500 + 501 + pmucmc@7e890000 { 502 + compatible = "apm,xgene-pmu-mc"; 503 + reg = <0x0 0x7e890000 0x0 0x1000>; 504 + enable-bit-index = <2>; 505 + }; 506 + 507 + pmucmc@7e8d0000 { 508 + compatible = "apm,xgene-pmu-mc"; 509 + reg = <0x0 0x7e8d0000 0x0 0x1000>; 510 + enable-bit-index = <3>; 511 + }; 512 + }; 513 + 512 514 mailbox: mailbox@10540000 { 513 515 compatible = "apm,xgene-slimpro-mbox"; 514 516 reg = <0x0 0x10540000 0x0 0x8000>; ··· 584 470 i2cslimpro { 585 471 compatible = "apm,xgene-slimpro-i2c"; 586 472 mboxes = <&mailbox 0>; 473 + }; 474 + 475 + hwmonslimpro { 476 + compatible = "apm,xgene-slimpro-hwmon"; 477 + mboxes = <&mailbox 7>; 587 478 }; 588 479 589 480 serial0: serial@10600000 { ··· 627 508 dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 628 509 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 629 510 interrupt-map-mask = <0x0 0x0 0x0 0x7>; 630 - interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 0x0 0x10 0x1 631 - 0x0 0x0 0x0 0x2 &gic 0x0 0x0 0x0 0x11 0x1 632 - 0x0 0x0 0x0 0x3 &gic 0x0 0x0 0x0 0x12 0x1 633 - 0x0 0x0 0x0 0x4 &gic 0x0 0x0 0x0 0x13 0x1>; 511 + interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 0x0 0x10 0x4 512 + 0x0 0x0 0x0 0x2 &gic 0x0 0x0 0x0 0x11 0x4 513 + 0x0 0x0 0x0 0x3 &gic 0x0 0x0 0x0 0x12 0x4 514 + 0x0 0x0 0x0 0x4 &gic 0x0 0x0 0x0 0x13 0x4>; 634 515 dma-coherent; 635 516 clocks = <&pcie0clk 0>; 636 517 msi-parent = <&v2m0>; ··· 652 533 dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 653 534 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 654 535 interrupt-map-mask = <0x0 0x0 0x0 0x7>; 655 - interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 0x0 0x16 0x1 656 - 0x0 0x0 0x0 0x2 &gic 0x0 0x0 0x0 0x17 0x1 657 - 0x0 0x0 0x0 0x3 &gic 0x0 0x0 0x0 0x18 0x1 658 - 0x0 0x0 0x0 0x4 &gic 0x0 0x0 0x0 0x19 0x1>; 536 + interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 0x0 0x16 0x4 537 + 0x0 0x0 0x0 0x2 &gic 0x0 0x0 0x0 0x17 0x4 538 + 0x0 0x0 0x0 0x3 &gic 0x0 0x0 0x0 0x18 0x4 539 + 0x0 0x0 0x0 0x4 &gic 0x0 0x0 0x0 0x19 0x4>; 659 540 dma-coherent; 660 541 clocks = <&pcie1clk 0>; 661 542 msi-parent = <&v2m0>;
+83 -20
arch/arm64/boot/dts/apm/apm-storm.dtsi
··· 553 553 }; 554 554 }; 555 555 556 + pmu: pmu@78810000 { 557 + compatible = "apm,xgene-pmu-v2"; 558 + #address-cells = <2>; 559 + #size-cells = <2>; 560 + ranges; 561 + regmap-csw = <&csw>; 562 + regmap-mcba = <&mcba>; 563 + regmap-mcbb = <&mcbb>; 564 + reg = <0x0 0x78810000 0x0 0x1000>; 565 + interrupts = <0x0 0x22 0x4>; 566 + 567 + pmul3c@7e610000 { 568 + compatible = "apm,xgene-pmu-l3c"; 569 + reg = <0x0 0x7e610000 0x0 0x1000>; 570 + }; 571 + 572 + pmuiob@7e940000 { 573 + compatible = "apm,xgene-pmu-iob"; 574 + reg = <0x0 0x7e940000 0x0 0x1000>; 575 + }; 576 + 577 + pmucmcb@7e710000 { 578 + compatible = "apm,xgene-pmu-mcb"; 579 + reg = <0x0 0x7e710000 0x0 0x1000>; 580 + enable-bit-index = <0>; 581 + }; 582 + 583 + pmucmcb@7e730000 { 584 + compatible = "apm,xgene-pmu-mcb"; 585 + reg = <0x0 0x7e730000 0x0 0x1000>; 586 + enable-bit-index = <1>; 587 + }; 588 + 589 + pmucmc@7e810000 { 590 + compatible = "apm,xgene-pmu-mc"; 591 + reg = <0x0 0x7e810000 0x0 0x1000>; 592 + enable-bit-index = <0>; 593 + }; 594 + 595 + pmucmc@7e850000 { 596 + compatible = "apm,xgene-pmu-mc"; 597 + reg = <0x0 0x7e850000 0x0 0x1000>; 598 + enable-bit-index = <1>; 599 + }; 600 + 601 + pmucmc@7e890000 { 602 + compatible = "apm,xgene-pmu-mc"; 603 + reg = <0x0 0x7e890000 0x0 0x1000>; 604 + enable-bit-index = <2>; 605 + }; 606 + 607 + pmucmc@7e8d0000 { 608 + compatible = "apm,xgene-pmu-mc"; 609 + reg = <0x0 0x7e8d0000 0x0 0x1000>; 610 + enable-bit-index = <3>; 611 + }; 612 + }; 613 + 556 614 pcie0: pcie@1f2b0000 { 557 615 status = "disabled"; 558 616 device_type = "pci"; ··· 627 569 dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 628 570 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 629 571 interrupt-map-mask = <0x0 0x0 0x0 0x7>; 630 - interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc2 0x1 631 - 0x0 0x0 0x0 0x2 &gic 0x0 0xc3 0x1 632 - 0x0 0x0 0x0 0x3 &gic 0x0 0xc4 0x1 633 - 0x0 0x0 0x0 0x4 &gic 0x0 0xc5 0x1>; 572 + interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc2 0x4 573 + 0x0 0x0 0x0 0x2 &gic 0x0 0xc3 0x4 574 + 0x0 0x0 0x0 0x3 &gic 0x0 0xc4 0x4 575 + 0x0 0x0 0x0 0x4 &gic 0x0 0xc5 0x4>; 634 576 dma-coherent; 635 577 clocks = <&pcie0clk 0>; 636 578 msi-parent = <&msi>; ··· 652 594 dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 653 595 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 654 596 interrupt-map-mask = <0x0 0x0 0x0 0x7>; 655 - interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc8 0x1 656 - 0x0 0x0 0x0 0x2 &gic 0x0 0xc9 0x1 657 - 0x0 0x0 0x0 0x3 &gic 0x0 0xca 0x1 658 - 0x0 0x0 0x0 0x4 &gic 0x0 0xcb 0x1>; 597 + interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc8 0x4 598 + 0x0 0x0 0x0 0x2 &gic 0x0 0xc9 0x4 599 + 0x0 0x0 0x0 0x3 &gic 0x0 0xca 0x4 600 + 0x0 0x0 0x0 0x4 &gic 0x0 0xcb 0x4>; 659 601 dma-coherent; 660 602 clocks = <&pcie1clk 0>; 661 603 msi-parent = <&msi>; ··· 677 619 dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 678 620 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 679 621 interrupt-map-mask = <0x0 0x0 0x0 0x7>; 680 - interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xce 0x1 681 - 0x0 0x0 0x0 0x2 &gic 0x0 0xcf 0x1 682 - 0x0 0x0 0x0 0x3 &gic 0x0 0xd0 0x1 683 - 0x0 0x0 0x0 0x4 &gic 0x0 0xd1 0x1>; 622 + interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xce 0x4 623 + 0x0 0x0 0x0 0x2 &gic 0x0 0xcf 0x4 624 + 0x0 0x0 0x0 0x3 &gic 0x0 0xd0 0x4 625 + 0x0 0x0 0x0 0x4 &gic 0x0 0xd1 0x4>; 684 626 dma-coherent; 685 627 clocks = <&pcie2clk 0>; 686 628 msi-parent = <&msi>; ··· 702 644 dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 703 645 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 704 646 interrupt-map-mask = <0x0 0x0 0x0 0x7>; 705 - interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xd4 0x1 706 - 0x0 0x0 0x0 0x2 &gic 0x0 0xd5 0x1 707 - 0x0 0x0 0x0 0x3 &gic 0x0 0xd6 0x1 708 - 0x0 0x0 0x0 0x4 &gic 0x0 0xd7 0x1>; 647 + interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xd4 0x4 648 + 0x0 0x0 0x0 0x2 &gic 0x0 0xd5 0x4 649 + 0x0 0x0 0x0 0x3 &gic 0x0 0xd6 0x4 650 + 0x0 0x0 0x0 0x4 &gic 0x0 0xd7 0x4>; 709 651 dma-coherent; 710 652 clocks = <&pcie3clk 0>; 711 653 msi-parent = <&msi>; ··· 727 669 dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 728 670 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 729 671 interrupt-map-mask = <0x0 0x0 0x0 0x7>; 730 - interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xda 0x1 731 - 0x0 0x0 0x0 0x2 &gic 0x0 0xdb 0x1 732 - 0x0 0x0 0x0 0x3 &gic 0x0 0xdc 0x1 733 - 0x0 0x0 0x0 0x4 &gic 0x0 0xdd 0x1>; 672 + interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xda 0x4 673 + 0x0 0x0 0x0 0x2 &gic 0x0 0xdb 0x4 674 + 0x0 0x0 0x0 0x3 &gic 0x0 0xdc 0x4 675 + 0x0 0x0 0x0 0x4 &gic 0x0 0xdd 0x4>; 734 676 dma-coherent; 735 677 clocks = <&pcie4clk 0>; 736 678 msi-parent = <&msi>; ··· 753 695 i2cslimpro { 754 696 compatible = "apm,xgene-slimpro-i2c"; 755 697 mboxes = <&mailbox 0>; 698 + }; 699 + 700 + hwmonslimpro { 701 + compatible = "apm,xgene-slimpro-hwmon"; 702 + mboxes = <&mailbox 7>; 756 703 }; 757 704 758 705 serial0: serial@1c020000 {
+8
arch/arm64/boot/dts/broadcom/ns2.dtsi
··· 299 299 }; 300 300 }; 301 301 302 + pwm: pwm@66010000 { 303 + compatible = "brcm,iproc-pwm"; 304 + reg = <0x66010000 0x28>; 305 + clocks = <&osc>; 306 + #pwm-cells = <3>; 307 + status = "disabled"; 308 + }; 309 + 302 310 mdio_mux_iproc: mdio-mux@6602023c { 303 311 compatible = "brcm,mdio-mux-iproc"; 304 312 reg = <0x6602023c 0x14>;
+9 -4
arch/arm64/boot/dts/exynos/exynos7.dtsi
··· 10 10 */ 11 11 12 12 #include <dt-bindings/clock/exynos7-clk.h> 13 + #include <dt-bindings/interrupt-controller/arm-gic.h> 13 14 14 15 / { 15 16 compatible = "samsung,exynos7"; ··· 474 473 475 474 timer { 476 475 compatible = "arm,armv8-timer"; 477 - interrupts = <1 13 0xff08>, 478 - <1 14 0xff08>, 479 - <1 11 0xff08>, 480 - <1 10 0xff08>; 476 + interrupts = <GIC_PPI 13 477 + (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 478 + <GIC_PPI 14 479 + (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 480 + <GIC_PPI 11 481 + (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 482 + <GIC_PPI 10 483 + (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; 481 484 }; 482 485 483 486 pmu_system_controller: system-controller@105c0000 {
+8 -6
arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts
··· 56 56 gpio1 = &gpio2; 57 57 gpio2 = &gpio3; 58 58 gpio3 = &gpio4; 59 - serial0 = &lpuart0; 60 - serial1 = &lpuart1; 61 - serial2 = &lpuart2; 62 - serial3 = &lpuart3; 63 - serial4 = &lpuart4; 64 - serial5 = &lpuart5; 59 + serial0 = &duart0; 60 + serial1 = &duart1; 61 + serial2 = &duart2; 62 + serial3 = &duart3; 63 + }; 64 + 65 + chosen { 66 + stdout-path = "serial0:115200n8"; 65 67 }; 66 68 }; 67 69
+8
arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts
··· 52 52 53 53 aliases { 54 54 crypto = &crypto; 55 + serial0 = &duart0; 56 + serial1 = &duart1; 57 + serial2 = &duart2; 58 + serial3 = &duart3; 59 + }; 60 + 61 + chosen { 62 + stdout-path = "serial0:115200n8"; 55 63 }; 56 64 }; 57 65
+7
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
··· 247 247 bus-width = <4>; 248 248 }; 249 249 250 + ddr: memory-controller@1080000 { 251 + compatible = "fsl,qoriq-memory-controller"; 252 + reg = <0x0 0x1080000 0x0 0x1000>; 253 + interrupts = <0 144 0x4>; 254 + big-endian; 255 + }; 256 + 250 257 dspi0: dspi@2100000 { 251 258 compatible = "fsl,ls1043a-dspi", "fsl,ls1021a-v1.0-dspi"; 252 259 #address-cells = <1>;
+3
arch/arm64/boot/dts/freescale/fsl-ls2080a-qds.dts
··· 57 57 serial1 = &serial1; 58 58 }; 59 59 60 + chosen { 61 + stdout-path = "serial0:115200n8"; 62 + }; 60 63 }; 61 64 62 65 &esdhc {
+4
arch/arm64/boot/dts/freescale/fsl-ls2080a-rdb.dts
··· 56 56 serial0 = &serial0; 57 57 serial1 = &serial1; 58 58 }; 59 + 60 + chosen { 61 + stdout-path = "serial1:115200n8"; 62 + }; 59 63 }; 60 64 61 65 &esdhc {
+18
arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi
··· 588 588 #address-cells = <3>; 589 589 #size-cells = <2>; 590 590 device_type = "pci"; 591 + dma-coherent; 591 592 num-lanes = <4>; 592 593 bus-range = <0x0 0xff>; 593 594 ranges = <0x81000000 0x0 0x00000000 0x10 0x00010000 0x0 0x00010000 /* downstream I/O */ ··· 613 612 #address-cells = <3>; 614 613 #size-cells = <2>; 615 614 device_type = "pci"; 615 + dma-coherent; 616 616 num-lanes = <4>; 617 617 bus-range = <0x0 0xff>; 618 618 ranges = <0x81000000 0x0 0x00000000 0x12 0x00010000 0x0 0x00010000 /* downstream I/O */ ··· 638 636 #address-cells = <3>; 639 637 #size-cells = <2>; 640 638 device_type = "pci"; 639 + dma-coherent; 641 640 num-lanes = <8>; 642 641 bus-range = <0x0 0xff>; 643 642 ranges = <0x81000000 0x0 0x00000000 0x14 0x00010000 0x0 0x00010000 /* downstream I/O */ ··· 663 660 #address-cells = <3>; 664 661 #size-cells = <2>; 665 662 device_type = "pci"; 663 + dma-coherent; 666 664 num-lanes = <4>; 667 665 bus-range = <0x0 0xff>; 668 666 ranges = <0x81000000 0x0 0x00000000 0x16 0x00010000 0x0 0x00010000 /* downstream I/O */ ··· 718 714 reg = <0x0 0x04000000 0x0 0x01000000>; 719 715 interrupts = <0 12 4>; 720 716 }; 717 + }; 718 + 719 + ddr1: memory-controller@1080000 { 720 + compatible = "fsl,qoriq-memory-controller"; 721 + reg = <0x0 0x1080000 0x0 0x1000>; 722 + interrupts = <0 17 0x4>; 723 + little-endian; 724 + }; 725 + 726 + ddr2: memory-controller@1090000 { 727 + compatible = "fsl,qoriq-memory-controller"; 728 + reg = <0x0 0x1090000 0x0 0x1000>; 729 + interrupts = <0 18 0x4>; 730 + little-endian; 721 731 }; 722 732 };
+84 -2
arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
··· 29 29 * Reserve below regions from memory node: 30 30 * 31 31 * 0x05e0,0000 - 0x05ef,ffff: MCU firmware runtime using 32 + * 0x05f0,1000 - 0x05f0,1fff: Reboot reason 32 33 * 0x06df,f000 - 0x06df,ffff: Mailbox message data 33 34 * 0x0740,f000 - 0x0740,ffff: MCU firmware section 35 + * 0x21f0,0000 - 0x21ff,ffff: pstore/ramoops buffer 34 36 * 0x3e00,0000 - 0x3fff,ffff: OP-TEE 35 37 */ 36 38 memory@0 { 37 39 device_type = "memory"; 38 40 reg = <0x00000000 0x00000000 0x00000000 0x05e00000>, 39 - <0x00000000 0x05f00000 0x00000000 0x00eff000>, 41 + <0x00000000 0x05f00000 0x00000000 0x00001000>, 42 + <0x00000000 0x05f02000 0x00000000 0x00efd000>, 40 43 <0x00000000 0x06e00000 0x00000000 0x0060f000>, 41 - <0x00000000 0x07410000 0x00000000 0x36bf0000>; 44 + <0x00000000 0x07410000 0x00000000 0x1aaf0000>, 45 + <0x00000000 0x22000000 0x00000000 0x1c000000>; 46 + }; 47 + 48 + reserved-memory { 49 + #address-cells = <2>; 50 + #size-cells = <2>; 51 + ranges; 52 + 53 + ramoops@0x21f00000 { 54 + compatible = "ramoops"; 55 + reg = <0x0 0x21f00000 0x0 0x00100000>; 56 + record-size = <0x00020000>; 57 + console-size = <0x00020000>; 58 + ftrace-size = <0x00020000>; 59 + }; 60 + 61 + /* global autoconfigured region for contiguous allocations */ 62 + linux,cma { 63 + compatible = "shared-dma-pool"; 64 + reusable; 65 + size = <0x00000000 0x08000000>; 66 + linux,cma-default; 67 + }; 68 + }; 69 + 70 + reboot-mode-syscon@5f01000 { 71 + compatible = "syscon", "simple-mfd"; 72 + reg = <0x0 0x05f01000 0x0 0x00001000>; 73 + 74 + reboot-mode { 75 + compatible = "syscon-reboot-mode"; 76 + offset = <0x0>; 77 + 78 + mode-normal = <0x77665501>; 79 + mode-bootloader = <0x77665500>; 80 + mode-recovery = <0x77665502>; 81 + }; 42 82 }; 43 83 44 84 soc { ··· 95 55 }; 96 56 97 57 uart1: uart@f7111000 { 58 + assigned-clocks = <&sys_ctrl HI6220_UART1_SRC>; 59 + assigned-clock-rates = <150000000>; 98 60 status = "ok"; 99 61 }; 100 62 ··· 413 371 }; 414 372 &uart3 { 415 373 label = "LS-UART1"; 374 + }; 375 + 376 + &ade { 377 + status = "ok"; 378 + }; 379 + 380 + &dsi { 381 + status = "ok"; 382 + 383 + ports { 384 + /* 1 for output port */ 385 + port@1 { 386 + reg = <1>; 387 + 388 + dsi_out0: endpoint@0 { 389 + remote-endpoint = <&adv7533_in>; 390 + }; 391 + }; 392 + }; 393 + }; 394 + 395 + &i2c2 { 396 + #address-cells = <1>; 397 + #size-cells = <0>; 398 + status = "ok"; 399 + 400 + adv7533: adv7533@39 { 401 + compatible = "adi,adv7533"; 402 + reg = <0x39>; 403 + interrupt-parent = <&gpio1>; 404 + interrupts = <1 2>; 405 + pd-gpio = <&gpio0 4 0>; 406 + adi,dsi-lanes = <4>; 407 + 408 + port { 409 + adv7533_in: endpoint { 410 + remote-endpoint = <&dsi_out0>; 411 + }; 412 + }; 413 + }; 416 414 };
+61
arch/arm64/boot/dts/hisilicon/hi6220.dtsi
··· 262 262 #clock-cells = <1>; 263 263 }; 264 264 265 + medianoc_ade: medianoc_ade@f4520000 { 266 + compatible = "syscon"; 267 + reg = <0x0 0xf4520000 0x0 0x4000>; 268 + }; 269 + 265 270 stub_clock: stub_clock { 266 271 compatible = "hisilicon,hi6220-stub-clk"; 267 272 hisilicon,hi6220-clk-sram = <&sram>; ··· 771 766 interrupts = <0x0 0x48 0x4>; 772 767 clocks = <&sys_ctrl 2>, <&sys_ctrl 1>; 773 768 clock-names = "ciu", "biu"; 769 + resets = <&sys_ctrl PERIPH_RSTDIS0_MMC0>; 774 770 bus-width = <0x8>; 775 771 vmmc-supply = <&ldo19>; 776 772 pinctrl-names = "default"; ··· 785 779 card-detect-delay = <200>; 786 780 hisilicon,peripheral-syscon = <&ao_ctrl>; 787 781 cap-sd-highspeed; 782 + sd-uhs-sdr12; 783 + sd-uhs-sdr25; 784 + sd-uhs-sdr50; 788 785 reg = <0x0 0xf723e000 0x0 0x1000>; 789 786 interrupts = <0x0 0x49 0x4>; 790 787 #address-cells = <0x1>; 791 788 #size-cells = <0x0>; 792 789 clocks = <&sys_ctrl 4>, <&sys_ctrl 3>; 793 790 clock-names = "ciu", "biu"; 791 + resets = <&sys_ctrl PERIPH_RSTDIS0_MMC1>; 794 792 vqmmc-supply = <&ldo7>; 795 793 vmmc-supply = <&ldo10>; 796 794 bus-width = <0x4>; ··· 812 802 interrupts = <0x0 0x4a 0x4>; 813 803 clocks = <&sys_ctrl HI6220_MMC2_CIUCLK>, <&sys_ctrl HI6220_MMC2_CLK>; 814 804 clock-names = "ciu", "biu"; 805 + resets = <&sys_ctrl PERIPH_RSTDIS0_MMC2>; 815 806 bus-width = <0x4>; 816 807 broken-cd; 817 808 pinctrl-names = "default", "idle"; ··· 857 846 map0 { 858 847 trip = <&target>; 859 848 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 849 + }; 850 + }; 851 + }; 852 + }; 853 + 854 + ade: ade@f4100000 { 855 + compatible = "hisilicon,hi6220-ade"; 856 + reg = <0x0 0xf4100000 0x0 0x7800>; 857 + reg-names = "ade_base"; 858 + hisilicon,noc-syscon = <&medianoc_ade>; 859 + resets = <&media_ctrl MEDIA_ADE>; 860 + interrupts = <0 115 4>; /* ldi interrupt */ 861 + 862 + clocks = <&media_ctrl HI6220_ADE_CORE>, 863 + <&media_ctrl HI6220_CODEC_JPEG>, 864 + <&media_ctrl HI6220_ADE_PIX_SRC>; 865 + /*clock name*/ 866 + clock-names = "clk_ade_core", 867 + "clk_codec_jpeg", 868 + "clk_ade_pix"; 869 + 870 + assigned-clocks = <&media_ctrl HI6220_ADE_CORE>, 871 + <&media_ctrl HI6220_CODEC_JPEG>; 872 + assigned-clock-rates = <360000000>, <288000000>; 873 + dma-coherent; 874 + status = "disabled"; 875 + 876 + port { 877 + ade_out: endpoint { 878 + remote-endpoint = <&dsi_in>; 879 + }; 880 + }; 881 + }; 882 + 883 + dsi: dsi@f4107800 { 884 + compatible = "hisilicon,hi6220-dsi"; 885 + reg = <0x0 0xf4107800 0x0 0x100>; 886 + clocks = <&media_ctrl HI6220_DSI_PCLK>; 887 + clock-names = "pclk"; 888 + status = "disabled"; 889 + 890 + ports { 891 + #address-cells = <1>; 892 + #size-cells = <0>; 893 + 894 + /* 0 for input port */ 895 + port@0 { 896 + reg = <0>; 897 + dsi_in: endpoint { 898 + remote-endpoint = <&ade_out>; 860 899 }; 861 900 }; 862 901 };
-5
arch/arm64/boot/dts/hisilicon/hip05.dtsi
··· 300 300 clock-frequency = <200000000>; 301 301 }; 302 302 303 - peri_c_subctrl: syscon@80000000 { 304 - compatible = "hisilicon,hip05-perisubc", "syscon"; 305 - reg = < 0x0 0x80000000 0x0 0x10000>; 306 - }; 307 - 308 303 uart0: uart@80300000 { 309 304 compatible = "snps,dw-apb-uart"; 310 305 reg = <0x0 0x80300000 0x0 0x10000>;
-180
arch/arm64/boot/dts/hisilicon/hip05_hns.dtsi
··· 1 - soc0: soc@000000000 { 2 - #address-cells = <2>; 3 - #size-cells = <2>; 4 - device_type = "soc"; 5 - compatible = "simple-bus"; 6 - ranges = <0x0 0x0 0x0 0x0 0x1 0x0>; 7 - chip-id = <0>; 8 - 9 - soc0_mdio0: mdio@803c0000 { 10 - #address-cells = <1>; 11 - #size-cells = <0>; 12 - compatible = "hisilicon,hns-mdio"; 13 - reg = <0x0 0x803c0000 0x0 0x10000>; 14 - subctrl-vbase = <&peri_c_subctrl>; 15 - 16 - soc0_phy0: ethernet-phy@0 { 17 - reg = <0x0>; 18 - compatible = "ethernet-phy-ieee802.3-c22"; 19 - }; 20 - soc0_phy1: ethernet-phy@1 { 21 - reg = <0x1>; 22 - compatible = "ethernet-phy-ieee802.3-c22"; 23 - }; 24 - }; 25 - 26 - dsaf0: dsa@c7000000 { 27 - #address-cells = <1>; 28 - #size-cells = <0>; 29 - compatible = "hisilicon,hns-dsaf-v1"; 30 - mode = "6port-16rss"; 31 - interrupt-parent = <&mbigen_dsa>; 32 - 33 - reg = <0x0 0xc5000000 0x0 0x890000 34 - 0x0 0xc7000000 0x0 0x60000 35 - >; 36 - 37 - reg-names = "ppe-base","dsaf-base"; 38 - subctrl-syscon = <&dsaf_subctrl>; 39 - reset-field-offset = <0>; 40 - interrupts = < 41 - /* [14] ge fifo err 8 / xge 6**/ 42 - 149 0x4 150 0x4 151 0x4 152 0x4 43 - 153 0x4 154 0x4 26 0x4 27 0x4 44 - 155 0x4 156 0x4 157 0x4 158 0x4 159 0x4 160 0x4 45 - /* [12] rcb com 4*3**/ 46 - 0x6 0x4 0x7 0x4 0x8 0x4 0x9 0x4 47 - 16 0x4 17 0x4 18 0x4 19 0x4 48 - 22 0x4 23 0x4 24 0x4 25 0x4 49 - /* [8] ppe tnl 0-7***/ 50 - 0x0 0x4 0x1 0x4 0x2 0x4 0x3 0x4 51 - 0x4 0x4 0x5 0x4 12 0x4 13 0x4 52 - /* [21] dsaf event int 3+18**/ 53 - 128 0x4 129 0x4 130 0x4 54 - 0x83 0x4 0x84 0x4 0x85 0x4 0x86 0x4 0x87 0x4 0x88 0x4 55 - 0x89 0x4 0x8a 0x4 0x8b 0x4 0x8c 0x4 0x8d 0x4 0x8e 0x4 56 - 0x8f 0x4 0x90 0x4 0x91 0x4 0x92 0x4 0x93 0x4 0x94 0x4 57 - /* [4] debug rcb 2*2*/ 58 - 0xe 0x1 0xf 0x1 0x14 0x1 0x15 0x1 59 - /* [256] sevice rcb 2*128*/ 60 - 0x180 0x1 0x181 0x1 0x182 0x1 0x183 0x1 61 - 0x184 0x1 0x185 0x1 0x186 0x1 0x187 0x1 62 - 0x188 0x1 0x189 0x1 0x18a 0x1 0x18b 0x1 63 - 0x18c 0x1 0x18d 0x1 0x18e 0x1 0x18f 0x1 64 - 0x190 0x1 0x191 0x1 0x192 0x1 0x193 0x1 65 - 0x194 0x1 0x195 0x1 0x196 0x1 0x197 0x1 66 - 0x198 0x1 0x199 0x1 0x19a 0x1 0x19b 0x1 67 - 0x19c 0x1 0x19d 0x1 0x19e 0x1 0x19f 0x1 68 - 0x1a0 0x1 0x1a1 0x1 0x1a2 0x1 0x1a3 0x1 69 - 0x1a4 0x1 0x1a5 0x1 0x1a6 0x1 0x1a7 0x1 70 - 0x1a8 0x1 0x1a9 0x1 0x1aa 0x1 0x1ab 0x1 71 - 0x1ac 0x1 0x1ad 0x1 0x1ae 0x1 0x1af 0x1 72 - 0x1b0 0x1 0x1b1 0x1 0x1b2 0x1 0x1b3 0x1 73 - 0x1b4 0x1 0x1b5 0x1 0x1b6 0x1 0x1b7 0x1 74 - 0x1b8 0x1 0x1b9 0x1 0x1ba 0x1 0x1bb 0x1 75 - 0x1bc 0x1 0x1bd 0x1 0x1be 0x1 0x1bf 0x1 76 - 0x1c0 0x1 0x1c1 0x1 0x1c2 0x1 0x1c3 0x1 77 - 0x1c4 0x1 0x1c5 0x1 0x1c6 0x1 0x1c7 0x1 78 - 0x1c8 0x1 0x1c9 0x1 0x1ca 0x1 0x1cb 0x1 79 - 0x1cc 0x1 0x1cd 0x1 0x1ce 0x1 0x1cf 0x1 80 - 0x1d0 0x1 0x1d1 0x1 0x1d2 0x1 0x1d3 0x1 81 - 0x1d4 0x1 0x1d5 0x1 0x1d6 0x1 0x1d7 0x1 82 - 0x1d8 0x1 0x1d9 0x1 0x1da 0x1 0x1db 0x1 83 - 0x1dc 0x1 0x1dd 0x1 0x1de 0x1 0x1df 0x1 84 - 0x1e0 0x1 0x1e1 0x1 0x1e2 0x1 0x1e3 0x1 85 - 0x1e4 0x1 0x1e5 0x1 0x1e6 0x1 0x1e7 0x1 86 - 0x1e8 0x1 0x1e9 0x1 0x1ea 0x1 0x1eb 0x1 87 - 0x1ec 0x1 0x1ed 0x1 0x1ee 0x1 0x1ef 0x1 88 - 0x1f0 0x1 0x1f1 0x1 0x1f2 0x1 0x1f3 0x1 89 - 0x1f4 0x1 0x1f5 0x1 0x1f6 0x1 0x1f7 0x1 90 - 0x1f8 0x1 0x1f9 0x1 0x1fa 0x1 0x1fb 0x1 91 - 0x1fc 0x1 0x1fd 0x1 0x1fe 0x1 0x1ff 0x1 92 - 0x200 0x1 0x201 0x1 0x202 0x1 0x203 0x1 93 - 0x204 0x1 0x205 0x1 0x206 0x1 0x207 0x1 94 - 0x208 0x1 0x209 0x1 0x20a 0x1 0x20b 0x1 95 - 0x20c 0x1 0x20d 0x1 0x20e 0x1 0x20f 0x1 96 - 0x210 0x1 0x211 0x1 0x212 0x1 0x213 0x1 97 - 0x214 0x1 0x215 0x1 0x216 0x1 0x217 0x1 98 - 0x218 0x1 0x219 0x1 0x21a 0x1 0x21b 0x1 99 - 0x21c 0x1 0x21d 0x1 0x21e 0x1 0x21f 0x1 100 - 0x220 0x1 0x221 0x1 0x222 0x1 0x223 0x1 101 - 0x224 0x1 0x225 0x1 0x226 0x1 0x227 0x1 102 - 0x228 0x1 0x229 0x1 0x22a 0x1 0x22b 0x1 103 - 0x22c 0x1 0x22d 0x1 0x22e 0x1 0x22f 0x1 104 - 0x230 0x1 0x231 0x1 0x232 0x1 0x233 0x1 105 - 0x234 0x1 0x235 0x1 0x236 0x1 0x237 0x1 106 - 0x238 0x1 0x239 0x1 0x23a 0x1 0x23b 0x1 107 - 0x23c 0x1 0x23d 0x1 0x23e 0x1 0x23f 0x1 108 - 0x240 0x1 0x241 0x1 0x242 0x1 0x243 0x1 109 - 0x244 0x1 0x245 0x1 0x246 0x1 0x247 0x1 110 - 0x248 0x1 0x249 0x1 0x24a 0x1 0x24b 0x1 111 - 0x24c 0x1 0x24d 0x1 0x24e 0x1 0x24f 0x1 112 - 0x250 0x1 0x251 0x1 0x252 0x1 0x253 0x1 113 - 0x254 0x1 0x255 0x1 0x256 0x1 0x257 0x1 114 - 0x258 0x1 0x259 0x1 0x25a 0x1 0x25b 0x1 115 - 0x25c 0x1 0x25d 0x1 0x25e 0x1 0x25f 0x1 116 - 0x260 0x1 0x261 0x1 0x262 0x1 0x263 0x1 117 - 0x264 0x1 0x265 0x1 0x266 0x1 0x267 0x1 118 - 0x268 0x1 0x269 0x1 0x26a 0x1 0x26b 0x1 119 - 0x26c 0x1 0x26d 0x1 0x26e 0x1 0x26f 0x1 120 - 0x270 0x1 0x271 0x1 0x272 0x1 0x273 0x1 121 - 0x274 0x1 0x275 0x1 0x276 0x1 0x277 0x1 122 - 0x278 0x1 0x279 0x1 0x27a 0x1 0x27b 0x1 123 - 0x27c 0x1 0x27d 0x1 0x27e 0x1 0x27f 0x1>; 124 - buf-size = <4096>; 125 - desc-num = <1024>; 126 - dma-coherent; 127 - 128 - port@0 { 129 - reg = <0>; 130 - serdes-syscon = <&serdes_ctrl0>; 131 - }; 132 - port@1 { 133 - reg = <1>; 134 - serdes-syscon = <&serdes_ctrl0>; 135 - }; 136 - port@4 { 137 - reg = <4>; 138 - phy-handle = <&soc0_phy0>; 139 - serdes-syscon = <&serdes_ctrl1>; 140 - }; 141 - port@5 { 142 - reg = <5>; 143 - phy-handle = <&soc0_phy1>; 144 - serdes-syscon = <&serdes_ctrl1>; 145 - }; 146 - }; 147 - 148 - eth0: ethernet@0{ 149 - compatible = "hisilicon,hns-nic-v1"; 150 - ae-handle = <&dsaf0>; 151 - port-idx-in-ae = <0>; 152 - local-mac-address = [00 00 00 01 00 58]; 153 - status = "disabled"; 154 - dma-coherent; 155 - }; 156 - eth1: ethernet@1{ 157 - compatible = "hisilicon,hns-nic-v1"; 158 - ae-handle = <&dsaf0>; 159 - port-idx-in-ae = <1>; 160 - local-mac-address = [00 00 00 01 00 59]; 161 - status = "disabled"; 162 - dma-coherent; 163 - }; 164 - eth2: ethernet@4{ 165 - compatible = "hisilicon,hns-nic-v1"; 166 - ae-handle = <&dsaf0>; 167 - port-idx-in-ae = <4>; 168 - local-mac-address = [00 00 00 01 00 5a]; 169 - status = "disabled"; 170 - dma-coherent; 171 - }; 172 - eth3: ethernet@5{ 173 - compatible = "hisilicon,hns-nic-v1"; 174 - ae-handle = <&dsaf0>; 175 - port-idx-in-ae = <5>; 176 - local-mac-address = [00 00 00 01 00 5b]; 177 - status = "disabled"; 178 - dma-coherent; 179 - }; 180 - };
+28
arch/arm64/boot/dts/hisilicon/hip06-d03.dts
··· 25 25 chosen { }; 26 26 }; 27 27 28 + &eth0 { 29 + status = "ok"; 30 + }; 31 + 32 + &eth1 { 33 + status = "ok"; 34 + }; 35 + 36 + &eth2 { 37 + status = "ok"; 38 + }; 39 + 40 + &eth3 { 41 + status = "ok"; 42 + }; 43 + 44 + &sas0 { 45 + status = "ok"; 46 + }; 47 + 48 + &sas1 { 49 + status = "ok"; 50 + }; 51 + 52 + &sas2 { 53 + status = "ok"; 54 + }; 55 + 28 56 &usb_ohci { 29 57 status = "ok"; 30 58 };
+365
arch/arm64/boot/dts/hisilicon/hip06.dtsi
··· 277 277 #interrupt-cells = <2>; 278 278 num-pins = <2>; 279 279 }; 280 + 281 + mbigen_sas1: intc_sas1 { 282 + msi-parent = <&its_dsa 0x40000>; 283 + interrupt-controller; 284 + #interrupt-cells = <2>; 285 + num-pins = <128>; 286 + }; 287 + 288 + mbigen_sas2: intc_sas2 { 289 + msi-parent = <&its_dsa 0x40040>; 290 + interrupt-controller; 291 + #interrupt-cells = <2>; 292 + num-pins = <128>; 293 + }; 294 + }; 295 + 296 + mbigen_dsa@c0080000 { 297 + compatible = "hisilicon,mbigen-v2"; 298 + reg = <0x0 0xc0080000 0x0 0x10000>; 299 + 300 + mbigen_dsaf0: intc_dsaf0 { 301 + msi-parent = <&its_dsa 0x40800>; 302 + interrupt-controller; 303 + #interrupt-cells = <2>; 304 + num-pins = <409>; 305 + }; 306 + 307 + mbigen_sas0: intc-sas0 { 308 + msi-parent = <&its_dsa 0x40900>; 309 + interrupt-controller; 310 + #interrupt-cells = <2>; 311 + num-pins = <128>; 312 + }; 280 313 }; 281 314 282 315 soc { ··· 333 300 interrupt-parent = <&mbigen_usb>; 334 301 interrupts = <65 4>; 335 302 dma-coherent; 303 + status = "disabled"; 304 + }; 305 + 306 + peri_c_subctrl: sub_ctrl_c@60000000 { 307 + compatible = "hisilicon,peri-subctrl","syscon"; 308 + reg = <0 0x60000000 0x0 0x10000>; 309 + }; 310 + 311 + dsa_subctrl: dsa_subctrl@c0000000 { 312 + compatible = "hisilicon,dsa-subctrl", "syscon"; 313 + reg = <0x0 0xc0000000 0x0 0x10000>; 314 + }; 315 + 316 + pcie_subctl: pcie_subctl@a0000000 { 317 + compatible = "hisilicon,pcie-sas-subctrl", "syscon"; 318 + reg = <0x0 0xa0000000 0x0 0x10000>; 319 + }; 320 + 321 + serdes_ctrl: sds_ctrl@c2200000 { 322 + compatible = "syscon"; 323 + reg = <0 0xc2200000 0x0 0x80000>; 324 + }; 325 + 326 + mdio@603c0000 { 327 + compatible = "hisilicon,hns-mdio"; 328 + reg = <0x0 0x603c0000 0x0 0x1000>; 329 + subctrl-vbase = <&peri_c_subctrl 0x338 0xa38 0x531c 0x5a1c>; 330 + #address-cells = <1>; 331 + #size-cells = <0>; 332 + 333 + phy0: ethernet-phy@0 { 334 + compatible = "ethernet-phy-ieee802.3-c22"; 335 + reg = <0>; 336 + }; 337 + 338 + phy1: ethernet-phy@1 { 339 + compatible = "ethernet-phy-ieee802.3-c22"; 340 + reg = <1>; 341 + }; 342 + }; 343 + 344 + dsaf0: dsa@c7000000 { 345 + #address-cells = <1>; 346 + #size-cells = <0>; 347 + compatible = "hisilicon,hns-dsaf-v2"; 348 + mode = "6port-16rss"; 349 + reg = <0x0 0xc5000000 0x0 0x890000 350 + 0x0 0xc7000000 0x0 0x600000>; 351 + reg-names = "ppe-base", "dsaf-base"; 352 + interrupt-parent = <&mbigen_dsaf0>; 353 + subctrl-syscon = <&dsa_subctrl>; 354 + reset-field-offset = <0>; 355 + interrupts = 356 + <576 1>, <577 1>, <578 1>, <579 1>, <580 1>, 357 + <581 1>, <582 1>, <583 1>, <584 1>, <585 1>, 358 + <586 1>, <587 1>, <588 1>, <589 1>, <590 1>, 359 + <591 1>, <592 1>, <593 1>, <594 1>, <595 1>, 360 + <596 1>, <597 1>, <598 1>, <599 1>, <600 1>, 361 + <960 1>, <961 1>, <962 1>, <963 1>, <964 1>, 362 + <965 1>, <966 1>, <967 1>, <968 1>, <969 1>, 363 + <970 1>, <971 1>, <972 1>, <973 1>, <974 1>, 364 + <975 1>, <976 1>, <977 1>, <978 1>, <979 1>, 365 + <980 1>, <981 1>, <982 1>, <983 1>, <984 1>, 366 + <985 1>, <986 1>, <987 1>, <988 1>, <989 1>, 367 + <990 1>, <991 1>, <992 1>, <993 1>, <994 1>, 368 + <995 1>, <996 1>, <997 1>, <998 1>, <999 1>, 369 + <1000 1>, <1001 1>, <1002 1>, <1003 1>, <1004 1>, 370 + <1005 1>, <1006 1>, <1007 1>, <1008 1>, <1009 1>, 371 + <1010 1>, <1011 1>, <1012 1>, <1013 1>, <1014 1>, 372 + <1015 1>, <1016 1>, <1017 1>, <1018 1>, <1019 1>, 373 + <1020 1>, <1021 1>, <1022 1>, <1023 1>, <1024 1>, 374 + <1025 1>, <1026 1>, <1027 1>, <1028 1>, <1029 1>, 375 + <1030 1>, <1031 1>, <1032 1>, <1033 1>, <1034 1>, 376 + <1035 1>, <1036 1>, <1037 1>, <1038 1>, <1039 1>, 377 + <1040 1>, <1041 1>, <1042 1>, <1043 1>, <1044 1>, 378 + <1045 1>, <1046 1>, <1047 1>, <1048 1>, <1049 1>, 379 + <1050 1>, <1051 1>, <1052 1>, <1053 1>, <1054 1>, 380 + <1055 1>, <1056 1>, <1057 1>, <1058 1>, <1059 1>, 381 + <1060 1>, <1061 1>, <1062 1>, <1063 1>, <1064 1>, 382 + <1065 1>, <1066 1>, <1067 1>, <1068 1>, <1069 1>, 383 + <1070 1>, <1071 1>, <1072 1>, <1073 1>, <1074 1>, 384 + <1075 1>, <1076 1>, <1077 1>, <1078 1>, <1079 1>, 385 + <1080 1>, <1081 1>, <1082 1>, <1083 1>, <1084 1>, 386 + <1085 1>, <1086 1>, <1087 1>, <1088 1>, <1089 1>, 387 + <1090 1>, <1091 1>, <1092 1>, <1093 1>, <1094 1>, 388 + <1095 1>, <1096 1>, <1097 1>, <1098 1>, <1099 1>, 389 + <1100 1>, <1101 1>, <1102 1>, <1103 1>, <1104 1>, 390 + <1105 1>, <1106 1>, <1107 1>, <1108 1>, <1109 1>, 391 + <1110 1>, <1111 1>, <1112 1>, <1113 1>, <1114 1>, 392 + <1115 1>, <1116 1>, <1117 1>, <1118 1>, <1119 1>, 393 + <1120 1>, <1121 1>, <1122 1>, <1123 1>, <1124 1>, 394 + <1125 1>, <1126 1>, <1127 1>, <1128 1>, <1129 1>, 395 + <1130 1>, <1131 1>, <1132 1>, <1133 1>, <1134 1>, 396 + <1135 1>, <1136 1>, <1137 1>, <1138 1>, <1139 1>, 397 + <1140 1>, <1141 1>, <1142 1>, <1143 1>, <1144 1>, 398 + <1145 1>, <1146 1>, <1147 1>, <1148 1>, <1149 1>, 399 + <1150 1>, <1151 1>, <1152 1>, <1153 1>, <1154 1>, 400 + <1155 1>, <1156 1>, <1157 1>, <1158 1>, <1159 1>, 401 + <1160 1>, <1161 1>, <1162 1>, <1163 1>, <1164 1>, 402 + <1165 1>, <1166 1>, <1167 1>, <1168 1>, <1169 1>, 403 + <1170 1>, <1171 1>, <1172 1>, <1173 1>, <1174 1>, 404 + <1175 1>, <1176 1>, <1177 1>, <1178 1>, <1179 1>, 405 + <1180 1>, <1181 1>, <1182 1>, <1183 1>, <1184 1>, 406 + <1185 1>, <1186 1>, <1187 1>, <1188 1>, <1189 1>, 407 + <1190 1>, <1191 1>, <1192 1>, <1193 1>, <1194 1>, 408 + <1195 1>, <1196 1>, <1197 1>, <1198 1>, <1199 1>, 409 + <1200 1>, <1201 1>, <1202 1>, <1203 1>, <1204 1>, 410 + <1205 1>, <1206 1>, <1207 1>, <1208 1>, <1209 1>, 411 + <1210 1>, <1211 1>, <1212 1>, <1213 1>, <1214 1>, 412 + <1215 1>, <1216 1>, <1217 1>, <1218 1>, <1219 1>, 413 + <1220 1>, <1221 1>, <1222 1>, <1223 1>, <1224 1>, 414 + <1225 1>, <1226 1>, <1227 1>, <1228 1>, <1229 1>, 415 + <1230 1>, <1231 1>, <1232 1>, <1233 1>, <1234 1>, 416 + <1235 1>, <1236 1>, <1237 1>, <1238 1>, <1239 1>, 417 + <1240 1>, <1241 1>, <1242 1>, <1243 1>, <1244 1>, 418 + <1245 1>, <1246 1>, <1247 1>, <1248 1>, <1249 1>, 419 + <1250 1>, <1251 1>, <1252 1>, <1253 1>, <1254 1>, 420 + <1255 1>, <1256 1>, <1257 1>, <1258 1>, <1259 1>, 421 + <1260 1>, <1261 1>, <1262 1>, <1263 1>, <1264 1>, 422 + <1265 1>, <1266 1>, <1267 1>, <1268 1>, <1269 1>, 423 + <1270 1>, <1271 1>, <1272 1>, <1273 1>, <1274 1>, 424 + <1275 1>, <1276 1>, <1277 1>, <1278 1>, <1279 1>, 425 + <1280 1>, <1281 1>, <1282 1>, <1283 1>, <1284 1>, 426 + <1285 1>, <1286 1>, <1287 1>, <1288 1>, <1289 1>, 427 + <1290 1>, <1291 1>, <1292 1>, <1293 1>, <1294 1>, 428 + <1295 1>, <1296 1>, <1297 1>, <1298 1>, <1299 1>, 429 + <1300 1>, <1301 1>, <1302 1>, <1303 1>, <1304 1>, 430 + <1305 1>, <1306 1>, <1307 1>, <1308 1>, <1309 1>, 431 + <1310 1>, <1311 1>, <1312 1>, <1313 1>, <1314 1>, 432 + <1315 1>, <1316 1>, <1317 1>, <1318 1>, <1319 1>, 433 + <1320 1>, <1321 1>, <1322 1>, <1323 1>, <1324 1>, 434 + <1325 1>, <1326 1>, <1327 1>, <1328 1>, <1329 1>, 435 + <1330 1>, <1331 1>, <1332 1>, <1333 1>, <1334 1>, 436 + <1335 1>, <1336 1>, <1337 1>, <1338 1>, <1339 1>, 437 + <1340 1>, <1341 1>, <1342 1>, <1343 1>; 438 + 439 + desc-num = <0x400>; 440 + buf-size = <0x1000>; 441 + dma-coherent; 442 + 443 + port@0 { 444 + reg = <0>; 445 + serdes-syscon = <&serdes_ctrl>; 446 + port-rst-offset = <0>; 447 + port-mode-offset = <0>; 448 + media-type = "fiber"; 449 + }; 450 + 451 + port@1 { 452 + reg = <1>; 453 + serdes-syscon= <&serdes_ctrl>; 454 + port-rst-offset = <1>; 455 + port-mode-offset = <1>; 456 + media-type = "fiber"; 457 + }; 458 + 459 + port@4 { 460 + reg = <4>; 461 + phy-handle = <&phy0>; 462 + serdes-syscon= <&serdes_ctrl>; 463 + port-rst-offset = <4>; 464 + port-mode-offset = <2>; 465 + media-type = "copper"; 466 + }; 467 + 468 + port@5 { 469 + reg = <5>; 470 + phy-handle = <&phy1>; 471 + serdes-syscon= <&serdes_ctrl>; 472 + port-rst-offset = <5>; 473 + port-mode-offset = <3>; 474 + media-type = "copper"; 475 + }; 476 + }; 477 + 478 + eth0: ethernet@4{ 479 + compatible = "hisilicon,hns-nic-v2"; 480 + ae-handle = <&dsaf0>; 481 + port-idx-in-ae = <4>; 482 + local-mac-address = [00 00 00 00 00 00]; 483 + status = "disabled"; 484 + dma-coherent; 485 + }; 486 + 487 + eth1: ethernet@5{ 488 + compatible = "hisilicon,hns-nic-v2"; 489 + ae-handle = <&dsaf0>; 490 + port-idx-in-ae = <5>; 491 + local-mac-address = [00 00 00 00 00 00]; 492 + status = "disabled"; 493 + dma-coherent; 494 + }; 495 + 496 + eth2: ethernet@0{ 497 + compatible = "hisilicon,hns-nic-v2"; 498 + ae-handle = <&dsaf0>; 499 + port-idx-in-ae = <0>; 500 + local-mac-address = [00 00 00 00 00 00]; 501 + status = "disabled"; 502 + dma-coherent; 503 + }; 504 + 505 + eth3: ethernet@1{ 506 + compatible = "hisilicon,hns-nic-v2"; 507 + ae-handle = <&dsaf0>; 508 + port-idx-in-ae = <1>; 509 + local-mac-address = [00 00 00 00 00 00]; 510 + status = "disabled"; 511 + dma-coherent; 512 + }; 513 + 514 + sas0: sas@c3000000 { 515 + compatible = "hisilicon,hip06-sas-v2"; 516 + reg = <0 0xc3000000 0 0x10000>; 517 + sas-addr = [50 01 88 20 16 00 00 00]; 518 + hisilicon,sas-syscon = <&dsa_subctrl>; 519 + ctrl-reset-reg = <0xa60>; 520 + ctrl-reset-sts-reg = <0x5a30>; 521 + ctrl-clock-ena-reg = <0x338>; 522 + queue-count = <16>; 523 + phy-count = <8>; 524 + dma-coherent; 525 + interrupt-parent = <&mbigen_sas0>; 526 + interrupts = <64 4>,<65 4>,<66 4>,<67 4>,<68 4>, 527 + <69 4>,<70 4>,<71 4>,<72 4>,<73 4>, 528 + <75 4>,<76 4>,<77 4>,<78 4>,<79 4>, 529 + <80 4>,<81 4>,<82 4>,<83 4>,<84 4>, 530 + <85 4>,<86 4>,<87 4>,<88 4>,<89 4>, 531 + <90 4>,<91 4>,<92 4>,<93 4>,<94 4>, 532 + <95 4>,<96 4>,<97 4>,<98 4>,<99 4>, 533 + <100 4>,<101 4>,<102 4>,<103 4>,<104 4>, 534 + <105 4>,<106 4>,<107 4>,<108 4>,<109 4>, 535 + <110 4>,<111 4>,<112 4>,<113 4>,<114 4>, 536 + <115 4>,<116 4>,<117 4>,<118 4>,<119 4>, 537 + <120 4>,<121 4>,<122 4>,<123 4>,<124 4>, 538 + <125 4>,<126 4>,<127 4>,<128 4>,<129 4>, 539 + <130 4>,<131 4>,<132 4>,<133 4>,<134 4>, 540 + <135 4>,<136 4>,<137 4>,<138 4>,<139 4>, 541 + <140 4>,<141 4>,<142 4>,<143 4>,<144 4>, 542 + <145 4>,<146 4>,<147 4>,<148 4>,<149 4>, 543 + <150 4>,<151 4>,<152 4>,<153 4>,<154 4>, 544 + <155 4>,<156 4>,<157 4>,<158 4>,<159 4>, 545 + <160 4>,<601 1>,<602 1>,<603 1>,<604 1>, 546 + <605 1>,<606 1>,<607 1>,<608 1>,<609 1>, 547 + <610 1>,<611 1>,<612 1>,<613 1>,<614 1>, 548 + <615 1>,<616 1>,<617 1>,<618 1>,<619 1>, 549 + <620 1>,<621 1>,<622 1>,<623 1>,<624 1>, 550 + <625 1>,<626 1>,<627 1>,<628 1>,<629 1>, 551 + <630 1>,<631 1>,<632 1>; 552 + status = "disabled"; 553 + }; 554 + 555 + sas1: sas@a2000000 { 556 + compatible = "hisilicon,hip06-sas-v2"; 557 + reg = <0 0xa2000000 0 0x10000>; 558 + sas-addr = [50 01 88 20 16 00 00 00]; 559 + hisilicon,sas-syscon = <&pcie_subctl>; 560 + am-max-trans; 561 + ctrl-reset-reg = <0xa18>; 562 + ctrl-reset-sts-reg = <0x5a0c>; 563 + ctrl-clock-ena-reg = <0x318>; 564 + queue-count = <16>; 565 + phy-count = <8>; 566 + dma-coherent; 567 + interrupt-parent = <&mbigen_sas1>; 568 + interrupts = <64 4>,<65 4>,<66 4>,<67 4>,<68 4>, 569 + <69 4>,<70 4>,<71 4>,<72 4>,<73 4>, 570 + <74 4>,<75 4>,<76 4>,<77 4>,<78 4>, 571 + <79 4>,<80 4>,<81 4>,<82 4>,<83 4>, 572 + <84 4>,<85 4>,<86 4>,<87 4>,<88 4>, 573 + <89 4>,<90 4>,<91 4>,<92 4>,<93 4>, 574 + <94 4>,<95 4>,<96 4>,<97 4>,<98 4>, 575 + <99 4>,<100 4>,<101 4>,<102 4>,<103 4>, 576 + <104 4>,<105 4>,<106 4>,<107 4>,<108 4>, 577 + <109 4>,<110 4>,<111 4>,<112 4>,<113 4>, 578 + <114 4>,<115 4>,<116 4>,<117 4>,<118 4>, 579 + <119 4>,<120 4>,<121 4>,<122 4>,<123 4>, 580 + <124 4>,<125 4>,<126 4>,<127 4>,<128 4>, 581 + <129 4>,<130 4>,<131 4>,<132 4>,<133 4>, 582 + <134 4>,<135 4>,<136 4>,<137 4>,<138 4>, 583 + <139 4>,<140 4>,<141 4>,<142 4>,<143 4>, 584 + <144 4>,<145 4>,<146 4>,<147 4>,<148 4>, 585 + <149 4>,<150 4>,<151 4>,<152 4>,<153 4>, 586 + <154 4>,<155 4>,<156 4>,<157 4>,<158 4>, 587 + <159 4>,<576 1>,<577 1>,<578 1>,<579 1>, 588 + <580 1>,<581 1>,<582 1>,<583 1>,<584 1>, 589 + <585 1>,<586 1>,<587 1>,<588 1>,<589 1>, 590 + <590 1>,<591 1>,<592 1>,<593 1>,<594 1>, 591 + <595 1>,<596 1>,<597 1>,<598 1>,<599 1>, 592 + <600 1>,<601 1>,<602 1>,<603 1>,<604 1>, 593 + <605 1>,<606 1>,<607 1>; 594 + status = "disabled"; 595 + }; 596 + 597 + sas2: sas@a3000000 { 598 + compatible = "hisilicon,hip06-sas-v2"; 599 + reg = <0 0xa3000000 0 0x10000>; 600 + sas-addr = [50 01 88 20 16 00 00 00]; 601 + hisilicon,sas-syscon = <&pcie_subctl>; 602 + ctrl-reset-reg = <0xae0>; 603 + ctrl-reset-sts-reg = <0x5a70>; 604 + ctrl-clock-ena-reg = <0x3a8>; 605 + queue-count = <16>; 606 + phy-count = <9>; 607 + dma-coherent; 608 + interrupt-parent = <&mbigen_sas2>; 609 + interrupts = <192 4>,<193 4>,<194 4>,<195 4>,<196 4>, 610 + <197 4>,<198 4>,<199 4>,<200 4>,<201 4>, 611 + <202 4>,<203 4>,<204 4>,<205 4>,<206 4>, 612 + <207 4>,<208 4>,<209 4>,<210 4>,<211 4>, 613 + <212 4>,<213 4>,<214 4>,<215 4>,<216 4>, 614 + <217 4>,<218 4>,<219 4>,<220 4>,<221 4>, 615 + <222 4>,<223 4>,<224 4>,<225 4>,<226 4>, 616 + <227 4>,<228 4>,<229 4>,<230 4>,<231 4>, 617 + <232 4>,<233 4>,<234 4>,<235 4>,<236 4>, 618 + <237 4>,<238 4>,<239 4>,<240 4>,<241 4>, 619 + <242 4>,<243 4>,<244 4>,<245 4>,<246 4>, 620 + <247 4>,<248 4>,<249 4>,<250 4>,<251 4>, 621 + <252 4>,<253 4>,<254 4>,<255 4>,<256 4>, 622 + <257 4>,<258 4>,<259 4>,<260 4>,<261 4>, 623 + <262 4>,<263 4>,<264 4>,<265 4>,<266 4>, 624 + <267 4>,<268 4>,<269 4>,<270 4>,<271 4>, 625 + <272 4>,<273 4>,<274 4>,<275 4>,<276 4>, 626 + <277 4>,<278 4>,<279 4>,<280 4>,<281 4>, 627 + <282 4>,<283 4>,<284 4>,<285 4>,<286 4>, 628 + <287 4>,<608 1>,<609 1>,<610 1>,<611 1>, 629 + <612 1>,<613 1>,<614 1>,<615 1>,<616 1>, 630 + <617 1>,<618 1>,<619 1>,<620 1>,<621 1>, 631 + <622 1>,<623 1>,<624 1>,<625 1>,<626 1>, 632 + <627 1>,<628 1>,<629 1>,<630 1>,<631 1>, 633 + <632 1>,<633 1>,<634 1>,<635 1>,<636 1>, 634 + <637 1>,<638 1>,<639 1>; 336 635 status = "disabled"; 337 636 }; 338 637 };
+1
arch/arm64/boot/dts/marvell/Makefile
··· 5 5 # Mvebu SoC Family 6 6 dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-db.dtb 7 7 dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb 8 + dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-db.dtb 8 9 9 10 always := $(dtb-y) 10 11 subdir-y := $(dts-dirs)
+1
arch/arm64/boot/dts/marvell/armada-8020.dtsi
··· 47 47 48 48 #include "armada-ap806-dual.dtsi" 49 49 #include "armada-cp110-master.dtsi" 50 + #include "armada-cp110-slave.dtsi" 50 51 51 52 / { 52 53 model = "Marvell Armada 8020";
+150
arch/arm64/boot/dts/marvell/armada-8040-db.dts
··· 1 + /* 2 + * Copyright (C) 2016 Marvell Technology Group Ltd. 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPLv2 or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This library is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License as 11 + * published by the Free Software Foundation; either version 2 of the 12 + * License, or (at your option) any later version. 13 + * 14 + * This library is distributed in the hope that it will be useful, 15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 + * GNU General Public License for more details. 18 + * 19 + * Or, alternatively, 20 + * 21 + * b) Permission is hereby granted, free of charge, to any person 22 + * obtaining a copy of this software and associated documentation 23 + * files (the "Software"), to deal in the Software without 24 + * restriction, including without limitation the rights to use, 25 + * copy, modify, merge, publish, distribute, sublicense, and/or 26 + * sell copies of the Software, and to permit persons to whom the 27 + * Software is furnished to do so, subject to the following 28 + * conditions: 29 + * 30 + * The above copyright notice and this permission notice shall be 31 + * included in all copies or substantial portions of the Software. 32 + * 33 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 + * OTHER DEALINGS IN THE SOFTWARE. 41 + */ 42 + 43 + /* 44 + * Device Tree file for Marvell Armada 8040 Development board platform 45 + */ 46 + 47 + #include "armada-8040.dtsi" 48 + 49 + / { 50 + model = "Marvell Armada 8040 DB board"; 51 + compatible = "marvell,armada8040-db", "marvell,armada8040", 52 + "marvell,armada-ap806-quad", "marvell,armada-ap806"; 53 + 54 + chosen { 55 + stdout-path = "serial0:115200n8"; 56 + }; 57 + 58 + memory@00000000 { 59 + device_type = "memory"; 60 + reg = <0x0 0x0 0x0 0x80000000>; 61 + }; 62 + }; 63 + 64 + &i2c0 { 65 + status = "okay"; 66 + clock-frequency = <100000>; 67 + }; 68 + 69 + &spi0 { 70 + status = "okay"; 71 + 72 + spi-flash@0 { 73 + #address-cells = <1>; 74 + #size-cells = <1>; 75 + compatible = "jedec,spi-nor"; 76 + reg = <0>; 77 + spi-max-frequency = <10000000>; 78 + 79 + partitions { 80 + compatible = "fixed-partitions"; 81 + #address-cells = <1>; 82 + #size-cells = <1>; 83 + 84 + partition@0 { 85 + label = "U-Boot"; 86 + reg = <0 0x200000>; 87 + }; 88 + partition@400000 { 89 + label = "Filesystem"; 90 + reg = <0x200000 0xce0000>; 91 + }; 92 + }; 93 + }; 94 + }; 95 + 96 + /* Accessible over the mini-USB CON9 connector on the main board */ 97 + &uart0 { 98 + status = "okay"; 99 + }; 100 + 101 + 102 + /* CON5 on CP0 expansion */ 103 + &cpm_pcie2 { 104 + status = "okay"; 105 + }; 106 + 107 + &cpm_i2c0 { 108 + status = "okay"; 109 + clock-frequency = <100000>; 110 + }; 111 + 112 + /* CON4 on CP0 expansion */ 113 + &cpm_sata0 { 114 + status = "okay"; 115 + }; 116 + 117 + /* CON9 on CP0 expansion */ 118 + &cpm_usb3_0 { 119 + status = "okay"; 120 + }; 121 + 122 + /* CON10 on CP0 expansion */ 123 + &cpm_usb3_1 { 124 + status = "okay"; 125 + }; 126 + 127 + /* CON5 on CP1 expansion */ 128 + &cps_pcie2 { 129 + status = "okay"; 130 + }; 131 + 132 + &cps_i2c0 { 133 + status = "okay"; 134 + clock-frequency = <100000>; 135 + }; 136 + 137 + /* CON4 on CP1 expansion */ 138 + &cps_sata0 { 139 + status = "okay"; 140 + }; 141 + 142 + /* CON9 on CP1 expansion */ 143 + &cps_usb3_0 { 144 + status = "okay"; 145 + }; 146 + 147 + /* CON10 on CP1 expansion */ 148 + &cps_usb3_1 { 149 + status = "okay"; 150 + };
+1
arch/arm64/boot/dts/marvell/armada-8040.dtsi
··· 47 47 48 48 #include "armada-ap806-quad.dtsi" 49 49 #include "armada-cp110-master.dtsi" 50 + #include "armada-cp110-slave.dtsi" 50 51 51 52 / { 52 53 model = "Marvell Armada 8040";
+14
arch/arm64/boot/dts/marvell/armada-ap806.dtsi
··· 128 128 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 129 129 }; 130 130 131 + pmu { 132 + compatible = "arm,cortex-a72-pmu"; 133 + interrupt-parent = <&pic>; 134 + interrupts = <17>; 135 + }; 136 + 131 137 odmi: odmi@300000 { 132 138 compatible = "marvell,odmi-controller"; 133 139 interrupt-controller; ··· 144 138 <0x308000 0x4000>, 145 139 <0x30C000 0x4000>; 146 140 marvell,spi-base = <128>, <136>, <144>, <152>; 141 + }; 142 + 143 + pic: interrupt-controller@3f0100 { 144 + compatible = "marvell,armada-8k-pic"; 145 + reg = <0x3f0100 0x10>; 146 + #interrupt-cells = <1>; 147 + interrupt-controller; 148 + interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>; 147 149 }; 148 150 149 151 xor@400000 {
+3
arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi
··· 176 176 #interrupt-cells = <1>; 177 177 device_type = "pci"; 178 178 dma-coherent; 179 + msi-parent = <&gic_v2m0>; 179 180 180 181 bus-range = <0 0xff>; 181 182 ranges = ··· 202 201 #interrupt-cells = <1>; 203 202 device_type = "pci"; 204 203 dma-coherent; 204 + msi-parent = <&gic_v2m0>; 205 205 206 206 bus-range = <0 0xff>; 207 207 ranges = ··· 229 227 #interrupt-cells = <1>; 230 228 device_type = "pci"; 231 229 dma-coherent; 230 + msi-parent = <&gic_v2m0>; 232 231 233 232 bus-range = <0 0xff>; 234 233 ranges =
+249
arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi
··· 1 + /* 2 + * Copyright (C) 2016 Marvell Technology Group Ltd. 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPLv2 or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This library is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License as 11 + * published by the Free Software Foundation; either version 2 of the 12 + * License, or (at your option) any later version. 13 + * 14 + * This library is distributed in the hope that it will be useful, 15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 + * GNU General Public License for more details. 18 + * 19 + * Or, alternatively, 20 + * 21 + * b) Permission is hereby granted, free of charge, to any person 22 + * obtaining a copy of this software and associated documentation 23 + * files (the "Software"), to deal in the Software without 24 + * restriction, including without limitation the rights to use, 25 + * copy, modify, merge, publish, distribute, sublicense, and/or 26 + * sell copies of the Software, and to permit persons to whom the 27 + * Software is furnished to do so, subject to the following 28 + * conditions: 29 + * 30 + * The above copyright notice and this permission notice shall be 31 + * included in all copies or substantial portions of the Software. 32 + * 33 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 + * OTHER DEALINGS IN THE SOFTWARE. 41 + */ 42 + 43 + /* 44 + * Device Tree file for Marvell Armada CP110 Slave. 45 + */ 46 + 47 + / { 48 + cp110-slave { 49 + #address-cells = <2>; 50 + #size-cells = <2>; 51 + compatible = "simple-bus"; 52 + interrupt-parent = <&gic>; 53 + ranges; 54 + 55 + config-space { 56 + #address-cells = <1>; 57 + #size-cells = <1>; 58 + compatible = "simple-bus"; 59 + interrupt-parent = <&gic>; 60 + ranges = <0x0 0x0 0xf4000000 0x2000000>; 61 + 62 + cps_syscon0: system-controller@440000 { 63 + compatible = "marvell,cp110-system-controller0", 64 + "syscon"; 65 + reg = <0x440000 0x1000>; 66 + #clock-cells = <2>; 67 + core-clock-output-names = 68 + "cps-apll", "cps-ppv2-core", "cps-eip", 69 + "cps-core", "cps-nand-core"; 70 + gate-clock-output-names = 71 + "cps-audio", "cps-communit", "cps-nand", 72 + "cps-ppv2", "cps-sdio", "cps-mg-domain", 73 + "cps-mg-core", "cps-xor1", "cps-xor0", 74 + "cps-gop-dp", "none", "cps-pcie_x10", 75 + "cps-pcie_x11", "cps-pcie_x4", "cps-pcie-xor", 76 + "cps-sata", "cps-sata-usb", "cps-main", 77 + "cps-sd-mmc", "none", "none", 78 + "cps-slow-io", "cps-usb3h0", "cps-usb3h1", 79 + "cps-usb3dev", "cps-eip150", "cps-eip197"; 80 + }; 81 + 82 + cps_sata0: sata@540000 { 83 + compatible = "marvell,armada-8k-ahci"; 84 + reg = <0x540000 0x30000>; 85 + interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 86 + clocks = <&cps_syscon0 1 15>; 87 + status = "disabled"; 88 + }; 89 + 90 + cps_usb3_0: usb3@500000 { 91 + compatible = "marvell,armada-8k-xhci", 92 + "generic-xhci"; 93 + reg = <0x500000 0x4000>; 94 + dma-coherent; 95 + interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; 96 + clocks = <&cps_syscon0 1 22>; 97 + status = "disabled"; 98 + }; 99 + 100 + cps_usb3_1: usb3@510000 { 101 + compatible = "marvell,armada-8k-xhci", 102 + "generic-xhci"; 103 + reg = <0x510000 0x4000>; 104 + dma-coherent; 105 + interrupts = <GIC_SPI 285 IRQ_TYPE_LEVEL_HIGH>; 106 + clocks = <&cps_syscon0 1 23>; 107 + status = "disabled"; 108 + }; 109 + 110 + cps_xor0: xor@6a0000 { 111 + compatible = "marvell,armada-7k-xor", "marvell,xor-v2"; 112 + reg = <0x6a0000 0x1000>, 113 + <0x6b0000 0x1000>; 114 + dma-coherent; 115 + msi-parent = <&gic_v2m0>; 116 + clocks = <&cps_syscon0 1 8>; 117 + }; 118 + 119 + cps_xor1: xor@6c0000 { 120 + compatible = "marvell,armada-7k-xor", "marvell,xor-v2"; 121 + reg = <0x6c0000 0x1000>, 122 + <0x6d0000 0x1000>; 123 + dma-coherent; 124 + msi-parent = <&gic_v2m0>; 125 + clocks = <&cps_syscon0 1 7>; 126 + }; 127 + 128 + cps_spi0: spi@700600 { 129 + compatible = "marvell,armada-380-spi"; 130 + reg = <0x700600 0x50>; 131 + #address-cells = <0x1>; 132 + #size-cells = <0x0>; 133 + cell-index = <1>; 134 + clocks = <&cps_syscon0 0 3>; 135 + status = "disabled"; 136 + }; 137 + 138 + cps_spi1: spi@700680 { 139 + compatible = "marvell,armada-380-spi"; 140 + reg = <0x700680 0x50>; 141 + #address-cells = <1>; 142 + #size-cells = <0>; 143 + cell-index = <2>; 144 + clocks = <&cps_syscon0 1 21>; 145 + status = "disabled"; 146 + }; 147 + 148 + cps_i2c0: i2c@701000 { 149 + compatible = "marvell,mv78230-i2c"; 150 + reg = <0x701000 0x20>; 151 + #address-cells = <1>; 152 + #size-cells = <0>; 153 + interrupts = <GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH>; 154 + clocks = <&cps_syscon0 1 21>; 155 + status = "disabled"; 156 + }; 157 + 158 + cps_i2c1: i2c@701100 { 159 + compatible = "marvell,mv78230-i2c"; 160 + reg = <0x701100 0x20>; 161 + #address-cells = <1>; 162 + #size-cells = <0>; 163 + interrupts = <GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>; 164 + clocks = <&cps_syscon0 1 21>; 165 + status = "disabled"; 166 + }; 167 + }; 168 + 169 + cps_pcie0: pcie@f4600000 { 170 + compatible = "marvell,armada8k-pcie", "snps,dw-pcie"; 171 + reg = <0 0xf4600000 0 0x10000>, 172 + <0 0xfaf00000 0 0x80000>; 173 + reg-names = "ctrl", "config"; 174 + #address-cells = <3>; 175 + #size-cells = <2>; 176 + #interrupt-cells = <1>; 177 + device_type = "pci"; 178 + dma-coherent; 179 + msi-parent = <&gic_v2m0>; 180 + 181 + bus-range = <0 0xff>; 182 + ranges = 183 + /* downstream I/O */ 184 + <0x81000000 0 0xfd000000 0 0xfd000000 0 0x10000 185 + /* non-prefetchable memory */ 186 + 0x82000000 0 0xfa000000 0 0xfa000000 0 0xf00000>; 187 + interrupt-map-mask = <0 0 0 0>; 188 + interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>; 189 + interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>; 190 + num-lanes = <1>; 191 + clocks = <&cps_syscon0 1 13>; 192 + status = "disabled"; 193 + }; 194 + 195 + cps_pcie1: pcie@f4620000 { 196 + compatible = "marvell,armada8k-pcie", "snps,dw-pcie"; 197 + reg = <0 0xf4620000 0 0x10000>, 198 + <0 0xfbf00000 0 0x80000>; 199 + reg-names = "ctrl", "config"; 200 + #address-cells = <3>; 201 + #size-cells = <2>; 202 + #interrupt-cells = <1>; 203 + device_type = "pci"; 204 + dma-coherent; 205 + msi-parent = <&gic_v2m0>; 206 + 207 + bus-range = <0 0xff>; 208 + ranges = 209 + /* downstream I/O */ 210 + <0x81000000 0 0xfd010000 0 0xfd010000 0 0x10000 211 + /* non-prefetchable memory */ 212 + 0x82000000 0 0xfb000000 0 0xfb000000 0 0xf00000>; 213 + interrupt-map-mask = <0 0 0 0>; 214 + interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>; 215 + interrupts = <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>; 216 + 217 + num-lanes = <1>; 218 + clocks = <&cps_syscon0 1 11>; 219 + status = "disabled"; 220 + }; 221 + 222 + cps_pcie2: pcie@f4640000 { 223 + compatible = "marvell,armada8k-pcie", "snps,dw-pcie"; 224 + reg = <0 0xf4640000 0 0x10000>, 225 + <0 0xfcf00000 0 0x80000>; 226 + reg-names = "ctrl", "config"; 227 + #address-cells = <3>; 228 + #size-cells = <2>; 229 + #interrupt-cells = <1>; 230 + device_type = "pci"; 231 + dma-coherent; 232 + msi-parent = <&gic_v2m0>; 233 + 234 + bus-range = <0 0xff>; 235 + ranges = 236 + /* downstream I/O */ 237 + <0x81000000 0 0xfd020000 0 0xfd020000 0 0x10000 238 + /* non-prefetchable memory */ 239 + 0x82000000 0 0xfc000000 0 0xfc000000 0 0xf00000>; 240 + interrupt-map-mask = <0 0 0 0>; 241 + interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>; 242 + interrupts = <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>; 243 + 244 + num-lanes = <1>; 245 + clocks = <&cps_syscon0 1 12>; 246 + status = "disabled"; 247 + }; 248 + }; 249 + };
+9 -3
arch/arm64/boot/dts/marvell/berlin4ct.dtsi
··· 68 68 device_type = "cpu"; 69 69 reg = <0x0>; 70 70 enable-method = "psci"; 71 + next-level-cache = <&l2>; 71 72 cpu-idle-states = <&CPU_SLEEP_0>; 72 73 }; 73 74 ··· 77 76 device_type = "cpu"; 78 77 reg = <0x1>; 79 78 enable-method = "psci"; 79 + next-level-cache = <&l2>; 80 80 cpu-idle-states = <&CPU_SLEEP_0>; 81 81 }; 82 82 ··· 86 84 device_type = "cpu"; 87 85 reg = <0x2>; 88 86 enable-method = "psci"; 87 + next-level-cache = <&l2>; 89 88 cpu-idle-states = <&CPU_SLEEP_0>; 90 89 }; 91 90 ··· 95 92 device_type = "cpu"; 96 93 reg = <0x3>; 97 94 enable-method = "psci"; 95 + next-level-cache = <&l2>; 98 96 cpu-idle-states = <&CPU_SLEEP_0>; 97 + }; 98 + 99 + l2: cache { 100 + compatible = "cache"; 99 101 }; 100 102 101 103 idle-states { ··· 123 115 }; 124 116 125 117 pmu { 126 - compatible = "arm,armv8-pmuv3"; 118 + compatible = "arm,cortex-a53-pmu", "arm,armv8-pmuv3"; 127 119 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>, 128 120 <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>, 129 121 <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>, ··· 287 279 reg = <0x4000 0x100>; 288 280 clocks = <&osc>; 289 281 interrupts = <1>; 290 - status = "disabled"; 291 282 }; 292 283 293 284 wdt2: watchdog@5000 { ··· 294 287 reg = <0x5000 0x100>; 295 288 clocks = <&osc>; 296 289 interrupts = <2>; 297 - status = "disabled"; 298 290 }; 299 291 300 292 sm_gpio0: gpio@8000 {
+38
arch/arm64/boot/dts/mediatek/mt8173-evb.dts
··· 42 42 gpio = <&pio 130 GPIO_ACTIVE_HIGH>; 43 43 enable-active-high; 44 44 }; 45 + 46 + connector { 47 + compatible = "hdmi-connector"; 48 + label = "hdmi"; 49 + type = "d"; 50 + 51 + port { 52 + hdmi_connector_in: endpoint { 53 + remote-endpoint = <&hdmi0_out>; 54 + }; 55 + }; 56 + }; 57 + }; 58 + 59 + &cec { 60 + status = "okay"; 61 + }; 62 + 63 + &dpi0 { 64 + status = "okay"; 65 + }; 66 + 67 + &hdmi_phy { 68 + status = "okay"; 69 + }; 70 + 71 + &hdmi0 { 72 + status = "okay"; 73 + 74 + ports { 75 + port@1 { 76 + reg = <1>; 77 + 78 + hdmi0_out: endpoint { 79 + remote-endpoint = <&hdmi_connector_in>; 80 + }; 81 + }; 82 + }; 45 83 }; 46 84 47 85 &i2c1 {
+77
arch/arm64/boot/dts/mediatek/mt8173.dtsi
··· 254 254 <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>, 255 255 <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; 256 256 257 + hdmi_pin: xxx { 258 + 259 + /*hdmi htplg pin*/ 260 + pins1 { 261 + pinmux = <MT8173_PIN_21_HTPLG__FUNC_HTPLG>; 262 + input-enable; 263 + bias-pull-down; 264 + }; 265 + }; 266 + 257 267 i2c0_pins_a: i2c0 { 258 268 pins1 { 259 269 pinmux = <MT8173_PIN_45_SDA0__FUNC_SDA0>, ··· 351 341 clock-names = "spi", "wrap"; 352 342 }; 353 343 344 + cec: cec@10013000 { 345 + compatible = "mediatek,mt8173-cec"; 346 + reg = <0 0x10013000 0 0xbc>; 347 + interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_LOW>; 348 + clocks = <&infracfg CLK_INFRA_CEC>; 349 + status = "disabled"; 350 + }; 351 + 354 352 vpu: vpu@10020000 { 355 353 compatible = "mediatek,mt8173-vpu"; 356 354 reg = <0 0x10020000 0 0x30000>, ··· 399 381 compatible = "mediatek,mt8173-apmixedsys"; 400 382 reg = <0 0x10209000 0 0x1000>; 401 383 #clock-cells = <1>; 384 + }; 385 + 386 + hdmi_phy: hdmi-phy@10209100 { 387 + compatible = "mediatek,mt8173-hdmi-phy"; 388 + reg = <0 0x10209100 0 0x24>; 389 + clocks = <&apmixedsys CLK_APMIXED_HDMI_REF>; 390 + clock-names = "pll_ref"; 391 + clock-output-names = "hdmitx_dig_cts"; 392 + mediatek,ibias = <0xa>; 393 + mediatek,ibias_up = <0x1c>; 394 + #clock-cells = <0>; 395 + #phy-cells = <0>; 396 + status = "disabled"; 402 397 }; 403 398 404 399 mipi_tx0: mipi-dphy@10215000 { ··· 606 575 #address-cells = <1>; 607 576 #size-cells = <0>; 608 577 status = "disabled"; 578 + }; 579 + 580 + hdmiddc0: i2c@11012000 { 581 + compatible = "mediatek,mt8173-hdmi-ddc"; 582 + interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_LOW>; 583 + reg = <0 0x11012000 0 0x1C>; 584 + clocks = <&pericfg CLK_PERI_I2C5>; 585 + clock-names = "ddc-i2c"; 609 586 }; 610 587 611 588 i2c6: i2c@11013000 { ··· 924 885 <&apmixedsys CLK_APMIXED_TVDPLL>; 925 886 clock-names = "pixel", "engine", "pll"; 926 887 status = "disabled"; 888 + 889 + port { 890 + dpi0_out: endpoint { 891 + remote-endpoint = <&hdmi0_in>; 892 + }; 893 + }; 927 894 }; 928 895 929 896 pwm0: pwm@1401e000 { ··· 985 940 compatible = "mediatek,mt8173-disp-od"; 986 941 reg = <0 0x14023000 0 0x1000>; 987 942 clocks = <&mmsys CLK_MM_DISP_OD>; 943 + }; 944 + 945 + hdmi0: hdmi@14025000 { 946 + compatible = "mediatek,mt8173-hdmi"; 947 + reg = <0 0x14025000 0 0x400>; 948 + interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_LOW>; 949 + clocks = <&mmsys CLK_MM_HDMI_PIXEL>, 950 + <&mmsys CLK_MM_HDMI_PLLCK>, 951 + <&mmsys CLK_MM_HDMI_AUDIO>, 952 + <&mmsys CLK_MM_HDMI_SPDIF>; 953 + clock-names = "pixel", "pll", "bclk", "spdif"; 954 + pinctrl-names = "default"; 955 + pinctrl-0 = <&hdmi_pin>; 956 + phys = <&hdmi_phy>; 957 + phy-names = "hdmi"; 958 + mediatek,syscon-hdmi = <&mmsys 0x900>; 959 + assigned-clocks = <&topckgen CLK_TOP_HDMI_SEL>; 960 + assigned-clock-parents = <&hdmi_phy>; 961 + status = "disabled"; 962 + 963 + ports { 964 + #address-cells = <1>; 965 + #size-cells = <0>; 966 + 967 + port@0 { 968 + reg = <0>; 969 + 970 + hdmi0_in: endpoint { 971 + remote-endpoint = <&dpi0_out>; 972 + }; 973 + }; 974 + }; 988 975 }; 989 976 990 977 larb4: larb@14027000 {
+120
arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
··· 27 27 reg = <0x0 0x80000000 0x0 0xc0000000>; 28 28 }; 29 29 30 + host1x@50000000 { 31 + dpaux: dpaux@545c0000 { 32 + status = "okay"; 33 + }; 34 + }; 35 + 30 36 pinmux: pinmux@700008d4 { 31 37 pinctrl-names = "boot"; 32 38 pinctrl-0 = <&state_boot>; ··· 1562 1556 }; 1563 1557 }; 1564 1558 1559 + i2c@7000d100 { 1560 + status = "okay"; 1561 + clock-frequency = <400000>; 1562 + 1563 + nau8825@1a { 1564 + compatible = "nuvoton,nau8825"; 1565 + reg = <0x1a>; 1566 + interrupt-parent = <&gpio>; 1567 + interrupts = <TEGRA_GPIO(E, 6) IRQ_TYPE_LEVEL_LOW>; 1568 + clocks = <&tegra_car TEGRA210_CLK_CLK_OUT_2>; 1569 + clock-names = "mclk"; 1570 + 1571 + nuvoton,jkdet-enable; 1572 + nuvoton,jkdet-polarity = <GPIO_ACTIVE_LOW>; 1573 + nuvoton,vref-impedance = <2>; 1574 + nuvoton,micbias-voltage = <6>; 1575 + nuvoton,sar-threshold-num = <4>; 1576 + nuvoton,sar-threshold = <0xc 0x1e 0x38 0x60>; 1577 + nuvoton,sar-hysteresis = <1>; 1578 + nuvoton,sar-voltage = <0>; 1579 + nuvoton,sar-compare-time = <0>; 1580 + nuvoton,sar-sampling-time = <0>; 1581 + nuvoton,short-key-debounce = <2>; 1582 + nuvoton,jack-insert-debounce = <7>; 1583 + nuvoton,jack-eject-debounce = <7>; 1584 + status = "okay"; 1585 + }; 1586 + 1587 + audio-codec@2d { 1588 + compatible = "realtek,rt5677"; 1589 + reg = <0x2d>; 1590 + interrupt-parent = <&gpio>; 1591 + interrupts = <TEGRA_GPIO(X, 0) IRQ_TYPE_LEVEL_HIGH>; 1592 + realtek,reset-gpio = <&gpio TEGRA_GPIO(BB, 3) GPIO_ACTIVE_LOW>; 1593 + gpio-controller; 1594 + #gpio-cells = <2>; 1595 + status = "okay"; 1596 + }; 1597 + }; 1598 + 1565 1599 pmc@7000e400 { 1566 1600 nvidia,invert-interrupt; 1567 1601 nvidia,suspend-mode = <0>; ··· 1614 1568 status = "okay"; 1615 1569 }; 1616 1570 1571 + usb@70090000 { 1572 + phys = <&{/padctl@7009f000/pads/usb2/lanes/usb2-0}>, 1573 + <&{/padctl@7009f000/pads/pcie/lanes/pcie-6}>; 1574 + phy-names = "usb2-0", "usb3-0"; 1575 + 1576 + dvddio-pex-supply = <&avddio_1v05>; 1577 + hvddio-pex-supply = <&pp1800>; 1578 + avdd-usb-supply = <&pp3300>; 1579 + avdd-pll-utmip-supply = <&pp1800>; 1580 + avdd-pll-uerefe-supply = <&pp1050_avdd>; 1581 + dvdd-pex-pll-supply = <&avddio_1v05>; 1582 + hvdd-pex-pll-e-supply = <&pp1800>; 1583 + 1584 + status = "okay"; 1585 + }; 1586 + 1587 + padctl@7009f000 { 1588 + status = "okay"; 1589 + 1590 + pads { 1591 + usb2 { 1592 + status = "okay"; 1593 + 1594 + lanes { 1595 + usb2-0 { 1596 + nvidia,function = "xusb"; 1597 + status = "okay"; 1598 + }; 1599 + }; 1600 + }; 1601 + 1602 + pcie { 1603 + status = "okay"; 1604 + 1605 + lanes { 1606 + pcie-6 { 1607 + nvidia,function = "usb3-ss"; 1608 + status = "okay"; 1609 + }; 1610 + }; 1611 + }; 1612 + }; 1613 + 1614 + ports { 1615 + usb2-0 { 1616 + status = "okay"; 1617 + vbus-supply = <&usbc_vbus>; 1618 + mode = "otg"; 1619 + }; 1620 + 1621 + usb3-0 { 1622 + nvidia,usb2-companion = <0>; 1623 + status = "okay"; 1624 + }; 1625 + }; 1626 + }; 1627 + 1617 1628 sdhci@700b0600 { 1618 1629 bus-width = <8>; 1619 1630 non-removable; 1620 1631 status = "okay"; 1632 + }; 1633 + 1634 + aconnect@702c0000 { 1635 + status = "okay"; 1636 + 1637 + dma@702e2000 { 1638 + status = "okay"; 1639 + }; 1640 + 1641 + agic@702f9000 { 1642 + status = "okay"; 1643 + }; 1621 1644 }; 1622 1645 1623 1646 clocks { ··· 1759 1644 gpios = <&gpio TEGRA_GPIO(M, 4) GPIO_ACTIVE_LOW>; 1760 1645 linux,code = <KEY_VOLUMEUP>; 1761 1646 }; 1647 + }; 1648 + 1649 + max98357a { 1650 + compatible = "maxim,max98357a"; 1651 + status = "okay"; 1762 1652 }; 1763 1653 1764 1654 psci {
+72 -7
arch/arm64/boot/dts/nvidia/tegra210.dtsi
··· 34 34 clock-names = "dpaux", "parent"; 35 35 resets = <&tegra_car 207>; 36 36 reset-names = "dpaux"; 37 + power-domains = <&pd_sor>; 37 38 status = "disabled"; 38 39 39 40 state_dpaux1_aux: pinmux-aux { ··· 109 108 clock-names = "dsi", "lp", "parent"; 110 109 resets = <&tegra_car 48>; 111 110 reset-names = "dsi"; 111 + power-domains = <&pd_sor>; 112 112 nvidia,mipi-calibrate = <&mipi 0x0c0>; /* DSIA & DSIB pads */ 113 113 114 114 status = "disabled"; ··· 139 137 clock-names = "dsi", "lp", "parent"; 140 138 resets = <&tegra_car 82>; 141 139 reset-names = "dsi"; 140 + power-domains = <&pd_sor>; 142 141 nvidia,mipi-calibrate = <&mipi 0x300>; /* DSIC & DSID pads */ 143 142 144 143 status = "disabled"; ··· 181 178 pinctrl-1 = <&state_dpaux_i2c>; 182 179 pinctrl-2 = <&state_dpaux_off>; 183 180 pinctrl-names = "aux", "i2c", "off"; 181 + power-domains = <&pd_sor>; 184 182 status = "disabled"; 185 183 }; 186 184 ··· 201 197 pinctrl-1 = <&state_dpaux1_i2c>; 202 198 pinctrl-2 = <&state_dpaux1_off>; 203 199 pinctrl-names = "aux", "i2c", "off"; 200 + power-domains = <&pd_sor>; 204 201 status = "disabled"; 205 202 }; 206 203 ··· 214 209 clock-names = "dpaux", "parent"; 215 210 resets = <&tegra_car 181>; 216 211 reset-names = "dpaux"; 212 + power-domains = <&pd_sor>; 217 213 status = "disabled"; 218 214 219 215 state_dpaux_aux: pinmux-aux { ··· 331 325 }; 332 326 333 327 gpio: gpio@6000d000 { 334 - compatible = "nvidia,tegra210-gpio", "nvidia,tegra124-gpio", "nvidia,tegra30-gpio"; 328 + compatible = "nvidia,tegra210-gpio", "nvidia,tegra30-gpio"; 335 329 reg = <0x0 0x6000d000 0x0 0x1000>; 336 330 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, 337 331 <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>, ··· 654 648 #power-domain-cells = <0>; 655 649 }; 656 650 651 + pd_sor: sor { 652 + clocks = <&tegra_car TEGRA210_CLK_SOR0>, 653 + <&tegra_car TEGRA210_CLK_SOR1>, 654 + <&tegra_car TEGRA210_CLK_CSI>, 655 + <&tegra_car TEGRA210_CLK_DSIA>, 656 + <&tegra_car TEGRA210_CLK_DSIB>, 657 + <&tegra_car TEGRA210_CLK_DPAUX>, 658 + <&tegra_car TEGRA210_CLK_DPAUX1>, 659 + <&tegra_car TEGRA210_CLK_MIPI_CAL>; 660 + resets = <&tegra_car TEGRA210_CLK_SOR0>, 661 + <&tegra_car TEGRA210_CLK_SOR1>, 662 + <&tegra_car TEGRA210_CLK_CSI>, 663 + <&tegra_car TEGRA210_CLK_DSIA>, 664 + <&tegra_car TEGRA210_CLK_DSIB>, 665 + <&tegra_car TEGRA210_CLK_DPAUX>, 666 + <&tegra_car TEGRA210_CLK_DPAUX1>, 667 + <&tegra_car TEGRA210_CLK_MIPI_CAL>; 668 + #power-domain-cells = <0>; 669 + }; 670 + 657 671 pd_xusbss: xusba { 658 672 clocks = <&tegra_car TEGRA210_CLK_XUSB_SS>; 659 - clock-names = "xusb-ss"; 660 673 resets = <&tegra_car TEGRA210_CLK_XUSB_SS>; 661 - reset-names = "xusb-ss"; 662 674 #power-domain-cells = <0>; 663 675 }; 664 676 665 677 pd_xusbdev: xusbb { 666 678 clocks = <&tegra_car TEGRA210_CLK_XUSB_DEV>; 667 - clock-names = "xusb-dev"; 668 679 resets = <&tegra_car 95>; 669 - reset-names = "xusb-dev"; 670 680 #power-domain-cells = <0>; 671 681 }; 672 682 673 683 pd_xusbhost: xusbc { 674 684 clocks = <&tegra_car TEGRA210_CLK_XUSB_HOST>; 675 - clock-names = "xusb-host"; 676 685 resets = <&tegra_car TEGRA210_CLK_XUSB_HOST>; 677 - reset-names = "xusb-host"; 678 686 #power-domain-cells = <0>; 679 687 }; 680 688 }; ··· 968 948 reg = <0x0 0x700e3000 0x0 0x100>; 969 949 clocks = <&tegra_car TEGRA210_CLK_MIPI_CAL>; 970 950 clock-names = "mipi-cal"; 951 + power-domains = <&pd_sor>; 971 952 #nvidia,mipi-calibrate-cells = <1>; 972 953 }; 973 954 ··· 982 961 #size-cells = <1>; 983 962 ranges = <0x702c0000 0x0 0x702c0000 0x00040000>; 984 963 status = "disabled"; 964 + 965 + adma: dma@702e2000 { 966 + compatible = "nvidia,tegra210-adma"; 967 + reg = <0x702e2000 0x2000>; 968 + interrupt-parent = <&agic>; 969 + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>, 970 + <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>, 971 + <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>, 972 + <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>, 973 + <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>, 974 + <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>, 975 + <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>, 976 + <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>, 977 + <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, 978 + <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>, 979 + <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>, 980 + <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>, 981 + <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>, 982 + <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>, 983 + <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>, 984 + <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, 985 + <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 986 + <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, 987 + <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>, 988 + <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>, 989 + <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, 990 + <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 991 + #dma-cells = <1>; 992 + clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>; 993 + clock-names = "d_audio"; 994 + status = "disabled"; 995 + }; 996 + 997 + agic: agic@702f9000 { 998 + compatible = "nvidia,tegra210-agic"; 999 + #interrupt-cells = <3>; 1000 + interrupt-controller; 1001 + reg = <0x702f9000 0x2000>, 1002 + <0x702fa000 0x2000>; 1003 + interrupts = <GIC_SPI 102 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 1004 + clocks = <&tegra_car TEGRA210_CLK_APE>; 1005 + clock-names = "clk"; 1006 + status = "disabled"; 1007 + }; 985 1008 }; 986 1009 987 1010 spi@70410000 {
+1
arch/arm64/boot/dts/qcom/Makefile
··· 1 1 dtb-$(CONFIG_ARCH_QCOM) += apq8016-sbc.dtb msm8916-mtp.dtb 2 2 dtb-$(CONFIG_ARCH_QCOM) += msm8996-mtp.dtb 3 + dtb-$(CONFIG_ARCH_QCOM) += apq8096-db820c.dtb 3 4 4 5 always := $(dtb-y) 5 6 subdir-y := $(dts-dirs)
+48
arch/arm64/boot/dts/qcom/apq8016-sbc-soc-pins.dtsi
··· 24 24 bias-pull-up; 25 25 }; 26 26 }; 27 + 28 + adv7533_int_active: adv533_int_active { 29 + pinmux { 30 + function = "gpio"; 31 + pins = "gpio31"; 32 + }; 33 + pinconf { 34 + pins = "gpio31"; 35 + drive-strength = <16>; 36 + bias-disable; 37 + }; 38 + }; 39 + 40 + adv7533_int_suspend: adv7533_int_suspend { 41 + pinmux { 42 + function = "gpio"; 43 + pins = "gpio31"; 44 + }; 45 + pinconf { 46 + pins = "gpio31"; 47 + drive-strength = <2>; 48 + bias-disable; 49 + }; 50 + }; 51 + 52 + adv7533_switch_active: adv7533_switch_active { 53 + pinmux { 54 + function = "gpio"; 55 + pins = "gpio32"; 56 + }; 57 + pinconf { 58 + pins = "gpio32"; 59 + drive-strength = <16>; 60 + bias-disable; 61 + }; 62 + }; 63 + 64 + adv7533_switch_suspend: adv7533_switch_suspend { 65 + pinmux { 66 + function = "gpio"; 67 + pins = "gpio32"; 68 + }; 69 + pinconf { 70 + pins = "gpio32"; 71 + drive-strength = <2>; 72 + bias-disable; 73 + }; 74 + }; 27 75 };
+82
arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
··· 63 63 /* On High speed expansion */ 64 64 label = "HS-I2C2"; 65 65 status = "okay"; 66 + 67 + adv_bridge: bridge@39 { 68 + status = "okay"; 69 + 70 + compatible = "adi,adv7533"; 71 + reg = <0x39>; 72 + 73 + interrupt-parent = <&msmgpio>; 74 + interrupts = <31 2>; 75 + 76 + adi,dsi-lanes = <4>; 77 + 78 + pd-gpios = <&msmgpio 32 0>; 79 + 80 + avdd-supply = <&pm8916_l6>; 81 + v1p2-supply = <&pm8916_l6>; 82 + v3p3-supply = <&pm8916_l17>; 83 + 84 + pinctrl-names = "default","sleep"; 85 + pinctrl-0 = <&adv7533_int_active &adv7533_switch_active>; 86 + pinctrl-1 = <&adv7533_int_suspend &adv7533_switch_suspend>; 87 + 88 + ports { 89 + #address-cells = <1>; 90 + #size-cells = <0>; 91 + 92 + port@0 { 93 + reg = <0>; 94 + adv7533_in: endpoint { 95 + remote-endpoint = <&dsi0_out>; 96 + }; 97 + }; 98 + 99 + port@1 { 100 + reg = <1>; 101 + adv7533_out: endpoint { 102 + remote-endpoint = <&hdmi_con>; 103 + }; 104 + }; 105 + }; 106 + }; 66 107 }; 67 108 68 109 i2c@78ba000 { ··· 221 180 lpass@07708000 { 222 181 status = "okay"; 223 182 }; 183 + 184 + mdss@1a00000 { 185 + status = "okay"; 186 + 187 + mdp@1a01000 { 188 + status = "okay"; 189 + }; 190 + 191 + dsi@1a98000 { 192 + status = "okay"; 193 + 194 + vdda-supply = <&pm8916_l2>; 195 + vddio-supply = <&pm8916_l6>; 196 + 197 + ports { 198 + port@1 { 199 + endpoint { 200 + remote-endpoint = <&adv7533_in>; 201 + data-lanes = <0 1 2 3>; 202 + }; 203 + }; 204 + }; 205 + }; 206 + 207 + dsi-phy@1a98300 { 208 + status = "okay"; 209 + 210 + vddio-supply = <&pm8916_l6>; 211 + }; 212 + }; 224 213 }; 225 214 226 215 usb2513 { ··· 264 193 id-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>; 265 194 pinctrl-names = "default"; 266 195 pinctrl-0 = <&usb_id_default>; 196 + }; 197 + 198 + hdmi-out { 199 + compatible = "hdmi-connector"; 200 + type = "a"; 201 + 202 + port { 203 + hdmi_con: endpoint { 204 + remote-endpoint = <&adv7533_out>; 205 + }; 206 + }; 267 207 }; 268 208 }; 269 209
+39
arch/arm64/boot/dts/qcom/apq8096-db820c-pins.dtsi
··· 1 + /* 2 + * Copyright (c) 2013-2016, The Linux Foundation. All rights reserved. 3 + * 4 + * This program is free software; you can redistribute it and/or modify 5 + * it under the terms of the GNU General Public License version 2 and 6 + * only version 2 as published by the Free Software Foundation. 7 + * 8 + * This program is distributed in the hope that it will be useful, 9 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 + * GNU General Public License for more details. 12 + */ 13 + &msmgpio { 14 + sdc2_cd_on: sdc2_cd_on { 15 + mux { 16 + pins = "gpio38"; 17 + function = "gpio"; 18 + }; 19 + 20 + config { 21 + pins = "gpio38"; 22 + bias-pull-up; /* pull up */ 23 + drive-strength = <16>; /* 16 MA */ 24 + }; 25 + }; 26 + 27 + sdc2_cd_off: sdc2_cd_off { 28 + mux { 29 + pins = "gpio38"; 30 + function = "gpio"; 31 + }; 32 + 33 + config { 34 + pins = "gpio38"; 35 + bias-pull-up; /* pull up */ 36 + drive-strength = <2>; /* 2 MA */ 37 + }; 38 + }; 39 + };
+21
arch/arm64/boot/dts/qcom/apq8096-db820c.dts
··· 1 + /* 2 + * Copyright (c) 2014-2016, The Linux Foundation. All rights reserved. 3 + * 4 + * This program is free software; you can redistribute it and/or modify 5 + * it under the terms of the GNU General Public License version 2 and 6 + * only version 2 as published by the Free Software Foundation. 7 + * 8 + * This program is distributed in the hope that it will be useful, 9 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 + * GNU General Public License for more details. 12 + */ 13 + 14 + /dts-v1/; 15 + 16 + #include "apq8096-db820c.dtsi" 17 + 18 + / { 19 + model = "Qualcomm Technologies, Inc. DB820c"; 20 + compatible = "arrow,apq8096-db820c", "qcom,apq8096-sbc"; 21 + };
+88
arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
··· 1 + /* 2 + * Copyright (c) 2014-2016, The Linux Foundation. All rights reserved. 3 + * 4 + * This program is free software; you can redistribute it and/or modify 5 + * it under the terms of the GNU General Public License version 2 and 6 + * only version 2 as published by the Free Software Foundation. 7 + * 8 + * This program is distributed in the hope that it will be useful, 9 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 + * GNU General Public License for more details. 12 + */ 13 + 14 + #include "msm8996.dtsi" 15 + #include "apq8096-db820c-pins.dtsi" 16 + 17 + / { 18 + aliases { 19 + serial0 = &blsp2_uart1; 20 + serial1 = &blsp2_uart2; 21 + i2c0 = &blsp1_i2c2; 22 + i2c1 = &blsp2_i2c1; 23 + i2c2 = &blsp2_i2c0; 24 + spi0 = &blsp1_spi0; 25 + spi1 = &blsp2_spi5; 26 + }; 27 + 28 + chosen { 29 + stdout-path = "serial0:115200n8"; 30 + }; 31 + 32 + soc { 33 + serial@75b0000 { 34 + label = "LS-UART1"; 35 + status = "okay"; 36 + pinctrl-names = "default", "sleep"; 37 + pinctrl-0 = <&blsp2_uart1_2pins_default>; 38 + pinctrl-1 = <&blsp2_uart1_2pins_sleep>; 39 + }; 40 + 41 + serial@75b1000 { 42 + label = "LS-UART0"; 43 + status = "okay"; 44 + pinctrl-names = "default", "sleep"; 45 + pinctrl-0 = <&blsp2_uart2_4pins_default>; 46 + pinctrl-1 = <&blsp2_uart2_4pins_sleep>; 47 + }; 48 + 49 + i2c@07577000 { 50 + /* On Low speed expansion */ 51 + label = "LS-I2C0"; 52 + status = "okay"; 53 + }; 54 + 55 + i2c@075b6000 { 56 + /* On Low speed expansion */ 57 + label = "LS-I2C1"; 58 + status = "okay"; 59 + }; 60 + 61 + spi@07575000 { 62 + /* On Low speed expansion */ 63 + label = "LS-SPI0"; 64 + status = "okay"; 65 + }; 66 + 67 + i2c@075b5000 { 68 + /* On High speed expansion */ 69 + label = "HS-I2C2"; 70 + status = "okay"; 71 + }; 72 + 73 + spi@075ba000{ 74 + /* On High speed expansion */ 75 + label = "HS-SPI1"; 76 + status = "okay"; 77 + }; 78 + 79 + sdhci@74a4900 { 80 + /* External SD card */ 81 + pinctrl-names = "default", "sleep"; 82 + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>; 83 + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>; 84 + cd-gpios = <&msmgpio 38 0x1>; 85 + status = "okay"; 86 + }; 87 + }; 88 + };
+280 -6
arch/arm64/boot/dts/qcom/msm8916.dtsi
··· 86 86 reg = <0x0 0x89300000 0x0 0x600000>; 87 87 no-map; 88 88 }; 89 + 90 + mba_mem: mba@8ea00000 { 91 + no-map; 92 + reg = <0 0x8ea00000 0 0x100000>; 93 + }; 89 94 }; 90 95 91 96 cpus { ··· 160 155 interrupts = <GIC_PPI 7 GIC_CPU_MASK_SIMPLE(4)>; 161 156 }; 162 157 158 + thermal-zones { 159 + cpu-thermal0 { 160 + polling-delay-passive = <250>; 161 + polling-delay = <1000>; 162 + 163 + thermal-sensors = <&tsens 4>; 164 + 165 + trips { 166 + cpu_alert0: trip0 { 167 + temperature = <75000>; 168 + hysteresis = <2000>; 169 + type = "passive"; 170 + }; 171 + cpu_crit0: trip1 { 172 + temperature = <110000>; 173 + hysteresis = <2000>; 174 + type = "critical"; 175 + }; 176 + }; 177 + }; 178 + 179 + cpu-thermal1 { 180 + polling-delay-passive = <250>; 181 + polling-delay = <1000>; 182 + 183 + thermal-sensors = <&tsens 3>; 184 + 185 + trips { 186 + cpu_alert1: trip0 { 187 + temperature = <75000>; 188 + hysteresis = <2000>; 189 + type = "passive"; 190 + }; 191 + cpu_crit1: trip1 { 192 + temperature = <110000>; 193 + hysteresis = <2000>; 194 + type = "critical"; 195 + }; 196 + }; 197 + }; 198 + 199 + }; 200 + 163 201 timer { 164 202 compatible = "arm,armv8-timer"; 165 203 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, ··· 235 187 }; 236 188 237 189 firmware { 238 - scm { 190 + scm: scm { 239 191 compatible = "qcom,scm"; 240 192 clocks = <&gcc GCC_CRYPTO_CLK>, <&gcc GCC_CRYPTO_AXI_CLK>, <&gcc GCC_CRYPTO_AHB_CLK>; 241 193 clock-names = "core", "bus", "iface"; 194 + #reset-cells = <1>; 242 195 }; 243 196 }; 244 197 ··· 275 226 tcsr_mutex_regs: syscon@1905000 { 276 227 compatible = "syscon"; 277 228 reg = <0x1905000 0x20000>; 229 + }; 230 + 231 + tcsr: syscon@1937000 { 232 + compatible = "qcom,tcsr-msm8916", "syscon"; 233 + reg = <0x1937000 0x30000>; 278 234 }; 279 235 280 236 tcsr_mutex: hwlock { ··· 537 483 compatible = "qcom,ci-hdrc"; 538 484 reg = <0x78d9000 0x400>; 539 485 dr_mode = "peripheral"; 540 - interrupts = <GIC_SPI 134 IRQ_TYPE_NONE>; 486 + interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>; 541 487 usb-phy = <&usb_otg>; 542 488 status = "disabled"; 543 489 }; ··· 545 491 usb_host: ehci@78d9000 { 546 492 compatible = "qcom,ehci-host"; 547 493 reg = <0x78d9000 0x400>; 548 - interrupts = <GIC_SPI 134 IRQ_TYPE_NONE>; 494 + interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>; 549 495 usb-phy = <&usb_otg>; 550 496 status = "disabled"; 551 497 }; ··· 553 499 usb_otg: phy@78d9000 { 554 500 compatible = "qcom,usb-otg-snps"; 555 501 reg = <0x78d9000 0x400>; 556 - interrupts = <GIC_SPI 134 IRQ_TYPE_EDGE_BOTH>, 557 - <GIC_SPI 140 IRQ_TYPE_EDGE_RISING>; 502 + interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>, 503 + <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; 558 504 559 505 qcom,vdd-levels = <500000 1000000 1320000>; 560 506 qcom,phy-init-sequence = <0x44 0x6B 0x24 0x13>; ··· 648 594 <0x200a000 0x002100>; 649 595 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg"; 650 596 interrupt-names = "periph_irq"; 651 - interrupts = <GIC_SPI 190 IRQ_TYPE_NONE>; 597 + interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; 652 598 qcom,ee = <0>; 653 599 qcom,channel = <0>; 654 600 #address-cells = <2>; ··· 662 608 reg = <0x00022000 0x200>; 663 609 clocks = <&gcc GCC_PRNG_AHB_CLK>; 664 610 clock-names = "core"; 611 + }; 612 + 613 + qfprom: qfprom@5c000 { 614 + compatible = "qcom,qfprom"; 615 + reg = <0x5c000 0x1000>; 616 + #address-cells = <1>; 617 + #size-cells = <1>; 618 + tsens_caldata: caldata@d0 { 619 + reg = <0xd0 0x8>; 620 + }; 621 + tsens_calsel: calsel@ec { 622 + reg = <0xec 0x4>; 623 + }; 624 + }; 625 + 626 + tsens: thermal-sensor@4a8000 { 627 + compatible = "qcom,msm8916-tsens"; 628 + reg = <0x4a8000 0x2000>; 629 + nvmem-cells = <&tsens_caldata>, <&tsens_calsel>; 630 + nvmem-cell-names = "calib", "calib_sel"; 631 + #thermal-sensor-cells = <1>; 632 + }; 633 + 634 + mdss: mdss@1a00000 { 635 + compatible = "qcom,mdss"; 636 + reg = <0x1a00000 0x1000>, 637 + <0x1ac8000 0x3000>; 638 + reg-names = "mdss_phys", "vbif_phys"; 639 + 640 + power-domains = <&gcc MDSS_GDSC>; 641 + 642 + clocks = <&gcc GCC_MDSS_AHB_CLK>, 643 + <&gcc GCC_MDSS_AXI_CLK>, 644 + <&gcc GCC_MDSS_VSYNC_CLK>; 645 + clock-names = "iface_clk", 646 + "bus_clk", 647 + "vsync_clk"; 648 + 649 + interrupts = <0 72 0>; 650 + 651 + interrupt-controller; 652 + #interrupt-cells = <1>; 653 + 654 + #address-cells = <1>; 655 + #size-cells = <1>; 656 + ranges; 657 + 658 + mdp: mdp@1a01000 { 659 + compatible = "qcom,mdp5"; 660 + reg = <0x1a01000 0x90000>; 661 + reg-names = "mdp_phys"; 662 + 663 + interrupt-parent = <&mdss>; 664 + interrupts = <0 0>; 665 + 666 + clocks = <&gcc GCC_MDSS_AHB_CLK>, 667 + <&gcc GCC_MDSS_AXI_CLK>, 668 + <&gcc GCC_MDSS_MDP_CLK>, 669 + <&gcc GCC_MDSS_VSYNC_CLK>; 670 + clock-names = "iface_clk", 671 + "bus_clk", 672 + "core_clk", 673 + "vsync_clk"; 674 + 675 + ports { 676 + #address-cells = <1>; 677 + #size-cells = <0>; 678 + 679 + port@0 { 680 + reg = <0>; 681 + mdp5_intf1_out: endpoint { 682 + remote-endpoint = <&dsi0_in>; 683 + }; 684 + }; 685 + }; 686 + }; 687 + 688 + dsi0: dsi@1a98000 { 689 + compatible = "qcom,mdss-dsi-ctrl"; 690 + reg = <0x1a98000 0x25c>; 691 + reg-names = "dsi_ctrl"; 692 + 693 + interrupt-parent = <&mdss>; 694 + interrupts = <4 0>; 695 + 696 + assigned-clocks = <&gcc BYTE0_CLK_SRC>, 697 + <&gcc PCLK0_CLK_SRC>; 698 + assigned-clock-parents = <&dsi_phy0 0>, 699 + <&dsi_phy0 1>; 700 + 701 + clocks = <&gcc GCC_MDSS_MDP_CLK>, 702 + <&gcc GCC_MDSS_AHB_CLK>, 703 + <&gcc GCC_MDSS_AXI_CLK>, 704 + <&gcc GCC_MDSS_BYTE0_CLK>, 705 + <&gcc GCC_MDSS_PCLK0_CLK>, 706 + <&gcc GCC_MDSS_ESC0_CLK>; 707 + clock-names = "mdp_core_clk", 708 + "iface_clk", 709 + "bus_clk", 710 + "byte_clk", 711 + "pixel_clk", 712 + "core_clk"; 713 + phys = <&dsi_phy0>; 714 + phy-names = "dsi-phy"; 715 + 716 + ports { 717 + #address-cells = <1>; 718 + #size-cells = <0>; 719 + 720 + port@0 { 721 + reg = <0>; 722 + dsi0_in: endpoint { 723 + remote-endpoint = <&mdp5_intf1_out>; 724 + }; 725 + }; 726 + 727 + port@1 { 728 + reg = <1>; 729 + dsi0_out: endpoint { 730 + }; 731 + }; 732 + }; 733 + }; 734 + 735 + dsi_phy0: dsi-phy@1a98300 { 736 + compatible = "qcom,dsi-phy-28nm-lp"; 737 + reg = <0x1a98300 0xd4>, 738 + <0x1a98500 0x280>, 739 + <0x1a98780 0x30>; 740 + reg-names = "dsi_pll", 741 + "dsi_phy", 742 + "dsi_phy_regulator"; 743 + 744 + #clock-cells = <1>; 745 + 746 + clocks = <&gcc GCC_MDSS_AHB_CLK>; 747 + clock-names = "iface_clk"; 748 + }; 665 749 }; 666 750 }; 667 751 ··· 847 655 pm8916_l18: l18 {}; 848 656 }; 849 657 }; 658 + }; 659 + }; 660 + 661 + hexagon-smp2p { 662 + compatible = "qcom,smp2p"; 663 + qcom,smem = <435>, <428>; 664 + 665 + interrupts = <0 27 IRQ_TYPE_EDGE_RISING>; 666 + 667 + qcom,ipc = <&apcs 8 14>; 668 + 669 + qcom,local-pid = <0>; 670 + qcom,remote-pid = <1>; 671 + 672 + hexagon_smp2p_out: master-kernel { 673 + qcom,entry-name = "master-kernel"; 674 + 675 + #qcom,smem-state-cells = <1>; 676 + }; 677 + 678 + hexagon_smp2p_in: slave-kernel { 679 + qcom,entry-name = "slave-kernel"; 680 + 681 + interrupt-controller; 682 + #interrupt-cells = <2>; 683 + }; 684 + }; 685 + 686 + wcnss-smp2p { 687 + compatible = "qcom,smp2p"; 688 + qcom,smem = <451>, <431>; 689 + 690 + interrupts = <0 143 IRQ_TYPE_EDGE_RISING>; 691 + 692 + qcom,ipc = <&apcs 8 18>; 693 + 694 + qcom,local-pid = <0>; 695 + qcom,remote-pid = <4>; 696 + 697 + wcnss_smp2p_out: master-kernel { 698 + qcom,entry-name = "master-kernel"; 699 + 700 + #qcom,smem-state-cells = <1>; 701 + }; 702 + 703 + wcnss_smp2p_in: slave-kernel { 704 + qcom,entry-name = "slave-kernel"; 705 + 706 + interrupt-controller; 707 + #interrupt-cells = <2>; 708 + }; 709 + }; 710 + 711 + smsm { 712 + compatible = "qcom,smsm"; 713 + 714 + #address-cells = <1>; 715 + #size-cells = <0>; 716 + 717 + qcom,ipc-1 = <&apcs 0 13>; 718 + qcom,ipc-6 = <&apcs 0 19>; 719 + 720 + apps_smsm: apps@0 { 721 + reg = <0>; 722 + 723 + #qcom,smem-state-cells = <1>; 724 + }; 725 + 726 + hexagon_smsm: hexagon@1 { 727 + reg = <1>; 728 + interrupts = <0 26 IRQ_TYPE_EDGE_RISING>; 729 + 730 + interrupt-controller; 731 + #interrupt-cells = <2>; 732 + }; 733 + 734 + wcnss_smsm: wcnss@6 { 735 + reg = <6>; 736 + interrupts = <0 144 IRQ_TYPE_EDGE_RISING>; 737 + 738 + interrupt-controller; 739 + #interrupt-cells = <2>; 850 740 }; 851 741 }; 852 742 };
+93 -1
arch/arm64/boot/dts/qcom/msm8996.dtsi
··· 97 97 }; 98 98 }; 99 99 100 + thermal-zones { 101 + cpu-thermal0 { 102 + polling-delay-passive = <250>; 103 + polling-delay = <1000>; 104 + 105 + thermal-sensors = <&tsens0 3>; 106 + 107 + trips { 108 + cpu_alert0: trip0 { 109 + temperature = <75000>; 110 + hysteresis = <2000>; 111 + type = "passive"; 112 + }; 113 + 114 + cpu_crit0: trip1 { 115 + temperature = <110000>; 116 + hysteresis = <2000>; 117 + type = "critical"; 118 + }; 119 + }; 120 + }; 121 + 122 + cpu-thermal1 { 123 + polling-delay-passive = <250>; 124 + polling-delay = <1000>; 125 + 126 + thermal-sensors = <&tsens0 5>; 127 + 128 + trips { 129 + cpu_alert1: trip0 { 130 + temperature = <75000>; 131 + hysteresis = <2000>; 132 + type = "passive"; 133 + }; 134 + 135 + cpu_crit1: trip1 { 136 + temperature = <110000>; 137 + hysteresis = <2000>; 138 + type = "critical"; 139 + }; 140 + }; 141 + }; 142 + 143 + cpu-thermal2 { 144 + polling-delay-passive = <250>; 145 + polling-delay = <1000>; 146 + 147 + thermal-sensors = <&tsens0 8>; 148 + 149 + trips { 150 + cpu_alert2: trip0 { 151 + temperature = <75000>; 152 + hysteresis = <2000>; 153 + type = "passive"; 154 + }; 155 + 156 + cpu_crit2: trip1 { 157 + temperature = <110000>; 158 + hysteresis = <2000>; 159 + type = "critical"; 160 + }; 161 + }; 162 + }; 163 + 164 + cpu-thermal3 { 165 + polling-delay-passive = <250>; 166 + polling-delay = <1000>; 167 + 168 + thermal-sensors = <&tsens0 10>; 169 + 170 + trips { 171 + cpu_alert3: trip0 { 172 + temperature = <75000>; 173 + hysteresis = <2000>; 174 + type = "passive"; 175 + }; 176 + 177 + cpu_crit3: trip1 { 178 + temperature = <110000>; 179 + hysteresis = <2000>; 180 + type = "critical"; 181 + }; 182 + }; 183 + }; 184 + }; 185 + 100 186 timer { 101 187 compatible = "arm,armv8-timer"; 102 188 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, ··· 265 179 #address-cells = <1>; 266 180 #size-cells = <0>; 267 181 status = "disabled"; 182 + }; 183 + 184 + tsens0: thermal-sensor@4a8000 { 185 + compatible = "qcom,msm8996-tsens"; 186 + reg = <0x4a8000 0x2000>; 187 + #thermal-sensor-cells = <1>; 268 188 }; 269 189 270 190 blsp2_uart1: serial@75b0000 { ··· 431 339 <0x400a000 0x002100>; 432 340 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg"; 433 341 interrupt-names = "periph_irq"; 434 - interrupts = <GIC_SPI 326 IRQ_TYPE_NONE>; 342 + interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>; 435 343 qcom,ee = <0>; 436 344 qcom,channel = <0>; 437 345 #address-cells = <2>;
+1
arch/arm64/boot/dts/rockchip/Makefile
··· 1 1 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-evb-act8846.dtb 2 2 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-geekbox.dtb 3 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-orion-r68-meta.dtb 3 4 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-r88.dtb 4 5 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-evb.dtb 5 6
+382
arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts
··· 1 + /* 2 + * Copyright (c) 2016 Matthias Brugger <mbrugger@suse.com> 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPL or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This file is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License as 11 + * published by the Free Software Foundation; either version 2 of the 12 + * License, or (at your option) any later version. 13 + * 14 + * This file is distributed in the hope that it will be useful, 15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 + * GNU General Public License for more details. 18 + * 19 + * Or, alternatively, 20 + * 21 + * b) Permission is hereby granted, free of charge, to any person 22 + * obtaining a copy of this software and associated documentation 23 + * files (the "Software"), to deal in the Software without 24 + * restriction, including without limitation the rights to use, 25 + * copy, modify, merge, publish, distribute, sublicense, and/or 26 + * sell copies of the Software, and to permit persons to whom the 27 + * Software is furnished to do so, subject to the following 28 + * conditions: 29 + * 30 + * The above copyright notice and this permission notice shall be 31 + * included in all copies or substantial portions of the Software. 32 + * 33 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 + * OTHER DEALINGS IN THE SOFTWARE. 41 + */ 42 + 43 + /dts-v1/; 44 + #include <dt-bindings/input/input.h> 45 + #include "rk3368.dtsi" 46 + 47 + / { 48 + model = "Rockchip Orion R68"; 49 + compatible = "tronsmart,orion-r68-meta", "rockchip,rk3368"; 50 + 51 + chosen { 52 + stdout-path = "serial2:115200n8"; 53 + }; 54 + 55 + memory { 56 + device_type = "memory"; 57 + reg = <0x0 0x0 0x0 0x80000000>; 58 + }; 59 + 60 + emmc_pwrseq: emmc-pwrseq { 61 + compatible = "mmc-pwrseq-emmc"; 62 + pinctrl-0 = <&emmc_reset>; 63 + pinctrl-names = "default"; 64 + reset-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>; 65 + }; 66 + 67 + ext_gmac: external-gmac-clock { 68 + compatible = "fixed-clock"; 69 + #clock-cells = <0>; 70 + clock-frequency = <125000000>; 71 + clock-output-names = "ext_gmac"; 72 + }; 73 + 74 + keys: gpio-keys { 75 + compatible = "gpio-keys"; 76 + pinctrl-names = "default"; 77 + pinctrl-0 = <&pwr_key>; 78 + 79 + power { 80 + wakeup-source; 81 + gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>; 82 + label = "GPIO Power"; 83 + linux,code = <KEY_POWER>; 84 + }; 85 + }; 86 + 87 + leds: gpio-leds { 88 + compatible = "gpio-leds"; 89 + 90 + red { 91 + gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>; 92 + label = "orion:red:led"; 93 + pinctrl-names = "default"; 94 + pinctrl-0 = <&led_ctl>; 95 + default-state = "on"; 96 + }; 97 + 98 + blue { 99 + gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; 100 + label = "orion:blue:led"; 101 + pinctrl-names = "default"; 102 + pinctrl-0 = <&stby_pwren>; 103 + default-state = "off"; 104 + }; 105 + }; 106 + 107 + vcc_18: vcc18-regulator { 108 + compatible = "regulator-fixed"; 109 + regulator-name = "vcc_18"; 110 + regulator-min-microvolt = <1800000>; 111 + regulator-max-microvolt = <1800000>; 112 + regulator-always-on; 113 + regulator-boot-on; 114 + vin-supply = <&vcc_sys>; 115 + }; 116 + 117 + /* supplies both host and otg */ 118 + vcc_host: vcc-host-regulator { 119 + compatible = "regulator-fixed"; 120 + gpio = <&gpio0 4 GPIO_ACTIVE_LOW>; 121 + pinctrl-names = "default"; 122 + pinctrl-0 = <&host_vbus_drv>; 123 + regulator-name = "vcc_host"; 124 + regulator-always-on; 125 + regulator-boot-on; 126 + vin-supply = <&vcc_sys>; 127 + }; 128 + 129 + vcc_io: vcc-io-regulator { 130 + compatible = "regulator-fixed"; 131 + regulator-name = "vcc_io"; 132 + regulator-min-microvolt = <3300000>; 133 + regulator-max-microvolt = <3300000>; 134 + regulator-always-on; 135 + regulator-boot-on; 136 + vin-supply = <&vcc_sys>; 137 + }; 138 + 139 + vcc_lan: vcc-lan-regulator { 140 + compatible = "regulator-fixed"; 141 + regulator-name = "vcc_lan"; 142 + regulator-min-microvolt = <3300000>; 143 + regulator-max-microvolt = <3300000>; 144 + regulator-always-on; 145 + regulator-boot-on; 146 + vin-supply = <&vcc_io>; 147 + }; 148 + 149 + vcc_sd: vcc-sd-regulator { 150 + compatible = "regulator-fixed"; 151 + regulator-name = "vcc_sd"; 152 + gpio = <&gpio3 11 GPIO_ACTIVE_LOW>; 153 + regulator-min-microvolt = <1800000>; 154 + regulator-max-microvolt = <3300000>; 155 + regulator-always-on; 156 + regulator-boot-on; 157 + vin-supply = <&vcc_io>; 158 + }; 159 + 160 + vcc_sys: vcc-sys-regulator { 161 + compatible = "regulator-fixed"; 162 + regulator-name = "vcc_sys"; 163 + regulator-min-microvolt = <5000000>; 164 + regulator-max-microvolt = <5000000>; 165 + regulator-always-on; 166 + regulator-boot-on; 167 + }; 168 + 169 + vccio_sd: vcc-io-sd-regulator { 170 + compatible = "regulator-fixed"; 171 + regulator-name= "vccio_sd"; 172 + regulator-min-microvolt = <1800000>; 173 + regulator-max-microvolt = <3300000>; 174 + regulator-always-on; 175 + regulator-boot-on; 176 + vin-supply = <&vcc_io>; 177 + }; 178 + 179 + vccio_wl: vccio-wl-regulator { 180 + compatible = "regulator-fixed"; 181 + regulator-name = "vccio_wl"; 182 + regulator-min-microvolt = <3300000>; 183 + regulator-max-microvolt = <3300000>; 184 + regulator-always-on; 185 + regulator-boot-on; 186 + vin-supply = <&vcc_io>; 187 + }; 188 + 189 + vdd_10: vdd-10-regulator { 190 + compatible = "regulator-fixed"; 191 + regulator-name = "vdd_10"; 192 + regulator-min-microvolt = <1000000>; 193 + regulator-max-microvolt = <1000000>; 194 + regulator-always-on; 195 + regulator-boot-on; 196 + vin-supply = <&vcc_sys>; 197 + }; 198 + }; 199 + 200 + &emmc { 201 + bus-width = <8>; 202 + cap-mmc-highspeed; 203 + disable-wp; 204 + keep-power-in-suspend; 205 + mmc-pwrseq = <&emmc_pwrseq>; 206 + mmc-hs200-1_2v; 207 + mmc-hs200-1_8v; 208 + non-removable; 209 + num-slots = <1>; 210 + pinctrl-names = "default"; 211 + pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>; 212 + status = "okay"; 213 + }; 214 + 215 + &gmac { 216 + assigned-clocks = <&cru SCLK_MAC>; 217 + assigned-clock-parents = <&ext_gmac>; 218 + clock_in_out = "input"; 219 + phy-supply = <&vcc_lan>; 220 + phy-mode = "rgmii"; 221 + pinctrl-names = "default"; 222 + pinctrl-0 = <&rgmii_pins>; 223 + snps,reset-gpio = <&gpio3 12 0>; 224 + snps,reset-active-low; 225 + snps,reset-delays-us = <0 10000 1000000>; 226 + tx_delay = <0x30>; 227 + rx_delay = <0x10>; 228 + status = "ok"; 229 + }; 230 + 231 + &i2c0 { 232 + status = "okay"; 233 + 234 + vdd_cpu: syr827@40 { 235 + compatible = "silergy,syr827"; 236 + reg = <0x40>; 237 + fcs,suspend-voltage-selector = <1>; 238 + regulator-name = "vdd_cpu"; 239 + regulator-enable-ramp-delay = <300>; 240 + regulator-min-microvolt = <712500>; 241 + regulator-max-microvolt = <1500000>; 242 + regulator-ramp-delay = <8000>; 243 + regulator-always-on; 244 + regulator-boot-on; 245 + vin-supply = <&vcc_sys>; 246 + }; 247 + 248 + hym8563: hym8563@51 { 249 + compatible = "haoyu,hym8563"; 250 + reg = <0x51>; 251 + #clock-cells = <0>; 252 + clock-frequency = <32768>; 253 + clock-output-names = "xin32k"; 254 + /* rtc_int is not connected */ 255 + }; 256 + }; 257 + 258 + &pinctrl { 259 + pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma { 260 + bias-disable; 261 + drive-strength = <8>; 262 + }; 263 + 264 + pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma { 265 + bias-pull-up; 266 + drive-strength = <8>; 267 + }; 268 + 269 + emmc { 270 + emmc_bus8: emmc-bus8 { 271 + rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 272 + <1 19 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 273 + <1 20 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 274 + <1 21 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 275 + <1 22 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 276 + <1 23 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 277 + <1 24 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, 278 + <1 25 RK_FUNC_2 &pcfg_pull_up_drv_8ma>; 279 + }; 280 + 281 + emmc-clk { 282 + rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none_drv_8ma>; 283 + }; 284 + 285 + emmc-cmd { 286 + rockchip,pins = <1 26 RK_FUNC_2 &pcfg_pull_up_drv_8ma>; 287 + }; 288 + 289 + emmc_reset: emmc-reset { 290 + rockchip,pins = <2 3 RK_FUNC_GPIO &pcfg_pull_none>; 291 + }; 292 + }; 293 + 294 + keys { 295 + pwr_key: pwr-key { 296 + rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_down>; 297 + }; 298 + }; 299 + 300 + leds { 301 + stby_pwren: stby-pwren { 302 + rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>; 303 + }; 304 + 305 + led_ctl: led-ctl { 306 + rockchip,pins = <3 29 RK_FUNC_GPIO &pcfg_pull_none>; 307 + }; 308 + }; 309 + 310 + sdmmc { 311 + sdmmc_clk: sdmmc-clk { 312 + rockchip,pins = <2 9 RK_FUNC_1 &pcfg_pull_none_drv_8ma>; 313 + }; 314 + 315 + sdmmc_cmd: sdmmc-cmd { 316 + rockchip,pins = <2 10 RK_FUNC_1 &pcfg_pull_up_drv_8ma>; 317 + }; 318 + 319 + sdmmc_cd: sdmmc-cd { 320 + rockchip,pins = <2 11 RK_FUNC_1 &pcfg_pull_up_drv_8ma>; 321 + }; 322 + 323 + sdmmc_bus1: sdmmc-bus1 { 324 + rockchip,pins = <2 5 RK_FUNC_1 &pcfg_pull_up_drv_8ma>; 325 + }; 326 + 327 + sdmmc_bus4: sdmmc-bus4 { 328 + rockchip,pins = <2 5 RK_FUNC_1 &pcfg_pull_up_drv_8ma>, 329 + <2 6 RK_FUNC_1 &pcfg_pull_up_drv_8ma>, 330 + <2 7 RK_FUNC_1 &pcfg_pull_up_drv_8ma>, 331 + <2 8 RK_FUNC_1 &pcfg_pull_up_drv_8ma>; 332 + }; 333 + }; 334 + 335 + usb { 336 + host_vbus_drv: host-vbus-drv { 337 + rockchip,pins = <0 4 RK_FUNC_GPIO &pcfg_pull_none>; 338 + }; 339 + }; 340 + }; 341 + 342 + &saradc { 343 + vref-supply = <&vcc_18>; 344 + status = "okay"; 345 + }; 346 + 347 + &sdmmc { 348 + bus-width = <4>; 349 + clock-frequency = <50000000>; 350 + clock-freq-min-max = <400000 50000000>; 351 + cap-sd-highspeed; 352 + card-detect-delay = <200>; 353 + keep-power-in-suspend; 354 + num-slots = <1>; 355 + pinctrl-names = "default"; 356 + pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; 357 + vmmc-supply = <&vcc_sd>; 358 + vqmmc-supply = <&vccio_sd>; 359 + status = "okay"; 360 + }; 361 + 362 + &uart2 { 363 + status = "okay"; 364 + }; 365 + 366 + &uart4 { 367 + pinctrl-names = "default"; 368 + pinctrl-0 = <&uart4_xfer>; 369 + status = "okay"; 370 + }; 371 + 372 + &usb_host0_ehci { 373 + status = "okay"; 374 + }; 375 + 376 + &usb_otg { 377 + status = "okay"; 378 + }; 379 + 380 + &wdt { 381 + status = "okay"; 382 + };
-1
arch/arm64/boot/dts/rockchip/rk3368-r88.dts
··· 248 248 &sdio0 { 249 249 assigned-clocks = <&cru SCLK_SDIO0>; 250 250 assigned-clock-parents = <&cru PLL_CPLL>; 251 - broken-cd; 252 251 bus-width = <4>; 253 252 cap-sd-highspeed; 254 253 cap-sdio-irq;
+10
arch/arm64/boot/dts/rockchip/rk3368.dtsi
··· 45 45 #include <dt-bindings/interrupt-controller/irq.h> 46 46 #include <dt-bindings/interrupt-controller/arm-gic.h> 47 47 #include <dt-bindings/pinctrl/rockchip.h> 48 + #include <dt-bindings/soc/rockchip,boot-mode.h> 48 49 #include <dt-bindings/thermal/thermal.h> 49 50 50 51 / { ··· 641 640 pmu_io_domains: io-domains { 642 641 compatible = "rockchip,rk3368-pmu-io-voltage-domain"; 643 642 status = "disabled"; 643 + }; 644 + 645 + reboot-mode { 646 + compatible = "syscon-reboot-mode"; 647 + offset = <0x200>; 648 + mode-normal = <BOOT_NORMAL>; 649 + mode-recovery = <BOOT_RECOVERY>; 650 + mode-bootloader = <BOOT_FASTBOOT>; 651 + mode-loader = <BOOT_BL_DOWNLOAD>; 644 652 }; 645 653 }; 646 654
+87
arch/arm64/boot/dts/rockchip/rk3399-evb.dts
··· 49 49 compatible = "rockchip,rk3399-evb", "rockchip,rk3399", 50 50 "google,rk3399evb-rev2"; 51 51 52 + clkin_gmac: external-gmac-clock { 53 + compatible = "fixed-clock"; 54 + clock-frequency = <125000000>; 55 + clock-output-names = "clkin_gmac"; 56 + #clock-cells = <0>; 57 + }; 58 + 52 59 vdd_center: vdd-center { 53 60 compatible = "pwm-regulator"; 54 61 pwms = <&pwm3 0 25000 0>; ··· 76 69 regulator-max-microvolt = <3300000>; 77 70 }; 78 71 72 + vcc5v0_sys: vcc5v0-sys { 73 + compatible = "regulator-fixed"; 74 + regulator-name = "vcc5v0_sys"; 75 + regulator-always-on; 76 + regulator-boot-on; 77 + regulator-min-microvolt = <5000000>; 78 + regulator-max-microvolt = <5000000>; 79 + }; 80 + 81 + vcc5v0_host: vcc5v0-host-regulator { 82 + compatible = "regulator-fixed"; 83 + enable-active-high; 84 + gpio = <&gpio4 25 GPIO_ACTIVE_HIGH>; 85 + pinctrl-names = "default"; 86 + pinctrl-0 = <&vcc5v0_host_en>; 87 + regulator-name = "vcc5v0_host"; 88 + vin-supply = <&vcc5v0_sys>; 89 + }; 90 + 79 91 vcc_phy: vcc-phy-regulator { 80 92 compatible = "regulator-fixed"; 81 93 regulator-name = "vcc_phy"; 82 94 regulator-always-on; 83 95 regulator-boot-on; 84 96 }; 97 + 98 + vcc_phy: vcc-phy-regulator { 99 + compatible = "regulator-fixed"; 100 + regulator-name = "vcc_phy"; 101 + regulator-always-on; 102 + regulator-boot-on; 103 + }; 104 + 85 105 }; 86 106 87 107 &emmc_phy { 108 + status = "okay"; 109 + }; 110 + 111 + &gmac { 112 + assigned-clocks = <&cru SCLK_RMII_SRC>; 113 + assigned-clock-parents = <&clkin_gmac>; 114 + clock_in_out = "input"; 115 + phy-supply = <&vcc_phy>; 116 + phy-mode = "rgmii"; 117 + pinctrl-names = "default"; 118 + pinctrl-0 = <&rgmii_pins>; 119 + snps,reset-gpio = <&gpio3 15 GPIO_ACTIVE_LOW>; 120 + snps,reset-active-low; 121 + snps,reset-delays-us = <0 10000 50000>; 122 + tx_delay = <0x28>; 123 + rx_delay = <0x11>; 88 124 status = "okay"; 89 125 }; 90 126 ··· 148 98 mmc-hs400-1_8v; 149 99 mmc-hs400-enhanced-strobe; 150 100 non-removable; 101 + status = "okay"; 102 + }; 103 + 104 + &pcie_phy { 105 + status = "disabled"; 106 + }; 107 + 108 + &pcie0 { 109 + ep-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; 110 + num-lanes = <4>; 111 + pinctrl-names = "default"; 112 + pinctrl-0 = <&pcie_clkreqn>; 113 + status = "disabled"; 114 + }; 115 + 116 + &u2phy0 { 117 + status = "okay"; 118 + }; 119 + 120 + &u2phy0_host { 121 + phy-supply = <&vcc5v0_host>; 122 + status = "okay"; 123 + }; 124 + 125 + &u2phy1 { 126 + status = "okay"; 127 + }; 128 + 129 + &u2phy1_host { 130 + phy-supply = <&vcc5v0_host>; 151 131 status = "okay"; 152 132 }; 153 133 ··· 211 131 pmic_dvs2: pmic-dvs2 { 212 132 rockchip,pins = 213 133 <1 18 RK_FUNC_GPIO &pcfg_pull_down>; 134 + }; 135 + }; 136 + 137 + usb2 { 138 + vcc5v0_host_en: vcc5v0-host-en { 139 + rockchip,pins = 140 + <4 25 RK_FUNC_GPIO &pcfg_pull_none>; 214 141 }; 215 142 }; 216 143 };
+554 -53
arch/arm64/boot/dts/rockchip/rk3399.dtsi
··· 45 45 #include <dt-bindings/interrupt-controller/arm-gic.h> 46 46 #include <dt-bindings/interrupt-controller/irq.h> 47 47 #include <dt-bindings/pinctrl/rockchip.h> 48 + #include <dt-bindings/power/rk3399-power.h> 48 49 #include <dt-bindings/thermal/thermal.h> 49 50 50 51 / { ··· 153 152 }; 154 153 }; 155 154 155 + pmu_a53 { 156 + compatible = "arm,cortex-a53-pmu"; 157 + interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster0>; 158 + }; 159 + 160 + pmu_a72 { 161 + compatible = "arm,cortex-a72-pmu"; 162 + interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster1>; 163 + }; 164 + 156 165 psci { 157 166 compatible = "arm,psci-1.0"; 158 167 method = "smc"; ··· 170 159 171 160 timer { 172 161 compatible = "arm,armv8-timer"; 173 - interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, 174 - <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, 175 - <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, 176 - <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; 162 + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>, 163 + <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>, 164 + <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>, 165 + <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>; 177 166 }; 178 167 179 168 xin24m: xin24m { ··· 192 181 dmac_bus: dma-controller@ff6d0000 { 193 182 compatible = "arm,pl330", "arm,primecell"; 194 183 reg = <0x0 0xff6d0000 0x0 0x4000>; 195 - interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>, 196 - <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 184 + interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>, 185 + <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>; 197 186 #dma-cells = <1>; 198 187 clocks = <&cru ACLK_DMAC0_PERILP>; 199 188 clock-names = "apb_pclk"; ··· 202 191 dmac_peri: dma-controller@ff6e0000 { 203 192 compatible = "arm,pl330", "arm,primecell"; 204 193 reg = <0x0 0xff6e0000 0x0 0x4000>; 205 - interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 206 - <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 194 + interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH 0>, 195 + <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH 0>; 207 196 #dma-cells = <1>; 208 197 clocks = <&cru ACLK_DMAC1_PERILP>; 209 198 clock-names = "apb_pclk"; 210 199 }; 211 200 }; 212 201 202 + gmac: ethernet@fe300000 { 203 + compatible = "rockchip,rk3399-gmac"; 204 + reg = <0x0 0xfe300000 0x0 0x10000>; 205 + interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH 0>; 206 + interrupt-names = "macirq"; 207 + clocks = <&cru SCLK_MAC>, <&cru SCLK_MAC_RX>, 208 + <&cru SCLK_MAC_TX>, <&cru SCLK_MACREF>, 209 + <&cru SCLK_MACREF_OUT>, <&cru ACLK_GMAC>, 210 + <&cru PCLK_GMAC>; 211 + clock-names = "stmmaceth", "mac_clk_rx", 212 + "mac_clk_tx", "clk_mac_ref", 213 + "clk_mac_refout", "aclk_mac", 214 + "pclk_mac"; 215 + power-domains = <&power RK3399_PD_GMAC>; 216 + resets = <&cru SRST_A_GMAC>; 217 + reset-names = "stmmaceth"; 218 + rockchip,grf = <&grf>; 219 + status = "disabled"; 220 + }; 221 + 213 222 sdio0: dwmmc@fe310000 { 214 223 compatible = "rockchip,rk3399-dw-mshc", 215 224 "rockchip,rk3288-dw-mshc"; 216 225 reg = <0x0 0xfe310000 0x0 0x4000>; 217 - interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; 226 + interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH 0>; 218 227 clock-freq-min-max = <400000 150000000>; 219 228 clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>, 220 229 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>; ··· 247 216 compatible = "rockchip,rk3399-dw-mshc", 248 217 "rockchip,rk3288-dw-mshc"; 249 218 reg = <0x0 0xfe320000 0x0 0x4000>; 250 - interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 219 + interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH 0>; 251 220 clock-freq-min-max = <400000 150000000>; 252 221 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>, 253 222 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>; ··· 259 228 sdhci: sdhci@fe330000 { 260 229 compatible = "rockchip,rk3399-sdhci-5.1", "arasan,sdhci-5.1"; 261 230 reg = <0x0 0xfe330000 0x0 0x10000>; 262 - interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 231 + interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH 0>; 263 232 arasan,soc-ctl-syscon = <&grf>; 264 233 assigned-clocks = <&cru SCLK_EMMC>; 265 234 assigned-clock-rates = <200000000>; ··· 272 241 status = "disabled"; 273 242 }; 274 243 244 + pcie0: pcie@f8000000 { 245 + compatible = "rockchip,rk3399-pcie"; 246 + reg = <0x0 0xf8000000 0x0 0x2000000>, 247 + <0x0 0xfd000000 0x0 0x1000000>; 248 + reg-names = "axi-base", "apb-base"; 249 + #address-cells = <3>; 250 + #size-cells = <2>; 251 + #interrupt-cells = <1>; 252 + bus-range = <0x0 0x1>; 253 + clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>, 254 + <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>; 255 + clock-names = "aclk", "aclk-perf", 256 + "hclk", "pm"; 257 + interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH 0>, 258 + <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH 0>, 259 + <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH 0>; 260 + interrupt-names = "sys", "legacy", "client"; 261 + interrupt-map-mask = <0 0 0 7>; 262 + interrupt-map = <0 0 0 1 &pcie0_intc 0>, 263 + <0 0 0 2 &pcie0_intc 1>, 264 + <0 0 0 3 &pcie0_intc 2>, 265 + <0 0 0 4 &pcie0_intc 3>; 266 + msi-map = <0x0 &its 0x0 0x1000>; 267 + phys = <&pcie_phy>; 268 + phy-names = "pcie-phy"; 269 + ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x600000 270 + 0x81000000 0x0 0xfa600000 0x0 0xfa600000 0x0 0x100000>; 271 + resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>, 272 + <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>; 273 + reset-names = "core", "mgmt", "mgmt-sticky", "pipe"; 274 + status = "disabled"; 275 + 276 + pcie0_intc: interrupt-controller { 277 + interrupt-controller; 278 + #address-cells = <0>; 279 + #interrupt-cells = <1>; 280 + }; 281 + }; 282 + 275 283 usb_host0_ehci: usb@fe380000 { 276 284 compatible = "generic-ehci"; 277 285 reg = <0x0 0xfe380000 0x0 0x20000>; 278 - interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 286 + interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH 0>; 279 287 clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>; 280 288 clock-names = "hclk_host0", "hclk_host0_arb"; 289 + phys = <&u2phy0_host>; 290 + phy-names = "usb"; 281 291 status = "disabled"; 282 292 }; 283 293 284 294 usb_host0_ohci: usb@fe3a0000 { 285 295 compatible = "generic-ohci"; 286 296 reg = <0x0 0xfe3a0000 0x0 0x20000>; 287 - interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 297 + interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>; 288 298 clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>; 289 299 clock-names = "hclk_host0", "hclk_host0_arb"; 290 300 status = "disabled"; ··· 334 262 usb_host1_ehci: usb@fe3c0000 { 335 263 compatible = "generic-ehci"; 336 264 reg = <0x0 0xfe3c0000 0x0 0x20000>; 337 - interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 265 + interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH 0>; 338 266 clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>; 339 267 clock-names = "hclk_host1", "hclk_host1_arb"; 268 + phys = <&u2phy1_host>; 269 + phy-names = "usb"; 340 270 status = "disabled"; 341 271 }; 342 272 343 273 usb_host1_ohci: usb@fe3e0000 { 344 274 compatible = "generic-ohci"; 345 275 reg = <0x0 0xfe3e0000 0x0 0x20000>; 346 - interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 276 + interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH 0>; 347 277 clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>; 348 278 clock-names = "hclk_host1", "hclk_host1_arb"; 349 279 status = "disabled"; ··· 353 279 354 280 gic: interrupt-controller@fee00000 { 355 281 compatible = "arm,gic-v3"; 356 - #interrupt-cells = <3>; 282 + #interrupt-cells = <4>; 357 283 #address-cells = <2>; 358 284 #size-cells = <2>; 359 285 ranges; ··· 364 290 <0x0 0xfff00000 0 0x10000>, /* GICC */ 365 291 <0x0 0xfff10000 0 0x10000>, /* GICH */ 366 292 <0x0 0xfff20000 0 0x10000>; /* GICV */ 367 - interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 293 + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>; 368 294 its: interrupt-controller@fee20000 { 369 295 compatible = "arm,gic-v3-its"; 370 296 msi-controller; 371 297 reg = <0x0 0xfee20000 0x0 0x20000>; 372 298 }; 299 + 300 + ppi-partitions { 301 + ppi_cluster0: interrupt-partition-0 { 302 + affinity = <&cpu_l0 &cpu_l1 &cpu_l2 &cpu_l3>; 303 + }; 304 + 305 + ppi_cluster1: interrupt-partition-1 { 306 + affinity = <&cpu_b0 &cpu_b1>; 307 + }; 308 + }; 309 + }; 310 + 311 + saradc: saradc@ff100000 { 312 + compatible = "rockchip,rk3399-saradc"; 313 + reg = <0x0 0xff100000 0x0 0x100>; 314 + interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH 0>; 315 + #io-channel-cells = <1>; 316 + clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>; 317 + clock-names = "saradc", "apb_pclk"; 318 + resets = <&cru SRST_P_SARADC>; 319 + reset-names = "saradc-apb"; 320 + status = "disabled"; 373 321 }; 374 322 375 323 i2c1: i2c@ff110000 { ··· 401 305 assigned-clock-rates = <200000000>; 402 306 clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>; 403 307 clock-names = "i2c", "pclk"; 404 - interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; 308 + interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH 0>; 405 309 pinctrl-names = "default"; 406 310 pinctrl-0 = <&i2c1_xfer>; 407 311 #address-cells = <1>; ··· 416 320 assigned-clock-rates = <200000000>; 417 321 clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>; 418 322 clock-names = "i2c", "pclk"; 419 - interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 323 + interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH 0>; 420 324 pinctrl-names = "default"; 421 325 pinctrl-0 = <&i2c2_xfer>; 422 326 #address-cells = <1>; ··· 431 335 assigned-clock-rates = <200000000>; 432 336 clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>; 433 337 clock-names = "i2c", "pclk"; 434 - interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 338 + interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH 0>; 435 339 pinctrl-names = "default"; 436 340 pinctrl-0 = <&i2c3_xfer>; 437 341 #address-cells = <1>; ··· 446 350 assigned-clock-rates = <200000000>; 447 351 clocks = <&cru SCLK_I2C5>, <&cru PCLK_I2C5>; 448 352 clock-names = "i2c", "pclk"; 449 - interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 353 + interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>; 450 354 pinctrl-names = "default"; 451 355 pinctrl-0 = <&i2c5_xfer>; 452 356 #address-cells = <1>; ··· 461 365 assigned-clock-rates = <200000000>; 462 366 clocks = <&cru SCLK_I2C6>, <&cru PCLK_I2C6>; 463 367 clock-names = "i2c", "pclk"; 464 - interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 368 + interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH 0>; 465 369 pinctrl-names = "default"; 466 370 pinctrl-0 = <&i2c6_xfer>; 467 371 #address-cells = <1>; ··· 476 380 assigned-clock-rates = <200000000>; 477 381 clocks = <&cru SCLK_I2C7>, <&cru PCLK_I2C7>; 478 382 clock-names = "i2c", "pclk"; 479 - interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 383 + interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH 0>; 480 384 pinctrl-names = "default"; 481 385 pinctrl-0 = <&i2c7_xfer>; 482 386 #address-cells = <1>; ··· 489 393 reg = <0x0 0xff180000 0x0 0x100>; 490 394 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>; 491 395 clock-names = "baudclk", "apb_pclk"; 492 - interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; 396 + interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH 0>; 493 397 reg-shift = <2>; 494 398 reg-io-width = <4>; 495 399 pinctrl-names = "default"; ··· 502 406 reg = <0x0 0xff190000 0x0 0x100>; 503 407 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>; 504 408 clock-names = "baudclk", "apb_pclk"; 505 - interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 409 + interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH 0>; 506 410 reg-shift = <2>; 507 411 reg-io-width = <4>; 508 412 pinctrl-names = "default"; ··· 515 419 reg = <0x0 0xff1a0000 0x0 0x100>; 516 420 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>; 517 421 clock-names = "baudclk", "apb_pclk"; 518 - interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 422 + interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH 0>; 519 423 reg-shift = <2>; 520 424 reg-io-width = <4>; 521 425 pinctrl-names = "default"; ··· 528 432 reg = <0x0 0xff1b0000 0x0 0x100>; 529 433 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>; 530 434 clock-names = "baudclk", "apb_pclk"; 531 - interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; 435 + interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH 0>; 532 436 reg-shift = <2>; 533 437 reg-io-width = <4>; 534 438 pinctrl-names = "default"; ··· 541 445 reg = <0x0 0xff1c0000 0x0 0x1000>; 542 446 clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>; 543 447 clock-names = "spiclk", "apb_pclk"; 544 - interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; 448 + interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH 0>; 545 449 pinctrl-names = "default"; 546 450 pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>; 547 451 #address-cells = <1>; ··· 554 458 reg = <0x0 0xff1d0000 0x0 0x1000>; 555 459 clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>; 556 460 clock-names = "spiclk", "apb_pclk"; 557 - interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; 461 + interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH 0>; 558 462 pinctrl-names = "default"; 559 463 pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>; 560 464 #address-cells = <1>; ··· 567 471 reg = <0x0 0xff1e0000 0x0 0x1000>; 568 472 clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>; 569 473 clock-names = "spiclk", "apb_pclk"; 570 - interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; 474 + interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH 0>; 571 475 pinctrl-names = "default"; 572 476 pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>; 573 477 #address-cells = <1>; ··· 580 484 reg = <0x0 0xff1f0000 0x0 0x1000>; 581 485 clocks = <&cru SCLK_SPI4>, <&cru PCLK_SPI4>; 582 486 clock-names = "spiclk", "apb_pclk"; 583 - interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 487 + interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH 0>; 584 488 pinctrl-names = "default"; 585 489 pinctrl-0 = <&spi4_clk &spi4_tx &spi4_rx &spi4_cs0>; 586 490 #address-cells = <1>; ··· 593 497 reg = <0x0 0xff200000 0x0 0x1000>; 594 498 clocks = <&cru SCLK_SPI5>, <&cru PCLK_SPI5>; 595 499 clock-names = "spiclk", "apb_pclk"; 596 - interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>; 500 + interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH 0>; 597 501 pinctrl-names = "default"; 598 502 pinctrl-0 = <&spi5_clk &spi5_tx &spi5_rx &spi5_cs0>; 599 503 #address-cells = <1>; ··· 673 577 tsadc: tsadc@ff260000 { 674 578 compatible = "rockchip,rk3399-tsadc"; 675 579 reg = <0x0 0xff260000 0x0 0x100>; 676 - interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 580 + interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH 0>; 677 581 assigned-clocks = <&cru SCLK_TSADC>; 678 582 assigned-clock-rates = <750000>; 679 583 clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>; ··· 688 592 pinctrl-2 = <&otp_gpio>; 689 593 #thermal-sensor-cells = <1>; 690 594 status = "disabled"; 595 + }; 596 + 597 + qos_gmac: qos@ffa5c000 { 598 + compatible = "syscon"; 599 + reg = <0x0 0xffa5c000 0x0 0x20>; 600 + }; 601 + 602 + qos_hdcp: qos@ffa90000 { 603 + compatible = "syscon"; 604 + reg = <0x0 0xffa90000 0x0 0x20>; 605 + }; 606 + 607 + qos_iep: qos@ffa98000 { 608 + compatible = "syscon"; 609 + reg = <0x0 0xffa98000 0x0 0x20>; 610 + }; 611 + 612 + qos_isp0_m0: qos@ffaa0000 { 613 + compatible = "syscon"; 614 + reg = <0x0 0xffaa0000 0x0 0x20>; 615 + }; 616 + 617 + qos_isp0_m1: qos@ffaa0080 { 618 + compatible = "syscon"; 619 + reg = <0x0 0xffaa0080 0x0 0x20>; 620 + }; 621 + 622 + qos_isp1_m0: qos@ffaa8000 { 623 + compatible = "syscon"; 624 + reg = <0x0 0xffaa8000 0x0 0x20>; 625 + }; 626 + 627 + qos_isp1_m1: qos@ffaa8080 { 628 + compatible = "syscon"; 629 + reg = <0x0 0xffaa8080 0x0 0x20>; 630 + }; 631 + 632 + qos_rga_r: qos@ffab0000 { 633 + compatible = "syscon"; 634 + reg = <0x0 0xffab0000 0x0 0x20>; 635 + }; 636 + 637 + qos_rga_w: qos@ffab0080 { 638 + compatible = "syscon"; 639 + reg = <0x0 0xffab0080 0x0 0x20>; 640 + }; 641 + 642 + qos_video_m0: qos@ffab8000 { 643 + compatible = "syscon"; 644 + reg = <0x0 0xffab8000 0x0 0x20>; 645 + }; 646 + 647 + qos_video_m1_r: qos@ffac0000 { 648 + compatible = "syscon"; 649 + reg = <0x0 0xffac0000 0x0 0x20>; 650 + }; 651 + 652 + qos_video_m1_w: qos@ffac0080 { 653 + compatible = "syscon"; 654 + reg = <0x0 0xffac0080 0x0 0x20>; 655 + }; 656 + 657 + qos_vop_big_r: qos@ffac8000 { 658 + compatible = "syscon"; 659 + reg = <0x0 0xffac8000 0x0 0x20>; 660 + }; 661 + 662 + qos_vop_big_w: qos@ffac8080 { 663 + compatible = "syscon"; 664 + reg = <0x0 0xffac8080 0x0 0x20>; 665 + }; 666 + 667 + qos_vop_little: qos@ffad0000 { 668 + compatible = "syscon"; 669 + reg = <0x0 0xffad0000 0x0 0x20>; 670 + }; 671 + 672 + qos_gpu: qos@ffae0000 { 673 + compatible = "syscon"; 674 + reg = <0x0 0xffae0000 0x0 0x20>; 675 + }; 676 + 677 + pmu: power-management@ff310000 { 678 + compatible = "rockchip,rk3399-pmu", "syscon", "simple-mfd"; 679 + reg = <0x0 0xff310000 0x0 0x1000>; 680 + 681 + /* 682 + * Note: RK3399 supports 6 voltage domains including VD_CORE_L, 683 + * VD_CORE_B, VD_CENTER, VD_GPU, VD_LOGIC and VD_PMU. 684 + * Some of the power domains are grouped together for every 685 + * voltage domain. 686 + * The detail contents as below. 687 + */ 688 + power: power-controller { 689 + compatible = "rockchip,rk3399-power-controller"; 690 + #power-domain-cells = <1>; 691 + #address-cells = <1>; 692 + #size-cells = <0>; 693 + 694 + /* These power domains are grouped by VD_CENTER */ 695 + pd_iep@RK3399_PD_IEP { 696 + reg = <RK3399_PD_IEP>; 697 + clocks = <&cru ACLK_IEP>, 698 + <&cru HCLK_IEP>; 699 + pm_qos = <&qos_iep>; 700 + }; 701 + pd_rga@RK3399_PD_RGA { 702 + reg = <RK3399_PD_RGA>; 703 + clocks = <&cru ACLK_RGA>, 704 + <&cru HCLK_RGA>; 705 + pm_qos = <&qos_rga_r>, 706 + <&qos_rga_w>; 707 + }; 708 + pd_vcodec@RK3399_PD_VCODEC { 709 + reg = <RK3399_PD_VCODEC>; 710 + clocks = <&cru ACLK_VCODEC>, 711 + <&cru HCLK_VCODEC>; 712 + pm_qos = <&qos_video_m0>; 713 + }; 714 + pd_vdu@RK3399_PD_VDU { 715 + reg = <RK3399_PD_VDU>; 716 + clocks = <&cru ACLK_VDU>, 717 + <&cru HCLK_VDU>; 718 + pm_qos = <&qos_video_m1_r>, 719 + <&qos_video_m1_w>; 720 + }; 721 + 722 + /* These power domains are grouped by VD_GPU */ 723 + pd_gpu@RK3399_PD_GPU { 724 + reg = <RK3399_PD_GPU>; 725 + clocks = <&cru ACLK_GPU>; 726 + pm_qos = <&qos_gpu>; 727 + }; 728 + 729 + /* These power domains are grouped by VD_LOGIC */ 730 + pd_gmac@RK3399_PD_GMAC { 731 + reg = <RK3399_PD_GMAC>; 732 + clocks = <&cru ACLK_GMAC>; 733 + pm_qos = <&qos_gmac>; 734 + }; 735 + pd_vio@RK3399_PD_VIO { 736 + reg = <RK3399_PD_VIO>; 737 + #address-cells = <1>; 738 + #size-cells = <0>; 739 + 740 + pd_hdcp@RK3399_PD_HDCP { 741 + reg = <RK3399_PD_HDCP>; 742 + clocks = <&cru ACLK_HDCP>, 743 + <&cru HCLK_HDCP>, 744 + <&cru PCLK_HDCP>; 745 + pm_qos = <&qos_hdcp>; 746 + }; 747 + pd_isp0@RK3399_PD_ISP0 { 748 + reg = <RK3399_PD_ISP0>; 749 + clocks = <&cru ACLK_ISP0>, 750 + <&cru HCLK_ISP0>; 751 + pm_qos = <&qos_isp0_m0>, 752 + <&qos_isp0_m1>; 753 + }; 754 + pd_isp1@RK3399_PD_ISP1 { 755 + reg = <RK3399_PD_ISP1>; 756 + clocks = <&cru ACLK_ISP1>, 757 + <&cru HCLK_ISP1>; 758 + pm_qos = <&qos_isp1_m0>, 759 + <&qos_isp1_m1>; 760 + }; 761 + pd_tcpc0@RK3399_PD_TCPC0 { 762 + reg = <RK3399_PD_TCPD0>; 763 + clocks = <&cru SCLK_UPHY0_TCPDCORE>, 764 + <&cru SCLK_UPHY0_TCPDPHY_REF>; 765 + }; 766 + pd_tcpc1@RK3399_PD_TCPC1 { 767 + reg = <RK3399_PD_TCPD1>; 768 + clocks = <&cru SCLK_UPHY1_TCPDCORE>, 769 + <&cru SCLK_UPHY1_TCPDPHY_REF>; 770 + }; 771 + pd_vo@RK3399_PD_VO { 772 + reg = <RK3399_PD_VO>; 773 + #address-cells = <1>; 774 + #size-cells = <0>; 775 + 776 + pd_vopb@RK3399_PD_VOPB { 777 + reg = <RK3399_PD_VOPB>; 778 + clocks = <&cru ACLK_VOP0>, 779 + <&cru HCLK_VOP0>; 780 + pm_qos = <&qos_vop_big_r>, 781 + <&qos_vop_big_w>; 782 + }; 783 + pd_vopl@RK3399_PD_VOPL { 784 + reg = <RK3399_PD_VOPL>; 785 + clocks = <&cru ACLK_VOP1>, 786 + <&cru HCLK_VOP1>; 787 + pm_qos = <&qos_vop_little>; 788 + }; 789 + }; 790 + }; 791 + }; 691 792 }; 692 793 693 794 pmugrf: syscon@ff320000 { ··· 904 611 reg = <0x0 0xff350000 0x0 0x1000>; 905 612 clocks = <&pmucru SCLK_SPI3_PMU>, <&pmucru PCLK_SPI3_PMU>; 906 613 clock-names = "spiclk", "apb_pclk"; 907 - interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 614 + interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH 0>; 908 615 pinctrl-names = "default"; 909 616 pinctrl-0 = <&spi3_clk &spi3_tx &spi3_rx &spi3_cs0>; 910 617 #address-cells = <1>; ··· 917 624 reg = <0x0 0xff370000 0x0 0x100>; 918 625 clocks = <&pmucru SCLK_UART4_PMU>, <&pmucru PCLK_UART4_PMU>; 919 626 clock-names = "baudclk", "apb_pclk"; 920 - interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; 627 + interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH 0>; 921 628 reg-shift = <2>; 922 629 reg-io-width = <4>; 923 630 pinctrl-names = "default"; ··· 932 639 assigned-clock-rates = <200000000>; 933 640 clocks = <&pmucru SCLK_I2C0_PMU>, <&pmucru PCLK_I2C0_PMU>; 934 641 clock-names = "i2c", "pclk"; 935 - interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; 642 + interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH 0>; 936 643 pinctrl-names = "default"; 937 644 pinctrl-0 = <&i2c0_xfer>; 938 645 #address-cells = <1>; ··· 947 654 assigned-clock-rates = <200000000>; 948 655 clocks = <&pmucru SCLK_I2C4_PMU>, <&pmucru PCLK_I2C4_PMU>; 949 656 clock-names = "i2c", "pclk"; 950 - interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; 657 + interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH 0>; 951 658 pinctrl-names = "default"; 952 659 pinctrl-0 = <&i2c4_xfer>; 953 660 #address-cells = <1>; ··· 962 669 assigned-clock-rates = <200000000>; 963 670 clocks = <&pmucru SCLK_I2C8_PMU>, <&pmucru PCLK_I2C8_PMU>; 964 671 clock-names = "i2c", "pclk"; 965 - interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; 672 + interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>; 966 673 pinctrl-names = "default"; 967 674 pinctrl-0 = <&i2c8_xfer>; 968 675 #address-cells = <1>; ··· 1014 721 status = "disabled"; 1015 722 }; 1016 723 724 + efuse0: efuse@ff690000 { 725 + compatible = "rockchip,rk3399-efuse"; 726 + reg = <0x0 0xff690000 0x0 0x80>; 727 + #address-cells = <1>; 728 + #size-cells = <1>; 729 + clocks = <&cru PCLK_EFUSE1024NS>; 730 + clock-names = "pclk_efuse"; 731 + 732 + /* Data cells */ 733 + cpub_leakage: cpu-leakage@17 { 734 + reg = <0x17 0x1>; 735 + }; 736 + gpu_leakage: gpu-leakage@18 { 737 + reg = <0x18 0x1>; 738 + }; 739 + center_leakage: center-leakage@19 { 740 + reg = <0x19 0x1>; 741 + }; 742 + cpul_leakage: cpu-leakage@1a { 743 + reg = <0x1a 0x1>; 744 + }; 745 + logic_leakage: logic-leakage@1b { 746 + reg = <0x1b 0x1>; 747 + }; 748 + wafer_info: wafer-info@1c { 749 + reg = <0x1c 0x1>; 750 + }; 751 + }; 752 + 1017 753 pmucru: pmu-clock-controller@ff750000 { 1018 754 compatible = "rockchip,rk3399-pmucru"; 1019 755 reg = <0x0 0xff750000 0x0 0x1000>; ··· 1063 741 <&cru ACLK_PERIHP>, <&cru HCLK_PERIHP>, 1064 742 <&cru PCLK_PERIHP>, 1065 743 <&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>, 1066 - <&cru PCLK_PERILP0>, 744 + <&cru PCLK_PERILP0>, <&cru ACLK_CCI>, 1067 745 <&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>; 1068 746 assigned-clock-rates = 1069 747 <594000000>, <800000000>, ··· 1071 749 <150000000>, <75000000>, 1072 750 <37500000>, 1073 751 <100000000>, <100000000>, 1074 - <50000000>, 752 + <50000000>, <600000000>, 1075 753 <100000000>, <50000000>; 1076 754 }; 1077 755 ··· 1086 764 status = "disabled"; 1087 765 }; 1088 766 767 + u2phy0: usb2-phy@e450 { 768 + compatible = "rockchip,rk3399-usb2phy"; 769 + reg = <0xe450 0x10>; 770 + clocks = <&cru SCLK_USB2PHY0_REF>; 771 + clock-names = "phyclk"; 772 + #clock-cells = <0>; 773 + clock-output-names = "clk_usbphy0_480m"; 774 + status = "disabled"; 775 + 776 + u2phy0_host: host-port { 777 + #phy-cells = <0>; 778 + interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>; 779 + interrupt-names = "linestate"; 780 + status = "disabled"; 781 + }; 782 + }; 783 + 784 + u2phy1: usb2-phy@e460 { 785 + compatible = "rockchip,rk3399-usb2phy"; 786 + reg = <0xe460 0x10>; 787 + clocks = <&cru SCLK_USB2PHY1_REF>; 788 + clock-names = "phyclk"; 789 + #clock-cells = <0>; 790 + clock-output-names = "clk_usbphy1_480m"; 791 + status = "disabled"; 792 + 793 + u2phy1_host: host-port { 794 + #phy-cells = <0>; 795 + interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH 0>; 796 + interrupt-names = "linestate"; 797 + status = "disabled"; 798 + }; 799 + }; 800 + 1089 801 emmc_phy: phy@f780 { 1090 802 compatible = "rockchip,rk3399-emmc-phy"; 1091 803 reg = <0xf780 0x24>; ··· 1128 772 #phy-cells = <0>; 1129 773 status = "disabled"; 1130 774 }; 775 + 776 + pcie_phy: pcie-phy { 777 + compatible = "rockchip,rk3399-pcie-phy"; 778 + clocks = <&cru SCLK_PCIEPHY_REF>; 779 + clock-names = "refclk"; 780 + #phy-cells = <0>; 781 + resets = <&cru SRST_PCIEPHY>; 782 + reset-names = "phy"; 783 + status = "disabled"; 784 + }; 1131 785 }; 1132 786 1133 - watchdog@ff840000 { 787 + tcphy0: phy@ff7c0000 { 788 + compatible = "rockchip,rk3399-typec-phy"; 789 + reg = <0x0 0xff7c0000 0x0 0x40000>; 790 + clocks = <&cru SCLK_UPHY0_TCPDCORE>, 791 + <&cru SCLK_UPHY0_TCPDPHY_REF>; 792 + clock-names = "tcpdcore", "tcpdphy-ref"; 793 + assigned-clocks = <&cru SCLK_UPHY0_TCPDCORE>; 794 + assigned-clock-rates = <50000000>; 795 + resets = <&cru SRST_UPHY0>, 796 + <&cru SRST_UPHY0_PIPE_L00>, 797 + <&cru SRST_P_UPHY0_TCPHY>; 798 + reset-names = "uphy", "uphy-pipe", "uphy-tcphy"; 799 + rockchip,grf = <&grf>; 800 + rockchip,typec-conn-dir = <0xe580 0 16>; 801 + rockchip,usb3tousb2-en = <0xe580 3 19>; 802 + rockchip,external-psm = <0xe588 14 30>; 803 + rockchip,pipe-status = <0xe5c0 0 0>; 804 + status = "disabled"; 805 + 806 + tcphy0_dp: dp-port { 807 + #phy-cells = <0>; 808 + }; 809 + 810 + tcphy0_usb3: usb3-port { 811 + #phy-cells = <0>; 812 + }; 813 + }; 814 + 815 + tcphy1: phy@ff800000 { 816 + compatible = "rockchip,rk3399-typec-phy"; 817 + reg = <0x0 0xff800000 0x0 0x40000>; 818 + clocks = <&cru SCLK_UPHY1_TCPDCORE>, 819 + <&cru SCLK_UPHY1_TCPDPHY_REF>; 820 + clock-names = "tcpdcore", "tcpdphy-ref"; 821 + assigned-clocks = <&cru SCLK_UPHY1_TCPDCORE>; 822 + assigned-clock-rates = <50000000>; 823 + resets = <&cru SRST_UPHY1>, 824 + <&cru SRST_UPHY1_PIPE_L00>, 825 + <&cru SRST_P_UPHY1_TCPHY>; 826 + reset-names = "uphy", "uphy-pipe", "uphy-tcphy"; 827 + rockchip,grf = <&grf>; 828 + rockchip,typec-conn-dir = <0xe58c 0 16>; 829 + rockchip,usb3tousb2-en = <0xe58c 3 19>; 830 + rockchip,external-psm = <0xe594 14 30>; 831 + rockchip,pipe-status = <0xe5c0 16 16>; 832 + status = "disabled"; 833 + 834 + tcphy1_dp: dp-port { 835 + #phy-cells = <0>; 836 + }; 837 + 838 + tcphy1_usb3: usb3-port { 839 + #phy-cells = <0>; 840 + }; 841 + }; 842 + 843 + watchdog@ff848000 { 1134 844 compatible = "snps,dw-wdt"; 1135 - reg = <0x0 0xff840000 0x0 0x100>; 845 + reg = <0x0 0xff848000 0x0 0x100>; 1136 846 clocks = <&cru PCLK_WDT>; 1137 - interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 847 + interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH 0>; 1138 848 }; 1139 849 1140 850 rktimer: rktimer@ff850000 { 1141 851 compatible = "rockchip,rk3399-timer"; 1142 852 reg = <0x0 0xff850000 0x0 0x1000>; 1143 - interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 853 + interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH 0>; 1144 854 clocks = <&cru PCLK_TIMER0>, <&cru SCLK_TIMER00>; 1145 855 clock-names = "pclk", "timer"; 1146 856 }; ··· 1214 792 spdif: spdif@ff870000 { 1215 793 compatible = "rockchip,rk3399-spdif"; 1216 794 reg = <0x0 0xff870000 0x0 0x1000>; 1217 - interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; 795 + interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH 0>; 1218 796 dmas = <&dmac_bus 7>; 1219 797 dma-names = "tx"; 1220 798 clock-names = "mclk", "hclk"; ··· 1228 806 compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s"; 1229 807 reg = <0x0 0xff880000 0x0 0x1000>; 1230 808 rockchip,grf = <&grf>; 1231 - interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 809 + interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH 0>; 1232 810 dmas = <&dmac_bus 0>, <&dmac_bus 1>; 1233 811 dma-names = "tx", "rx"; 1234 812 clock-names = "i2s_clk", "i2s_hclk"; ··· 1241 819 i2s1: i2s@ff890000 { 1242 820 compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s"; 1243 821 reg = <0x0 0xff890000 0x0 0x1000>; 1244 - interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 822 + interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH 0>; 1245 823 dmas = <&dmac_bus 2>, <&dmac_bus 3>; 1246 824 dma-names = "tx", "rx"; 1247 825 clock-names = "i2s_clk", "i2s_hclk"; ··· 1254 832 i2s2: i2s@ff8a0000 { 1255 833 compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s"; 1256 834 reg = <0x0 0xff8a0000 0x0 0x1000>; 1257 - interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 835 + interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH 0>; 1258 836 dmas = <&dmac_bus 4>, <&dmac_bus 5>; 1259 837 dma-names = "tx", "rx"; 1260 838 clock-names = "i2s_clk", "i2s_hclk"; ··· 1274 852 compatible = "rockchip,gpio-bank"; 1275 853 reg = <0x0 0xff720000 0x0 0x100>; 1276 854 clocks = <&pmucru PCLK_GPIO0_PMU>; 1277 - interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 855 + interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH 0>; 1278 856 1279 857 gpio-controller; 1280 858 #gpio-cells = <0x2>; ··· 1287 865 compatible = "rockchip,gpio-bank"; 1288 866 reg = <0x0 0xff730000 0x0 0x100>; 1289 867 clocks = <&pmucru PCLK_GPIO1_PMU>; 1290 - interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 868 + interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH 0>; 1291 869 1292 870 gpio-controller; 1293 871 #gpio-cells = <0x2>; ··· 1300 878 compatible = "rockchip,gpio-bank"; 1301 879 reg = <0x0 0xff780000 0x0 0x100>; 1302 880 clocks = <&cru PCLK_GPIO2>; 1303 - interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 881 + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH 0>; 1304 882 1305 883 gpio-controller; 1306 884 #gpio-cells = <0x2>; ··· 1313 891 compatible = "rockchip,gpio-bank"; 1314 892 reg = <0x0 0xff788000 0x0 0x100>; 1315 893 clocks = <&cru PCLK_GPIO3>; 1316 - interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 894 + interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH 0>; 1317 895 1318 896 gpio-controller; 1319 897 #gpio-cells = <0x2>; ··· 1326 904 compatible = "rockchip,gpio-bank"; 1327 905 reg = <0x0 0xff790000 0x0 0x100>; 1328 906 clocks = <&cru PCLK_GPIO4>; 1329 - interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 907 + interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH 0>; 1330 908 1331 909 gpio-controller; 1332 910 #gpio-cells = <0x2>; ··· 1375 953 pcfg_pull_none_13ma: pcfg-pull-none-13ma { 1376 954 bias-disable; 1377 955 drive-strength = <13>; 956 + }; 957 + 958 + clock { 959 + clk_32k: clk-32k { 960 + rockchip,pins = <0 0 RK_FUNC_2 &pcfg_pull_none>; 961 + }; 962 + }; 963 + 964 + gmac { 965 + rgmii_pins: rgmii-pins { 966 + rockchip,pins = 967 + /* mac_txclk */ 968 + <3 17 RK_FUNC_1 &pcfg_pull_none_13ma>, 969 + /* mac_rxclk */ 970 + <3 14 RK_FUNC_1 &pcfg_pull_none>, 971 + /* mac_mdio */ 972 + <3 13 RK_FUNC_1 &pcfg_pull_none>, 973 + /* mac_txen */ 974 + <3 12 RK_FUNC_1 &pcfg_pull_none_13ma>, 975 + /* mac_clk */ 976 + <3 11 RK_FUNC_1 &pcfg_pull_none>, 977 + /* mac_rxdv */ 978 + <3 9 RK_FUNC_1 &pcfg_pull_none>, 979 + /* mac_mdc */ 980 + <3 8 RK_FUNC_1 &pcfg_pull_none>, 981 + /* mac_rxd1 */ 982 + <3 7 RK_FUNC_1 &pcfg_pull_none>, 983 + /* mac_rxd0 */ 984 + <3 6 RK_FUNC_1 &pcfg_pull_none>, 985 + /* mac_txd1 */ 986 + <3 5 RK_FUNC_1 &pcfg_pull_none_13ma>, 987 + /* mac_txd0 */ 988 + <3 4 RK_FUNC_1 &pcfg_pull_none_13ma>, 989 + /* mac_rxd3 */ 990 + <3 3 RK_FUNC_1 &pcfg_pull_none>, 991 + /* mac_rxd2 */ 992 + <3 2 RK_FUNC_1 &pcfg_pull_none>, 993 + /* mac_txd3 */ 994 + <3 1 RK_FUNC_1 &pcfg_pull_none_13ma>, 995 + /* mac_txd2 */ 996 + <3 0 RK_FUNC_1 &pcfg_pull_none_13ma>; 997 + }; 998 + 999 + rmii_pins: rmii-pins { 1000 + rockchip,pins = 1001 + /* mac_mdio */ 1002 + <3 13 RK_FUNC_1 &pcfg_pull_none>, 1003 + /* mac_txen */ 1004 + <3 12 RK_FUNC_1 &pcfg_pull_none_13ma>, 1005 + /* mac_clk */ 1006 + <3 11 RK_FUNC_1 &pcfg_pull_none>, 1007 + /* mac_rxer */ 1008 + <3 10 RK_FUNC_1 &pcfg_pull_none>, 1009 + /* mac_rxdv */ 1010 + <3 9 RK_FUNC_1 &pcfg_pull_none>, 1011 + /* mac_mdc */ 1012 + <3 8 RK_FUNC_1 &pcfg_pull_none>, 1013 + /* mac_rxd1 */ 1014 + <3 7 RK_FUNC_1 &pcfg_pull_none>, 1015 + /* mac_rxd0 */ 1016 + <3 6 RK_FUNC_1 &pcfg_pull_none>, 1017 + /* mac_txd1 */ 1018 + <3 5 RK_FUNC_1 &pcfg_pull_none_13ma>, 1019 + /* mac_txd0 */ 1020 + <3 4 RK_FUNC_1 &pcfg_pull_none_13ma>; 1021 + }; 1378 1022 }; 1379 1023 1380 1024 i2c0 { ··· 1814 1326 <1 14 RK_FUNC_1 &pcfg_pull_none>; 1815 1327 }; 1816 1328 }; 1329 + 1330 + pcie { 1331 + pcie_clkreqn: pci-clkreqn { 1332 + rockchip,pins = 1333 + <2 26 RK_FUNC_2 &pcfg_pull_none>; 1334 + }; 1335 + 1336 + pcie_clkreqnb: pci-clkreqnb { 1337 + rockchip,pins = 1338 + <4 24 RK_FUNC_1 &pcfg_pull_none>; 1339 + }; 1340 + }; 1341 + 1817 1342 }; 1818 1343 };
+3 -1
arch/arm64/boot/dts/socionext/Makefile
··· 1 - dtb-$(CONFIG_ARCH_UNIPHIER) += uniphier-ph1-ld20-ref.dtb 1 + dtb-$(CONFIG_ARCH_UNIPHIER) += \ 2 + uniphier-ld11-ref.dtb \ 3 + uniphier-ld20-ref.dtb 2 4 3 5 always := $(dtb-y) 4 6 clean-files := *.dtb
+100
arch/arm64/boot/dts/socionext/uniphier-ld11-ref.dts
··· 1 + /* 2 + * Device Tree Source for UniPhier LD11 Reference Board 3 + * 4 + * Copyright (C) 2016 Socionext Inc. 5 + * Author: Masahiro Yamada <yamada.masahiro@socionext.com> 6 + * 7 + * This file is dual-licensed: you can use it either under the terms 8 + * of the GPL or the X11 license, at your option. Note that this dual 9 + * licensing only applies to this file, and not this project as a 10 + * whole. 11 + * 12 + * a) This file is free software; you can redistribute it and/or 13 + * modify it under the terms of the GNU General Public License as 14 + * published by the Free Software Foundation; either version 2 of the 15 + * License, or (at your option) any later version. 16 + * 17 + * This file is distributed in the hope that it will be useful, 18 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 + * GNU General Public License for more details. 21 + * 22 + * Or, alternatively, 23 + * 24 + * b) Permission is hereby granted, free of charge, to any person 25 + * obtaining a copy of this software and associated documentation 26 + * files (the "Software"), to deal in the Software without 27 + * restriction, including without limitation the rights to use, 28 + * copy, modify, merge, publish, distribute, sublicense, and/or 29 + * sell copies of the Software, and to permit persons to whom the 30 + * Software is furnished to do so, subject to the following 31 + * conditions: 32 + * 33 + * The above copyright notice and this permission notice shall be 34 + * included in all copies or substantial portions of the Software. 35 + * 36 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 37 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 41 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 + * OTHER DEALINGS IN THE SOFTWARE. 44 + */ 45 + 46 + /dts-v1/; 47 + /include/ "uniphier-ld11.dtsi" 48 + /include/ "uniphier-ref-daughter.dtsi" 49 + /include/ "uniphier-support-card.dtsi" 50 + 51 + / { 52 + model = "UniPhier LD11 Reference Board"; 53 + compatible = "socionext,uniphier-ld11-ref", "socionext,uniphier-ld11"; 54 + 55 + memory { 56 + device_type = "memory"; 57 + reg = <0 0x80000000 0 0x40000000>; 58 + }; 59 + 60 + chosen { 61 + stdout-path = "serial0:115200n8"; 62 + }; 63 + 64 + aliases { 65 + serial0 = &serial0; 66 + serial1 = &serial1; 67 + serial2 = &serial2; 68 + serial3 = &serial3; 69 + i2c0 = &i2c0; 70 + i2c1 = &i2c1; 71 + i2c2 = &i2c2; 72 + i2c3 = &i2c3; 73 + i2c4 = &i2c4; 74 + i2c5 = &i2c5; 75 + }; 76 + }; 77 + 78 + &ethsc { 79 + interrupts = <0 48 4>; 80 + }; 81 + 82 + &serial0 { 83 + status = "okay"; 84 + }; 85 + 86 + &i2c0 { 87 + status = "okay"; 88 + }; 89 + 90 + &usb0 { 91 + status = "okay"; 92 + }; 93 + 94 + &usb1 { 95 + status = "okay"; 96 + }; 97 + 98 + &usb2 { 99 + status = "okay"; 100 + };
+338
arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi
··· 1 + /* 2 + * Device Tree Source for UniPhier LD11 SoC 3 + * 4 + * Copyright (C) 2016 Socionext Inc. 5 + * Author: Masahiro Yamada <yamada.masahiro@socionext.com> 6 + * 7 + * This file is dual-licensed: you can use it either under the terms 8 + * of the GPL or the X11 license, at your option. Note that this dual 9 + * licensing only applies to this file, and not this project as a 10 + * whole. 11 + * 12 + * a) This file is free software; you can redistribute it and/or 13 + * modify it under the terms of the GNU General Public License as 14 + * published by the Free Software Foundation; either version 2 of the 15 + * License, or (at your option) any later version. 16 + * 17 + * This file is distributed in the hope that it will be useful, 18 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 + * GNU General Public License for more details. 21 + * 22 + * Or, alternatively, 23 + * 24 + * b) Permission is hereby granted, free of charge, to any person 25 + * obtaining a copy of this software and associated documentation 26 + * files (the "Software"), to deal in the Software without 27 + * restriction, including without limitation the rights to use, 28 + * copy, modify, merge, publish, distribute, sublicense, and/or 29 + * sell copies of the Software, and to permit persons to whom the 30 + * Software is furnished to do so, subject to the following 31 + * conditions: 32 + * 33 + * The above copyright notice and this permission notice shall be 34 + * included in all copies or substantial portions of the Software. 35 + * 36 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 37 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 41 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 + * OTHER DEALINGS IN THE SOFTWARE. 44 + */ 45 + 46 + /memreserve/ 0x80000000 0x00000008; /* cpu-release-addr */ 47 + 48 + / { 49 + compatible = "socionext,uniphier-ld11"; 50 + #address-cells = <2>; 51 + #size-cells = <2>; 52 + interrupt-parent = <&gic>; 53 + 54 + cpus { 55 + #address-cells = <2>; 56 + #size-cells = <0>; 57 + 58 + cpu-map { 59 + cluster0 { 60 + core0 { 61 + cpu = <&cpu0>; 62 + }; 63 + core1 { 64 + cpu = <&cpu1>; 65 + }; 66 + }; 67 + }; 68 + 69 + cpu0: cpu@0 { 70 + device_type = "cpu"; 71 + compatible = "arm,cortex-a53", "arm,armv8"; 72 + reg = <0 0x000>; 73 + enable-method = "spin-table"; 74 + cpu-release-addr = <0 0x80000000>; 75 + }; 76 + 77 + cpu1: cpu@1 { 78 + device_type = "cpu"; 79 + compatible = "arm,cortex-a53", "arm,armv8"; 80 + reg = <0 0x001>; 81 + enable-method = "spin-table"; 82 + cpu-release-addr = <0 0x80000000>; 83 + }; 84 + }; 85 + 86 + clocks { 87 + refclk: ref { 88 + compatible = "fixed-clock"; 89 + #clock-cells = <0>; 90 + clock-frequency = <25000000>; 91 + }; 92 + }; 93 + 94 + timer { 95 + compatible = "arm,armv8-timer"; 96 + interrupts = <1 13 4>, 97 + <1 14 4>, 98 + <1 11 4>, 99 + <1 10 4>; 100 + }; 101 + 102 + soc { 103 + compatible = "simple-bus"; 104 + #address-cells = <1>; 105 + #size-cells = <1>; 106 + ranges = <0 0 0 0xffffffff>; 107 + 108 + serial0: serial@54006800 { 109 + compatible = "socionext,uniphier-uart"; 110 + status = "disabled"; 111 + reg = <0x54006800 0x40>; 112 + interrupts = <0 33 4>; 113 + pinctrl-names = "default"; 114 + pinctrl-0 = <&pinctrl_uart0>; 115 + clocks = <&peri_clk 0>; 116 + }; 117 + 118 + serial1: serial@54006900 { 119 + compatible = "socionext,uniphier-uart"; 120 + status = "disabled"; 121 + reg = <0x54006900 0x40>; 122 + interrupts = <0 35 4>; 123 + pinctrl-names = "default"; 124 + pinctrl-0 = <&pinctrl_uart1>; 125 + clocks = <&peri_clk 1>; 126 + }; 127 + 128 + serial2: serial@54006a00 { 129 + compatible = "socionext,uniphier-uart"; 130 + status = "disabled"; 131 + reg = <0x54006a00 0x40>; 132 + interrupts = <0 37 4>; 133 + pinctrl-names = "default"; 134 + pinctrl-0 = <&pinctrl_uart2>; 135 + clocks = <&peri_clk 2>; 136 + }; 137 + 138 + serial3: serial@54006b00 { 139 + compatible = "socionext,uniphier-uart"; 140 + status = "disabled"; 141 + reg = <0x54006b00 0x40>; 142 + interrupts = <0 177 4>; 143 + pinctrl-names = "default"; 144 + pinctrl-0 = <&pinctrl_uart3>; 145 + clocks = <&peri_clk 3>; 146 + }; 147 + 148 + i2c0: i2c@58780000 { 149 + compatible = "socionext,uniphier-fi2c"; 150 + status = "disabled"; 151 + reg = <0x58780000 0x80>; 152 + #address-cells = <1>; 153 + #size-cells = <0>; 154 + interrupts = <0 41 4>; 155 + pinctrl-names = "default"; 156 + pinctrl-0 = <&pinctrl_i2c0>; 157 + clocks = <&peri_clk 4>; 158 + clock-frequency = <100000>; 159 + }; 160 + 161 + i2c1: i2c@58781000 { 162 + compatible = "socionext,uniphier-fi2c"; 163 + status = "disabled"; 164 + reg = <0x58781000 0x80>; 165 + #address-cells = <1>; 166 + #size-cells = <0>; 167 + interrupts = <0 42 4>; 168 + pinctrl-names = "default"; 169 + pinctrl-0 = <&pinctrl_i2c1>; 170 + clocks = <&peri_clk 5>; 171 + clock-frequency = <100000>; 172 + }; 173 + 174 + i2c2: i2c@58782000 { 175 + compatible = "socionext,uniphier-fi2c"; 176 + reg = <0x58782000 0x80>; 177 + #address-cells = <1>; 178 + #size-cells = <0>; 179 + interrupts = <0 43 4>; 180 + clocks = <&peri_clk 6>; 181 + clock-frequency = <400000>; 182 + }; 183 + 184 + i2c3: i2c@58783000 { 185 + compatible = "socionext,uniphier-fi2c"; 186 + status = "disabled"; 187 + reg = <0x58783000 0x80>; 188 + #address-cells = <1>; 189 + #size-cells = <0>; 190 + interrupts = <0 44 4>; 191 + pinctrl-names = "default"; 192 + pinctrl-0 = <&pinctrl_i2c3>; 193 + clocks = <&peri_clk 7>; 194 + clock-frequency = <100000>; 195 + }; 196 + 197 + i2c4: i2c@58784000 { 198 + compatible = "socionext,uniphier-fi2c"; 199 + status = "disabled"; 200 + reg = <0x58784000 0x80>; 201 + #address-cells = <1>; 202 + #size-cells = <0>; 203 + interrupts = <0 45 4>; 204 + pinctrl-names = "default"; 205 + pinctrl-0 = <&pinctrl_i2c4>; 206 + clocks = <&peri_clk 8>; 207 + clock-frequency = <100000>; 208 + }; 209 + 210 + i2c5: i2c@58785000 { 211 + compatible = "socionext,uniphier-fi2c"; 212 + reg = <0x58785000 0x80>; 213 + #address-cells = <1>; 214 + #size-cells = <0>; 215 + interrupts = <0 25 4>; 216 + clocks = <&peri_clk 9>; 217 + clock-frequency = <400000>; 218 + }; 219 + 220 + system_bus: system-bus@58c00000 { 221 + compatible = "socionext,uniphier-system-bus"; 222 + status = "disabled"; 223 + reg = <0x58c00000 0x400>; 224 + #address-cells = <2>; 225 + #size-cells = <1>; 226 + pinctrl-names = "default"; 227 + pinctrl-0 = <&pinctrl_system_bus>; 228 + }; 229 + 230 + smpctrl@59800000 { 231 + compatible = "socionext,uniphier-smpctrl"; 232 + reg = <0x59801000 0x400>; 233 + }; 234 + 235 + perictrl@59820000 { 236 + compatible = "socionext,uniphier-perictrl", 237 + "simple-mfd", "syscon"; 238 + reg = <0x59820000 0x200>; 239 + 240 + peri_clk: clock { 241 + compatible = "socionext,uniphier-ld11-peri-clock"; 242 + #clock-cells = <1>; 243 + }; 244 + 245 + peri_rst: reset { 246 + compatible = "socionext,uniphier-ld11-peri-reset"; 247 + #reset-cells = <1>; 248 + }; 249 + }; 250 + 251 + usb0: usb@5a800100 { 252 + compatible = "socionext,uniphier-ehci", "generic-ehci"; 253 + status = "disabled"; 254 + reg = <0x5a800100 0x100>; 255 + interrupts = <0 243 4>; 256 + pinctrl-names = "default"; 257 + pinctrl-0 = <&pinctrl_usb0>; 258 + clocks = <&mio_clk 7>, <&mio_clk 8>, <&mio_clk 12>; 259 + resets = <&mio_rst 7>, <&mio_rst 8>, <&mio_rst 12>, <&sys_rst 8>; 260 + }; 261 + 262 + usb1: usb@5a810100 { 263 + compatible = "socionext,uniphier-ehci", "generic-ehci"; 264 + status = "disabled"; 265 + reg = <0x5a810100 0x100>; 266 + interrupts = <0 244 4>; 267 + pinctrl-names = "default"; 268 + pinctrl-0 = <&pinctrl_usb1>; 269 + clocks = <&mio_clk 7>, <&mio_clk 9>, <&mio_clk 13>; 270 + resets = <&mio_rst 7>, <&mio_rst 9>, <&mio_rst 13>, <&sys_rst 8>; 271 + }; 272 + 273 + usb2: usb@5a820100 { 274 + compatible = "socionext,uniphier-ehci", "generic-ehci"; 275 + status = "disabled"; 276 + reg = <0x5a820100 0x100>; 277 + interrupts = <0 245 4>; 278 + pinctrl-names = "default"; 279 + pinctrl-0 = <&pinctrl_usb2>; 280 + clocks = <&mio_clk 7>, <&mio_clk 10>, <&mio_clk 14>; 281 + resets = <&mio_rst 7>, <&mio_rst 10>, <&mio_rst 14>, <&sys_rst 8>; 282 + }; 283 + 284 + mioctrl@5b3e0000 { 285 + compatible = "socionext,uniphier-mioctrl", 286 + "simple-mfd", "syscon"; 287 + reg = <0x5b3e0000 0x800>; 288 + 289 + mio_clk: clock { 290 + compatible = "socionext,uniphier-ld11-mio-clock"; 291 + #clock-cells = <1>; 292 + }; 293 + 294 + mio_rst: reset { 295 + compatible = "socionext,uniphier-ld11-mio-reset"; 296 + #reset-cells = <1>; 297 + resets = <&sys_rst 7>; 298 + }; 299 + }; 300 + 301 + soc-glue@5f800000 { 302 + compatible = "socionext,uniphier-soc-glue", 303 + "simple-mfd", "syscon"; 304 + reg = <0x5f800000 0x2000>; 305 + 306 + pinctrl: pinctrl { 307 + compatible = "socionext,uniphier-ld11-pinctrl"; 308 + }; 309 + }; 310 + 311 + gic: interrupt-controller@5fe00000 { 312 + compatible = "arm,gic-v3"; 313 + reg = <0x5fe00000 0x10000>, /* GICD */ 314 + <0x5fe40000 0x80000>; /* GICR */ 315 + interrupt-controller; 316 + #interrupt-cells = <3>; 317 + interrupts = <1 9 4>; 318 + }; 319 + 320 + sysctrl@61840000 { 321 + compatible = "socionext,uniphier-ld11-sysctrl", 322 + "simple-mfd", "syscon"; 323 + reg = <0x61840000 0x4000>; 324 + 325 + sys_clk: clock { 326 + compatible = "socionext,uniphier-ld11-clock"; 327 + #clock-cells = <1>; 328 + }; 329 + 330 + sys_rst: reset { 331 + compatible = "socionext,uniphier-ld11-reset"; 332 + #reset-cells = <1>; 333 + }; 334 + }; 335 + }; 336 + }; 337 + 338 + /include/ "uniphier-pinctrl.dtsi"
+6 -5
arch/arm64/boot/dts/socionext/uniphier-ph1-ld20-ref.dts arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts
··· 1 1 /* 2 - * Device Tree Source for UniPhier PH1-LD20 Reference Board 2 + * Device Tree Source for UniPhier LD20 Reference Board 3 3 * 4 - * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com> 4 + * Copyright (C) 2015-2016 Socionext Inc. 5 + * Author: Masahiro Yamada <yamada.masahiro@socionext.com> 5 6 * 6 7 * This file is dual-licensed: you can use it either under the terms 7 8 * of the GPL or the X11 license, at your option. Note that this dual ··· 44 43 */ 45 44 46 45 /dts-v1/; 47 - /include/ "uniphier-ph1-ld20.dtsi" 46 + /include/ "uniphier-ld20.dtsi" 48 47 /include/ "uniphier-ref-daughter.dtsi" 49 48 /include/ "uniphier-support-card.dtsi" 50 49 51 50 / { 52 - model = "UniPhier PH1-LD20 Reference Board"; 53 - compatible = "socionext,ph1-ld20-ref", "socionext,ph1-ld20"; 51 + model = "UniPhier LD20 Reference Board"; 52 + compatible = "socionext,uniphier-ld20-ref", "socionext,uniphier-ld20"; 54 53 55 54 memory { 56 55 device_type = "memory";
+67 -27
arch/arm64/boot/dts/socionext/uniphier-ph1-ld20.dtsi arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi
··· 1 1 /* 2 - * Device Tree Source for UniPhier PH1-LD20 SoC 2 + * Device Tree Source for UniPhier LD20 SoC 3 3 * 4 - * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com> 4 + * Copyright (C) 2015-2016 Socionext Inc. 5 + * Author: Masahiro Yamada <yamada.masahiro@socionext.com> 5 6 * 6 7 * This file is dual-licensed: you can use it either under the terms 7 8 * of the GPL or the X11 license, at your option. Note that this dual ··· 46 45 /memreserve/ 0x80000000 0x00000008; /* cpu-release-addr */ 47 46 48 47 / { 49 - compatible = "socionext,ph1-ld20"; 48 + compatible = "socionext,uniphier-ld20"; 50 49 #address-cells = <2>; 51 50 #size-cells = <2>; 52 51 interrupt-parent = <&gic>; ··· 114 113 #clock-cells = <0>; 115 114 clock-frequency = <25000000>; 116 115 }; 117 - 118 - uart_clk: uart_clk { 119 - #clock-cells = <0>; 120 - compatible = "fixed-clock"; 121 - clock-frequency = <58820000>; 122 - }; 123 - 124 - i2c_clk: i2c_clk { 125 - #clock-cells = <0>; 126 - compatible = "fixed-clock"; 127 - clock-frequency = <50000000>; 128 - }; 129 116 }; 130 117 131 118 timer { ··· 137 148 interrupts = <0 33 4>; 138 149 pinctrl-names = "default"; 139 150 pinctrl-0 = <&pinctrl_uart0>; 140 - clocks = <&uart_clk>; 151 + clocks = <&peri_clk 0>; 141 152 }; 142 153 143 154 serial1: serial@54006900 { ··· 147 158 interrupts = <0 35 4>; 148 159 pinctrl-names = "default"; 149 160 pinctrl-0 = <&pinctrl_uart1>; 150 - clocks = <&uart_clk>; 161 + clocks = <&peri_clk 1>; 151 162 }; 152 163 153 164 serial2: serial@54006a00 { ··· 157 168 interrupts = <0 37 4>; 158 169 pinctrl-names = "default"; 159 170 pinctrl-0 = <&pinctrl_uart2>; 160 - clocks = <&uart_clk>; 171 + clocks = <&peri_clk 2>; 161 172 }; 162 173 163 174 serial3: serial@54006b00 { ··· 167 178 interrupts = <0 177 4>; 168 179 pinctrl-names = "default"; 169 180 pinctrl-0 = <&pinctrl_uart3>; 170 - clocks = <&uart_clk>; 181 + clocks = <&peri_clk 3>; 171 182 }; 172 183 173 184 i2c0: i2c@58780000 { ··· 179 190 interrupts = <0 41 4>; 180 191 pinctrl-names = "default"; 181 192 pinctrl-0 = <&pinctrl_i2c0>; 182 - clocks = <&i2c_clk>; 193 + clocks = <&peri_clk 4>; 183 194 clock-frequency = <100000>; 184 195 }; 185 196 ··· 192 203 interrupts = <0 42 4>; 193 204 pinctrl-names = "default"; 194 205 pinctrl-0 = <&pinctrl_i2c1>; 195 - clocks = <&i2c_clk>; 206 + clocks = <&peri_clk 5>; 196 207 clock-frequency = <100000>; 197 208 }; 198 209 ··· 202 213 #address-cells = <1>; 203 214 #size-cells = <0>; 204 215 interrupts = <0 43 4>; 205 - clocks = <&i2c_clk>; 216 + clocks = <&peri_clk 6>; 206 217 clock-frequency = <400000>; 207 218 }; 208 219 ··· 215 226 interrupts = <0 44 4>; 216 227 pinctrl-names = "default"; 217 228 pinctrl-0 = <&pinctrl_i2c3>; 218 - clocks = <&i2c_clk>; 229 + clocks = <&peri_clk 7>; 219 230 clock-frequency = <100000>; 220 231 }; 221 232 ··· 228 239 interrupts = <0 45 4>; 229 240 pinctrl-names = "default"; 230 241 pinctrl-0 = <&pinctrl_i2c4>; 231 - clocks = <&i2c_clk>; 242 + clocks = <&peri_clk 8>; 232 243 clock-frequency = <100000>; 233 244 }; 234 245 ··· 238 249 #address-cells = <1>; 239 250 #size-cells = <0>; 240 251 interrupts = <0 25 4>; 241 - clocks = <&i2c_clk>; 252 + clocks = <&peri_clk 9>; 242 253 clock-frequency = <400000>; 243 254 }; 244 255 ··· 248 259 reg = <0x58c00000 0x400>; 249 260 #address-cells = <2>; 250 261 #size-cells = <1>; 262 + pinctrl-names = "default"; 263 + pinctrl-0 = <&pinctrl_system_bus>; 251 264 }; 252 265 253 266 smpctrl@59800000 { ··· 257 266 reg = <0x59801000 0x400>; 258 267 }; 259 268 269 + mioctrl@59810000 { 270 + compatible = "socionext,uniphier-mioctrl", 271 + "simple-mfd", "syscon"; 272 + reg = <0x59810000 0x800>; 273 + 274 + mio_clk: clock { 275 + compatible = "socionext,uniphier-ld20-mio-clock"; 276 + #clock-cells = <1>; 277 + }; 278 + 279 + mio_rst: reset { 280 + compatible = "socionext,uniphier-ld20-mio-reset"; 281 + #reset-cells = <1>; 282 + }; 283 + }; 284 + 285 + perictrl@59820000 { 286 + compatible = "socionext,uniphier-perictrl", 287 + "simple-mfd", "syscon"; 288 + reg = <0x59820000 0x200>; 289 + 290 + peri_clk: clock { 291 + compatible = "socionext,uniphier-ld20-peri-clock"; 292 + #clock-cells = <1>; 293 + }; 294 + 295 + peri_rst: reset { 296 + compatible = "socionext,uniphier-ld20-peri-reset"; 297 + #reset-cells = <1>; 298 + }; 299 + }; 300 + 260 301 soc-glue@5f800000 { 261 - compatible = "simple-mfd", "syscon"; 302 + compatible = "socionext,uniphier-soc-glue", 303 + "simple-mfd", "syscon"; 262 304 reg = <0x5f800000 0x2000>; 263 305 264 306 pinctrl: pinctrl { 265 - compatible = "socionext,uniphier-ld20-pinctrl"; 307 + compatible = "socionext,uniphier-ld20-pinctrl"; 266 308 }; 267 309 }; 268 310 ··· 306 282 interrupt-controller; 307 283 #interrupt-cells = <3>; 308 284 interrupts = <1 9 4>; 285 + }; 286 + 287 + sysctrl@61840000 { 288 + compatible = "socionext,uniphier-sysctrl", 289 + "simple-mfd", "syscon"; 290 + reg = <0x61840000 0x4000>; 291 + 292 + sys_clk: clock { 293 + compatible = "socionext,uniphier-ld20-clock"; 294 + #clock-cells = <1>; 295 + }; 296 + 297 + sys_rst: reset { 298 + compatible = "socionext,uniphier-ld20-reset"; 299 + #reset-cells = <1>; 300 + }; 309 301 }; 310 302 }; 311 303 };
+1 -1
arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts
··· 29 29 30 30 memory { 31 31 device_type = "memory"; 32 - reg = <0x0 0x0 0x40000000>; 32 + reg = <0x0 0x0 0x0 0x40000000>; 33 33 }; 34 34 }; 35 35
+70 -30
arch/arm64/boot/dts/xilinx/zynqmp.dtsi
··· 14 14 / { 15 15 compatible = "xlnx,zynqmp"; 16 16 #address-cells = <2>; 17 - #size-cells = <1>; 17 + #size-cells = <2>; 18 18 19 19 cpus { 20 20 #address-cells = <1>; ··· 51 51 52 52 pmu { 53 53 compatible = "arm,armv8-pmuv3"; 54 + interrupt-parent = <&gic>; 54 55 interrupts = <0 143 4>, 55 56 <0 144 4>, 56 57 <0 145 4>, ··· 76 75 compatible = "simple-bus"; 77 76 #address-cells = <2>; 78 77 #size-cells = <1>; 79 - ranges; 78 + ranges = <0 0 0 0 0xffffffff>; 80 79 81 80 gic: interrupt-controller@f9010000 { 82 81 compatible = "arm,gic-400", "arm,cortex-a15-gic"; 83 82 #interrupt-cells = <3>; 84 83 reg = <0x0 0xf9010000 0x10000>, 85 - <0x0 0xf902f000 0x2000>, 84 + <0x0 0xf9020000 0x20000>, 86 85 <0x0 0xf9040000 0x20000>, 87 - <0x0 0xf906f000 0x2000>; 86 + <0x0 0xf9060000 0x20000>; 88 87 interrupt-controller; 89 88 interrupt-parent = <&gic>; 90 89 interrupts = <1 9 0xf04>; ··· 94 93 amba: amba { 95 94 compatible = "simple-bus"; 96 95 #address-cells = <2>; 97 - #size-cells = <1>; 96 + #size-cells = <2>; 98 97 ranges; 99 98 100 99 can0: can@ff060000 { 101 100 compatible = "xlnx,zynq-can-1.0"; 102 101 status = "disabled"; 103 102 clock-names = "can_clk", "pclk"; 104 - reg = <0x0 0xff060000 0x1000>; 103 + reg = <0x0 0xff060000 0x0 0x1000>; 105 104 interrupts = <0 23 4>; 106 105 interrupt-parent = <&gic>; 107 106 tx-fifo-depth = <0x40>; ··· 112 111 compatible = "xlnx,zynq-can-1.0"; 113 112 status = "disabled"; 114 113 clock-names = "can_clk", "pclk"; 115 - reg = <0x0 0xff070000 0x1000>; 114 + reg = <0x0 0xff070000 0x0 0x1000>; 116 115 interrupts = <0 24 4>; 117 116 interrupt-parent = <&gic>; 118 117 tx-fifo-depth = <0x40>; ··· 124 123 status = "disabled"; 125 124 interrupt-parent = <&gic>; 126 125 interrupts = <0 57 4>, <0 57 4>; 127 - reg = <0x0 0xff0b0000 0x1000>; 126 + reg = <0x0 0xff0b0000 0x0 0x1000>; 128 127 clock-names = "pclk", "hclk", "tx_clk"; 129 128 #address-cells = <1>; 130 129 #size-cells = <0>; ··· 135 134 status = "disabled"; 136 135 interrupt-parent = <&gic>; 137 136 interrupts = <0 59 4>, <0 59 4>; 138 - reg = <0x0 0xff0c0000 0x1000>; 137 + reg = <0x0 0xff0c0000 0x0 0x1000>; 139 138 clock-names = "pclk", "hclk", "tx_clk"; 140 139 #address-cells = <1>; 141 140 #size-cells = <0>; ··· 146 145 status = "disabled"; 147 146 interrupt-parent = <&gic>; 148 147 interrupts = <0 61 4>, <0 61 4>; 149 - reg = <0x0 0xff0d0000 0x1000>; 148 + reg = <0x0 0xff0d0000 0x0 0x1000>; 150 149 clock-names = "pclk", "hclk", "tx_clk"; 151 150 #address-cells = <1>; 152 151 #size-cells = <0>; ··· 157 156 status = "disabled"; 158 157 interrupt-parent = <&gic>; 159 158 interrupts = <0 63 4>, <0 63 4>; 160 - reg = <0x0 0xff0e0000 0x1000>; 159 + reg = <0x0 0xff0e0000 0x0 0x1000>; 161 160 clock-names = "pclk", "hclk", "tx_clk"; 162 161 #address-cells = <1>; 163 162 #size-cells = <0>; ··· 171 170 interrupts = <0 16 4>; 172 171 interrupt-controller; 173 172 #interrupt-cells = <2>; 174 - reg = <0x0 0xff0a0000 0x1000>; 173 + reg = <0x0 0xff0a0000 0x0 0x1000>; 175 174 }; 176 175 177 176 i2c0: i2c@ff020000 { ··· 179 178 status = "disabled"; 180 179 interrupt-parent = <&gic>; 181 180 interrupts = <0 17 4>; 182 - reg = <0x0 0xff020000 0x1000>; 181 + reg = <0x0 0xff020000 0x0 0x1000>; 183 182 #address-cells = <1>; 184 183 #size-cells = <0>; 185 184 }; ··· 189 188 status = "disabled"; 190 189 interrupt-parent = <&gic>; 191 190 interrupts = <0 18 4>; 192 - reg = <0x0 0xff030000 0x1000>; 191 + reg = <0x0 0xff030000 0x0 0x1000>; 193 192 #address-cells = <1>; 194 193 #size-cells = <0>; 194 + }; 195 + 196 + pcie: pcie@fd0e0000 { 197 + compatible = "xlnx,nwl-pcie-2.11"; 198 + status = "disabled"; 199 + #address-cells = <3>; 200 + #size-cells = <2>; 201 + #interrupt-cells = <1>; 202 + msi-controller; 203 + device_type = "pci"; 204 + interrupt-parent = <&gic>; 205 + interrupts = <0 118 4>, 206 + <0 117 4>, 207 + <0 116 4>, 208 + <0 115 4>, /* MSI_1 [63...32] */ 209 + <0 114 4>; /* MSI_0 [31...0] */ 210 + interrupt-names = "misc", "dummy", "intx", 211 + "msi1", "msi0"; 212 + msi-parent = <&pcie>; 213 + reg = <0x0 0xfd0e0000 0x0 0x1000>, 214 + <0x0 0xfd480000 0x0 0x1000>, 215 + <0x80 0x00000000 0x0 0x1000000>; 216 + reg-names = "breg", "pcireg", "cfg"; 217 + ranges = <0x02000000 0x00000000 0xe0000000 0x00000000 218 + 0xe0000000 0x00000000 0x10000000 219 + /* non-prefetchable memory */ 220 + 0x43000000 0x00000006 0x00000000 0x00000006 221 + 0x00000000 0x00000002 0x00000000>; 222 + /* prefetchable memory */ 223 + interrupt-map-mask = <0x0 0x0 0x0 0x7>; 224 + interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc 0x1>, 225 + <0x0 0x0 0x0 0x2 &pcie_intc 0x2>, 226 + <0x0 0x0 0x0 0x3 &pcie_intc 0x3>, 227 + <0x0 0x0 0x0 0x4 &pcie_intc 0x4>; 228 + pcie_intc: legacy-interrupt-controller { 229 + interrupt-controller; 230 + #address-cells = <0>; 231 + #interrupt-cells = <1>; 232 + }; 195 233 }; 196 234 197 235 sata: ahci@fd0c0000 { 198 236 compatible = "ceva,ahci-1v84"; 199 237 status = "disabled"; 200 - reg = <0x0 0xfd0c0000 0x2000>; 238 + reg = <0x0 0xfd0c0000 0x0 0x2000>; 201 239 interrupt-parent = <&gic>; 202 240 interrupts = <0 133 4>; 203 241 }; ··· 246 206 status = "disabled"; 247 207 interrupt-parent = <&gic>; 248 208 interrupts = <0 48 4>; 249 - reg = <0x0 0xff160000 0x1000>; 209 + reg = <0x0 0xff160000 0x0 0x1000>; 250 210 clock-names = "clk_xin", "clk_ahb"; 251 211 }; 252 212 ··· 255 215 status = "disabled"; 256 216 interrupt-parent = <&gic>; 257 217 interrupts = <0 49 4>; 258 - reg = <0x0 0xff170000 0x1000>; 218 + reg = <0x0 0xff170000 0x0 0x1000>; 259 219 clock-names = "clk_xin", "clk_ahb"; 260 220 }; 261 221 262 222 smmu: smmu@fd800000 { 263 223 compatible = "arm,mmu-500"; 264 - reg = <0x0 0xfd800000 0x20000>; 224 + reg = <0x0 0xfd800000 0x0 0x20000>; 265 225 #global-interrupts = <1>; 266 226 interrupt-parent = <&gic>; 267 227 interrupts = <0 157 4>, ··· 276 236 status = "disabled"; 277 237 interrupt-parent = <&gic>; 278 238 interrupts = <0 19 4>; 279 - reg = <0x0 0xff040000 0x1000>; 239 + reg = <0x0 0xff040000 0x0 0x1000>; 280 240 clock-names = "ref_clk", "pclk"; 281 241 #address-cells = <1>; 282 242 #size-cells = <0>; ··· 287 247 status = "disabled"; 288 248 interrupt-parent = <&gic>; 289 249 interrupts = <0 20 4>; 290 - reg = <0x0 0xff050000 0x1000>; 250 + reg = <0x0 0xff050000 0x0 0x1000>; 291 251 clock-names = "ref_clk", "pclk"; 292 252 #address-cells = <1>; 293 253 #size-cells = <0>; ··· 298 258 status = "disabled"; 299 259 interrupt-parent = <&gic>; 300 260 interrupts = <0 36 4>, <0 37 4>, <0 38 4>; 301 - reg = <0x0 0xff110000 0x1000>; 261 + reg = <0x0 0xff110000 0x0 0x1000>; 302 262 timer-width = <32>; 303 263 }; 304 264 ··· 307 267 status = "disabled"; 308 268 interrupt-parent = <&gic>; 309 269 interrupts = <0 39 4>, <0 40 4>, <0 41 4>; 310 - reg = <0x0 0xff120000 0x1000>; 270 + reg = <0x0 0xff120000 0x0 0x1000>; 311 271 timer-width = <32>; 312 272 }; 313 273 ··· 316 276 status = "disabled"; 317 277 interrupt-parent = <&gic>; 318 278 interrupts = <0 42 4>, <0 43 4>, <0 44 4>; 319 - reg = <0x0 0xff130000 0x1000>; 279 + reg = <0x0 0xff130000 0x0 0x1000>; 320 280 timer-width = <32>; 321 281 }; 322 282 ··· 325 285 status = "disabled"; 326 286 interrupt-parent = <&gic>; 327 287 interrupts = <0 45 4>, <0 46 4>, <0 47 4>; 328 - reg = <0x0 0xff140000 0x1000>; 288 + reg = <0x0 0xff140000 0x0 0x1000>; 329 289 timer-width = <32>; 330 290 }; 331 291 ··· 334 294 status = "disabled"; 335 295 interrupt-parent = <&gic>; 336 296 interrupts = <0 21 4>; 337 - reg = <0x0 0xff000000 0x1000>; 297 + reg = <0x0 0xff000000 0x0 0x1000>; 338 298 clock-names = "uart_clk", "pclk"; 339 299 }; 340 300 ··· 343 303 status = "disabled"; 344 304 interrupt-parent = <&gic>; 345 305 interrupts = <0 22 4>; 346 - reg = <0x0 0xff010000 0x1000>; 306 + reg = <0x0 0xff010000 0x0 0x1000>; 347 307 clock-names = "uart_clk", "pclk"; 348 308 }; 349 309 ··· 352 312 status = "disabled"; 353 313 interrupt-parent = <&gic>; 354 314 interrupts = <0 65 4>; 355 - reg = <0x0 0xfe200000 0x40000>; 315 + reg = <0x0 0xfe200000 0x0 0x40000>; 356 316 clock-names = "clk_xin", "clk_ahb"; 357 317 }; 358 318 ··· 361 321 status = "disabled"; 362 322 interrupt-parent = <&gic>; 363 323 interrupts = <0 70 4>; 364 - reg = <0x0 0xfe300000 0x40000>; 324 + reg = <0x0 0xfe300000 0x0 0x40000>; 365 325 clock-names = "clk_xin", "clk_ahb"; 366 326 }; 367 327 ··· 369 329 compatible = "cdns,wdt-r1p2"; 370 330 status = "disabled"; 371 331 interrupt-parent = <&gic>; 372 - interrupts = <0 52 1>; 373 - reg = <0x0 0xfd4d0000 0x1000>; 332 + interrupts = <0 113 1>; 333 + reg = <0x0 0xfd4d0000 0x0 0x1000>; 374 334 timeout-sec = <10>; 375 335 }; 376 336 };
+5
arch/arm64/boot/dts/zte/Makefile
··· 1 + dtb-$(CONFIG_ARCH_ZX) += zx296718-evb.dtb 2 + 3 + always := $(dtb-y) 4 + subdir-y := $(dts-dirs) 5 + clean-files := *.dtb
+64
arch/arm64/boot/dts/zte/zx296718-evb.dts
··· 1 + /* 2 + * Copyright 2016 ZTE Corporation. 3 + * Copyright 2016 Linaro Ltd. 4 + * 5 + * This file is dual-licensed: you can use it either under the terms 6 + * of the GPL or the X11 license, at your option. Note that this dual 7 + * licensing only applies to this file, and not this project as a 8 + * whole. 9 + * 10 + * a) This library is free software; you can redistribute it and/or 11 + * modify it under the terms of the GNU General Public License as 12 + * published by the Free Software Foundation; either version 2 of the 13 + * License, or (at your option) any later version. 14 + * 15 + * This library is distributed in the hope that it will be useful, 16 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 + * GNU General Public License for more details. 19 + * 20 + * Or, alternatively, 21 + * 22 + * b) Permission is hereby granted, free of charge, to any person 23 + * obtaining a copy of this software and associated documentation 24 + * files (the "Software"), to deal in the Software without 25 + * restriction, including without limitation the rights to use, 26 + * copy, modify, merge, publish, distribute, sublicense, and/or 27 + * sell copies of the Software, and to permit persons to whom the 28 + * Software is furnished to do so, subject to the following 29 + * conditions: 30 + * 31 + * The above copyright notice and this permission notice shall be 32 + * included in all copies or substantial portions of the Software. 33 + * 34 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 35 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 39 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41 + * OTHER DEALINGS IN THE SOFTWARE. 42 + */ 43 + 44 + /dts-v1/; 45 + #include "zx296718.dtsi" 46 + 47 + / { 48 + model = "ZTE zx296718 evaluation board"; 49 + compatible = "zte,zx296718-evb", "zte,zx296718"; 50 + 51 + chosen { 52 + stdout-path = "serial0:115200n8"; 53 + }; 54 + 55 + memory@40000000 { 56 + device_type = "memory"; 57 + reg = <0x40000000 0x40000000>; 58 + }; 59 + 60 + }; 61 + 62 + &uart0 { 63 + status = "okay"; 64 + };
+292
arch/arm64/boot/dts/zte/zx296718.dtsi
··· 1 + /* 2 + * Copyright 2016 ZTE Corporation. 3 + * Copyright 2016 Linaro Ltd. 4 + * 5 + * This file is dual-licensed: you can use it either under the terms 6 + * of the GPL or the X11 license, at your option. Note that this dual 7 + * licensing only applies to this file, and not this project as a 8 + * whole. 9 + * 10 + * a) This library is free software; you can redistribute it and/or 11 + * modify it under the terms of the GNU General Public License as 12 + * published by the Free Software Foundation; either version 2 of the 13 + * License, or (at your option) any later version. 14 + * 15 + * This library is distributed in the hope that it will be useful, 16 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 + * GNU General Public License for more details. 19 + * 20 + * Or, alternatively, 21 + * 22 + * b) Permission is hereby granted, free of charge, to any person 23 + * obtaining a copy of this software and associated documentation 24 + * files (the "Software"), to deal in the Software without 25 + * restriction, including without limitation the rights to use, 26 + * copy, modify, merge, publish, distribute, sublicense, and/or 27 + * sell copies of the Software, and to permit persons to whom the 28 + * Software is furnished to do so, subject to the following 29 + * conditions: 30 + * 31 + * The above copyright notice and this permission notice shall be 32 + * included in all copies or substantial portions of the Software. 33 + * 34 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 35 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 39 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41 + * OTHER DEALINGS IN THE SOFTWARE. 42 + */ 43 + 44 + #include <dt-bindings/input/input.h> 45 + #include <dt-bindings/interrupt-controller/arm-gic.h> 46 + #include <dt-bindings/gpio/gpio.h> 47 + 48 + / { 49 + compatible = "zte,zx296718"; 50 + #address-cells = <1>; 51 + #size-cells = <1>; 52 + interrupt-parent = <&gic>; 53 + 54 + aliases { 55 + serial0 = &uart0; 56 + }; 57 + 58 + cpus { 59 + #address-cells = <2>; 60 + #size-cells = <0>; 61 + 62 + cpu-map { 63 + cluster0 { 64 + core0 { 65 + cpu = <&cpu0>; 66 + }; 67 + core1 { 68 + cpu = <&cpu1>; 69 + }; 70 + core2 { 71 + cpu = <&cpu2>; 72 + }; 73 + core3 { 74 + cpu = <&cpu3>; 75 + }; 76 + }; 77 + }; 78 + 79 + cpu0: cpu@0 { 80 + device_type = "cpu"; 81 + compatible = "arm,cortex-a53","arm,armv8"; 82 + reg = <0x0 0x0>; 83 + enable-method = "psci"; 84 + }; 85 + 86 + cpu1: cpu@1 { 87 + device_type = "cpu"; 88 + compatible = "arm,cortex-a53","arm,armv8"; 89 + reg = <0x0 0x1>; 90 + enable-method = "psci"; 91 + }; 92 + 93 + cpu2: cpu@2 { 94 + device_type = "cpu"; 95 + compatible = "arm,cortex-a53","arm,armv8"; 96 + reg = <0x0 0x2>; 97 + enable-method = "psci"; 98 + }; 99 + 100 + cpu3: cpu@3 { 101 + device_type = "cpu"; 102 + compatible = "arm,cortex-a53","arm,armv8"; 103 + reg = <0x0 0x3>; 104 + enable-method = "psci"; 105 + }; 106 + }; 107 + 108 + clk24k: clk-24k { 109 + compatible = "fixed-clock"; 110 + #clock-cells = <0>; 111 + clock-frequency = <24000>; 112 + clock-output-names = "rtcclk"; 113 + }; 114 + 115 + osc32k: clk-osc32k { 116 + compatible = "fixed-clock"; 117 + #clock-cells = <0>; 118 + clock-frequency = <32000>; 119 + clock-output-names = "osc32k"; 120 + }; 121 + 122 + osc12m: clk-osc12m { 123 + compatible = "fixed-clock"; 124 + #clock-cells = <0>; 125 + clock-frequency = <12000000>; 126 + clock-output-names = "osc12m"; 127 + }; 128 + 129 + osc24m: clk-osc24m { 130 + compatible = "fixed-clock"; 131 + #clock-cells = <0>; 132 + clock-frequency = <24000000>; 133 + clock-output-names = "osc24m"; 134 + }; 135 + 136 + osc25m: clk-osc25m { 137 + compatible = "fixed-clock"; 138 + #clock-cells = <0>; 139 + clock-frequency = <25000000>; 140 + clock-output-names = "osc25m"; 141 + }; 142 + 143 + osc60m: clk-osc60m { 144 + compatible = "fixed-clock"; 145 + #clock-cells = <0>; 146 + clock-frequency = <60000000>; 147 + clock-output-names = "osc60m"; 148 + }; 149 + 150 + osc99m: clk-osc99m { 151 + compatible = "fixed-clock"; 152 + #clock-cells = <0>; 153 + clock-frequency = <99000000>; 154 + clock-output-names = "osc99m"; 155 + }; 156 + 157 + osc125m: clk-osc125m { 158 + compatible = "fixed-clock"; 159 + #clock-cells = <0>; 160 + clock-frequency = <125000000>; 161 + clock-output-names = "osc125m"; 162 + }; 163 + 164 + osc198m: clk-osc198m { 165 + compatible = "fixed-clock"; 166 + #clock-cells = <0>; 167 + clock-frequency = <198000000>; 168 + clock-output-names = "osc198m"; 169 + }; 170 + 171 + pll_audio: clk-pll-884m { 172 + compatible = "fixed-clock"; 173 + #clock-cells = <0>; 174 + clock-frequency = <884000000>; 175 + clock-output-names = "pll_audio"; 176 + }; 177 + 178 + pll_ddr: clk-pll-932m { 179 + compatible = "fixed-clock"; 180 + #clock-cells = <0>; 181 + clock-frequency = <932000000>; 182 + clock-output-names = "pll_ddr"; 183 + }; 184 + 185 + pll_hsic: clk-pll-960m { 186 + compatible = "fixed-clock"; 187 + #clock-cells = <0>; 188 + clock-frequency = <960000000>; 189 + clock-output-names = "pll_hsic"; 190 + }; 191 + 192 + pll_mac: clk-pll-1000m { 193 + compatible = "fixed-clock"; 194 + #clock-cells = <0>; 195 + clock-frequency = <1000000000>; 196 + clock-output-names = "pll_mac"; 197 + }; 198 + 199 + pll_vga: clk-pll-1073m { 200 + compatible = "fixed-clock"; 201 + #clock-cells = <0>; 202 + clock-frequency = <1073000000>; 203 + clock-output-names = "pll_vga"; 204 + }; 205 + 206 + pll_mm0: clk-pll-1188m { 207 + compatible = "fixed-clock"; 208 + #clock-cells = <0>; 209 + clock-frequency = <1188000000>; 210 + clock-output-names = "pll_mm0"; 211 + }; 212 + 213 + pll_mm1: clk-pll-1296m { 214 + compatible = "fixed-clock"; 215 + #clock-cells = <0>; 216 + clock-frequency = <1296000000>; 217 + clock-output-names = "pll_mm1"; 218 + }; 219 + 220 + psci { 221 + compatible = "arm,psci-1.0"; 222 + method = "smc"; 223 + }; 224 + 225 + timer { 226 + compatible = "arm,armv8-timer"; 227 + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, 228 + <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, 229 + <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, 230 + <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; 231 + }; 232 + 233 + pmu { 234 + compatible = "arm,cortex-a53-pmu"; 235 + interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; 236 + }; 237 + 238 + gic: interrupt-controller@2a00000 { 239 + compatible = "arm,gic-v3"; 240 + #interrupt-cells = <3>; 241 + #address-cells = <0>; 242 + #redistributor-regions = <6>; 243 + redistributor-stride = <0x0 0x40000>; 244 + interrupt-controller; 245 + reg = <0x02a00000 0x10000>, 246 + <0x02b00000 0x20000>, 247 + <0x02b20000 0x20000>, 248 + <0x02b40000 0x20000>, 249 + <0x02b60000 0x20000>, 250 + <0x02b80000 0x20000>, 251 + <0x02ba0000 0x20000>; 252 + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 253 + }; 254 + 255 + soc { 256 + #address-cells = <1>; 257 + #size-cells = <1>; 258 + compatible = "simple-bus"; 259 + ranges; 260 + 261 + aon_sysctrl: aon-sysctrl@116000 { 262 + compatible = "zte,zx296718-aon-sysctrl", "syscon"; 263 + reg = <0x116000 0x1000>; 264 + }; 265 + 266 + uart0: uart@11f000 { 267 + compatible = "arm,pl011", "arm,primecell"; 268 + arm,primecell-periphid = <0x001feffe>; 269 + reg = <0x11f000 0x1000>; 270 + interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; 271 + clocks = <&osc24m>; 272 + clock-names = "apb_pclk"; 273 + status = "disabled"; 274 + }; 275 + 276 + dma: dma-controller@1460000 { 277 + compatible = "zte,zx296702-dma"; 278 + reg = <0x01460000 0x1000>; 279 + interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 280 + clocks = <&osc24m>; 281 + clock-names = "dmaclk"; 282 + #dma-cells = <1>; 283 + dma-channels = <32>; 284 + dma-requests = <32>; 285 + }; 286 + 287 + sysctrl: sysctrl@1463000 { 288 + compatible = "zte,zx296718-sysctrl", "syscon"; 289 + reg = <0x1463000 0x1000>; 290 + }; 291 + }; 292 + };