A PHY can be one that the host has to load firmware into before it can be driven at all. A controller that connects to such a PHY at setup, before its driver has loaded, gets the generic driver or no PHY at all, and one that connects only once gets no working PHY on that port for the rest of the uptime, even though the PHY works seconds later. The flag declares that. A consumer that sees it keeps the port and connects the PHY once its driver binds. It describes the PHY, so it sits on the PHY node and needs no prefix naming one. firmware-name is not used for this: it names the file to load, and the EN8811H driver keeps its two blob names in code, so it would only be read as a presence flag. The need is not derived from the compatible because the knowledge that an ID needs host firmware lives in the PHY driver, and that driver is a module not yet loaded when the MAC connects, so it has to come from the device tree. Found on a Keenetic KN-1012, where the EN8811H behind lan4 has its driver on the root filesystem and the switch sets its ports up before that is mounted, so lan4 stayed dead for the uptime. Assisted-by: LLM Acked-by: Conor Dooley Signed-off-by: Aleksei Sviridkin --- Changes in v5: none, Acked-by added. Documentation/devicetree/bindings/net/ethernet-phy.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/devicetree/bindings/net/ethernet-phy.yaml b/Documentation/devicetree/bindings/net/ethernet-phy.yaml index df50c4c33d76..ab95b9a5d95a 100644 --- a/Documentation/devicetree/bindings/net/ethernet-phy.yaml +++ b/Documentation/devicetree/bindings/net/ethernet-phy.yaml @@ -215,6 +215,12 @@ properties: used. The absence of this property indicates the muxers should be configured so that the external PHY is used. + needs-host-firmware: + $ref: /schemas/types.yaml#/definitions/flag + description: + This PHY runs firmware that the host must load before it can be + driven, and is not usable until then. + resets: maxItems: 1 -- 2.53.0