xref: /linux/Documentation/devicetree/bindings/net/sunplus,sp7021-emac.yaml (revision c83b49383b595be50647f0c764a48c78b5f3c4f8)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2# Copyright (C) Sunplus Co., Ltd. 2021
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/net/sunplus,sp7021-emac.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: Sunplus SP7021 Dual Ethernet MAC
9
10maintainers:
11  - Wells Lu <wellslutw@gmail.com>
12
13description: |
14  Sunplus SP7021 dual 10M/100M Ethernet MAC controller.
15  Device node of the controller has following properties.
16
17properties:
18  compatible:
19    const: sunplus,sp7021-emac
20
21  reg:
22    maxItems: 1
23
24  interrupts:
25    maxItems: 1
26
27  clocks:
28    maxItems: 1
29
30  resets:
31    maxItems: 1
32
33  ethernet-ports:
34    type: object
35    additionalProperties: false
36    description: Ethernet ports to PHY
37
38    properties:
39      "#address-cells":
40        const: 1
41
42      "#size-cells":
43        const: 0
44
45    patternProperties:
46      "^port@[0-1]$":
47        type: object
48        additionalProperties: false
49        description: Port to PHY
50
51        properties:
52          reg:
53            minimum: 0
54            maximum: 1
55
56          phy-handle:
57            maxItems: 1
58
59          phy-mode:
60            maxItems: 1
61
62          nvmem-cells:
63            items:
64              - description: nvmem cell address of MAC address
65
66          nvmem-cell-names:
67            description: names corresponding to the nvmem cells
68            items:
69              - const: mac-address
70
71        required:
72          - reg
73          - phy-handle
74          - phy-mode
75          - nvmem-cells
76          - nvmem-cell-names
77
78  mdio:
79    $ref: mdio.yaml#
80    unevaluatedProperties: false
81
82additionalProperties: false
83
84required:
85  - compatible
86  - reg
87  - interrupts
88  - clocks
89  - resets
90  - pinctrl-0
91  - pinctrl-names
92  - ethernet-ports
93  - mdio
94
95examples:
96  - |
97    #include <dt-bindings/interrupt-controller/irq.h>
98
99    ethernet@9c108000 {
100        compatible = "sunplus,sp7021-emac";
101        reg = <0x9c108000 0x400>;
102        interrupt-parent = <&intc>;
103        interrupts = <66 IRQ_TYPE_LEVEL_HIGH>;
104        clocks = <&clkc 0xa7>;
105        resets = <&rstc 0x97>;
106        pinctrl-0 = <&emac_demo_board_v3_pins>;
107        pinctrl-names = "default";
108
109        ethernet-ports {
110            #address-cells = <1>;
111            #size-cells = <0>;
112
113            port@0 {
114                reg = <0>;
115                phy-handle = <&eth_phy0>;
116                phy-mode = "rmii";
117                nvmem-cells = <&mac_addr0>;
118                nvmem-cell-names = "mac-address";
119            };
120
121            port@1 {
122                reg = <1>;
123                phy-handle = <&eth_phy1>;
124                phy-mode = "rmii";
125                nvmem-cells = <&mac_addr1>;
126                nvmem-cell-names = "mac-address";
127            };
128        };
129
130        mdio {
131            #address-cells = <1>;
132            #size-cells = <0>;
133
134            eth_phy0: ethernet-phy@0 {
135                reg = <0>;
136            };
137
138            eth_phy1: ethernet-phy@1 {
139                reg = <1>;
140            };
141        };
142    };
143...
144