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