[U-Boot] [PATCH 2/5] net: phy: micrel: Separate KSZ9000 drivers from KSZ8000 drivers

Alex alex.g at adaptrum.com
Thu Jul 27 15:27:15 UTC 2017



On 07/07/2017 01:46 PM, Tom Rini wrote:
> On Fri, Jul 07, 2017 at 10:13:09PM +0200, Marek Vasut wrote:
>> On 07/07/2017 08:36 PM, Alexandru Gagniuc wrote:
>>> The KS8721BL and KSZ9021 PHYs are software-incompatible, yet they
>>> share the same ID. Drivers for bothe PHYs cannot safely coexist, so
>>> the solution was to use #ifdefs to select between the two drivers.
>>>
>>> As a result KSZ9031, which has a unique ID, is now caught in the
>>> crossfire. Unless CONFIG_PHY_MICREL_KSZ9031 is defined, the KSZ9031
>>> will not function properly, as some essential configuration code is
>>> ifdef'd-out.
>>>
>>> To prevent such situations, move the KSZ9000 drivers to a separate
>>> file, and place them under a separate Kconfig option. While it is
>>> possible to enable both KSZ8000 and KSZ9000 drivers at the same time,
>>> the assumption is that it is highly unlikely for a system to contain
>>> both a KSZ8000 and a KSZ9000 PHY, and that only one of the drivers
>>> will be enabled at any given time.
>>>
>>> Signed-off-by: Alexandru Gagniuc <alex.g at adaptrum.com>
>>
>> The solution would be to either specify the PHY type in DT or platform
>> data. This shuffling of ifdefs is IMO pointless.
>
> That sounds like a good long term solution since we can't do things like
> that until phylib is DMified.

Don't forget about the simplicity of being able to probe the PHY. 
AFAICT, it's only micrel that messed things up this way.

Alex


More information about the U-Boot mailing list