Documentation / devicetree / bindings / net / micrel.yaml


Based on kernel version 7.0. Page generated on 2026-04-23 09:48 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/micrel.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Micrel KSZ series PHYs and switches

maintainers:
  - Andrew Lunn <andrew@lunn.ch>
  - Stefan Eichenberger <eichest@gmail.com>

description:
  The Micrel KSZ series contains different network phys and switches.

properties:
  compatible:
    enum:
      - ethernet-phy-id000e.7237  # KSZ8873MLL
      - ethernet-phy-id0022.1430  # KSZ886X
      - ethernet-phy-id0022.1435  # KSZ8863
      - ethernet-phy-id0022.1510  # KSZ8041
      - ethernet-phy-id0022.1537  # KSZ8041RNLI
      - ethernet-phy-id0022.1550  # KSZ8051
      - ethernet-phy-id0022.1555  # KSZ8021
      - ethernet-phy-id0022.1556  # KSZ8031
      - ethernet-phy-id0022.1560  # KSZ8081, KSZ8091
      - ethernet-phy-id0022.1570  # KSZ8061
      - ethernet-phy-id0022.161a  # KSZ8001
      - ethernet-phy-id0022.1720  # KS8737

  micrel,fiber-mode:
    type: boolean
    description: |
      If present the PHY is configured to operate in fiber mode.
 
      The KSZ8041FTL variant supports fiber mode, enabled by the FXEN
      boot strapping pin. It can't be determined from the PHY registers
      whether the PHY is in fiber mode, so this boolean device tree
      property can be used to describe it.
 
      In fiber mode, auto-negotiation is disabled and the PHY can only
      work in 100base-fx (full and half duplex) modes.

  micrel,led-mode:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: |
      LED mode value to set for PHYs with configurable LEDs.
 
      Configure the LED mode with single value. The list of PHYs and the
      bits that are currently supported:
 
      KSZ8001: register 0x1e, bits 15..14
      KSZ8041: register 0x1e, bits 15..14
      KSZ8021: register 0x1f, bits 5..4
      KSZ8031: register 0x1f, bits 5..4
      KSZ8051: register 0x1f, bits 5..4
      KSZ8081: register 0x1f, bits 5..4
      KSZ8091: register 0x1f, bits 5..4
 
      See the respective PHY datasheet for the mode values.
    minimum: 0
    maximum: 3

allOf:
  - $ref: ethernet-phy.yaml#
  - if:
      not:
        properties:
          compatible:
            contains:
              const: ethernet-phy-id0022.1510
    then:
      properties:
        micrel,fiber-mode: false
  - if:
      not:
        properties:
          compatible:
            contains:
              enum:
                - ethernet-phy-id0022.1510
                - ethernet-phy-id0022.1555
                - ethernet-phy-id0022.1556
                - ethernet-phy-id0022.1550
                - ethernet-phy-id0022.1560
                - ethernet-phy-id0022.161a
    then:
      properties:
        micrel,led-mode: false
  - if:
      properties:
        compatible:
          contains:
            enum:
              - ethernet-phy-id0022.1555
              - ethernet-phy-id0022.1556
              - ethernet-phy-id0022.1560
    then:
      properties:
        clock-names:
          const: rmii-ref
          description:
            The RMII reference input clock. Used to determine the XI input
            clock.
        micrel,rmii-reference-clock-select-25-mhz:
          type: boolean
          description: |
            RMII Reference Clock Select bit selects 25 MHz mode
 
            Setting the RMII Reference Clock Select bit enables 25 MHz rather
            than 50 MHz clock mode.

dependentRequired:
  micrel,rmii-reference-clock-select-25-mhz: [ clock-names ]

unevaluatedProperties: false

examples:
  - |
    mdio {
        #address-cells = <1>;
        #size-cells = <0>;
 
        ethernet-phy@5 {
            compatible = "ethernet-phy-id0022.1510";
            reg = <5>;
            micrel,led-mode = <2>;
            micrel,fiber-mode;
        };
    };