290 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			290 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
# SPDX-License-Identifier: GPL-2.0
 | 
						|
%YAML 1.2
 | 
						|
---
 | 
						|
$id: http://devicetree.org/schemas/net/ethernet-controller.yaml#
 | 
						|
$schema: http://devicetree.org/meta-schemas/core.yaml#
 | 
						|
 | 
						|
title: Ethernet Controller Common Properties
 | 
						|
 | 
						|
maintainers:
 | 
						|
  - David S. Miller <davem@davemloft.net>
 | 
						|
 | 
						|
properties:
 | 
						|
  $nodename:
 | 
						|
    pattern: "^ethernet(@.*)?$"
 | 
						|
 | 
						|
  label:
 | 
						|
    description: Human readable label on a port of a box.
 | 
						|
 | 
						|
  local-mac-address:
 | 
						|
    description:
 | 
						|
      Specifies the MAC address that was assigned to the network device.
 | 
						|
    $ref: /schemas/types.yaml#/definitions/uint8-array
 | 
						|
    minItems: 6
 | 
						|
    maxItems: 6
 | 
						|
 | 
						|
  mac-address:
 | 
						|
    description:
 | 
						|
      Specifies the MAC address that was last used by the boot
 | 
						|
      program; should be used in cases where the MAC address assigned
 | 
						|
      to the device by the boot program is different from the
 | 
						|
      local-mac-address property.
 | 
						|
    $ref: /schemas/types.yaml#/definitions/uint8-array
 | 
						|
    minItems: 6
 | 
						|
    maxItems: 6
 | 
						|
 | 
						|
  max-frame-size:
 | 
						|
    $ref: /schemas/types.yaml#/definitions/uint32
 | 
						|
    description:
 | 
						|
      Maximum transfer unit (IEEE defined MTU), rather than the
 | 
						|
      maximum frame size (there\'s contradiction in the Devicetree
 | 
						|
      Specification).
 | 
						|
 | 
						|
  max-speed:
 | 
						|
    $ref: /schemas/types.yaml#/definitions/uint32
 | 
						|
    description:
 | 
						|
      Specifies maximum speed in Mbit/s supported by the device.
 | 
						|
 | 
						|
  nvmem-cells:
 | 
						|
    maxItems: 1
 | 
						|
    description:
 | 
						|
      Reference to an nvmem node for the MAC address
 | 
						|
 | 
						|
  nvmem-cell-names:
 | 
						|
    const: mac-address
 | 
						|
 | 
						|
  phy-connection-type:
 | 
						|
    description:
 | 
						|
      Specifies interface type between the Ethernet device and a physical
 | 
						|
      layer (PHY) device.
 | 
						|
    enum:
 | 
						|
      # There is not a standard bus between the MAC and the PHY,
 | 
						|
      # something proprietary is being used to embed the PHY in the
 | 
						|
      # MAC.
 | 
						|
      - internal
 | 
						|
      - mii
 | 
						|
      - gmii
 | 
						|
      - sgmii
 | 
						|
      - psgmii
 | 
						|
      - qsgmii
 | 
						|
      - qusgmii
 | 
						|
      - tbi
 | 
						|
      - rev-mii
 | 
						|
      - rmii
 | 
						|
      - rev-rmii
 | 
						|
      - moca
 | 
						|
 | 
						|
      # RX and TX delays are added by the MAC when required
 | 
						|
      - rgmii
 | 
						|
 | 
						|
      # RGMII with internal RX and TX delays provided by the PHY,
 | 
						|
      # the MAC should not add the RX or TX delays in this case
 | 
						|
      - rgmii-id
 | 
						|
 | 
						|
      # RGMII with internal RX delay provided by the PHY, the MAC
 | 
						|
      # should not add an RX delay in this case
 | 
						|
      - rgmii-rxid
 | 
						|
 | 
						|
      # RGMII with internal TX delay provided by the PHY, the MAC
 | 
						|
      # should not add an TX delay in this case
 | 
						|
      - rgmii-txid
 | 
						|
      - rtbi
 | 
						|
      - smii
 | 
						|
      - xgmii
 | 
						|
      - trgmii
 | 
						|
      - 1000base-x
 | 
						|
      - 2500base-x
 | 
						|
      - 5gbase-r
 | 
						|
      - rxaui
 | 
						|
      - xaui
 | 
						|
 | 
						|
      # 10GBASE-KR, XFI, SFI
 | 
						|
      - 10gbase-kr
 | 
						|
      - usxgmii
 | 
						|
      - 10gbase-r
 | 
						|
      - 25gbase-r
 | 
						|
      - 10g-qxgmii
 | 
						|
 | 
						|
  phy-mode:
 | 
						|
    $ref: "#/properties/phy-connection-type"
 | 
						|
 | 
						|
  pcs-handle:
 | 
						|
    $ref: /schemas/types.yaml#/definitions/phandle-array
 | 
						|
    items:
 | 
						|
      maxItems: 1
 | 
						|
    description:
 | 
						|
      Specifies a reference to a node representing a PCS PHY device on a MDIO
 | 
						|
      bus to link with an external PHY (phy-handle) if exists.
 | 
						|
 | 
						|
  pcs-handle-names:
 | 
						|
    description:
 | 
						|
      The name of each PCS in pcs-handle.
 | 
						|
 | 
						|
  phy-handle:
 | 
						|
    $ref: /schemas/types.yaml#/definitions/phandle
 | 
						|
    description:
 | 
						|
      Specifies a reference to a node representing a PHY device.
 | 
						|
 | 
						|
  phy:
 | 
						|
    $ref: "#/properties/phy-handle"
 | 
						|
    deprecated: true
 | 
						|
 | 
						|
  phy-device:
 | 
						|
    $ref: "#/properties/phy-handle"
 | 
						|
    deprecated: true
 | 
						|
 | 
						|
  rx-fifo-depth:
 | 
						|
    $ref: /schemas/types.yaml#/definitions/uint32
 | 
						|
    description:
 | 
						|
      The size of the controller\'s receive fifo in bytes. This is used
 | 
						|
      for components that can have configurable receive fifo sizes,
 | 
						|
      and is useful for determining certain configuration settings
 | 
						|
      such as flow control thresholds.
 | 
						|
 | 
						|
  sfp:
 | 
						|
    $ref: /schemas/types.yaml#/definitions/phandle
 | 
						|
    description:
 | 
						|
      Specifies a reference to a node representing a SFP cage.
 | 
						|
 | 
						|
  tx-fifo-depth:
 | 
						|
    $ref: /schemas/types.yaml#/definitions/uint32
 | 
						|
    description:
 | 
						|
      The size of the controller\'s transmit fifo in bytes. This
 | 
						|
      is used for components that can have configurable fifo sizes.
 | 
						|
 | 
						|
  managed:
 | 
						|
    description:
 | 
						|
      Specifies the PHY management type. If auto is set and fixed-link
 | 
						|
      is not specified, it uses MDIO for management.
 | 
						|
    $ref: /schemas/types.yaml#/definitions/string
 | 
						|
    default: auto
 | 
						|
    enum:
 | 
						|
      - auto
 | 
						|
      - in-band-status
 | 
						|
 | 
						|
  fixed-link:
 | 
						|
    oneOf:
 | 
						|
      - $ref: /schemas/types.yaml#/definitions/uint32-array
 | 
						|
        deprecated: true
 | 
						|
        items:
 | 
						|
          - minimum: 0
 | 
						|
            maximum: 31
 | 
						|
            description:
 | 
						|
              Emulated PHY ID, choose any but unique to the all
 | 
						|
              specified fixed-links
 | 
						|
 | 
						|
          - enum: [0, 1]
 | 
						|
            description:
 | 
						|
              Duplex configuration. 0 for half duplex or 1 for
 | 
						|
              full duplex
 | 
						|
 | 
						|
          - enum: [10, 100, 1000, 2500, 10000]
 | 
						|
            description:
 | 
						|
              Link speed in Mbits/sec.
 | 
						|
 | 
						|
          - enum: [0, 1]
 | 
						|
            description:
 | 
						|
              Pause configuration. 0 for no pause, 1 for pause
 | 
						|
 | 
						|
          - enum: [0, 1]
 | 
						|
            description:
 | 
						|
              Asymmetric pause configuration. 0 for no asymmetric
 | 
						|
              pause, 1 for asymmetric pause
 | 
						|
      - type: object
 | 
						|
        additionalProperties: false
 | 
						|
        properties:
 | 
						|
          speed:
 | 
						|
            description:
 | 
						|
              Link speed.
 | 
						|
            $ref: /schemas/types.yaml#/definitions/uint32
 | 
						|
            enum: [10, 100, 1000, 2500, 10000]
 | 
						|
 | 
						|
          full-duplex:
 | 
						|
            $ref: /schemas/types.yaml#/definitions/flag
 | 
						|
            description:
 | 
						|
              Indicates that full-duplex is used. When absent, half
 | 
						|
              duplex is assumed.
 | 
						|
 | 
						|
          pause:
 | 
						|
            $ref: /schemas/types.yaml#/definitions/flag
 | 
						|
            description:
 | 
						|
              Indicates that pause should be enabled.
 | 
						|
 | 
						|
          asym-pause:
 | 
						|
            $ref: /schemas/types.yaml#/definitions/flag
 | 
						|
            description:
 | 
						|
              Indicates that asym_pause should be enabled.
 | 
						|
 | 
						|
          link-gpios:
 | 
						|
            maxItems: 1
 | 
						|
            description:
 | 
						|
              GPIO to determine if the link is up
 | 
						|
 | 
						|
        required:
 | 
						|
          - speed
 | 
						|
 | 
						|
  leds:
 | 
						|
    description:
 | 
						|
      Describes the LEDs associated by Ethernet Controller.
 | 
						|
      These LEDs are not integrated in the PHY and PHY doesn't have any
 | 
						|
      control on them. Ethernet Controller regs are used to control
 | 
						|
      these defined LEDs.
 | 
						|
 | 
						|
    type: object
 | 
						|
 | 
						|
    properties:
 | 
						|
      '#address-cells':
 | 
						|
        const: 1
 | 
						|
 | 
						|
      '#size-cells':
 | 
						|
        const: 0
 | 
						|
 | 
						|
    patternProperties:
 | 
						|
      '^led@[a-f0-9]+$':
 | 
						|
        $ref: /schemas/leds/common.yaml#
 | 
						|
 | 
						|
        properties:
 | 
						|
          reg:
 | 
						|
            maxItems: 1
 | 
						|
            description:
 | 
						|
              This define the LED index in the PHY or the MAC. It's really
 | 
						|
              driver dependent and required for ports that define multiple
 | 
						|
              LED for the same port.
 | 
						|
 | 
						|
        required:
 | 
						|
          - reg
 | 
						|
 | 
						|
        unevaluatedProperties: false
 | 
						|
 | 
						|
    additionalProperties: false
 | 
						|
 | 
						|
dependencies:
 | 
						|
  pcs-handle-names: [pcs-handle]
 | 
						|
 | 
						|
allOf:
 | 
						|
  - if:
 | 
						|
      properties:
 | 
						|
        phy-mode:
 | 
						|
          contains:
 | 
						|
            enum:
 | 
						|
              - rgmii
 | 
						|
              - rgmii-rxid
 | 
						|
              - rgmii-txid
 | 
						|
              - rgmii-id
 | 
						|
    then:
 | 
						|
      properties:
 | 
						|
        rx-internal-delay-ps:
 | 
						|
          description:
 | 
						|
            RGMII Receive Clock Delay defined in pico seconds. This is used for
 | 
						|
            controllers that have configurable RX internal delays. If this
 | 
						|
            property is present then the MAC applies the RX delay.
 | 
						|
        tx-internal-delay-ps:
 | 
						|
          description:
 | 
						|
            RGMII Transmit Clock Delay defined in pico seconds. This is used for
 | 
						|
            controllers that have configurable TX internal delays. If this
 | 
						|
            property is present then the MAC applies the TX delay.
 | 
						|
 | 
						|
additionalProperties: true
 | 
						|
 | 
						|
...
 |