Re: [PATCH 4/6] dt-bindings: net: add hisilicon-femac

From: Andrew Lunn
Date: Fri Feb 16 2024 - 08:11:30 EST


> + femac: ethernet@9c30000 {
> + compatible = "hisilicon,hi3798mv200-femac";
> + reg = <0x9c30000 0x1000>, <0x9c31300 0x200>;
> + ranges = <0x0 0x9c30000 0x10000>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> + interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&crg HISTB_ETH0_MAC_CLK>,
> + <&crg HISTB_ETH0_MACIF_CLK>,
> + <&crg HISTB_ETH0_PHY_CLK>;
> + clock-names = "mac", "macif", "phy";
> + resets = <&crg 0xd0 3>, <&crg 0x388 4>;
> + reset-names = "mac", "phy";
> + phy-handle = <&fephy>;
> + phy-connection-type = "mii";
> + // To be filled by bootloader
> + mac-address = [00 00 00 00 00 00];
> + hisilicon,phy-reset-delays-us = <10000 10000 500000>;
> + status = "okay";
> +
> + mdio: mdio@1100 {
> + compatible = "hisilicon,hisi-femac-mdio";

Is the MDIO bus master a device of its own? Is this compatible
actually used anywhere?

There are generally two different ways an MDIO bus master works. It is
an individual device, with its own register space and it gets probed
as an independent device. In this case, it needs a compatible to
indicate what driver should be used.

Or the MDIO bus master is embedded within a MAC driver. It shares the
register space with the MAC driver. It is not a device which gets
probed, and so it does not need a compatible. The MAC drivers
compatible is sufficient.

Andrew