xref: /freebsd/sys/contrib/device-tree/Bindings/net/marvell,aquantia.yaml (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
1*8d13bc63SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*8d13bc63SEmmanuel Vadot%YAML 1.2
3*8d13bc63SEmmanuel Vadot---
4*8d13bc63SEmmanuel Vadot$id: http://devicetree.org/schemas/net/marvell,aquantia.yaml#
5*8d13bc63SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*8d13bc63SEmmanuel Vadot
7*8d13bc63SEmmanuel Vadottitle: Marvell Aquantia Ethernet PHY
8*8d13bc63SEmmanuel Vadot
9*8d13bc63SEmmanuel Vadotmaintainers:
10*8d13bc63SEmmanuel Vadot  - Christian Marangi <ansuelsmth@gmail.com>
11*8d13bc63SEmmanuel Vadot
12*8d13bc63SEmmanuel Vadotdescription: |
13*8d13bc63SEmmanuel Vadot  Marvell Aquantia Ethernet PHY require a firmware to be loaded to actually
14*8d13bc63SEmmanuel Vadot  work.
15*8d13bc63SEmmanuel Vadot
16*8d13bc63SEmmanuel Vadot  This can be done and is implemented by OEM in 3 different way:
17*8d13bc63SEmmanuel Vadot    - Attached SPI flash directly to the PHY with the firmware. The PHY
18*8d13bc63SEmmanuel Vadot      will self load the firmware in the presence of this configuration.
19*8d13bc63SEmmanuel Vadot    - Read from a dedicated partition on system NAND declared in an
20*8d13bc63SEmmanuel Vadot      NVMEM cell, and loaded to the PHY using its mailbox interface.
21*8d13bc63SEmmanuel Vadot    - Manually provided firmware loaded from a file in the filesystem.
22*8d13bc63SEmmanuel Vadot
23*8d13bc63SEmmanuel VadotallOf:
24*8d13bc63SEmmanuel Vadot  - $ref: ethernet-phy.yaml#
25*8d13bc63SEmmanuel Vadot
26*8d13bc63SEmmanuel Vadotselect:
27*8d13bc63SEmmanuel Vadot  properties:
28*8d13bc63SEmmanuel Vadot    compatible:
29*8d13bc63SEmmanuel Vadot      contains:
30*8d13bc63SEmmanuel Vadot        enum:
31*8d13bc63SEmmanuel Vadot          - ethernet-phy-id03a1.b445
32*8d13bc63SEmmanuel Vadot          - ethernet-phy-id03a1.b460
33*8d13bc63SEmmanuel Vadot          - ethernet-phy-id03a1.b4a2
34*8d13bc63SEmmanuel Vadot          - ethernet-phy-id03a1.b4d0
35*8d13bc63SEmmanuel Vadot          - ethernet-phy-id03a1.b4e0
36*8d13bc63SEmmanuel Vadot          - ethernet-phy-id03a1.b5c2
37*8d13bc63SEmmanuel Vadot          - ethernet-phy-id03a1.b4b0
38*8d13bc63SEmmanuel Vadot          - ethernet-phy-id03a1.b662
39*8d13bc63SEmmanuel Vadot          - ethernet-phy-id03a1.b712
40*8d13bc63SEmmanuel Vadot          - ethernet-phy-id31c3.1c12
41*8d13bc63SEmmanuel Vadot  required:
42*8d13bc63SEmmanuel Vadot    - compatible
43*8d13bc63SEmmanuel Vadot
44*8d13bc63SEmmanuel Vadotproperties:
45*8d13bc63SEmmanuel Vadot  reg:
46*8d13bc63SEmmanuel Vadot    maxItems: 1
47*8d13bc63SEmmanuel Vadot
48*8d13bc63SEmmanuel Vadot  firmware-name:
49*8d13bc63SEmmanuel Vadot    description: specify the name of PHY firmware to load
50*8d13bc63SEmmanuel Vadot
51*8d13bc63SEmmanuel Vadot  nvmem-cells:
52*8d13bc63SEmmanuel Vadot    description: phandle to the firmware nvmem cell
53*8d13bc63SEmmanuel Vadot    maxItems: 1
54*8d13bc63SEmmanuel Vadot
55*8d13bc63SEmmanuel Vadot  nvmem-cell-names:
56*8d13bc63SEmmanuel Vadot    const: firmware
57*8d13bc63SEmmanuel Vadot
58*8d13bc63SEmmanuel Vadotrequired:
59*8d13bc63SEmmanuel Vadot  - compatible
60*8d13bc63SEmmanuel Vadot  - reg
61*8d13bc63SEmmanuel Vadot
62*8d13bc63SEmmanuel VadotunevaluatedProperties: false
63*8d13bc63SEmmanuel Vadot
64*8d13bc63SEmmanuel Vadotexamples:
65*8d13bc63SEmmanuel Vadot  - |
66*8d13bc63SEmmanuel Vadot    mdio {
67*8d13bc63SEmmanuel Vadot        #address-cells = <1>;
68*8d13bc63SEmmanuel Vadot        #size-cells = <0>;
69*8d13bc63SEmmanuel Vadot
70*8d13bc63SEmmanuel Vadot        ethernet-phy@0 {
71*8d13bc63SEmmanuel Vadot            compatible = "ethernet-phy-id31c3.1c12",
72*8d13bc63SEmmanuel Vadot                         "ethernet-phy-ieee802.3-c45";
73*8d13bc63SEmmanuel Vadot
74*8d13bc63SEmmanuel Vadot            reg = <0>;
75*8d13bc63SEmmanuel Vadot            firmware-name = "AQR-G4_v5.4.C-AQR_CIG_WF-1945_0x8_ID44776_VER1630.cld";
76*8d13bc63SEmmanuel Vadot        };
77*8d13bc63SEmmanuel Vadot
78*8d13bc63SEmmanuel Vadot        ethernet-phy@1 {
79*8d13bc63SEmmanuel Vadot            compatible = "ethernet-phy-id31c3.1c12",
80*8d13bc63SEmmanuel Vadot                         "ethernet-phy-ieee802.3-c45";
81*8d13bc63SEmmanuel Vadot
82*8d13bc63SEmmanuel Vadot            reg = <1>;
83*8d13bc63SEmmanuel Vadot            nvmem-cells = <&aqr_fw>;
84*8d13bc63SEmmanuel Vadot            nvmem-cell-names = "firmware";
85*8d13bc63SEmmanuel Vadot        };
86*8d13bc63SEmmanuel Vadot    };
87*8d13bc63SEmmanuel Vadot
88*8d13bc63SEmmanuel Vadot    flash {
89*8d13bc63SEmmanuel Vadot        compatible = "jedec,spi-nor";
90*8d13bc63SEmmanuel Vadot        #address-cells = <1>;
91*8d13bc63SEmmanuel Vadot        #size-cells = <1>;
92*8d13bc63SEmmanuel Vadot
93*8d13bc63SEmmanuel Vadot        partitions {
94*8d13bc63SEmmanuel Vadot            compatible = "fixed-partitions";
95*8d13bc63SEmmanuel Vadot            #address-cells = <1>;
96*8d13bc63SEmmanuel Vadot            #size-cells = <1>;
97*8d13bc63SEmmanuel Vadot
98*8d13bc63SEmmanuel Vadot            /* ... */
99*8d13bc63SEmmanuel Vadot
100*8d13bc63SEmmanuel Vadot            partition@650000 {
101*8d13bc63SEmmanuel Vadot                compatible = "nvmem-cells";
102*8d13bc63SEmmanuel Vadot                label = "0:ethphyfw";
103*8d13bc63SEmmanuel Vadot                reg = <0x650000 0x80000>;
104*8d13bc63SEmmanuel Vadot                read-only;
105*8d13bc63SEmmanuel Vadot                #address-cells = <1>;
106*8d13bc63SEmmanuel Vadot                #size-cells = <1>;
107*8d13bc63SEmmanuel Vadot
108*8d13bc63SEmmanuel Vadot                aqr_fw: aqr_fw@0 {
109*8d13bc63SEmmanuel Vadot                    reg = <0x0 0x5f42a>;
110*8d13bc63SEmmanuel Vadot                };
111*8d13bc63SEmmanuel Vadot            };
112*8d13bc63SEmmanuel Vadot
113*8d13bc63SEmmanuel Vadot            /* ... */
114*8d13bc63SEmmanuel Vadot
115*8d13bc63SEmmanuel Vadot        };
116*8d13bc63SEmmanuel Vadot    };
117