On Tue, 13 Nov 2012 14:26:13 +0000, Srinivas KANDAGATLA <[email protected]> wrote: > From: Srinivas Kandagatla <[email protected]> > > When the mdio-gpio driver is probed via device trees, the platform > device id is set as -1, However the id is re-used in the code while > creating an mdio bus. > So, setting up the id via aliases from device tree is a sensible > solution to fix this issue. > > Signed-off-by: Srinivas Kandagatla <[email protected]> > --- > .../devicetree/bindings/net/mdio-gpio.txt | 9 ++++++++- > drivers/net/phy/mdio-gpio.c | 1 + > 2 files changed, 9 insertions(+), 1 deletions(-) > > diff --git a/Documentation/devicetree/bindings/net/mdio-gpio.txt > b/Documentation/devicetree/bindings/net/mdio-gpio.txt > index bc95495..c79bab0 100644 > --- a/Documentation/devicetree/bindings/net/mdio-gpio.txt > +++ b/Documentation/devicetree/bindings/net/mdio-gpio.txt > @@ -8,9 +8,16 @@ gpios property as described in section VIII.1 in the > following order: > > MDC, MDIO. > > +Note: Each gpio-mdio bus should have an alias correctly numbered in "aliases" > +node. > + > Example: > > -mdio { > +aliases { > + mdio-gpio0 = <&mdio0>; > +}; > + > +mdio0: mdio { > compatible = "virtual,mdio-gpio"; > #address-cells = <1>; > #size-cells = <0>; > diff --git a/drivers/net/phy/mdio-gpio.c b/drivers/net/phy/mdio-gpio.c > index 899274f..e3f3115 100644 > --- a/drivers/net/phy/mdio-gpio.c > +++ b/drivers/net/phy/mdio-gpio.c > @@ -56,6 +56,7 @@ static void *mdio_gpio_of_get_data(struct platform_device > *pdev) > if (ret < 0) > return NULL; > pdata->mdio = ret; > + pdev->id = of_alias_get_id(np, "mdio-gpio");
This is actually illegal. Once a device is registered, pdev->id must not be changed. Same goes for pdev->name and pdev->dev.platform_data. g. _______________________________________________ devicetree-discuss mailing list [email protected] https://lists.ozlabs.org/listinfo/devicetree-discuss
