Merge remote-tracking branches 'asoc/topic/wm8753', 'asoc/topic/wm8770', 'asoc/topic...
[linux-block.git] / arch / arm64 / boot / dts / cavium / thunder2-99xx.dtsi
CommitLineData
5bfb3889 1/*
517b311e 2 * dtsi file for Cavium ThunderX2 CN99XX processor
5bfb3889 3 *
517b311e 4 * Copyright (c) 2017 Cavium Inc.
5bfb3889
ZSL
5 * Copyright (c) 2013-2016 Broadcom
6 * Author: Zi Shen Lim <zlim@broadcom.com>
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as
10 * published by the Free Software Foundation; either version 2 of
11 * the License, or (at your option) any later version.
12 */
13
14#include <dt-bindings/interrupt-controller/arm-gic.h>
15
16/ {
517b311e
J
17 model = "Cavium ThunderX2 CN99XX";
18 compatible = "cavium,thunderx2-cn9900", "brcm,vulcan-soc";
5bfb3889
ZSL
19 interrupt-parent = <&gic>;
20 #address-cells = <2>;
21 #size-cells = <2>;
22
23 /* just 4 cpus now, 128 needed in full config */
24 cpus {
25 #address-cells = <0x2>;
26 #size-cells = <0x0>;
27
28 cpu@0 {
29 device_type = "cpu";
517b311e 30 compatible = "cavium,thunder2", "brcm,vulcan", "arm,armv8";
5bfb3889
ZSL
31 reg = <0x0 0x0>;
32 enable-method = "psci";
33 };
34
35 cpu@1 {
36 device_type = "cpu";
517b311e 37 compatible = "cavium,thunder2", "brcm,vulcan", "arm,armv8";
5bfb3889
ZSL
38 reg = <0x0 0x1>;
39 enable-method = "psci";
40 };
41
42 cpu@2 {
43 device_type = "cpu";
517b311e 44 compatible = "cavium,thunder2", "brcm,vulcan", "arm,armv8";
5bfb3889
ZSL
45 reg = <0x0 0x2>;
46 enable-method = "psci";
47 };
48
49 cpu@3 {
50 device_type = "cpu";
517b311e 51 compatible = "cavium,thunder2", "brcm,vulcan", "arm,armv8";
5bfb3889
ZSL
52 reg = <0x0 0x3>;
53 enable-method = "psci";
54 };
55 };
56
57 psci {
58 compatible = "arm,psci-0.2";
59 method = "smc";
60 };
61
62 gic: interrupt-controller@400080000 {
63 compatible = "arm,gic-v3";
64 #interrupt-cells = <3>;
65 #address-cells = <2>;
66 #size-cells = <2>;
67 ranges;
68 interrupt-controller;
69 #redistributor-regions = <1>;
70 reg = <0x04 0x00080000 0x0 0x20000>, /* GICD */
71 <0x04 0x01000000 0x0 0x1000000>; /* GICR */
72 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
73
74 gicits: gic-its@40010000 {
75 compatible = "arm,gic-v3-its";
76 msi-controller;
77 reg = <0x04 0x00100000 0x0 0x20000>; /* GIC ITS */
78 };
79 };
80
81 timer {
82 compatible = "arm,armv8-timer";
83 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>,
84 <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>,
85 <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>,
86 <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>;
87 };
88
89 pmu {
713755d7 90 compatible = "brcm,vulcan-pmu", "arm,armv8-pmuv3";
5bfb3889
ZSL
91 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; /* PMU overflow */
92 };
93
94 clk125mhz: uart_clk125mhz {
95 compatible = "fixed-clock";
96 #clock-cells = <0>;
97 clock-frequency = <125000000>;
98 clock-output-names = "clk125mhz";
99 };
100
e2c8d283 101 pcie@30000000 {
5bfb3889
ZSL
102 compatible = "pci-host-ecam-generic";
103 device_type = "pci";
104 #interrupt-cells = <1>;
105 #address-cells = <3>;
106 #size-cells = <2>;
107
108 /* ECAM at 0x3000_0000 - 0x4000_0000 */
109 reg = <0x0 0x30000000 0x0 0x10000000>;
110 reg-names = "PCI ECAM";
111
e6cc3be5
J
112 /*
113 * PCI ranges:
114 * IO no supported
115 * MEM 0x4000_0000 - 0x6000_0000
116 * MEM64 pref 0x40_0000_0000 - 0x60_0000_0000
117 */
118 ranges =
119 <0x02000000 0 0x40000000 0 0x40000000 0 0x20000000
120 0x43000000 0x40 0x00000000 0x40 0x00000000 0x20 0x00000000>;
e2c8d283 121 bus-range = <0 0xff>;
5bfb3889
ZSL
122 interrupt-map-mask = <0 0 0 7>;
123 interrupt-map =
124 /* addr pin ic icaddr icintr */
125 <0 0 0 1 &gic 0 0 GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH
126 0 0 0 2 &gic 0 0 GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH
127 0 0 0 3 &gic 0 0 GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH
128 0 0 0 4 &gic 0 0 GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
129 msi-parent = <&gicits>;
130 dma-coherent;
131 };
132
133 soc {
134 compatible = "simple-bus";
135 #address-cells = <2>;
136 #size-cells = <2>;
137 ranges;
138
139 uart0: serial@402020000 {
140 compatible = "arm,pl011", "arm,primecell";
141 reg = <0x04 0x02020000 0x0 0x1000>;
142 interrupt-parent = <&gic>;
143 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
144 clocks = <&clk125mhz>;
145 clock-names = "apb_pclk";
146 };
147 };
148
149};