xref: /freebsd-src/sys/contrib/device-tree/Bindings/net/ethernet-controller.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/net/ethernet-controller.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: Ethernet Controller Common Properties
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - David S. Miller <davem@davemloft.net>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotproperties:
13c66ec88fSEmmanuel Vadot  $nodename:
14c66ec88fSEmmanuel Vadot    pattern: "^ethernet(@.*)?$"
15c66ec88fSEmmanuel Vadot
16c9ccf3a3SEmmanuel Vadot  label:
17c9ccf3a3SEmmanuel Vadot    description: Human readable label on a port of a box.
18c9ccf3a3SEmmanuel Vadot
19c66ec88fSEmmanuel Vadot  local-mac-address:
20c66ec88fSEmmanuel Vadot    description:
21c66ec88fSEmmanuel Vadot      Specifies the MAC address that was assigned to the network device.
225def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8-array
23e67e8565SEmmanuel Vadot    minItems: 6
24c66ec88fSEmmanuel Vadot    maxItems: 6
25c66ec88fSEmmanuel Vadot
26c66ec88fSEmmanuel Vadot  mac-address:
27c66ec88fSEmmanuel Vadot    description:
28c66ec88fSEmmanuel Vadot      Specifies the MAC address that was last used by the boot
29c66ec88fSEmmanuel Vadot      program; should be used in cases where the MAC address assigned
30c66ec88fSEmmanuel Vadot      to the device by the boot program is different from the
31c66ec88fSEmmanuel Vadot      local-mac-address property.
325def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8-array
33e67e8565SEmmanuel Vadot    minItems: 6
34c66ec88fSEmmanuel Vadot    maxItems: 6
35c66ec88fSEmmanuel Vadot
36c66ec88fSEmmanuel Vadot  max-frame-size:
375def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
38c66ec88fSEmmanuel Vadot    description:
39c66ec88fSEmmanuel Vadot      Maximum transfer unit (IEEE defined MTU), rather than the
40c66ec88fSEmmanuel Vadot      maximum frame size (there\'s contradiction in the Devicetree
41c66ec88fSEmmanuel Vadot      Specification).
42c66ec88fSEmmanuel Vadot
43c66ec88fSEmmanuel Vadot  max-speed:
445def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
45c66ec88fSEmmanuel Vadot    description:
46c66ec88fSEmmanuel Vadot      Specifies maximum speed in Mbit/s supported by the device.
47c66ec88fSEmmanuel Vadot
48c66ec88fSEmmanuel Vadot  nvmem-cells:
49c66ec88fSEmmanuel Vadot    maxItems: 1
50c66ec88fSEmmanuel Vadot    description:
51c66ec88fSEmmanuel Vadot      Reference to an nvmem node for the MAC address
52c66ec88fSEmmanuel Vadot
5382ea1a07SEmmanuel Vadot  nvmem-cell-names:
54c66ec88fSEmmanuel Vadot    const: mac-address
55c66ec88fSEmmanuel Vadot
56c66ec88fSEmmanuel Vadot  phy-connection-type:
57c66ec88fSEmmanuel Vadot    description:
58c66ec88fSEmmanuel Vadot      Specifies interface type between the Ethernet device and a physical
59c66ec88fSEmmanuel Vadot      layer (PHY) device.
60c66ec88fSEmmanuel Vadot    enum:
61c66ec88fSEmmanuel Vadot      # There is not a standard bus between the MAC and the PHY,
62c66ec88fSEmmanuel Vadot      # something proprietary is being used to embed the PHY in the
63c66ec88fSEmmanuel Vadot      # MAC.
64c66ec88fSEmmanuel Vadot      - internal
65c66ec88fSEmmanuel Vadot      - mii
66c66ec88fSEmmanuel Vadot      - gmii
67c66ec88fSEmmanuel Vadot      - sgmii
68aa1a8ff2SEmmanuel Vadot      - psgmii
69c66ec88fSEmmanuel Vadot      - qsgmii
707ef62cebSEmmanuel Vadot      - qusgmii
71c66ec88fSEmmanuel Vadot      - tbi
72c66ec88fSEmmanuel Vadot      - rev-mii
73c66ec88fSEmmanuel Vadot      - rmii
745956d97fSEmmanuel Vadot      - rev-rmii
75e67e8565SEmmanuel Vadot      - moca
76c66ec88fSEmmanuel Vadot
77c66ec88fSEmmanuel Vadot      # RX and TX delays are added by the MAC when required
78c66ec88fSEmmanuel Vadot      - rgmii
79c66ec88fSEmmanuel Vadot
80c66ec88fSEmmanuel Vadot      # RGMII with internal RX and TX delays provided by the PHY,
81c66ec88fSEmmanuel Vadot      # the MAC should not add the RX or TX delays in this case
82c66ec88fSEmmanuel Vadot      - rgmii-id
83c66ec88fSEmmanuel Vadot
84c66ec88fSEmmanuel Vadot      # RGMII with internal RX delay provided by the PHY, the MAC
85c66ec88fSEmmanuel Vadot      # should not add an RX delay in this case
86c66ec88fSEmmanuel Vadot      - rgmii-rxid
87c66ec88fSEmmanuel Vadot
88c66ec88fSEmmanuel Vadot      # RGMII with internal TX delay provided by the PHY, the MAC
89c66ec88fSEmmanuel Vadot      # should not add an TX delay in this case
90c66ec88fSEmmanuel Vadot      - rgmii-txid
91c66ec88fSEmmanuel Vadot      - rtbi
92c66ec88fSEmmanuel Vadot      - smii
93c66ec88fSEmmanuel Vadot      - xgmii
94c66ec88fSEmmanuel Vadot      - trgmii
95c66ec88fSEmmanuel Vadot      - 1000base-x
96c66ec88fSEmmanuel Vadot      - 2500base-x
975def4c47SEmmanuel Vadot      - 5gbase-r
98c66ec88fSEmmanuel Vadot      - rxaui
99c66ec88fSEmmanuel Vadot      - xaui
100c66ec88fSEmmanuel Vadot
101c66ec88fSEmmanuel Vadot      # 10GBASE-KR, XFI, SFI
102c66ec88fSEmmanuel Vadot      - 10gbase-kr
103c66ec88fSEmmanuel Vadot      - usxgmii
1045def4c47SEmmanuel Vadot      - 10gbase-r
1055956d97fSEmmanuel Vadot      - 25gbase-r
106*0e8011faSEmmanuel Vadot      - 10g-qxgmii
107c66ec88fSEmmanuel Vadot
108c66ec88fSEmmanuel Vadot  phy-mode:
109c66ec88fSEmmanuel Vadot    $ref: "#/properties/phy-connection-type"
110c66ec88fSEmmanuel Vadot
111c9ccf3a3SEmmanuel Vadot  pcs-handle:
1128bab661aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle-array
1138bab661aSEmmanuel Vadot    items:
1148bab661aSEmmanuel Vadot      maxItems: 1
115c9ccf3a3SEmmanuel Vadot    description:
116c9ccf3a3SEmmanuel Vadot      Specifies a reference to a node representing a PCS PHY device on a MDIO
117c9ccf3a3SEmmanuel Vadot      bus to link with an external PHY (phy-handle) if exists.
118c9ccf3a3SEmmanuel Vadot
1198bab661aSEmmanuel Vadot  pcs-handle-names:
1208bab661aSEmmanuel Vadot    description:
1218bab661aSEmmanuel Vadot      The name of each PCS in pcs-handle.
1228bab661aSEmmanuel Vadot
123c66ec88fSEmmanuel Vadot  phy-handle:
1245def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
125c66ec88fSEmmanuel Vadot    description:
126c66ec88fSEmmanuel Vadot      Specifies a reference to a node representing a PHY device.
127c66ec88fSEmmanuel Vadot
128c66ec88fSEmmanuel Vadot  phy:
129c66ec88fSEmmanuel Vadot    $ref: "#/properties/phy-handle"
130c66ec88fSEmmanuel Vadot    deprecated: true
131c66ec88fSEmmanuel Vadot
132c66ec88fSEmmanuel Vadot  phy-device:
133c66ec88fSEmmanuel Vadot    $ref: "#/properties/phy-handle"
134c66ec88fSEmmanuel Vadot    deprecated: true
135c66ec88fSEmmanuel Vadot
136c66ec88fSEmmanuel Vadot  rx-fifo-depth:
1375def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
138c66ec88fSEmmanuel Vadot    description:
139c66ec88fSEmmanuel Vadot      The size of the controller\'s receive fifo in bytes. This is used
140c66ec88fSEmmanuel Vadot      for components that can have configurable receive fifo sizes,
141c66ec88fSEmmanuel Vadot      and is useful for determining certain configuration settings
142c66ec88fSEmmanuel Vadot      such as flow control thresholds.
143c66ec88fSEmmanuel Vadot
144c66ec88fSEmmanuel Vadot  sfp:
1455def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
146c66ec88fSEmmanuel Vadot    description:
147c66ec88fSEmmanuel Vadot      Specifies a reference to a node representing a SFP cage.
148c66ec88fSEmmanuel Vadot
149c66ec88fSEmmanuel Vadot  tx-fifo-depth:
1505def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
151c66ec88fSEmmanuel Vadot    description:
152c66ec88fSEmmanuel Vadot      The size of the controller\'s transmit fifo in bytes. This
153c66ec88fSEmmanuel Vadot      is used for components that can have configurable fifo sizes.
154c66ec88fSEmmanuel Vadot
155c66ec88fSEmmanuel Vadot  managed:
156c66ec88fSEmmanuel Vadot    description:
157c66ec88fSEmmanuel Vadot      Specifies the PHY management type. If auto is set and fixed-link
158c66ec88fSEmmanuel Vadot      is not specified, it uses MDIO for management.
1595def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string
160c66ec88fSEmmanuel Vadot    default: auto
161c66ec88fSEmmanuel Vadot    enum:
162c66ec88fSEmmanuel Vadot      - auto
163c66ec88fSEmmanuel Vadot      - in-band-status
164c66ec88fSEmmanuel Vadot
165c66ec88fSEmmanuel Vadot  fixed-link:
166d5b0e70fSEmmanuel Vadot    oneOf:
167d5b0e70fSEmmanuel Vadot      - $ref: /schemas/types.yaml#/definitions/uint32-array
168c66ec88fSEmmanuel Vadot        deprecated: true
169c66ec88fSEmmanuel Vadot        items:
170c66ec88fSEmmanuel Vadot          - minimum: 0
171c66ec88fSEmmanuel Vadot            maximum: 31
172c66ec88fSEmmanuel Vadot            description:
173c66ec88fSEmmanuel Vadot              Emulated PHY ID, choose any but unique to the all
174c66ec88fSEmmanuel Vadot              specified fixed-links
175c66ec88fSEmmanuel Vadot
176c66ec88fSEmmanuel Vadot          - enum: [0, 1]
177c66ec88fSEmmanuel Vadot            description:
178c66ec88fSEmmanuel Vadot              Duplex configuration. 0 for half duplex or 1 for
179c66ec88fSEmmanuel Vadot              full duplex
180c66ec88fSEmmanuel Vadot
181e67e8565SEmmanuel Vadot          - enum: [10, 100, 1000, 2500, 10000]
182c66ec88fSEmmanuel Vadot            description:
183c66ec88fSEmmanuel Vadot              Link speed in Mbits/sec.
184c66ec88fSEmmanuel Vadot
185c66ec88fSEmmanuel Vadot          - enum: [0, 1]
186c66ec88fSEmmanuel Vadot            description:
187c66ec88fSEmmanuel Vadot              Pause configuration. 0 for no pause, 1 for pause
188c66ec88fSEmmanuel Vadot
189c66ec88fSEmmanuel Vadot          - enum: [0, 1]
190c66ec88fSEmmanuel Vadot            description:
191c66ec88fSEmmanuel Vadot              Asymmetric pause configuration. 0 for no asymmetric
192c66ec88fSEmmanuel Vadot              pause, 1 for asymmetric pause
193d5b0e70fSEmmanuel Vadot      - type: object
194d5b0e70fSEmmanuel Vadot        additionalProperties: false
195c66ec88fSEmmanuel Vadot        properties:
196c66ec88fSEmmanuel Vadot          speed:
197c66ec88fSEmmanuel Vadot            description:
198c66ec88fSEmmanuel Vadot              Link speed.
1995def4c47SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
200e67e8565SEmmanuel Vadot            enum: [10, 100, 1000, 2500, 10000]
201c66ec88fSEmmanuel Vadot
202c66ec88fSEmmanuel Vadot          full-duplex:
2035def4c47SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/flag
204c66ec88fSEmmanuel Vadot            description:
205c66ec88fSEmmanuel Vadot              Indicates that full-duplex is used. When absent, half
206c66ec88fSEmmanuel Vadot              duplex is assumed.
207c66ec88fSEmmanuel Vadot
2085def4c47SEmmanuel Vadot          pause:
209fac71e4eSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/flag
210c66ec88fSEmmanuel Vadot            description:
2115def4c47SEmmanuel Vadot              Indicates that pause should be enabled.
2125def4c47SEmmanuel Vadot
2135def4c47SEmmanuel Vadot          asym-pause:
2145def4c47SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/flag
2155def4c47SEmmanuel Vadot            description:
216c66ec88fSEmmanuel Vadot              Indicates that asym_pause should be enabled.
217c66ec88fSEmmanuel Vadot
218c66ec88fSEmmanuel Vadot          link-gpios:
219c66ec88fSEmmanuel Vadot            maxItems: 1
220c66ec88fSEmmanuel Vadot            description:
221c66ec88fSEmmanuel Vadot              GPIO to determine if the link is up
222c66ec88fSEmmanuel Vadot
223c66ec88fSEmmanuel Vadot        required:
224c66ec88fSEmmanuel Vadot          - speed
225c66ec88fSEmmanuel Vadot
226fac71e4eSEmmanuel Vadot  leds:
227fac71e4eSEmmanuel Vadot    description:
228fac71e4eSEmmanuel Vadot      Describes the LEDs associated by Ethernet Controller.
229fac71e4eSEmmanuel Vadot      These LEDs are not integrated in the PHY and PHY doesn't have any
230fac71e4eSEmmanuel Vadot      control on them. Ethernet Controller regs are used to control
231fac71e4eSEmmanuel Vadot      these defined LEDs.
232fac71e4eSEmmanuel Vadot
233fac71e4eSEmmanuel Vadot    type: object
234fac71e4eSEmmanuel Vadot
235fac71e4eSEmmanuel Vadot    properties:
236fac71e4eSEmmanuel Vadot      '#address-cells':
237fac71e4eSEmmanuel Vadot        const: 1
238fac71e4eSEmmanuel Vadot
239fac71e4eSEmmanuel Vadot      '#size-cells':
240fac71e4eSEmmanuel Vadot        const: 0
241fac71e4eSEmmanuel Vadot
242fac71e4eSEmmanuel Vadot    patternProperties:
243fac71e4eSEmmanuel Vadot      '^led@[a-f0-9]+$':
244fac71e4eSEmmanuel Vadot        $ref: /schemas/leds/common.yaml#
245fac71e4eSEmmanuel Vadot
246fac71e4eSEmmanuel Vadot        properties:
247fac71e4eSEmmanuel Vadot          reg:
248fac71e4eSEmmanuel Vadot            maxItems: 1
249fac71e4eSEmmanuel Vadot            description:
250fac71e4eSEmmanuel Vadot              This define the LED index in the PHY or the MAC. It's really
251fac71e4eSEmmanuel Vadot              driver dependent and required for ports that define multiple
252fac71e4eSEmmanuel Vadot              LED for the same port.
253fac71e4eSEmmanuel Vadot
254fac71e4eSEmmanuel Vadot        required:
255fac71e4eSEmmanuel Vadot          - reg
256fac71e4eSEmmanuel Vadot
257fac71e4eSEmmanuel Vadot        unevaluatedProperties: false
258fac71e4eSEmmanuel Vadot
259fac71e4eSEmmanuel Vadot    additionalProperties: false
260fac71e4eSEmmanuel Vadot
2618bab661aSEmmanuel Vadotdependencies:
2628bab661aSEmmanuel Vadot  pcs-handle-names: [pcs-handle]
2638bab661aSEmmanuel Vadot
264b97ee269SEmmanuel VadotallOf:
265b97ee269SEmmanuel Vadot  - if:
266b97ee269SEmmanuel Vadot      properties:
267b97ee269SEmmanuel Vadot        phy-mode:
268b97ee269SEmmanuel Vadot          contains:
269b97ee269SEmmanuel Vadot            enum:
270b97ee269SEmmanuel Vadot              - rgmii
271b97ee269SEmmanuel Vadot              - rgmii-rxid
272b97ee269SEmmanuel Vadot              - rgmii-txid
273b97ee269SEmmanuel Vadot              - rgmii-id
274b97ee269SEmmanuel Vadot    then:
275b97ee269SEmmanuel Vadot      properties:
276b97ee269SEmmanuel Vadot        rx-internal-delay-ps:
277b97ee269SEmmanuel Vadot          description:
278b97ee269SEmmanuel Vadot            RGMII Receive Clock Delay defined in pico seconds. This is used for
279b97ee269SEmmanuel Vadot            controllers that have configurable RX internal delays. If this
280b97ee269SEmmanuel Vadot            property is present then the MAC applies the RX delay.
281b97ee269SEmmanuel Vadot        tx-internal-delay-ps:
282b97ee269SEmmanuel Vadot          description:
283b97ee269SEmmanuel Vadot            RGMII Transmit Clock Delay defined in pico seconds. This is used for
284b97ee269SEmmanuel Vadot            controllers that have configurable TX internal delays. If this
285b97ee269SEmmanuel Vadot            property is present then the MAC applies the TX delay.
286b97ee269SEmmanuel Vadot
2876be33864SEmmanuel VadotadditionalProperties: true
2886be33864SEmmanuel Vadot
289c66ec88fSEmmanuel Vadot...
290