Re: [PATCH 01/15] drivers: phy: add generic PHY framework
flat view
From: Kishon Vijay Abraham I <hidden>
Date: 2013-07-23 16:29:39
Also in:
linux-arm-kernel, linux-media, linux-omap, linux-samsung-soc, lkml
Hi Greg, On Tuesday 23 July 2013 09:48 PM, Greg KH wrote:
On Tue, Jul 23, 2013 at 08:48:24PM +0530, Kishon Vijay Abraham I wrote:quoted
Hi, On Tuesday 23 July 2013 08:07 PM, Alan Stern wrote:quoted
On Tue, 23 Jul 2013, Tomasz Figa wrote:quoted
On Tuesday 23 of July 2013 09:29:32 Tomasz Figa wrote:quoted
Hi Alan,Thanks for helping to clarify the issues here.quoted
quoted
quoted
Okay. Are PHYs _always_ platform devices?They can be i2c, spi or any other device types as well.In those other cases, presumably there is no platform data associated with the PHY since it isn't a platform device. Then how does the kernel know which controller is attached to the PHY? Is this spelled out in platform data associated with the PHY's i2c/spi/whatever parent?
. . <snip> . .
quoted
static struct phy *phy_lookup(void *priv) { . . if (phy->priv=priv) //instead of string comparison, we'll use pointer return phy; } PHY driver should be like phy_create((dev, ops, pdata->info); The controller driver would do phy_get(dev, NULL, pdata->info); Now the PHY framework will check for a match of *priv* pointer and return the PHY. I think this should be possible?Ick, no. Why can't you just pass the pointer to the phy itself? If you had a "priv" pointer to search from, then you could have just passed the original phy pointer in the first place, right? The issue is that a string "name" is not going to scale at all, as it requires hard-coded information that will change over time (as the existing clock interface is already showing.) Please just pass the real "phy" pointer around, that's what it is there for. Your "board binding" logic/code should be able to handle this, as it somehow was going to do the same thing with a "name".
The problem is the board file won't have the *phy* pointer. *phy* pointer is created at a much later time when the phy driver is probed. Thanks Kishon