GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / net / sunplus,sp7021-emac.yaml
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
8 title: Sunplus SP7021 Dual Ethernet MAC
9
10 maintainers:
11   - Wells Lu <wellslutw@gmail.com>
12
13 description: |
14   Sunplus SP7021 dual 10M/100M Ethernet MAC controller.
15   Device node of the controller has following properties.
16
17 properties:
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
82 additionalProperties: false
83
84 required:
85   - compatible
86   - reg
87   - interrupts
88   - clocks
89   - resets
90   - pinctrl-0
91   - pinctrl-names
92   - ethernet-ports
93   - mdio
94
95 examples:
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 ...