On 07/29/2018 05:51 PM, Andrew Lunn wrote: > On Sun, Jul 29, 2018 at 04:03:10PM +0200, Hauke Mehrtens wrote: >> On 07/25/2018 05:28 PM, Andrew Lunn wrote: >>>> + /* Make sure the firmware of the embedded GPHY is loaded before, >>>> + * otherwise they will not be detectable on the MDIO bus. >>>> + */ >>>> + of_for_each_phandle(&it, err, np, "lantiq,phys", NULL, 0) { >>>> + phy_np = it.node; >>>> + if (phy_np) { >>>> + struct platform_device *phy = of_find_device_by_node(phy_np); >>>> + >>>> + of_node_put(phy_np); >>>> + if (!platform_get_drvdata(phy)) >>>> + return -EPROBE_DEFER; >>>> + } >>>> + } >>> >>> Is there a device tree binding document for this somewhere? >>> >>> Andrew >>> >> >> No, but I will create one. >> >> I am also not sure iof this is the correct way of doing this. >> >> We first have to load the FW into the Ethernet PHY though some generic >> SoC registers and then we can find it normally on the MDIO bus and >> interact with it like an external PHY on the MDIO bus. > > Hi Hauke > > It look sensible so far, but it would be good to post the PHY firmware > download code as well. Lets see the big picture, then we can decide if > there is a better way. Hi Andrew, It is already in the kernel tree and can be found here: https://elixir.bootlin.com/linux/v4.18-rc6/source/drivers/soc/lantiq/gphy.c I am thinking about merging this into the switch driver, then we do not have to configure the dependency any more. Hauke