mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-27 04:47:05 +00:00
02404bdb81
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>
116 lines
3.1 KiB
YAML
116 lines
3.1 KiB
YAML
# SPDX-License-Identifier: GPL-2.0
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/net/mdio.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: MDIO Bus Common Properties
|
|
|
|
maintainers:
|
|
- Andrew Lunn <andrew@lunn.ch>
|
|
- Florian Fainelli <f.fainelli@gmail.com>
|
|
- Heiner Kallweit <hkallweit1@gmail.com>
|
|
|
|
description:
|
|
These are generic properties that can apply to any MDIO bus. Any
|
|
MDIO bus must have a list of child nodes, one per device on the
|
|
bus. These should follow the generic ethernet-phy.yaml document, or
|
|
a device specific binding document.
|
|
|
|
properties:
|
|
$nodename:
|
|
pattern: '^mdio(-(bus|external))?(@.+|-([0-9]+))?$'
|
|
|
|
"#address-cells":
|
|
const: 1
|
|
|
|
"#size-cells":
|
|
const: 0
|
|
|
|
reset-gpios:
|
|
maxItems: 1
|
|
description:
|
|
The phandle and specifier for the GPIO that controls the RESET
|
|
lines of all devices on that MDIO bus.
|
|
|
|
reset-delay-us:
|
|
description:
|
|
RESET pulse width in microseconds. It applies to all MDIO devices
|
|
and must therefore be appropriately determined based on all devices
|
|
requirements (maximum value of all per-device RESET pulse widths).
|
|
|
|
reset-post-delay-us:
|
|
description:
|
|
Delay after reset deassert in microseconds. It applies to all MDIO
|
|
devices and it's determined by how fast all devices are ready for
|
|
communication. This delay happens just before e.g. Ethernet PHY
|
|
type ID auto detection.
|
|
|
|
clock-frequency:
|
|
description:
|
|
Desired MDIO bus clock frequency in Hz. Values greater than IEEE 802.3
|
|
defined 2.5MHz should only be used when all devices on the bus support
|
|
the given clock speed.
|
|
|
|
suppress-preamble:
|
|
description:
|
|
The 32 bit preamble should be suppressed. In order for this to
|
|
work, all devices on the bus must support suppressed preamble.
|
|
type: boolean
|
|
|
|
patternProperties:
|
|
'@[0-9a-f]+$':
|
|
type: object
|
|
|
|
properties:
|
|
reg:
|
|
minimum: 0
|
|
maximum: 31
|
|
description:
|
|
The ID number for the device.
|
|
|
|
broken-turn-around:
|
|
$ref: /schemas/types.yaml#/definitions/flag
|
|
description:
|
|
If set, indicates the MDIO device does not correctly release
|
|
the turn around line low at end of the control phase of the
|
|
MDIO transaction.
|
|
|
|
reset-gpios:
|
|
maxItems: 1
|
|
description:
|
|
The GPIO phandle and specifier for the MDIO reset signal.
|
|
|
|
reset-assert-us:
|
|
description:
|
|
Delay after the reset was asserted in microseconds. If this
|
|
property is missing the delay will be skipped.
|
|
|
|
reset-deassert-us:
|
|
description:
|
|
Delay after the reset was deasserted in microseconds. If
|
|
this property is missing the delay will be skipped.
|
|
|
|
required:
|
|
- reg
|
|
|
|
additionalProperties: true
|
|
|
|
examples:
|
|
- |
|
|
davinci_mdio: mdio@5c030000 {
|
|
reg = <0x5c030000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
reset-gpios = <&gpio2 5 1>;
|
|
reset-delay-us = <2>;
|
|
|
|
ethphy0: ethernet-phy@1 {
|
|
reg = <1>;
|
|
};
|
|
|
|
ethphy1: ethernet-phy@3 {
|
|
reg = <3>;
|
|
};
|
|
};
|