| # 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"; |
| }; |
| }; |
| }; |
| }; |