[RFC PATCHv2 0/4] Add DT support for fixed PHYs

Christian Gmeiner christian.gmeiner at gmail.com
Wed Sep 25 03:12:35 EDT 2013


Hi

>> Hello,
>>
>> Here is a second version of the patch set that adds a Device Tree
>> binding and the related code to support fixed PHYs. Marked as RFC,
>> this patch set is obviously not intended for merging in 3.12.
>>
>> Since the first version, the changes have been:
>>
>>  * Instead of using a 'fixed-link' property inside the Ethernet device
>>    DT node, with a fairly cryptic succession of integer values, we now
>>    use a PHY subnode under the Ethernet device DT node, with explicit
>>    properties to configure the duplex, speed, pause and other PHY
>>    properties.
>>
>>  * The PHY address is automatically allocated by the kernel and no
>>    longer visible in the Device Tree binding.
>>
>>  * The PHY device is created directly when the network driver calls
>>    of_phy_connect_fixed_link(), and associated to the PHY DT node,
>>    which allows the existing of_phy_connect() function to work,
>>    without the need to use the deprecated of_phy_connect_fixed_link().
>>
>> The things I am not entirely happy with yet are:
>>
>>  * The PHY ID is hardcoded to 0xdeadbeef. Ideally, it should be a
>>    properly reserved vendor/device identifier, but it isn't clear how
>>    to get one allocated for this purpose.
>>
>>  * The fixed_phy_register() function in drivers/net/phy/fixed.c has
>>    some OF references. So ideally, I would have preferred to put this
>>    code in drivers/of/of_mdio.c, but to call get_phy_device(), we need
>>    a reference to the mii_bus structure that represents the fixed MDIO
>>    bus.
>>
>>  * There is some error management missing in fixed_phy_register(), but
>>    it can certainly be added easily. This RFC is meant to sort out the
>>    general idea.
>
> +1 for the general idea. This really looks good now. I've not much more
> to say. Maybe someone from the devicetree corner has a few words for the
> binding?
>

I tested the whole series with an I.MX6D board with the FEC driver:
fec 2188000.ethernet eth0: Freescale FEC PHY driver [Generic PHY]
(mii_bus:phy_addr=fixed-0:00, irq=-1)

For me binding looks nice and I hope to see this patch series in 3.13.

Tested-by: Christian Gmeiner <christian.gmeiner at gmail.com>
--
Christian Gmeiner, MSc



More information about the linux-arm-kernel mailing list