Merge tag 'soc-drivers-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[linux-block.git] / Documentation / devicetree / bindings / net / renesas,ethertsn.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/renesas,ethertsn.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Renesas Ethernet TSN End-station
8
9 maintainers:
10   - Niklas Söderlund <niklas.soderlund@ragnatech.se>
11
12 description:
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
16 allOf:
17   - $ref: ethernet-controller.yaml#
18
19 properties:
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
80 patternProperties:
81   "^ethernet-phy@[0-9a-f]$":
82     type: object
83     $ref: ethernet-phy.yaml#
84     unevaluatedProperties: false
85
86 required:
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
100 additionalProperties: false
101
102 examples:
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     };