aboutsummaryrefslogtreecommitdiffstats
path: root/package/boot/uboot-sunxi/patches/063-fix-lime2-revK-add-micrel-PHY.patch
blob: 9ea0642537b7dfe3fb1827aad0bd45481d23739f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
--- a/configs/A20-OLinuXino-Lime2-eMMC_defconfig
+++ b/configs/A20-OLinuXino-Lime2-eMMC_defconfig
@@ -8,6 +8,8 @@ CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 CONFIG_USB0_VBUS_PIN="PC17"
 CONFIG_USB0_VBUS_DET="PH5"
 CONFIG_I2C1_ENABLE=y
+CONFIG_PHY_MICREL=y
+CONFIG_PHY_MICREL_KSZ90X1=y
 CONFIG_SATAPWR="PC3"
 CONFIG_AHCI=y
 CONFIG_NR_DRAM_BANKS=1
--- a/configs/A20-OLinuXino-Lime2_defconfig
+++ b/configs/A20-OLinuXino-Lime2_defconfig
@@ -7,6 +7,8 @@ CONFIG_MMC0_CD_PIN="PH1"
 CONFIG_USB0_VBUS_PIN="PC17"
 CONFIG_USB0_VBUS_DET="PH5"
 CONFIG_I2C1_ENABLE=y
+CONFIG_PHY_MICREL=y
+CONFIG_PHY_MICREL_KSZ90X1=y
 CONFIG_SATAPWR="PC3"
 CONFIG_AHCI=y
 CONFIG_NR_DRAM_BANKS=1
--- a/drivers/net/phy/micrel_ksz90x1.c
+++ b/drivers/net/phy/micrel_ksz90x1.c
@@ -13,6 +13,8 @@
 #include <errno.h>
 #include <micrel.h>
 #include <phy.h>
+#include <asm/io.h>
+#include <asm/arch/clock.h>
 
 /*
  * KSZ9021 - KSZ9031 common
@@ -329,6 +331,10 @@ static int ksz9031_phy_extwrite(struct p
 static int ksz9031_config(struct phy_device *phydev)
 {
 	int ret;
+	struct sunxi_ccm_reg *const ccm =
+		(struct sunxi_ccm_reg *)SUNXI_CCM_BASE;
+
+	setbits_le32(&ccm->gmac_clk_cfg, CCM_GMAC_CTRL_TX_CLK_DELAY(4));
 
 	ret = ksz9031_of_config(phydev);
 	if (ret)