Commit | Line | Data |
---|---|---|
9d3de3c5 MR |
1 | # SPDX-License-Identifier: GPL-2.0 |
2 | %YAML 1.2 | |
3 | --- | |
4 | $id: http://devicetree.org/schemas/net/ethernet-controller.yaml# | |
5 | $schema: http://devicetree.org/meta-schemas/core.yaml# | |
6 | ||
7 | title: Ethernet Controller Generic Binding | |
8 | ||
9 | maintainers: | |
10 | - David S. Miller <davem@davemloft.net> | |
11 | ||
12 | properties: | |
13 | $nodename: | |
14 | pattern: "^ethernet(@.*)?$" | |
15 | ||
16 | local-mac-address: | |
9d3de3c5 MR |
17 | description: |
18 | Specifies the MAC address that was assigned to the network device. | |
3d21a460 RH |
19 | $ref: /schemas/types.yaml#definitions/uint8-array |
20 | items: | |
21 | - minItems: 6 | |
22 | maxItems: 6 | |
9d3de3c5 MR |
23 | |
24 | mac-address: | |
9d3de3c5 MR |
25 | description: |
26 | Specifies the MAC address that was last used by the boot | |
27 | program; should be used in cases where the MAC address assigned | |
28 | to the device by the boot program is different from the | |
29 | local-mac-address property. | |
3d21a460 RH |
30 | $ref: /schemas/types.yaml#definitions/uint8-array |
31 | items: | |
32 | - minItems: 6 | |
33 | maxItems: 6 | |
9d3de3c5 MR |
34 | |
35 | max-frame-size: | |
36 | $ref: /schemas/types.yaml#definitions/uint32 | |
37 | description: | |
38 | Maximum transfer unit (IEEE defined MTU), rather than the | |
39 | maximum frame size (there\'s contradiction in the Devicetree | |
40 | Specification). | |
41 | ||
42 | max-speed: | |
43 | $ref: /schemas/types.yaml#definitions/uint32 | |
44 | description: | |
45 | Specifies maximum speed in Mbit/s supported by the device. | |
46 | ||
47 | nvmem-cells: | |
48 | maxItems: 1 | |
49 | description: | |
50 | Reference to an nvmem node for the MAC address | |
51 | ||
52 | nvmem-cells-names: | |
53 | const: mac-address | |
54 | ||
55 | phy-connection-type: | |
56 | description: | |
5f53584c MB |
57 | Specifies interface type between the Ethernet device and a physical |
58 | layer (PHY) device. | |
9d3de3c5 MR |
59 | enum: |
60 | # There is not a standard bus between the MAC and the PHY, | |
61 | # something proprietary is being used to embed the PHY in the | |
62 | # MAC. | |
63 | - internal | |
64 | - mii | |
65 | - gmii | |
66 | - sgmii | |
67 | - qsgmii | |
68 | - tbi | |
69 | - rev-mii | |
70 | - rmii | |
71 | ||
72 | # RX and TX delays are added by the MAC when required | |
73 | - rgmii | |
74 | ||
75 | # RGMII with internal RX and TX delays provided by the PHY, | |
76 | # the MAC should not add the RX or TX delays in this case | |
77 | - rgmii-id | |
78 | ||
79 | # RGMII with internal RX delay provided by the PHY, the MAC | |
80 | # should not add an RX delay in this case | |
81 | - rgmii-rxid | |
82 | ||
83 | # RGMII with internal TX delay provided by the PHY, the MAC | |
84 | # should not add an TX delay in this case | |
85 | - rgmii-txid | |
86 | - rtbi | |
87 | - smii | |
88 | - xgmii | |
89 | - trgmii | |
90 | - 1000base-x | |
91 | - 2500base-x | |
92 | - rxaui | |
93 | - xaui | |
94 | ||
95 | # 10GBASE-KR, XFI, SFI | |
96 | - 10gbase-kr | |
97 | - usxgmii | |
39d3f3ff | 98 | - 10gbase-r |
9d3de3c5 MR |
99 | |
100 | phy-mode: | |
101 | $ref: "#/properties/phy-connection-type" | |
102 | ||
103 | phy-handle: | |
104 | $ref: /schemas/types.yaml#definitions/phandle | |
105 | description: | |
106 | Specifies a reference to a node representing a PHY device. | |
107 | ||
108 | phy: | |
109 | $ref: "#/properties/phy-handle" | |
110 | deprecated: true | |
111 | ||
112 | phy-device: | |
113 | $ref: "#/properties/phy-handle" | |
114 | deprecated: true | |
115 | ||
116 | rx-fifo-depth: | |
117 | $ref: /schemas/types.yaml#definitions/uint32 | |
118 | description: | |
119 | The size of the controller\'s receive fifo in bytes. This is used | |
120 | for components that can have configurable receive fifo sizes, | |
121 | and is useful for determining certain configuration settings | |
122 | such as flow control thresholds. | |
123 | ||
0024bad1 GU |
124 | rx-internal-delay-ps: |
125 | $ref: /schemas/types.yaml#/definitions/uint32 | |
126 | description: | | |
127 | RGMII Receive Clock Delay defined in pico seconds. | |
128 | This is used for controllers that have configurable RX internal delays. | |
129 | If this property is present then the MAC applies the RX delay. | |
130 | ||
fb3d8bcd RK |
131 | sfp: |
132 | $ref: /schemas/types.yaml#definitions/phandle | |
133 | description: | |
134 | Specifies a reference to a node representing a SFP cage. | |
135 | ||
9d3de3c5 MR |
136 | tx-fifo-depth: |
137 | $ref: /schemas/types.yaml#definitions/uint32 | |
138 | description: | |
139 | The size of the controller\'s transmit fifo in bytes. This | |
140 | is used for components that can have configurable fifo sizes. | |
141 | ||
0024bad1 GU |
142 | tx-internal-delay-ps: |
143 | $ref: /schemas/types.yaml#/definitions/uint32 | |
144 | description: | | |
145 | RGMII Transmit Clock Delay defined in pico seconds. | |
146 | This is used for controllers that have configurable TX internal delays. | |
147 | If this property is present then the MAC applies the TX delay. | |
148 | ||
9d3de3c5 | 149 | managed: |
9d3de3c5 MR |
150 | description: |
151 | Specifies the PHY management type. If auto is set and fixed-link | |
152 | is not specified, it uses MDIO for management. | |
3d21a460 RH |
153 | $ref: /schemas/types.yaml#definitions/string |
154 | default: auto | |
155 | enum: | |
156 | - auto | |
157 | - in-band-status | |
9d3de3c5 MR |
158 | |
159 | fixed-link: | |
160 | allOf: | |
161 | - if: | |
162 | type: array | |
163 | then: | |
164 | deprecated: true | |
165 | minItems: 1 | |
166 | maxItems: 1 | |
167 | items: | |
168 | items: | |
169 | - minimum: 0 | |
170 | maximum: 31 | |
171 | description: | |
172 | Emulated PHY ID, choose any but unique to the all | |
173 | specified fixed-links | |
174 | ||
175 | - enum: [0, 1] | |
176 | description: | |
177 | Duplex configuration. 0 for half duplex or 1 for | |
178 | full duplex | |
179 | ||
180 | - enum: [10, 100, 1000] | |
181 | description: | |
182 | Link speed in Mbits/sec. | |
183 | ||
184 | - enum: [0, 1] | |
185 | description: | |
186 | Pause configuration. 0 for no pause, 1 for pause | |
187 | ||
188 | - enum: [0, 1] | |
189 | description: | |
190 | Asymmetric pause configuration. 0 for no asymmetric | |
191 | pause, 1 for asymmetric pause | |
192 | ||
193 | ||
194 | - if: | |
195 | type: object | |
196 | then: | |
197 | properties: | |
198 | speed: | |
9d3de3c5 MR |
199 | description: |
200 | Link speed. | |
3d21a460 RH |
201 | $ref: /schemas/types.yaml#definitions/uint32 |
202 | enum: [10, 100, 1000] | |
9d3de3c5 MR |
203 | |
204 | full-duplex: | |
205 | $ref: /schemas/types.yaml#definitions/flag | |
206 | description: | |
207 | Indicates that full-duplex is used. When absent, half | |
208 | duplex is assumed. | |
209 | ||
210 | asym-pause: | |
211 | $ref: /schemas/types.yaml#definitions/flag | |
212 | description: | |
213 | Indicates that asym_pause should be enabled. | |
214 | ||
215 | link-gpios: | |
216 | maxItems: 1 | |
217 | description: | |
218 | GPIO to determine if the link is up | |
219 | ||
220 | required: | |
221 | - speed | |
222 | ||
6a0e321e RH |
223 | additionalProperties: true |
224 | ||
9d3de3c5 | 225 | ... |