Merge tag 'docs-5.11-2' of git://git.lwn.net/linux
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / net / dsa / hirschmann,hellcreek.yaml
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
7 title: Hirschmann Hellcreek TSN Switch Device Tree Bindings
8
9 allOf:
10   - $ref: dsa.yaml#
11
12 maintainers:
13   - Andrew Lunn <andrew@lunn.ch>
14   - Florian Fainelli <f.fainelli@gmail.com>
15   - Vivien Didelot <vivien.didelot@gmail.com>
16   - Kurt Kanzenbach <kurt@linutronix.de>
17
18 description:
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
23 properties:
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: ../../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
70 required:
71   - compatible
72   - reg
73   - reg-names
74   - ethernet-ports
75   - leds
76
77 unevaluatedProperties: false
78
79 examples:
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                     label = "cpu";
95                     ethernet = <&gmac0>;
96                 };
97
98                 port@2 {
99                     reg = <2>;
100                     label = "lan0";
101                     phy-handle = <&phy1>;
102                 };
103
104                 port@3 {
105                     reg = <3>;
106                     label = "lan1";
107                     phy-handle = <&phy2>;
108                 };
109             };
110
111             leds {
112                 #address-cells = <1>;
113                 #size-cells = <0>;
114
115                 led@0 {
116                     reg = <0>;
117                     label = "sync_good";
118                     default-state = "on";
119                 };
120
121                 led@1 {
122                     reg = <1>;
123                     label = "is_gm";
124                     default-state = "off";
125                 };
126             };
127         };