1603094b2SGerhard Engleder# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2603094b2SGerhard Engleder%YAML 1.2
3603094b2SGerhard Engleder---
4603094b2SGerhard Engleder$id: http://devicetree.org/schemas/net/engleder,tsnep.yaml#
5603094b2SGerhard Engleder$schema: http://devicetree.org/meta-schemas/core.yaml#
6603094b2SGerhard Engleder
7603094b2SGerhard Engledertitle: TSN endpoint Ethernet MAC binding
8603094b2SGerhard Engleder
9603094b2SGerhard Engledermaintainers:
10603094b2SGerhard Engleder  - Gerhard Engleder <gerhard@engleder-embedded.com>
11603094b2SGerhard Engleder
12603094b2SGerhard EnglederallOf:
13603094b2SGerhard Engleder  - $ref: ethernet-controller.yaml#
14603094b2SGerhard Engleder
15603094b2SGerhard Englederproperties:
16603094b2SGerhard Engleder  compatible:
17603094b2SGerhard Engleder    const: engleder,tsnep
18603094b2SGerhard Engleder
19603094b2SGerhard Engleder  reg:
20603094b2SGerhard Engleder    maxItems: 1
21603094b2SGerhard Engleder
22603094b2SGerhard Engleder  interrupts:
23*60e1b494SGerhard Engleder    minItems: 1
24*60e1b494SGerhard Engleder    maxItems: 8
25*60e1b494SGerhard Engleder
26*60e1b494SGerhard Engleder  interrupt-names:
27*60e1b494SGerhard Engleder    minItems: 1
28*60e1b494SGerhard Engleder    items:
29*60e1b494SGerhard Engleder      - const: mac
30*60e1b494SGerhard Engleder      - const: txrx-1
31*60e1b494SGerhard Engleder      - const: txrx-2
32*60e1b494SGerhard Engleder      - const: txrx-3
33*60e1b494SGerhard Engleder      - const: txrx-4
34*60e1b494SGerhard Engleder      - const: txrx-5
35*60e1b494SGerhard Engleder      - const: txrx-6
36*60e1b494SGerhard Engleder      - const: txrx-7
37*60e1b494SGerhard Engleder    description:
38*60e1b494SGerhard Engleder      The main interrupt for basic MAC features and the first TX/RX queue pair
39*60e1b494SGerhard Engleder      is named "mac". "txrx-[1-7]" are the interrupts for additional TX/RX
40*60e1b494SGerhard Engleder      queue pairs.
41603094b2SGerhard Engleder
42ff46c610SGerhard Engleder  dma-coherent: true
43ff46c610SGerhard Engleder
44603094b2SGerhard Engleder  local-mac-address: true
45603094b2SGerhard Engleder
46603094b2SGerhard Engleder  mac-address: true
47603094b2SGerhard Engleder
48603094b2SGerhard Engleder  nvmem-cells: true
49603094b2SGerhard Engleder
50603094b2SGerhard Engleder  nvmem-cells-names: true
51603094b2SGerhard Engleder
52603094b2SGerhard Engleder  phy-connection-type:
53603094b2SGerhard Engleder    enum:
54603094b2SGerhard Engleder      - mii
55603094b2SGerhard Engleder      - gmii
56603094b2SGerhard Engleder      - rgmii
57603094b2SGerhard Engleder      - rgmii-id
58603094b2SGerhard Engleder
59603094b2SGerhard Engleder  phy-mode: true
60603094b2SGerhard Engleder
61603094b2SGerhard Engleder  phy-handle: true
62603094b2SGerhard Engleder
63603094b2SGerhard Engleder  mdio:
64603094b2SGerhard Engleder    type: object
65603094b2SGerhard Engleder    $ref: "mdio.yaml#"
66603094b2SGerhard Engleder    description: optional node for embedded MDIO controller
67603094b2SGerhard Engleder
68603094b2SGerhard Englederrequired:
69603094b2SGerhard Engleder  - compatible
70603094b2SGerhard Engleder  - reg
71603094b2SGerhard Engleder  - interrupts
72603094b2SGerhard Engleder
73603094b2SGerhard EnglederadditionalProperties: false
74603094b2SGerhard Engleder
75603094b2SGerhard Englederexamples:
76603094b2SGerhard Engleder  - |
77603094b2SGerhard Engleder    axi {
78603094b2SGerhard Engleder        #address-cells = <2>;
79603094b2SGerhard Engleder        #size-cells = <2>;
80*60e1b494SGerhard Engleder        tsnep0: ethernet@a0000000 {
81603094b2SGerhard Engleder            compatible = "engleder,tsnep";
82603094b2SGerhard Engleder            reg = <0x0 0xa0000000 0x0 0x10000>;
83603094b2SGerhard Engleder            interrupts = <0 89 1>;
84603094b2SGerhard Engleder            interrupt-parent = <&gic>;
85603094b2SGerhard Engleder            local-mac-address = [00 00 00 00 00 00];
86603094b2SGerhard Engleder            phy-mode = "rgmii";
87603094b2SGerhard Engleder            phy-handle = <&phy0>;
88603094b2SGerhard Engleder            mdio {
89603094b2SGerhard Engleder                #address-cells = <1>;
90603094b2SGerhard Engleder                #size-cells = <0>;
91603094b2SGerhard Engleder                suppress-preamble;
92603094b2SGerhard Engleder                phy0: ethernet-phy@1 {
93603094b2SGerhard Engleder                    reg = <1>;
94603094b2SGerhard Engleder                    rxc-skew-ps = <1080>;
95603094b2SGerhard Engleder                };
96603094b2SGerhard Engleder            };
97603094b2SGerhard Engleder        };
98*60e1b494SGerhard Engleder
99*60e1b494SGerhard Engleder        tsnep1: ethernet@a0010000 {
100*60e1b494SGerhard Engleder            compatible = "engleder,tsnep";
101*60e1b494SGerhard Engleder            reg = <0x0 0xa0010000 0x0 0x10000>;
102*60e1b494SGerhard Engleder            interrupts = <0 93 1>, <0 94 1>, <0 95 1>, <0 96 1>;
103*60e1b494SGerhard Engleder            interrupt-names = "mac", "txrx-1", "txrx-2", "txrx-3";
104*60e1b494SGerhard Engleder            interrupt-parent = <&gic>;
105*60e1b494SGerhard Engleder            local-mac-address = [00 00 00 00 00 00];
106*60e1b494SGerhard Engleder            phy-mode = "rgmii";
107*60e1b494SGerhard Engleder            phy-handle = <&phy1>;
108*60e1b494SGerhard Engleder            mdio {
109*60e1b494SGerhard Engleder                #address-cells = <1>;
110*60e1b494SGerhard Engleder                #size-cells = <0>;
111*60e1b494SGerhard Engleder                suppress-preamble;
112*60e1b494SGerhard Engleder                phy1: ethernet-phy@1 {
113*60e1b494SGerhard Engleder                    reg = <1>;
114*60e1b494SGerhard Engleder                    rxc-skew-ps = <1080>;
115*60e1b494SGerhard Engleder                };
116*60e1b494SGerhard Engleder            };
117*60e1b494SGerhard Engleder        };
118603094b2SGerhard Engleder    };
119