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