blob: 83e5cde044a7dc85d3e2625ca38188fc3040b4c8 [file] [log] [blame]
Stefan Roese9e29eff2020-06-30 12:08:57 +02001// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Marvell / Cavium Inc. CN73xx
4 */
5
6/dts-v1/;
7
Stefan Roese1faed612020-07-30 13:56:17 +02008#include <dt-bindings/clock/octeon-clock.h>
9
Stefan Roese9e29eff2020-06-30 12:08:57 +020010/ {
11 #address-cells = <2>;
12 #size-cells = <2>;
13
14 soc0: soc@0 {
15 interrupt-parent = <&ciu3>;
16 compatible = "simple-bus";
17 #address-cells = <2>;
18 #size-cells = <2>;
19 ranges; /* Direct mapping */
20
21 ciu3: interrupt-controller@1010000000000 {
22 compatible = "cavium,octeon-7890-ciu3";
23 interrupt-controller;
24 /*
25 * Interrupts are specified by two parts:
26 * 1) Source number (20 significant bits)
27 * 2) Trigger type: (4 == level, 1 == edge)
28 */
29 #address-cells = <0>;
30 #interrupt-cells = <2>;
31 reg = <0x10100 0x00000000 0x0 0xb0000000>;
32 };
33
34 bootbus: bootbus@1180000000000 {
35 compatible = "cavium,octeon-3860-bootbus","simple-bus";
36 reg = <0x11800 0x00000000 0x0 0x200>;
37 /* The chip select number and offset */
38 #address-cells = <2>;
39 /* The size of the chip select region */
40 #size-cells = <1>;
41 };
42
Stefan Roese1faed612020-07-30 13:56:17 +020043 clk: clock {
44 compatible = "mrvl,octeon-clk";
45 #clock-cells = <1>;
46 u-boot,dm-pre-reloc;
47 };
48
Stefan Roese7bce6c02020-07-30 13:56:14 +020049 gpio: gpio-controller@1070000000800 {
50 #gpio-cells = <2>;
51 compatible = "cavium,octeon-7890-gpio";
52 reg = <0x10700 0x00000800 0x0 0x100>;
53 gpio-controller;
54 nr-gpios = <32>;
55 /* Interrupts are specified by two parts:
56 * 1) GPIO pin number (0..15)
57 * 2) Triggering (1 - edge rising
58 * 2 - edge falling
59 * 4 - level active high
60 * 8 - level active low)
61 */
62 interrupt-controller;
63 #interrupt-cells = <2>;
64 /* The GPIO pins connect to 16 consecutive CUI bits */
65 interrupts = <0x03000 4>, <0x03001 4>,
66 <0x03002 4>, <0x03003 4>,
67 <0x03004 4>, <0x03005 4>,
68 <0x03006 4>, <0x03007 4>,
69 <0x03008 4>, <0x03009 4>,
70 <0x0300a 4>, <0x0300b 4>,
71 <0x0300c 4>, <0x0300d 4>,
72 <0x0300e 4>, <0x0300f 4>;
73 };
74
Stefan Roesee9aa9532020-09-02 08:29:02 +020075 l2c: l2c@1180080000000 {
76 #address-cells = <1>;
77 #size-cells = <0>;
78 compatible = "cavium,octeon-7xxx-l2c";
79 reg = <0x11800 0x80000000 0x0 0x01000000>;
80 u-boot,dm-pre-reloc;
81 };
82
83 lmc: lmc@1180088000000 {
84 #address-cells = <1>;
85 #size-cells = <0>;
86 compatible = "cavium,octeon-7xxx-ddr4";
87 reg = <0x11800 0x88000000 0x0 0x02000000>; // 2 IFs
88 u-boot,dm-pre-reloc;
89 l2c-handle = <&l2c>;
90 };
91
Stefan Roese9e29eff2020-06-30 12:08:57 +020092 reset: reset@1180006001600 {
93 compatible = "mrvl,cn7xxx-rst";
94 reg = <0x11800 0x06001600 0x0 0x200>;
95 };
96
97 uart0: serial@1180000000800 {
98 compatible = "cavium,octeon-3860-uart","ns16550";
99 reg = <0x11800 0x00000800 0x0 0x400>;
100 clock-frequency = <0>;
101 current-speed = <115200>;
102 reg-shift = <3>;
103 interrupts = <0x08000 4>;
104 };
105
106 uart1: serial@1180000000c00 {
107 compatible = "cavium,octeon-3860-uart","ns16550";
108 reg = <0x11800 0x00000c00 0x0 0x400>;
109 clock-frequency = <0>;
110 current-speed = <115200>;
111 reg-shift = <3>;
112 interrupts = <0x08040 4>;
113 };
Stefan Roese42bbbfa2020-07-30 13:56:15 +0200114
115 i2c0: i2c@1180000001000 {
116 #address-cells = <1>;
117 #size-cells = <0>;
118 compatible = "cavium,octeon-7890-twsi";
119 reg = <0x11800 0x00001000 0x0 0x200>;
120 /* INT_ST, INT_TS, INT_CORE */
121 interrupts = <0x0b000 1>, <0x0b001 1>, <0x0b002 1>;
122 clock-frequency = <100000>;
Stefan Roese1faed612020-07-30 13:56:17 +0200123 clocks = <&clk OCTEON_CLK_IO>;
Stefan Roese42bbbfa2020-07-30 13:56:15 +0200124 };
125
126 i2c1: i2c@1180000001200 {
127 #address-cells = <1>;
128 #size-cells = <0>;
129 compatible = "cavium,octeon-7890-twsi";
130 reg = <0x11800 0x00001200 0x0 0x200>;
131 /* INT_ST, INT_TS, INT_CORE */
132 interrupts = <0x0b100 1>, <0x0b101 1>, <0x0b102 1>;
133 clock-frequency = <100000>;
Stefan Roese1faed612020-07-30 13:56:17 +0200134 clocks = <&clk OCTEON_CLK_IO>;
Stefan Roese42bbbfa2020-07-30 13:56:15 +0200135 };
Stefan Roese35d46932020-07-30 13:56:19 +0200136
Stefan Roesebe776522021-03-12 09:48:26 +0100137 mmc: mmc@1180000002000 {
138 compatible = "cavium,octeon-7890-mmc",
139 "cavium,octeon-7360-mmc";
140 reg = <0x11800 0x00000000 0x0 0x2100>;
141 #address-cells = <1>;
142 #size-cells = <0>;
143 /* EMM_INT_BUF_DONE,
144 EMM_INT_CMD_DONE,
145 EMM_INT_DMA_DONE,
146 EMM_INT_CMD_ERR,
147 EMM_INT_DMA_ERR,
148 EMM_INT_SWITCH_DONE,
149 EMM_INT_SWITCH_ERR,
150 EMM_DMA_DONE,
151 EMM_DMA_FIFO*/
152 interrupts = <0x09040 1>,
153 <0x09041 1>,
154 <0x09042 1>,
155 <0x09043 1>,
156 <0x09044 1>,
157 <0x09045 1>,
158 <0x09046 1>,
159 <0x09000 1>,
160 <0x09001 1>;
161 clocks = <&clk OCTEON_CLK_IO>;
162 };
163
Stefan Roese35d46932020-07-30 13:56:19 +0200164 spi: spi@1070000001000 {
165 compatible = "cavium,octeon-3010-spi";
166 reg = <0x10700 0x00001000 0x0 0x100>;
167 interrupts = <0x05001 1>;
168 #address-cells = <1>;
169 #size-cells = <0>;
170 spi-max-frequency = <25000000>;
171 clocks = <&clk OCTEON_CLK_IO>;
172 };
Stefan Roese3e083172020-08-24 13:04:42 +0200173
174 /* USB 0 */
175 usb0: uctl@1180068000000 {
176 compatible = "cavium,octeon-7130-usb-uctl";
177 reg = <0x11800 0x68000000 0x0 0x100>;
178 ranges; /* Direct mapping */
179 #address-cells = <2>;
180 #size-cells = <2>;
181 /* Only 100MHz allowed */
182 refclk-frequency = <100000000>;
183 /* Only "dlmc_ref_clk0" is supported for 73xx */
184 refclk-type-ss = "dlmc_ref_clk0";
185 /* Only "dlmc_ref_clk0" is supported for 73xx */
186 refclk-type-hs = "dlmc_ref_clk0";
187
188 /*
189 * Power is specified by three parts:
190 * 1) GPIO handle (must be &gpio)
191 * 2) GPIO pin number
192 * 3) Active high (0) or active low (1)
193 */
194 xhci@1680000000000 {
195 compatible = "cavium,octeon-7130-xhci","synopsys,dwc3","snps,dwc3";
196 reg = <0x16800 0x00000000 0x10 0x0>;
197 interrupts = <0x68080 4>; /* UAHC_IMAN, level */
198 maximum-speed = "super-speed";
199 dr_mode = "host";
200 snps,dis_u3_susphy_quirk;
201 snps,dis_u2_susphy_quirk;
202 snps,dis_enblslpm_quirk;
203 };
204 };
205
206 /* USB 1 */
207 usb1: uctl@1180069000000 {
208 compatible = "cavium,octeon-7130-usb-uctl";
209 reg = <0x11800 0x69000000 0x0 0x100>;
210 ranges; /* Direct mapping */
211 #address-cells = <2>;
212 #size-cells = <2>;
213 /* 50MHz, 100MHz and 125MHz allowed */
214 refclk-frequency = <100000000>;
215 /* Either "dlmc_ref_clk0" or "dlmc_ref_clk0" */
216 refclk-type-ss = "dlmc_ref_clk0";
217 /* Either "dlmc_ref_clk0" "dlmc_ref_clk1" or "pll_ref_clk" */
218 refclk-type-hs = "dlmc_ref_clk0";
219
220 /*
221 * Power is specified by three parts:
222 * 1) GPIO handle (must be &gpio)
223 * 2) GPIO pin number
224 * 3) Active high (0) or active low (1)
225 */
226 xhci@1690000000000 {
227 compatible = "cavium,octeon-7130-xhci","synopsys,dwc3","snps,dwc3";
228 reg = <0x16900 0x00000000 0x10 0x0>;
229 interrupts = <0x69080 4>; /* UAHC_IMAN, level */
230 dr_mode = "host";
231 };
232 };
Stefan Roese1e4518c2020-12-11 17:06:09 +0100233
234 /* PCIe 0 */
235 pcie0: pcie@1180069000000 {
236 compatible = "marvell,pcie-host-octeon";
237 reg = <0 0xf2600000 0 0x10000>;
238 #address-cells = <3>;
239 #size-cells = <2>;
240 device_type = "pci";
241 dma-coherent;
242
243 bus-range = <0 0xff>;
244 marvell,pcie-port = <0>;
245 ranges = <0x81000000 0x00000000 0xd0000000 0x00011a00 0xd0000000 0x00000000 0x01000000 /* IO */
246 0x02000000 0x00000000 0xe0000000 0x00011b00 0xe0000000 0x00000000 0x10000000 /* non-prefetchable memory */
247 0x43000000 0x00011c00 0x00000000 0x00011c00 0x00000000 0x00000010 0x00000000>;/* prefetchable memory */
248 };
Stefan Roese5f7b8212021-04-07 09:12:37 +0200249
250 uctl@118006c000000 {
251 compatible = "cavium,octeon-7130-sata-uctl", "simple-bus";
252 reg = <0x11800 0x6c000000 0x0 0x100>;
253 ranges; /* Direct mapping */
254 #address-cells = <2>;
255 #size-cells = <2>;
256 portmap = <0x3>;
257 staggered-spinup;
258 cavium,qlm-trim = "4,sata";
259
260 sata: sata@16c0000000000 {
261 compatible = "cavium,octeon-7130-ahci";
262 reg = <0x16c00 0x00000000 0x0 0x200>;
263 #address-cells = <2>;
264 #size-cells = <2>;
265 interrupts = <0x6c010 4>;
266 };
267 };
Stefan Roese9e29eff2020-06-30 12:08:57 +0200268 };
269};