Re: [PATCH v3 1/2] dt-bindings: gpio: 74x164: Introduce the 'registers-default' property
From: Linus Walleij <hidden>
Date: 2021-01-07 14:19:16
Also in:
linux-devicetree
On Thu, Jan 7, 2021 at 1:16 PM Fabio Estevam [off-list ref] wrote:
The driver drivers/net/phy/mdio_bus.c and the yaml description says that it only supports one bus level PHY GPIO reset via reset-gpios property.
I suppose it's this binding: Documentation/devicetree/bindings/net/ethernet-phy.yaml
On the imx6ul-evk, there are two KSZ8081 PHYs in the same mdio bus, so this is how I described it in dts: https://pastebin.com/raw/xLjYUHdN but the 'reset-gpios' properties are not found in this case. I think we need to let drivers/net/phy/mdio_bus.c to search for 'reset-gpios' also inside the mdio children.
This driver gives me headache. The bindings say that it should populate devices from the compatible of the subnodes with names like "ethernet-phy-id0141.0e90" and stuff like that. Indeed, but I don't understand why the phy in this example does not have a compatible string? There is some hackery going on to probe the driver from the bus level since commit 46abc02175b3c246dd5141d878f565a8725060c9 "phylib: give mdio buses a device tree presence" But as far as I read the code this driver should be probing devices inidividually for ther reset-gpios, I think the problem is maybe that no proper devices (mdiodev) are added for these devices, does mdiobus_register_device() even get called for them? Does of_mdiobus_register_phy() get called? If this is the problem I think you need to add compatible for your phy devices and make sure there is some code to probe them as well? of_mdiobus_register() must be called by the MDIO bus master/host driver. This is what traverses the children with for_each_available_child_of_node(). Does your host driver properly call this function? Sorry if I sound a bit confused. Yours, Linus Walleij