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
784e85359SKrzysztof Kozlowskititle: TSN endpoint Ethernet MAC
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:
2360e1b494SGerhard Engleder    minItems: 1
2460e1b494SGerhard Engleder    maxItems: 8
2560e1b494SGerhard Engleder
2660e1b494SGerhard Engleder  interrupt-names:
2760e1b494SGerhard Engleder    minItems: 1
2860e1b494SGerhard Engleder    items:
2960e1b494SGerhard Engleder      - const: mac
3060e1b494SGerhard Engleder      - const: txrx-1
3160e1b494SGerhard Engleder      - const: txrx-2
3260e1b494SGerhard Engleder      - const: txrx-3
3360e1b494SGerhard Engleder      - const: txrx-4
3460e1b494SGerhard Engleder      - const: txrx-5
3560e1b494SGerhard Engleder      - const: txrx-6
3660e1b494SGerhard Engleder      - const: txrx-7
3760e1b494SGerhard Engleder    description:
3860e1b494SGerhard Engleder      The main interrupt for basic MAC features and the first TX/RX queue pair
3960e1b494SGerhard Engleder      is named "mac". "txrx-[1-7]" are the interrupts for additional TX/RX
4060e1b494SGerhard 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
50ec683f02SMiquel Raynal  nvmem-cell-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
65*3079bfdbSRob Herring    $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>;
8060e1b494SGerhard 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        };
9860e1b494SGerhard Engleder
9960e1b494SGerhard Engleder        tsnep1: ethernet@a0010000 {
10060e1b494SGerhard Engleder            compatible = "engleder,tsnep";
10160e1b494SGerhard Engleder            reg = <0x0 0xa0010000 0x0 0x10000>;
10260e1b494SGerhard Engleder            interrupts = <0 93 1>, <0 94 1>, <0 95 1>, <0 96 1>;
10360e1b494SGerhard Engleder            interrupt-names = "mac", "txrx-1", "txrx-2", "txrx-3";
10460e1b494SGerhard Engleder            interrupt-parent = <&gic>;
10560e1b494SGerhard Engleder            local-mac-address = [00 00 00 00 00 00];
10660e1b494SGerhard Engleder            phy-mode = "rgmii";
10760e1b494SGerhard Engleder            phy-handle = <&phy1>;
10860e1b494SGerhard Engleder            mdio {
10960e1b494SGerhard Engleder                #address-cells = <1>;
11060e1b494SGerhard Engleder                #size-cells = <0>;
11160e1b494SGerhard Engleder                suppress-preamble;
11260e1b494SGerhard Engleder                phy1: ethernet-phy@1 {
11360e1b494SGerhard Engleder                    reg = <1>;
11460e1b494SGerhard Engleder                    rxc-skew-ps = <1080>;
11560e1b494SGerhard Engleder                };
11660e1b494SGerhard Engleder            };
11760e1b494SGerhard Engleder        };
118603094b2SGerhard Engleder    };
119