arm64: dts: marvell: add interrupt support to cp110 thermal node
[sfrench/cifs-2.6.git] / arch / arm64 / boot / dts / marvell / armada-cp110.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (C) 2016 Marvell Technology Group Ltd.
4  *
5  * Device Tree file for Marvell Armada CP110.
6  */
7
8 #include <dt-bindings/interrupt-controller/mvebu-icu.h>
9 #include <dt-bindings/thermal/thermal.h>
10
11 #include "armada-common.dtsi"
12
13 #define CP110_PCIEx_IO_BASE(iface)      (CP110_PCIE_IO_BASE + (iface *  0x10000))
14 #define CP110_PCIEx_MEM_BASE(iface)     (CP110_PCIE_MEM_BASE + (iface *  0x1000000))
15 #define CP110_PCIEx_CONF_BASE(iface)    (CP110_PCIEx_MEM_BASE(iface) + 0xf00000)
16
17 / {
18         /*
19          * The contents of the node are defined below, in order to
20          * save one indentation level
21          */
22         CP110_NAME: CP110_NAME { };
23
24         /*
25          * CPs only have one sensor in the thermal IC.
26          *
27          * The cooling maps are empty as there are no cooling devices.
28          */
29         thermal-zones {
30                 CP110_LABEL(thermal_ic): CP110_NODE_NAME(thermal-ic) {
31                         polling-delay-passive = <0>; /* Interrupt driven */
32                         polling-delay = <0>; /* Interrupt driven */
33
34                         thermal-sensors = <&CP110_LABEL(thermal) 0>;
35
36                         trips {
37                                 CP110_LABEL(crit): crit {
38                                         temperature = <100000>; /* mC degrees */
39                                         hysteresis = <2000>; /* mC degrees */
40                                         type = "critical";
41                                 };
42                         };
43
44                         cooling-maps { };
45                 };
46         };
47 };
48
49 &CP110_NAME {
50         #address-cells = <2>;
51         #size-cells = <2>;
52         compatible = "simple-bus";
53         interrupt-parent = <&CP110_LABEL(icu_nsr)>;
54         ranges;
55
56         config-space@CP110_BASE {
57                 #address-cells = <1>;
58                 #size-cells = <1>;
59                 compatible = "simple-bus";
60                 ranges = <0x0 0x0 ADDRESSIFY(CP110_BASE) 0x2000000>;
61
62                 CP110_LABEL(ethernet): ethernet@0 {
63                         compatible = "marvell,armada-7k-pp22";
64                         reg = <0x0 0x100000>, <0x129000 0xb000>;
65                         clocks = <&CP110_LABEL(clk) 1 3>, <&CP110_LABEL(clk) 1 9>,
66                                  <&CP110_LABEL(clk) 1 5>, <&CP110_LABEL(clk) 1 6>,
67                                  <&CP110_LABEL(clk) 1 18>;
68                         clock-names = "pp_clk", "gop_clk",
69                                       "mg_clk", "mg_core_clk", "axi_clk";
70                         marvell,system-controller = <&CP110_LABEL(syscon0)>;
71                         status = "disabled";
72                         dma-coherent;
73
74                         CP110_LABEL(eth0): eth0 {
75                                 interrupts = <39 IRQ_TYPE_LEVEL_HIGH>,
76                                         <43 IRQ_TYPE_LEVEL_HIGH>,
77                                         <47 IRQ_TYPE_LEVEL_HIGH>,
78                                         <51 IRQ_TYPE_LEVEL_HIGH>,
79                                         <55 IRQ_TYPE_LEVEL_HIGH>,
80                                         <59 IRQ_TYPE_LEVEL_HIGH>,
81                                         <63 IRQ_TYPE_LEVEL_HIGH>,
82                                         <67 IRQ_TYPE_LEVEL_HIGH>,
83                                         <71 IRQ_TYPE_LEVEL_HIGH>,
84                                         <129 IRQ_TYPE_LEVEL_HIGH>;
85                                 interrupt-names = "hif0", "hif1", "hif2",
86                                         "hif3", "hif4", "hif5", "hif6", "hif7",
87                                         "hif8", "link";
88                                 port-id = <0>;
89                                 gop-port-id = <0>;
90                                 status = "disabled";
91                         };
92
93                         CP110_LABEL(eth1): eth1 {
94                                 interrupts = <40 IRQ_TYPE_LEVEL_HIGH>,
95                                         <44 IRQ_TYPE_LEVEL_HIGH>,
96                                         <48 IRQ_TYPE_LEVEL_HIGH>,
97                                         <52 IRQ_TYPE_LEVEL_HIGH>,
98                                         <56 IRQ_TYPE_LEVEL_HIGH>,
99                                         <60 IRQ_TYPE_LEVEL_HIGH>,
100                                         <64 IRQ_TYPE_LEVEL_HIGH>,
101                                         <68 IRQ_TYPE_LEVEL_HIGH>,
102                                         <72 IRQ_TYPE_LEVEL_HIGH>,
103                                         <128 IRQ_TYPE_LEVEL_HIGH>;
104                                 interrupt-names = "hif0", "hif1", "hif2",
105                                         "hif3", "hif4", "hif5", "hif6", "hif7",
106                                         "hif8", "link";
107                                 port-id = <1>;
108                                 gop-port-id = <2>;
109                                 status = "disabled";
110                         };
111
112                         CP110_LABEL(eth2): eth2 {
113                                 interrupts = <41 IRQ_TYPE_LEVEL_HIGH>,
114                                         <45 IRQ_TYPE_LEVEL_HIGH>,
115                                         <49 IRQ_TYPE_LEVEL_HIGH>,
116                                         <53 IRQ_TYPE_LEVEL_HIGH>,
117                                         <57 IRQ_TYPE_LEVEL_HIGH>,
118                                         <61 IRQ_TYPE_LEVEL_HIGH>,
119                                         <65 IRQ_TYPE_LEVEL_HIGH>,
120                                         <69 IRQ_TYPE_LEVEL_HIGH>,
121                                         <73 IRQ_TYPE_LEVEL_HIGH>,
122                                         <127 IRQ_TYPE_LEVEL_HIGH>;
123                                 interrupt-names = "hif0", "hif1", "hif2",
124                                         "hif3", "hif4", "hif5", "hif6", "hif7",
125                                         "hif8", "link";
126                                 port-id = <2>;
127                                 gop-port-id = <3>;
128                                 status = "disabled";
129                         };
130                 };
131
132                 CP110_LABEL(comphy): phy@120000 {
133                         compatible = "marvell,comphy-cp110";
134                         reg = <0x120000 0x6000>;
135                         marvell,system-controller = <&CP110_LABEL(syscon0)>;
136                         #address-cells = <1>;
137                         #size-cells = <0>;
138
139                         CP110_LABEL(comphy0): phy@0 {
140                                 reg = <0>;
141                                 #phy-cells = <1>;
142                         };
143
144                         CP110_LABEL(comphy1): phy@1 {
145                                 reg = <1>;
146                                 #phy-cells = <1>;
147                         };
148
149                         CP110_LABEL(comphy2): phy@2 {
150                                 reg = <2>;
151                                 #phy-cells = <1>;
152                         };
153
154                         CP110_LABEL(comphy3): phy@3 {
155                                 reg = <3>;
156                                 #phy-cells = <1>;
157                         };
158
159                         CP110_LABEL(comphy4): phy@4 {
160                                 reg = <4>;
161                                 #phy-cells = <1>;
162                         };
163
164                         CP110_LABEL(comphy5): phy@5 {
165                                 reg = <5>;
166                                 #phy-cells = <1>;
167                         };
168                 };
169
170                 CP110_LABEL(mdio): mdio@12a200 {
171                         #address-cells = <1>;
172                         #size-cells = <0>;
173                         compatible = "marvell,orion-mdio";
174                         reg = <0x12a200 0x10>;
175                         clocks = <&CP110_LABEL(clk) 1 9>, <&CP110_LABEL(clk) 1 5>,
176                                  <&CP110_LABEL(clk) 1 6>, <&CP110_LABEL(clk) 1 18>;
177                         status = "disabled";
178                 };
179
180                 CP110_LABEL(xmdio): mdio@12a600 {
181                         #address-cells = <1>;
182                         #size-cells = <0>;
183                         compatible = "marvell,xmdio";
184                         reg = <0x12a600 0x10>;
185                         clocks = <&CP110_LABEL(clk) 1 5>,
186                                  <&CP110_LABEL(clk) 1 6>, <&CP110_LABEL(clk) 1 18>;
187                         status = "disabled";
188                 };
189
190                 CP110_LABEL(icu): interrupt-controller@1e0000 {
191                         compatible = "marvell,cp110-icu";
192                         reg = <0x1e0000 0x440>;
193                         #address-cells = <1>;
194                         #size-cells = <1>;
195
196                         CP110_LABEL(icu_nsr): interrupt-controller@10 {
197                                 compatible = "marvell,cp110-icu-nsr";
198                                 reg = <0x10 0x20>;
199                                 #interrupt-cells = <2>;
200                                 interrupt-controller;
201                                 msi-parent = <&gicp>;
202                         };
203
204                         CP110_LABEL(icu_sei): interrupt-controller@50 {
205                                 compatible = "marvell,cp110-icu-sei";
206                                 reg = <0x50 0x10>;
207                                 #interrupt-cells = <2>;
208                                 interrupt-controller;
209                                 msi-parent = <&sei>;
210                         };
211                 };
212
213                 CP110_LABEL(rtc): rtc@284000 {
214                         compatible = "marvell,armada-8k-rtc";
215                         reg = <0x284000 0x20>, <0x284080 0x24>;
216                         reg-names = "rtc", "rtc-soc";
217                         interrupts = <77 IRQ_TYPE_LEVEL_HIGH>;
218                 };
219
220                 CP110_LABEL(syscon0): system-controller@440000 {
221                         compatible = "syscon", "simple-mfd";
222                         reg = <0x440000 0x2000>;
223
224                         CP110_LABEL(clk): clock {
225                                 compatible = "marvell,cp110-clock";
226                                 #clock-cells = <2>;
227                         };
228
229                         CP110_LABEL(gpio1): gpio@100 {
230                                 compatible = "marvell,armada-8k-gpio";
231                                 offset = <0x100>;
232                                 ngpios = <32>;
233                                 gpio-controller;
234                                 #gpio-cells = <2>;
235                                 gpio-ranges = <&CP110_LABEL(pinctrl) 0 0 32>;
236                                 interrupt-controller;
237                                 interrupts = <86 IRQ_TYPE_LEVEL_HIGH>,
238                                         <85 IRQ_TYPE_LEVEL_HIGH>,
239                                         <84 IRQ_TYPE_LEVEL_HIGH>,
240                                         <83 IRQ_TYPE_LEVEL_HIGH>;
241                                 status = "disabled";
242                         };
243
244                         CP110_LABEL(gpio2): gpio@140 {
245                                 compatible = "marvell,armada-8k-gpio";
246                                 offset = <0x140>;
247                                 ngpios = <31>;
248                                 gpio-controller;
249                                 #gpio-cells = <2>;
250                                 gpio-ranges = <&CP110_LABEL(pinctrl) 0 32 31>;
251                                 interrupt-controller;
252                                 interrupts = <82 IRQ_TYPE_LEVEL_HIGH>,
253                                         <81 IRQ_TYPE_LEVEL_HIGH>,
254                                         <80 IRQ_TYPE_LEVEL_HIGH>,
255                                         <79 IRQ_TYPE_LEVEL_HIGH>;
256                                 status = "disabled";
257                         };
258                 };
259
260                 CP110_LABEL(syscon1): system-controller@400000 {
261                         compatible = "syscon", "simple-mfd";
262                         reg = <0x400000 0x1000>;
263                         #address-cells = <1>;
264                         #size-cells = <1>;
265
266                         CP110_LABEL(thermal): thermal-sensor@70 {
267                                 compatible = "marvell,armada-cp110-thermal";
268                                 reg = <0x70 0x10>;
269                                 interrupts-extended =
270                                         <&CP110_LABEL(icu_sei) 116 IRQ_TYPE_LEVEL_HIGH>;
271                                 #thermal-sensor-cells = <1>;
272                         };
273                 };
274
275                 CP110_LABEL(usb3_0): usb3@500000 {
276                         compatible = "marvell,armada-8k-xhci",
277                         "generic-xhci";
278                         reg = <0x500000 0x4000>;
279                         dma-coherent;
280                         interrupts = <106 IRQ_TYPE_LEVEL_HIGH>;
281                         clock-names = "core", "reg";
282                         clocks = <&CP110_LABEL(clk) 1 22>,
283                                  <&CP110_LABEL(clk) 1 16>;
284                         status = "disabled";
285                 };
286
287                 CP110_LABEL(usb3_1): usb3@510000 {
288                         compatible = "marvell,armada-8k-xhci",
289                         "generic-xhci";
290                         reg = <0x510000 0x4000>;
291                         dma-coherent;
292                         interrupts = <105 IRQ_TYPE_LEVEL_HIGH>;
293                         clock-names = "core", "reg";
294                         clocks = <&CP110_LABEL(clk) 1 23>,
295                                  <&CP110_LABEL(clk) 1 16>;
296                         status = "disabled";
297                 };
298
299                 CP110_LABEL(sata0): sata@540000 {
300                         compatible = "marvell,armada-8k-ahci",
301                         "generic-ahci";
302                         reg = <0x540000 0x30000>;
303                         dma-coherent;
304                         interrupts = <107 IRQ_TYPE_LEVEL_HIGH>;
305                         clocks = <&CP110_LABEL(clk) 1 15>,
306                                  <&CP110_LABEL(clk) 1 16>;
307                         status = "disabled";
308                 };
309
310                 CP110_LABEL(xor0): xor@6a0000 {
311                         compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
312                         reg = <0x6a0000 0x1000>, <0x6b0000 0x1000>;
313                         dma-coherent;
314                         msi-parent = <&gic_v2m0>;
315                         clock-names = "core", "reg";
316                         clocks = <&CP110_LABEL(clk) 1 8>,
317                                  <&CP110_LABEL(clk) 1 14>;
318                 };
319
320                 CP110_LABEL(xor1): xor@6c0000 {
321                         compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
322                         reg = <0x6c0000 0x1000>, <0x6d0000 0x1000>;
323                         dma-coherent;
324                         msi-parent = <&gic_v2m0>;
325                         clock-names = "core", "reg";
326                         clocks = <&CP110_LABEL(clk) 1 7>,
327                                  <&CP110_LABEL(clk) 1 14>;
328                 };
329
330                 CP110_LABEL(spi0): spi@700600 {
331                         compatible = "marvell,armada-380-spi";
332                         reg = <0x700600 0x50>;
333                         #address-cells = <0x1>;
334                         #size-cells = <0x0>;
335                         clock-names = "core", "axi";
336                         clocks = <&CP110_LABEL(clk) 1 21>,
337                                  <&CP110_LABEL(clk) 1 17>;
338                         status = "disabled";
339                 };
340
341                 CP110_LABEL(spi1): spi@700680 {
342                         compatible = "marvell,armada-380-spi";
343                         reg = <0x700680 0x50>;
344                         #address-cells = <1>;
345                         #size-cells = <0>;
346                         clock-names = "core", "axi";
347                         clocks = <&CP110_LABEL(clk) 1 21>,
348                                  <&CP110_LABEL(clk) 1 17>;
349                         status = "disabled";
350                 };
351
352                 CP110_LABEL(i2c0): i2c@701000 {
353                         compatible = "marvell,mv78230-i2c";
354                         reg = <0x701000 0x20>;
355                         #address-cells = <1>;
356                         #size-cells = <0>;
357                         interrupts = <120 IRQ_TYPE_LEVEL_HIGH>;
358                         clock-names = "core", "reg";
359                         clocks = <&CP110_LABEL(clk) 1 21>,
360                                  <&CP110_LABEL(clk) 1 17>;
361                         status = "disabled";
362                 };
363
364                 CP110_LABEL(i2c1): i2c@701100 {
365                         compatible = "marvell,mv78230-i2c";
366                         reg = <0x701100 0x20>;
367                         #address-cells = <1>;
368                         #size-cells = <0>;
369                         interrupts = <121 IRQ_TYPE_LEVEL_HIGH>;
370                         clock-names = "core", "reg";
371                         clocks = <&CP110_LABEL(clk) 1 21>,
372                                  <&CP110_LABEL(clk) 1 17>;
373                         status = "disabled";
374                 };
375
376                 CP110_LABEL(uart0): serial@702000 {
377                         compatible = "snps,dw-apb-uart";
378                         reg = <0x702000 0x100>;
379                         reg-shift = <2>;
380                         interrupts = <122 IRQ_TYPE_LEVEL_HIGH>;
381                         reg-io-width = <1>;
382                         clock-names = "baudclk", "apb_pclk";
383                         clocks = <&CP110_LABEL(clk) 1 21>,
384                                  <&CP110_LABEL(clk) 1 17>;
385                         status = "disabled";
386                 };
387
388                 CP110_LABEL(uart1): serial@702100 {
389                         compatible = "snps,dw-apb-uart";
390                         reg = <0x702100 0x100>;
391                         reg-shift = <2>;
392                         interrupts = <123 IRQ_TYPE_LEVEL_HIGH>;
393                         reg-io-width = <1>;
394                         clock-names = "baudclk", "apb_pclk";
395                         clocks = <&CP110_LABEL(clk) 1 21>,
396                                  <&CP110_LABEL(clk) 1 17>;
397                         status = "disabled";
398                 };
399
400                 CP110_LABEL(uart2): serial@702200 {
401                         compatible = "snps,dw-apb-uart";
402                         reg = <0x702200 0x100>;
403                         reg-shift = <2>;
404                         interrupts = <124 IRQ_TYPE_LEVEL_HIGH>;
405                         reg-io-width = <1>;
406                         clock-names = "baudclk", "apb_pclk";
407                         clocks = <&CP110_LABEL(clk) 1 21>,
408                                  <&CP110_LABEL(clk) 1 17>;
409                         status = "disabled";
410                 };
411
412                 CP110_LABEL(uart3): serial@702300 {
413                         compatible = "snps,dw-apb-uart";
414                         reg = <0x702300 0x100>;
415                         reg-shift = <2>;
416                         interrupts = <125 IRQ_TYPE_LEVEL_HIGH>;
417                         reg-io-width = <1>;
418                         clock-names = "baudclk", "apb_pclk";
419                         clocks = <&CP110_LABEL(clk) 1 21>,
420                                  <&CP110_LABEL(clk) 1 17>;
421                         status = "disabled";
422                 };
423
424                 CP110_LABEL(nand_controller): nand@720000 {
425                         /*
426                         * Due to the limitation of the pins available
427                         * this controller is only usable on the CPM
428                         * for A7K and on the CPS for A8K.
429                         */
430                         compatible = "marvell,armada-8k-nand-controller",
431                                 "marvell,armada370-nand-controller";
432                         reg = <0x720000 0x54>;
433                         #address-cells = <1>;
434                         #size-cells = <0>;
435                         interrupts = <115 IRQ_TYPE_LEVEL_HIGH>;
436                         clock-names = "core", "reg";
437                         clocks = <&CP110_LABEL(clk) 1 2>,
438                                  <&CP110_LABEL(clk) 1 17>;
439                         marvell,system-controller = <&CP110_LABEL(syscon0)>;
440                         status = "disabled";
441                 };
442
443                 CP110_LABEL(trng): trng@760000 {
444                         compatible = "marvell,armada-8k-rng",
445                         "inside-secure,safexcel-eip76";
446                         reg = <0x760000 0x7d>;
447                         interrupts = <95 IRQ_TYPE_LEVEL_HIGH>;
448                         clock-names = "core", "reg";
449                         clocks = <&CP110_LABEL(clk) 1 25>,
450                                  <&CP110_LABEL(clk) 1 17>;
451                         status = "okay";
452                 };
453
454                 CP110_LABEL(sdhci0): sdhci@780000 {
455                         compatible = "marvell,armada-cp110-sdhci";
456                         reg = <0x780000 0x300>;
457                         interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
458                         clock-names = "core", "axi";
459                         clocks = <&CP110_LABEL(clk) 1 4>, <&CP110_LABEL(clk) 1 18>;
460                         dma-coherent;
461                         status = "disabled";
462                 };
463
464                 CP110_LABEL(crypto): crypto@800000 {
465                         compatible = "inside-secure,safexcel-eip197b";
466                         reg = <0x800000 0x200000>;
467                         interrupts = <87 IRQ_TYPE_LEVEL_HIGH>,
468                                 <88 IRQ_TYPE_LEVEL_HIGH>,
469                                 <89 IRQ_TYPE_LEVEL_HIGH>,
470                                 <90 IRQ_TYPE_LEVEL_HIGH>,
471                                 <91 IRQ_TYPE_LEVEL_HIGH>,
472                                 <92 IRQ_TYPE_LEVEL_HIGH>;
473                         interrupt-names = "mem", "ring0", "ring1",
474                                 "ring2", "ring3", "eip";
475                         clock-names = "core", "reg";
476                         clocks = <&CP110_LABEL(clk) 1 26>,
477                                  <&CP110_LABEL(clk) 1 17>;
478                         dma-coherent;
479                 };
480         };
481
482         CP110_LABEL(pcie0): pcie@CP110_PCIE0_BASE {
483                 compatible = "marvell,armada8k-pcie", "snps,dw-pcie";
484                 reg = <0 ADDRESSIFY(CP110_PCIE0_BASE) 0 0x10000>,
485                       <0 CP110_PCIEx_CONF_BASE(0) 0 0x80000>;
486                 reg-names = "ctrl", "config";
487                 #address-cells = <3>;
488                 #size-cells = <2>;
489                 #interrupt-cells = <1>;
490                 device_type = "pci";
491                 dma-coherent;
492                 msi-parent = <&gic_v2m0>;
493
494                 bus-range = <0 0xff>;
495                 ranges =
496                 /* downstream I/O */
497                 <0x81000000 0 CP110_PCIEx_IO_BASE(0) 0  CP110_PCIEx_IO_BASE(0) 0 0x10000
498                 /* non-prefetchable memory */
499                 0x82000000 0 CP110_PCIEx_MEM_BASE(0) 0  CP110_PCIEx_MEM_BASE(0) 0 0xf00000>;
500                 interrupt-map-mask = <0 0 0 0>;
501                 interrupt-map = <0 0 0 0 &CP110_LABEL(icu_nsr) 22 IRQ_TYPE_LEVEL_HIGH>;
502                 interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;
503                 num-lanes = <1>;
504                 clock-names = "core", "reg";
505                 clocks = <&CP110_LABEL(clk) 1 13>, <&CP110_LABEL(clk) 1 14>;
506                 status = "disabled";
507         };
508
509         CP110_LABEL(pcie1): pcie@CP110_PCIE1_BASE {
510                 compatible = "marvell,armada8k-pcie", "snps,dw-pcie";
511                 reg = <0 ADDRESSIFY(CP110_PCIE1_BASE) 0 0x10000>,
512                       <0 CP110_PCIEx_CONF_BASE(1) 0 0x80000>;
513                 reg-names = "ctrl", "config";
514                 #address-cells = <3>;
515                 #size-cells = <2>;
516                 #interrupt-cells = <1>;
517                 device_type = "pci";
518                 dma-coherent;
519                 msi-parent = <&gic_v2m0>;
520
521                 bus-range = <0 0xff>;
522                 ranges =
523                 /* downstream I/O */
524                 <0x81000000 0 CP110_PCIEx_IO_BASE(1) 0  CP110_PCIEx_IO_BASE(1) 0 0x10000
525                 /* non-prefetchable memory */
526                 0x82000000 0 CP110_PCIEx_MEM_BASE(1) 0  CP110_PCIEx_MEM_BASE(1) 0 0xf00000>;
527                 interrupt-map-mask = <0 0 0 0>;
528                 interrupt-map = <0 0 0 0 &CP110_LABEL(icu_nsr) 24 IRQ_TYPE_LEVEL_HIGH>;
529                 interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
530
531                 num-lanes = <1>;
532                 clock-names = "core", "reg";
533                 clocks = <&CP110_LABEL(clk) 1 11>, <&CP110_LABEL(clk) 1 14>;
534                 status = "disabled";
535         };
536
537         CP110_LABEL(pcie2): pcie@CP110_PCIE2_BASE {
538                 compatible = "marvell,armada8k-pcie", "snps,dw-pcie";
539                 reg = <0 ADDRESSIFY(CP110_PCIE2_BASE) 0 0x10000>,
540                       <0 CP110_PCIEx_CONF_BASE(2) 0 0x80000>;
541                 reg-names = "ctrl", "config";
542                 #address-cells = <3>;
543                 #size-cells = <2>;
544                 #interrupt-cells = <1>;
545                 device_type = "pci";
546                 dma-coherent;
547                 msi-parent = <&gic_v2m0>;
548
549                 bus-range = <0 0xff>;
550                 ranges =
551                 /* downstream I/O */
552                 <0x81000000 0 CP110_PCIEx_IO_BASE(2) 0  CP110_PCIEx_IO_BASE(2) 0 0x10000
553                 /* non-prefetchable memory */
554                 0x82000000 0 CP110_PCIEx_MEM_BASE(2) 0  CP110_PCIEx_MEM_BASE(2) 0 0xf00000>;
555                 interrupt-map-mask = <0 0 0 0>;
556                 interrupt-map = <0 0 0 0 &CP110_LABEL(icu_nsr) 23 IRQ_TYPE_LEVEL_HIGH>;
557                 interrupts = <23 IRQ_TYPE_LEVEL_HIGH>;
558
559                 num-lanes = <1>;
560                 clock-names = "core", "reg";
561                 clocks = <&CP110_LABEL(clk) 1 12>, <&CP110_LABEL(clk) 1 14>;
562                 status = "disabled";
563         };
564 };