xref: /freebsd/sys/contrib/device-tree/Bindings/net/aeonsemi,as21xxx.yaml (revision ae5de77ed78ae54d86cead5604869212e8008e6b)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/aeonsemi,as21xxx.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Aeonsemi AS21XXX Ethernet PHY
8
9maintainers:
10  - Christian Marangi <ansuelsmth@gmail.com>
11
12description: |
13  Aeonsemi AS21xxx Ethernet PHYs requires a firmware to be loaded to actually
14  work. The same firmware is compatible with various PHYs of the same family.
15
16  A PHY with not firmware loaded will be exposed on the MDIO bus with ID
17  0x7500 0x7500 or 0x7500 0x9410 on C45 registers.
18
19  This can be done and is implemented by OEM in 2 different way:
20    - Attached SPI flash directly to the PHY with the firmware. The PHY
21      will self load the firmware in the presence of this configuration.
22    - Manually provided firmware loaded from a file in the filesystem.
23
24  Each PHY can support up to 5 LEDs.
25
26  AS2xxx PHY Name logic:
27
28  AS21x1xxB1
29      ^ ^^
30      | |J: Supports SyncE/PTP
31      | |P: No SyncE/PTP support
32      | 1: Supports 2nd Serdes
33      | 2: Not 2nd Serdes support
34      0: 10G, 5G, 2.5G
35      5: 5G, 2.5G
36      2: 2.5G
37
38allOf:
39  - $ref: ethernet-phy.yaml#
40
41select:
42  properties:
43    compatible:
44      contains:
45        enum:
46          - ethernet-phy-id7500.9410
47          - ethernet-phy-id7500.9402
48          - ethernet-phy-id7500.9412
49          - ethernet-phy-id7500.9422
50          - ethernet-phy-id7500.9432
51          - ethernet-phy-id7500.9442
52          - ethernet-phy-id7500.9452
53          - ethernet-phy-id7500.9462
54          - ethernet-phy-id7500.9472
55          - ethernet-phy-id7500.9482
56          - ethernet-phy-id7500.9492
57  required:
58    - compatible
59
60properties:
61  reg:
62    maxItems: 1
63
64  firmware-name:
65    description: specify the name of PHY firmware to load
66    maxItems: 1
67
68required:
69  - compatible
70  - reg
71
72if:
73  properties:
74    compatible:
75      contains:
76        const: ethernet-phy-id7500.9410
77then:
78  required:
79    - firmware-name
80else:
81  properties:
82    firmware-name: false
83
84unevaluatedProperties: false
85
86examples:
87  - |
88    #include <dt-bindings/leds/common.h>
89
90    mdio {
91        #address-cells = <1>;
92        #size-cells = <0>;
93
94        ethernet-phy@1f {
95            compatible = "ethernet-phy-id7500.9410",
96                         "ethernet-phy-ieee802.3-c45";
97
98            reg = <31>;
99            firmware-name = "as21x1x_fw.bin";
100
101            leds {
102                #address-cells = <1>;
103                #size-cells = <0>;
104
105                led@0 {
106                    reg = <0>;
107                    color = <LED_COLOR_ID_GREEN>;
108                    function = LED_FUNCTION_LAN;
109                    function-enumerator = <0>;
110                    default-state = "keep";
111                };
112
113                led@1 {
114                    reg = <1>;
115                    color = <LED_COLOR_ID_GREEN>;
116                    function = LED_FUNCTION_LAN;
117                    function-enumerator = <1>;
118                    default-state = "keep";
119                };
120            };
121        };
122    };
123