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