Re: [PATCH v2] dt-bindings: net: microchip,lan78xx: convert to DT schema
From: Rob Herring
Date: Fri Jul 10 2026 - 17:26:35 EST
On Fri, Jul 10, 2026 at 12:17:25AM +0600, Mikhail Lukianchikov wrote:
> Convert the Microchip LAN78xx family (LAN7800, LAN7801, LAN7850) binding
> documentation from plain text to DT schema.
>
> The conversion adds proper validation for the 'microchip,led-modes'
> property inside the MDIO node and updates the MAINTAINERS entry.
>
> Signed-off-by: Mikhail Lukianchikov <avermoal@xxxxxxxxx>
> ---
> Changes in v2:
> - Rename file to microchip,lan7800.yaml.
> - Keeps only one maintainer.
> - Code style fixed.
> - Example fixed, remove usb-port@1 node.
> - Move patternProperties for PHY inside mdio node to fix validation. (suggested by sashiko-bot)
>
> Link to v1: https://lore.kernel.org/netdev/20260707165840.107409-1-avermoal@xxxxxxxxx
>
> .../bindings/net/microchip,lan7800.yaml | 105 ++++++++++++++++++
> .../bindings/net/microchip,lan78xx.txt | 53 ---------
> MAINTAINERS | 3 +-
> 3 files changed, 106 insertions(+), 55 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/net/microchip,lan7800.yaml
> delete mode 100644 Documentation/devicetree/bindings/net/microchip,lan78xx.txt
>
> diff --git a/Documentation/devicetree/bindings/net/microchip,lan7800.yaml b/Documentation/devicetree/bindings/net/microchip,lan7800.yaml
> new file mode 100644
> index 000000000000..289980c23181
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/microchip,lan7800.yaml
> @@ -0,0 +1,105 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/microchip,lan7800.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Microchip LAN7800/LAN7801/LAN7850 Gigabit Ethernet controller
> +
> +maintainers:
> + - Rengarajan Sundararajan <Rengarajan.S@xxxxxxxxxxxxx>
> +
> +description:
> + The LAN7800/LAN7801/LAN7850 devices are usually configured by
> + programming their OTP or with an external EEPROM, but some
> + platforms (e.g. Raspberry Pi 3 B+) have neither. The Device Tree
> + properties, if present, override the OTP and EEPROM.
> +
> +allOf:
> + - $ref: /schemas/usb/usb-device.yaml#
> + - $ref: /schemas/net/ethernet-controller.yaml#
> +
> +properties:
> + compatible:
> + enum:
> + - usb424,7800
> + - usb424,7801
> + - usb424,7850
> +
> + reg:
> + maxItems: 1
> + description: USB port number
> +
> + local-mac-address:
> + $ref: /schemas/types.yaml#/definitions/uint8-array
> + minItems: 6
> + maxItems: 6
> + description:
> + MAC address to use if not stored in OTP or EEPROM. If present,
> + overrides OTP/EEPROM.
> +
> + mdio:
> + $ref: /schemas/net/mdio.yaml#
> + unevaluatedProperties: false
> +
> + patternProperties:
> + "^ethernet-phy(@[0-9a-f]+)?$":
> + type: object
Is there some reason standard phy properties are not valid here? If not,
then add:
$ref: /schemas/net/ethernet-phy.yaml#
unevaluatedProperties: false
> + description: |
> + PHY node for the embedded or external PHY. The PHY address is
> + given by the 'reg' property.
Drop. That's true for every MDIO bus.
> +
> + properties:
> + reg:
> + maxItems: 1
> + description: PHY address.
> +
> + microchip,led-modes:
> + $ref: /schemas/types.yaml#/definitions/uint32-array
> + minItems: 1
> + maxItems: 4
> + description:
> + Array of LED mode values for each of up to 4 LEDs.
> + Omitted LEDs are turned off. Allowed values are defined
> + in include/dt-bindings/net/microchip-lan78xx.h.
> +
> + required:
> + - reg
> +
> + additionalProperties: false
> +
> +required:
> + - compatible
> + - reg
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/net/microchip-lan78xx.h>
> + / {
Drop root node.
> + usb {
> + compatible = "usb-host";
Drop fake compatibles.
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + ethernet@1 {
> + compatible = "usb424,7800";
> + reg = <1>;
> + local-mac-address = [00 11 22 33 44 55];
> +
> + mdio {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + ethernet-phy@1 {
> + reg = <1>;
> + microchip,led-modes = <
> + LAN78XX_LINK_1000_ACTIVITY
> + LAN78XX_LINK_10_100_ACTIVITY
> + >;
> + };
> + };
> + };
> + };
> + };
> +...