Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: net: mdio: change nodename match pattern

Change mdio.yaml nodename match pattern to
'^mdio(-(bus|external))?(@.+|-([0-9]+))$'

Fix mdio.yaml wrong parser mdio controller's address instead phy's address
when mdio-mux exista.

For example:
mdio-mux-emi1@54 {
compatible = "mdio-mux-mmioreg", "mdio-mux";

mdio@20 {
reg = <0x20>;
^^^ This is mdio controller register

ethernet-phy@2 {
reg = <0x2>;
^^^ This phy's address
};
};
};

Only phy's address is limited to 31 because MDIO bus definition.

But CHECK_DTBS report below warning:

arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dtb: mdio-mux-emi1@54:
mdio@20:reg:0:0: 32 is greater than the maximum of 31

The reason is that "mdio-mux-emi1@54" match "nodename: '^mdio(@.*)?'" in
mdio.yaml.

Change to '^mdio(-(bus|external))?(@.+|-([0-9]+))?$' to avoid wrong match
mdio mux controller's node.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20240815163408.4184705-1-Frank.Li@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Frank Li and committed by
Jakub Kicinski
02404bdb 2dce2390

+1 -1
+1 -1
Documentation/devicetree/bindings/net/mdio.yaml
··· 19 19 20 20 properties: 21 21 $nodename: 22 - pattern: "^mdio(@.*)?" 22 + pattern: '^mdio(-(bus|external))?(@.+|-([0-9]+))?$' 23 23 24 24 "#address-cells": 25 25 const: 1