Commit 3e2b7229 authored by Christian Marangi's avatar Christian Marangi Committed by Jakub Kicinski
Browse files

dt-bindings: net: Document support for Aeonsemi PHYs



Add Aeonsemi PHYs and the requirement of a firmware to correctly work.
Also document the max number of LEDs supported and what PHY ID expose
when no firmware is loaded.

Supported PHYs AS21011JB1, AS21011PB1, AS21010JB1, AS21010PB1,
AS21511JB1, AS21511PB1, AS21510JB1, AS21510PB1, AS21210JB1,
AS21210PB1 that all register with the PHY ID 0x7500 0x9410 on C45
registers before the firmware is loaded.

Reviewed-by: default avatarRob Herring (Arm) <robh@kernel.org>
Signed-off-by: default avatarChristian Marangi <ansuelsmth@gmail.com>
Link: https://patch.msgid.link/20250517201353.5137-7-ansuelsmth@gmail.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 830877d8
Loading
Loading
Loading
Loading
+122 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/aeonsemi,as21xxx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Aeonsemi AS21XXX Ethernet PHY

maintainers:
  - Christian Marangi <ansuelsmth@gmail.com>

description: |
  Aeonsemi AS21xxx Ethernet PHYs requires a firmware to be loaded to actually
  work. The same firmware is compatible with various PHYs of the same family.

  A PHY with not firmware loaded will be exposed on the MDIO bus with ID
  0x7500 0x7500 or 0x7500 0x9410 on C45 registers.

  This can be done and is implemented by OEM in 2 different way:
    - Attached SPI flash directly to the PHY with the firmware. The PHY
      will self load the firmware in the presence of this configuration.
    - Manually provided firmware loaded from a file in the filesystem.

  Each PHY can support up to 5 LEDs.

  AS2xxx PHY Name logic:

  AS21x1xxB1
      ^ ^^
      | |J: Supports SyncE/PTP
      | |P: No SyncE/PTP support
      | 1: Supports 2nd Serdes
      | 2: Not 2nd Serdes support
      0: 10G, 5G, 2.5G
      5: 5G, 2.5G
      2: 2.5G

allOf:
  - $ref: ethernet-phy.yaml#

select:
  properties:
    compatible:
      contains:
        enum:
          - ethernet-phy-id7500.9410
          - ethernet-phy-id7500.9402
          - ethernet-phy-id7500.9412
          - ethernet-phy-id7500.9422
          - ethernet-phy-id7500.9432
          - ethernet-phy-id7500.9442
          - ethernet-phy-id7500.9452
          - ethernet-phy-id7500.9462
          - ethernet-phy-id7500.9472
          - ethernet-phy-id7500.9482
          - ethernet-phy-id7500.9492
  required:
    - compatible

properties:
  reg:
    maxItems: 1

  firmware-name:
    description: specify the name of PHY firmware to load
    maxItems: 1

required:
  - compatible
  - reg

if:
  properties:
    compatible:
      contains:
        const: ethernet-phy-id7500.9410
then:
  required:
    - firmware-name
else:
  properties:
    firmware-name: false

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/leds/common.h>

    mdio {
        #address-cells = <1>;
        #size-cells = <0>;

        ethernet-phy@1f {
            compatible = "ethernet-phy-id7500.9410",
                         "ethernet-phy-ieee802.3-c45";

            reg = <31>;
            firmware-name = "as21x1x_fw.bin";

            leds {
                #address-cells = <1>;
                #size-cells = <0>;

                led@0 {
                    reg = <0>;
                    color = <LED_COLOR_ID_GREEN>;
                    function = LED_FUNCTION_LAN;
                    function-enumerator = <0>;
                    default-state = "keep";
                };

                led@1 {
                    reg = <1>;
                    color = <LED_COLOR_ID_GREEN>;
                    function = LED_FUNCTION_LAN;
                    function-enumerator = <1>;
                    default-state = "keep";
                };
            };
        };
    };
+1 −0
Original line number Diff line number Diff line
@@ -650,6 +650,7 @@ AEONSEMI PHY DRIVER
M:	Christian Marangi <ansuelsmth@gmail.com>
L:	netdev@vger.kernel.org
S:	Maintained
F:	Documentation/devicetree/bindings/net/aeonsemi,as21xxx.yaml
F:	drivers/net/phy/as21xxx.c
AF8133J THREE-AXIS MAGNETOMETER DRIVER