1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/dsa/hirschmann,hellcreek.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Hirschmann Hellcreek TSN Switch
8
9allOf:
10  - $ref: dsa.yaml#
11
12maintainers:
13  - Andrew Lunn <andrew@lunn.ch>
14  - Florian Fainelli <f.fainelli@gmail.com>
15  - Vladimir Oltean <olteanv@gmail.com>
16  - Kurt Kanzenbach <kurt@linutronix.de>
17
18description:
19  The Hellcreek TSN Switch IP is a 802.1Q Ethernet compliant switch. It supports
20  the Precision Time Protocol, Hardware Timestamping as well the Time Aware
21  Shaper.
22
23properties:
24  compatible:
25    items:
26      - const: hirschmann,hellcreek-de1soc-r1
27
28  reg:
29    description:
30      The physical base address and size of TSN and PTP memory base
31    minItems: 2
32    maxItems: 2
33
34  reg-names:
35    items:
36      - const: tsn
37      - const: ptp
38
39  leds:
40    type: object
41    properties:
42      '#address-cells':
43        const: 1
44      '#size-cells':
45        const: 0
46
47    patternProperties:
48      "^led@[01]$":
49        type: object
50        description: Hellcreek leds
51        $ref: /schemas/leds/common.yaml#
52
53        properties:
54          reg:
55            items:
56              - enum: [0, 1]
57            description: Led number
58
59          label: true
60
61          default-state: true
62
63        required:
64          - reg
65
66        additionalProperties: false
67
68    additionalProperties: false
69
70required:
71  - compatible
72  - reg
73  - reg-names
74  - ethernet-ports
75  - leds
76
77unevaluatedProperties: false
78
79examples:
80  - |
81        switch0: switch@ff240000 {
82            compatible = "hirschmann,hellcreek-de1soc-r1";
83            reg = <0xff240000 0x1000>,
84                  <0xff250000 0x1000>;
85            reg-names = "tsn", "ptp";
86            dsa,member = <0 0>;
87
88            ethernet-ports {
89                #address-cells = <1>;
90                #size-cells = <0>;
91
92                port@0 {
93                    reg = <0>;
94                    ethernet = <&gmac0>;
95                    phy-mode = "mii";
96
97                    fixed-link {
98                        speed = <100>;
99                        full-duplex;
100                    };
101                };
102
103                port@2 {
104                    reg = <2>;
105                    label = "lan0";
106                    phy-handle = <&phy1>;
107                };
108
109                port@3 {
110                    reg = <3>;
111                    label = "lan1";
112                    phy-handle = <&phy2>;
113                };
114            };
115
116            leds {
117                #address-cells = <1>;
118                #size-cells = <0>;
119
120                led@0 {
121                    reg = <0>;
122                    label = "sync_good";
123                    default-state = "on";
124                };
125
126                led@1 {
127                    reg = <1>;
128                    label = "is_gm";
129                    default-state = "off";
130                };
131            };
132        };
133