summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/net/renesas,ether.yaml
blob: f0a52f47f95a0dd00f73622f8a0673cdc37c9bd4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/renesas,ether.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Renesas Electronics SH EtherMAC

allOf:
  - $ref: ethernet-controller.yaml#

maintainers:
  - Sergei Shtylyov <sergei.shtylyov@gmail.com>

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - renesas,gether-r8a7740   # device is a part of R8A7740 SoC
              - renesas,gether-r8a77980  # device is a part of R8A77980 SoC
              - renesas,ether-r7s72100   # device is a part of R7S72100 SoC
              - renesas,ether-r7s9210    # device is a part of R7S9210 SoC
      - items:
          - enum:
              - renesas,ether-r8a7778    # device is a part of R8A7778 SoC
              - renesas,ether-r8a7779    # device is a part of R8A7779 SoC
          - enum:
              - renesas,rcar-gen1-ether  # a generic R-Car Gen1 device
      - items:
          - enum:
              - renesas,ether-r8a7742    # device is a part of R8A7742 SoC
              - renesas,ether-r8a7743    # device is a part of R8A7743 SoC
              - renesas,ether-r8a7745    # device is a part of R8A7745 SoC
              - renesas,ether-r8a7790    # device is a part of R8A7790 SoC
              - renesas,ether-r8a7791    # device is a part of R8A7791 SoC
              - renesas,ether-r8a7793    # device is a part of R8A7793 SoC
              - renesas,ether-r8a7794    # device is a part of R8A7794 SoC
          - enum:
              - renesas,rcar-gen2-ether  # a generic R-Car Gen2 or RZ/G1 device

  reg:
    items:
      - description: E-DMAC/feLic registers
      - description: TSU registers
    minItems: 1

  interrupts:
    maxItems: 1

  '#address-cells':
    description: number of address cells for the MDIO bus
    const: 1

  '#size-cells':
    description: number of size cells on the MDIO bus
    const: 0

  clocks:
    maxItems: 1

  iommus:
    maxItems: 1

  power-domains:
    maxItems: 1

  resets:
    maxItems: 1

  phy-mode: true

  phy-handle: true

  renesas,no-ether-link:
    type: boolean
    description:
      specify when a board does not provide a proper Ether LINK signal

  renesas,ether-link-active-low:
    type: boolean
    description:
      specify when the Ether LINK signal is active-low instead of normal
      active-high

patternProperties:
  "@[0-9a-f]$":
    type: object

required:
  - compatible
  - reg
  - interrupts
  - phy-mode
  - phy-handle
  - '#address-cells'
  - '#size-cells'
  - clocks

additionalProperties: false

examples:
  # Lager board
  - |
    #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/power/r8a7790-sysc.h>
    #include <dt-bindings/gpio/gpio.h>

    ethernet@ee700000 {
        compatible = "renesas,ether-r8a7790", "renesas,rcar-gen2-ether";
        reg = <0xee700000 0x400>;
        interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&cpg CPG_MOD 813>;
        power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
        resets = <&cpg 813>;
        phy-mode = "rmii";
        phy-handle = <&phy1>;
        renesas,ether-link-active-low;
        #address-cells = <1>;
        #size-cells = <0>;

        phy1: ethernet-phy@1 {
            compatible = "ethernet-phy-id0022.1537",
                         "ethernet-phy-ieee802.3-c22";
            reg = <1>;
            interrupt-parent = <&irqc0>;
            interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
            reset-gpios = <&gpio5 31 GPIO_ACTIVE_LOW>;
        };
    };