Skip to content

Commit 0fbe92b

Browse files
Ansueldavem330
authored andcommitted
dt-bindings: Document Marvell Aquantia PHY
Document bindings for Marvell Aquantia PHY. The Marvell Aquantia PHY require a firmware to work correctly and there at least 3 way to load this firmware. Describe all the different way and document the binding "firmware-name" to load the PHY firmware from userspace. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> Reviewed-by: Conor Dooley <conor.dooley@microchip.com> Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent e93984e commit 0fbe92b

File tree

1 file changed

+116
-0
lines changed

1 file changed

+116
-0
lines changed
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
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+
7+
title: Marvell Aquantia Ethernet PHY
8+
9+
maintainers:
10+
- Christian Marangi <ansuelsmth@gmail.com>
11+
12+
description: |
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+
23+
allOf:
24+
- $ref: ethernet-phy.yaml#
25+
26+
select:
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+
44+
properties:
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+
58+
required:
59+
- compatible
60+
- reg
61+
62+
unevaluatedProperties: false
63+
64+
examples:
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+
};

0 commit comments

Comments
 (0)