blob: 4021b054f68446c2e5c82c5a33e52730eaa4a1fb [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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#/$defs/ethernet-ports
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 };