xref: /freebsd/sys/contrib/device-tree/Bindings/net/renesas,ethertsn.yaml (revision 5b56413d04e608379c9a306373554a8e4d321bc0)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/renesas,ethertsn.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Renesas Ethernet TSN End-station
8
9maintainers:
10  - Niklas Söderlund <niklas.soderlund@ragnatech.se>
11
12description:
13  The RTSN device provides Ethernet network using a 10 Mbps, 100 Mbps, or 1
14  Gbps full-duplex link via MII/GMII/RMII/RGMII. Depending on the connected PHY.
15
16allOf:
17  - $ref: ethernet-controller.yaml#
18
19properties:
20  compatible:
21    items:
22      - enum:
23          - renesas,r8a779g0-ethertsn       # R-Car V4H
24      - const: renesas,rcar-gen4-ethertsn
25
26  reg:
27    items:
28      - description: TSN End Station target
29      - description: generalized Precision Time Protocol target
30
31  reg-names:
32    items:
33      - const: tsnes
34      - const: gptp
35
36  interrupts:
37    items:
38      - description: TX data interrupt
39      - description: RX data interrupt
40
41  interrupt-names:
42    items:
43      - const: tx
44      - const: rx
45
46  clocks:
47    maxItems: 1
48
49  power-domains:
50    maxItems: 1
51
52  resets:
53    maxItems: 1
54
55  phy-mode:
56    contains:
57      enum:
58        - mii
59        - rgmii
60
61  phy-handle:
62    $ref: /schemas/types.yaml#/definitions/phandle
63    description:
64      Specifies a reference to a node representing a PHY device.
65
66  rx-internal-delay-ps:
67    enum: [0, 1800]
68    default: 0
69
70  tx-internal-delay-ps:
71    enum: [0, 2000]
72    default: 0
73
74  '#address-cells':
75    const: 1
76
77  '#size-cells':
78    const: 0
79
80patternProperties:
81  "^ethernet-phy@[0-9a-f]$":
82    type: object
83    $ref: ethernet-phy.yaml#
84    unevaluatedProperties: false
85
86required:
87  - compatible
88  - reg
89  - reg-names
90  - interrupts
91  - interrupt-names
92  - clocks
93  - power-domains
94  - resets
95  - phy-mode
96  - phy-handle
97  - '#address-cells'
98  - '#size-cells'
99
100additionalProperties: false
101
102examples:
103  - |
104    #include <dt-bindings/clock/r8a779g0-cpg-mssr.h>
105    #include <dt-bindings/interrupt-controller/arm-gic.h>
106    #include <dt-bindings/power/r8a779g0-sysc.h>
107    #include <dt-bindings/gpio/gpio.h>
108
109    tsn0: ethernet@e6460000 {
110        compatible = "renesas,r8a779g0-ethertsn", "renesas,rcar-gen4-ethertsn";
111        reg = <0xe6460000 0x7000>,
112              <0xe6449000 0x500>;
113        reg-names = "tsnes", "gptp";
114        interrupts = <GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH>,
115                     <GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH>;
116        interrupt-names = "tx", "rx";
117        clocks = <&cpg CPG_MOD 2723>;
118        power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
119        resets = <&cpg 2723>;
120
121        phy-mode = "rgmii";
122        tx-internal-delay-ps = <2000>;
123        phy-handle = <&phy3>;
124
125        #address-cells = <1>;
126        #size-cells = <0>;
127
128        phy3: ethernet-phy@3 {
129            compatible = "ethernet-phy-ieee802.3-c45";
130            reg = <0>;
131            interrupt-parent = <&gpio4>;
132            interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
133            reset-gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
134        };
135    };
136