1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/marvell,prestera.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Marvell Prestera switch family
8
9maintainers:
10  - Miquel Raynal <miquel.raynal@bootlin.com>
11
12properties:
13  compatible:
14    oneOf:
15      - items:
16          - enum:
17              - marvell,prestera-98dx3236
18              - marvell,prestera-98dx3336
19              - marvell,prestera-98dx4251
20          - const: marvell,prestera
21      - enum:
22          - pci11ab,c804
23          - pci11ab,c80c
24          - pci11ab,cc1e
25
26  reg:
27    maxItems: 1
28
29  interrupts:
30    maxItems: 3
31
32  dfx:
33    description: Reference to the DFX Server bus node.
34    $ref: /schemas/types.yaml#/definitions/phandle
35
36  nvmem-cells: true
37
38  nvmem-cell-names: true
39
40if:
41  properties:
42    compatible:
43      contains:
44        const: marvell,prestera
45
46# Memory mapped AlleyCat3 family
47then:
48  properties:
49    nvmem-cells: false
50    nvmem-cell-names: false
51  required:
52    - interrupts
53
54# PCI Aldrin family
55else:
56  properties:
57    interrupts: false
58    dfx: false
59
60required:
61  - compatible
62  - reg
63
64# Ports can also be described
65additionalProperties:
66  type: object
67
68examples:
69  - |
70    packet-processor@0 {
71        compatible = "marvell,prestera-98dx3236", "marvell,prestera";
72        reg = <0 0x4000000>;
73        interrupts = <33>, <34>, <35>;
74        dfx = <&dfx>;
75    };
76
77  - |
78    pcie@0 {
79        #address-cells = <3>;
80        #size-cells = <2>;
81        ranges = <0x02000000 0x0 0x100000 0x10000000 0x0 0x0>;
82        reg = <0x0 0x1000>;
83        device_type = "pci";
84
85        switch@0,0 {
86            reg = <0x0 0x0 0x0 0x0 0x0>;
87            compatible = "pci11ab,c80c";
88            nvmem-cells = <&mac_address 0>;
89            nvmem-cell-names = "mac-address";
90        };
91    };
92