xref: /linux/Documentation/devicetree/bindings/net/marvell,aquantia.yaml (revision cdd30ebb1b9f36159d66f088b61aee264e649d7a)
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  marvell,mdi-cfg-order:
52    $ref: /schemas/types.yaml#/definitions/uint32
53    enum: [0, 1]
54    description:
55      force normal (0) or reverse (1) order of MDI pairs, overriding MDI_CFG bootstrap pin.
56
57  nvmem-cells:
58    description: phandle to the firmware nvmem cell
59    maxItems: 1
60
61  nvmem-cell-names:
62    const: firmware
63
64required:
65  - compatible
66  - reg
67
68unevaluatedProperties: false
69
70examples:
71  - |
72    mdio {
73        #address-cells = <1>;
74        #size-cells = <0>;
75
76        ethernet-phy@0 {
77            compatible = "ethernet-phy-id31c3.1c12",
78                         "ethernet-phy-ieee802.3-c45";
79
80            reg = <0>;
81            firmware-name = "AQR-G4_v5.4.C-AQR_CIG_WF-1945_0x8_ID44776_VER1630.cld";
82        };
83
84        ethernet-phy@1 {
85            compatible = "ethernet-phy-id31c3.1c12",
86                         "ethernet-phy-ieee802.3-c45";
87
88            reg = <1>;
89            nvmem-cells = <&aqr_fw>;
90            nvmem-cell-names = "firmware";
91        };
92    };
93
94    flash {
95        compatible = "jedec,spi-nor";
96        #address-cells = <1>;
97        #size-cells = <1>;
98
99        partitions {
100            compatible = "fixed-partitions";
101            #address-cells = <1>;
102            #size-cells = <1>;
103
104            /* ... */
105
106            partition@650000 {
107                compatible = "nvmem-cells";
108                label = "0:ethphyfw";
109                reg = <0x650000 0x80000>;
110                read-only;
111                #address-cells = <1>;
112                #size-cells = <1>;
113
114                aqr_fw: aqr_fw@0 {
115                    reg = <0x0 0x5f42a>;
116                };
117            };
118
119            /* ... */
120
121        };
122    };
123