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