
Hi Ian,
On 3 March 2015 at 01:40, Ian Campbell ijc+uboot@hellion.org.uk wrote:
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?
I would rather not, since the intent is to delete the whole function. Once all sunxi uses driver model for Ethernet we can drop the call in gmac.c.
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?
Yes
In fact, doesn't the pinmux generally need to become DM driven?
Yes
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...)
Yes this is Ethernet only. If we create a pinctl or funcmux framework we could implement this, but it is in fact a separate issue from Ethernet.
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 }
Regards, Simon