From: Jens Kuske <jensku...@gmail.com>

The existing net/designware driver can be used for sunxi GMAC.

Signed-off-by: Jens Kuske <jensku...@gmail.com>
---
 arch/arm/cpu/armv7/sunxi/board.c | 21 ++++++++++++++++++++-
 include/configs/sunxi-common.h   |  9 +++++++++
 2 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/arch/arm/cpu/armv7/sunxi/board.c b/arch/arm/cpu/armv7/sunxi/board.c
index 3e66225..8c43ab6 100644
--- a/arch/arm/cpu/armv7/sunxi/board.c
+++ b/arch/arm/cpu/armv7/sunxi/board.c
@@ -29,6 +29,7 @@
 #include <common.h>
 #include <i2c.h>
 #include <netdev.h>
+#include <miiphy.h>
 #include <serial.h>
 #ifdef CONFIG_SPL_BUILD
 #include <spl.h>
@@ -134,14 +135,32 @@ void enable_caches(void)
 }
 #endif
 
-#if defined(CONFIG_SUNXI_EMAC)
+#if defined(CONFIG_SUNXI_EMAC) || defined(CONFIG_SUNXI_GMAC)
 /*
  * Initializes on-chip ethernet controllers.
  * to override, implement board_eth_init()
  */
 int cpu_eth_init(bd_t *bis)
 {
+#ifdef CONFIG_SUNXI_EMAC
        sunxi_emac_initialize(bis);
+#else
+       int pin;
+       struct sunxi_ccm_reg *const ccm =
+               (struct sunxi_ccm_reg *)SUNXI_CCM_BASE;
+
+       /* Set up clock gating */
+       setbits_le32(&ccm->ahb_gate1, 0x1 << AHB_GATE_OFFSET_GMAC);
+
+       /* Set MII clock */
+       setbits_le32(&ccm->gmac_clk_cfg, (0x1 << 2) | (0x2 << 0));
+
+       /* Configure pin mux settings for GMAC */
+       for (pin = SUNXI_GPA(0); pin <= SUNXI_GPA(17); pin++)
+               sunxi_gpio_set_cfgpin(pin, 5);
+
+       designware_initialize(0, SUNXI_GMAC_BASE, 0x1, 
PHY_INTERFACE_MODE_RGMII);
+#endif
 
        return 0;
 }
diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h
index ee21761..165b2ee 100644
--- a/include/configs/sunxi-common.h
+++ b/include/configs/sunxi-common.h
@@ -430,6 +430,15 @@
 #define CONFIG_CMD_NET
 #endif
 
+#ifdef CONFIG_SUNXI_GMAC
+#define CONFIG_DESIGNWARE_ETH          /* GMAC can use designware driver */
+#define CONFIG_DW_AUTONEG
+#define CONFIG_SYS_DCACHE_OFF          /* dw driver doesn't support dcache */
+#define CONFIG_MII                     /* MII PHY management           */
+#define CONFIG_CMD_MII
+#define CONFIG_CMD_NET
+#endif
+
 #ifdef CONFIG_CMD_NET
 #define CONFIG_CMD_PING
 #define CONFIG_CMD_DHCP
-- 
1.8.5.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to