1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/net/marvell,pp2.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Marvell CN913X / Marvell Armada 375, 7K, 8K Ethernet Controller
10 - Marcin Wojtas <mw@semihalf.com>
11 - Russell King <linux@armlinux.org>
14 Marvell Armada 375 Ethernet Controller (PPv2.1)
15 Marvell Armada 7K/8K Ethernet Controller (PPv2.2)
16 Marvell CN913X Ethernet Controller (PPv2.3)
21 - marvell,armada-375-pp2
22 - marvell,armada-7k-pp22
37 - description: main controller clock
38 - description: GOP clock
39 - description: MG clock
40 - description: MG Core clock
41 - description: AXI clock
54 marvell,system-controller:
55 $ref: /schemas/types.yaml#/definitions/phandle
56 description: a phandle to the system controller.
59 '^(ethernet-)?port@[0-2]$':
61 description: subnode for each ethernet port.
62 $ref: ethernet-controller.yaml#
63 unevaluatedProperties: false
67 description: ID of the port from the MAC point of view.
73 description: interrupt(s) for the port
90 if more than a single interrupt for is given, must be the
91 name associated to the interrupts listed. Valid names are:
92 "hifX", with X in [0..8], and "link". The names "tx-cpu0",
93 "tx-cpu1", "tx-cpu2", "tx-cpu3" and "rx-shared" are supported
94 for backward compatibility but shouldn't be used for new
101 Generic PHY, providing SerDes connectivity. For most modes,
102 one lane is sufficient, but some (e.g. RXAUI) may require two.
116 $ref: /schemas/types.yaml#/definitions/uint32
119 ID of the port from the MAC point of view.
120 Legacy binding for backward compatibility.
123 $ref: /schemas/types.yaml#/definitions/flag
124 description: port is loopback mode.
127 $ref: /schemas/types.yaml#/definitions/uint32
129 only for marvell,armada-7k-pp22, ID of the port from the
130 GOP (Group Of Ports) point of view. This ID is used to index the
131 per-port registers in the second register area.
149 const: marvell,armada-7k-pp22
154 - description: Packet Processor registers
155 - description: Networking interfaces registers
156 - description: CM3 address space used for TX Flow Control
165 '^(ethernet-)?port@[0-2]$':
170 - marvell,system-controller
175 - description: Packet Processor registers
176 - description: LMS registers
177 - description: Register area per eth0
178 - description: Register area per eth1
187 '^(ethernet-)?port@[0-1]$':
194 additionalProperties: false
198 // For Armada 375 variant
199 #include <dt-bindings/interrupt-controller/mvebu-icu.h>
200 #include <dt-bindings/interrupt-controller/arm-gic.h>
203 #address-cells = <1>;
205 compatible = "marvell,armada-375-pp2";
206 reg = <0xf0000 0xa000>,
210 clocks = <&gateclk 3>, <&gateclk 19>;
211 clock-names = "pp_clk", "gop_clk";
214 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
216 port-id = <0>; /* For backward compatibility. */
218 phy-mode = "rgmii-id";
222 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
224 port-id = <1>; /* For backward compatibility. */
231 // For Armada 7k/8k and Cn913x variants
232 #include <dt-bindings/interrupt-controller/mvebu-icu.h>
233 #include <dt-bindings/interrupt-controller/arm-gic.h>
236 #address-cells = <1>;
238 compatible = "marvell,armada-7k-pp22";
239 reg = <0x0 0x100000>, <0x129000 0xb000>, <0x220000 0x800>;
240 clocks = <&cp0_clk 1 3>, <&cp0_clk 1 9>,
241 <&cp0_clk 1 5>, <&cp0_clk 1 6>, <&cp0_clk 1 18>;
242 clock-names = "pp_clk", "gop_clk", "mg_clk", "mg_core_clk", "axi_clk";
243 marvell,system-controller = <&cp0_syscon0>;
246 interrupts = <ICU_GRP_NSR 39 IRQ_TYPE_LEVEL_HIGH>,
247 <ICU_GRP_NSR 43 IRQ_TYPE_LEVEL_HIGH>,
248 <ICU_GRP_NSR 47 IRQ_TYPE_LEVEL_HIGH>,
249 <ICU_GRP_NSR 51 IRQ_TYPE_LEVEL_HIGH>,
250 <ICU_GRP_NSR 55 IRQ_TYPE_LEVEL_HIGH>,
251 <ICU_GRP_NSR 59 IRQ_TYPE_LEVEL_HIGH>,
252 <ICU_GRP_NSR 63 IRQ_TYPE_LEVEL_HIGH>,
253 <ICU_GRP_NSR 67 IRQ_TYPE_LEVEL_HIGH>,
254 <ICU_GRP_NSR 71 IRQ_TYPE_LEVEL_HIGH>,
255 <ICU_GRP_NSR 129 IRQ_TYPE_LEVEL_HIGH>;
256 interrupt-names = "hif0", "hif1", "hif2", "hif3", "hif4",
257 "hif5", "hif6", "hif7", "hif8", "link";
258 phy-mode = "10gbase-r";
259 phys = <&cp0_comphy4 0>;
261 port-id = <0>; /* For backward compatibility. */
266 interrupts = <ICU_GRP_NSR 40 IRQ_TYPE_LEVEL_HIGH>,
267 <ICU_GRP_NSR 44 IRQ_TYPE_LEVEL_HIGH>,
268 <ICU_GRP_NSR 48 IRQ_TYPE_LEVEL_HIGH>,
269 <ICU_GRP_NSR 52 IRQ_TYPE_LEVEL_HIGH>,
270 <ICU_GRP_NSR 56 IRQ_TYPE_LEVEL_HIGH>,
271 <ICU_GRP_NSR 60 IRQ_TYPE_LEVEL_HIGH>,
272 <ICU_GRP_NSR 64 IRQ_TYPE_LEVEL_HIGH>,
273 <ICU_GRP_NSR 68 IRQ_TYPE_LEVEL_HIGH>,
274 <ICU_GRP_NSR 72 IRQ_TYPE_LEVEL_HIGH>,
275 <ICU_GRP_NSR 128 IRQ_TYPE_LEVEL_HIGH>;
276 interrupt-names = "hif0", "hif1", "hif2", "hif3", "hif4",
277 "hif5", "hif6", "hif7", "hif8", "link";
278 phy-mode = "rgmii-id";
280 port-id = <1>; /* For backward compatibility. */
285 interrupts = <ICU_GRP_NSR 41 IRQ_TYPE_LEVEL_HIGH>,
286 <ICU_GRP_NSR 45 IRQ_TYPE_LEVEL_HIGH>,
287 <ICU_GRP_NSR 49 IRQ_TYPE_LEVEL_HIGH>,
288 <ICU_GRP_NSR 53 IRQ_TYPE_LEVEL_HIGH>,
289 <ICU_GRP_NSR 57 IRQ_TYPE_LEVEL_HIGH>,
290 <ICU_GRP_NSR 61 IRQ_TYPE_LEVEL_HIGH>,
291 <ICU_GRP_NSR 65 IRQ_TYPE_LEVEL_HIGH>,
292 <ICU_GRP_NSR 69 IRQ_TYPE_LEVEL_HIGH>,
293 <ICU_GRP_NSR 73 IRQ_TYPE_LEVEL_HIGH>,
294 <ICU_GRP_NSR 127 IRQ_TYPE_LEVEL_HIGH>;
295 interrupt-names = "hif0", "hif1", "hif2", "hif3", "hif4",
296 "hif5", "hif6", "hif7", "hif8", "link";
297 phy-mode = "2500base-x";
298 managed = "in-band-status";
299 phys = <&cp0_comphy5 2>;
302 port-id = <2>; /* For backward compatibility. */