
On Sun, 2015-03-01 at 09:33 -0700, Simon Glass wrote:
Adjust the Ethernet initialisation code to support driver model. It is no-longer necessary to call designware_initialize(). The device will be probed when it is used. The PHY type and GMAC base will come from the device tree.
I wonder if for this sort of thing designware_initialize couldn't become a nop so we can avoid some level of ifdefs?
Anyway, that's just minor, of larger concern is all the CONFIG_RGMII and CONFIG_GMII stuff which is just above the context here. Doesn't that need to become DM driven for this to be useful?
In fact, doesn't the pinmux generally need to become DM driven?
Or is this just a partial stepping stone to DM Ethernet support and not a complete transition? (I wonder if I am confusing Device Model with Device Tree here and this is all about the former, albeit the former is often driven from the latter...)
Signed-off-by: Simon Glass sjg@chromium.org
board/sunxi/gmac.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/board/sunxi/gmac.c b/board/sunxi/gmac.c index 8849132..ce7831d 100644 --- a/board/sunxi/gmac.c +++ b/board/sunxi/gmac.c @@ -80,11 +80,16 @@ int sunxi_gmac_initialize(bd_t *bis) sunxi_gpio_set_cfgpin(pin, SUN6I_GPA0_GMAC); #endif
-#ifdef CONFIG_RGMII +#ifdef CONFIG_DM_ETH
- printf("eth init\n");
- return 0;
+#else +# ifdef CONFIG_RGMII return designware_initialize(SUNXI_GMAC_BASE, PHY_INTERFACE_MODE_RGMII); -#elif defined CONFIG_GMII +# elif defined CONFIG_GMII return designware_initialize(SUNXI_GMAC_BASE, PHY_INTERFACE_MODE_GMII); -#else +# else return designware_initialize(SUNXI_GMAC_BASE, PHY_INTERFACE_MODE_MII); +# endif #endif }