aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/oxnas/files/arch
diff options
context:
space:
mode:
authorJohn Crispin <john@openwrt.org>2015-10-19 10:09:36 +0000
committerJohn Crispin <john@openwrt.org>2015-10-19 10:09:36 +0000
commit6944a9509118a3f48b3b5b4a585dee718aa75d52 (patch)
tree627f2102cd1c634ddab16c4abc8763f558021518 /target/linux/oxnas/files/arch
parent54b8ddf9e7cb7299d00a9e91c3bc9b2b4334e4fa (diff)
downloadupstream-6944a9509118a3f48b3b5b4a585dee718aa75d52.tar.gz
upstream-6944a9509118a3f48b3b5b4a585dee718aa75d52.tar.bz2
upstream-6944a9509118a3f48b3b5b4a585dee718aa75d52.zip
oxnas: move gmac soc glue from mach to stmmac driver
Still a lot of kernel-version ifdef'ery, but imho that's easy to remove once obsoleted and avoids duplicate code in the meantime. Signed-off-by: Daniel Golle <daniel@makrotopia.org> SVN-Revision: 47218
Diffstat (limited to 'target/linux/oxnas/files/arch')
-rw-r--r--target/linux/oxnas/files/arch/arm/mach-oxnas/mach-ox820.c101
1 files changed, 0 insertions, 101 deletions
diff --git a/target/linux/oxnas/files/arch/arm/mach-oxnas/mach-ox820.c b/target/linux/oxnas/files/arch/arm/mach-oxnas/mach-ox820.c
index 4b247b6b56..718bad7194 100644
--- a/target/linux/oxnas/files/arch/arm/mach-oxnas/mach-ox820.c
+++ b/target/linux/oxnas/files/arch/arm/mach-oxnas/mach-ox820.c
@@ -5,7 +5,6 @@
#include <linux/clocksource.h>
#include <linux/clk-provider.h>
#include <linux/clk.h>
-#include <linux/stmmac.h>
#include <linux/slab.h>
#include <linux/gfp.h>
#include <linux/reset.h>
@@ -57,102 +56,6 @@ void __init ox820_map_common_io(void)
iotable_init(ox820_io_desc, ARRAY_SIZE(ox820_io_desc));
}
-struct plat_gmac_data {
- struct plat_stmmacenet_data stmmac;
- struct clk *clk;
-};
-
-void *ox820_gmac_setup(struct platform_device *pdev)
-{
- struct plat_gmac_data *pdata = pdev->dev.platform_data;
-
- pdata->clk = clk_get(&pdev->dev, "gmac");
- return (void *) pdata->clk;
-};
-
-int ox820_gmac_init(struct platform_device *pdev, void *priv)
-{
- int ret;
- unsigned value;
-
- ret = device_reset(&pdev->dev);
- if (ret)
- return ret;
-
- if (IS_ERR(priv))
- return PTR_ERR(priv);
- clk_prepare_enable(priv);
-
- value = readl(SYS_CTRL_GMAC_CTRL);
-
- /* Enable GMII_GTXCLK to follow GMII_REFCLK, required for gigabit PHY */
- value |= BIT(SYS_CTRL_GMAC_CKEN_GTX);
- /* Use simple mux for 25/125 Mhz clock switching */
- value |= BIT(SYS_CTRL_GMAC_SIMPLE_MUX);
- /* set auto switch tx clock source */
- value |= BIT(SYS_CTRL_GMAC_AUTO_TX_SOURCE);
- /* enable tx & rx vardelay */
- value |= BIT(SYS_CTRL_GMAC_CKEN_TX_OUT);
- value |= BIT(SYS_CTRL_GMAC_CKEN_TXN_OUT);
- value |= BIT(SYS_CTRL_GMAC_CKEN_TX_IN);
- value |= BIT(SYS_CTRL_GMAC_CKEN_RX_OUT);
- value |= BIT(SYS_CTRL_GMAC_CKEN_RXN_OUT);
- value |= BIT(SYS_CTRL_GMAC_CKEN_RX_IN);
- writel(value, SYS_CTRL_GMAC_CTRL);
-
- /* set tx & rx vardelay */
- value = 0;
- value |= SYS_CTRL_GMAC_TX_VARDELAY(4);
- value |= SYS_CTRL_GMAC_TXN_VARDELAY(2);
- value |= SYS_CTRL_GMAC_RX_VARDELAY(10);
- value |= SYS_CTRL_GMAC_RXN_VARDELAY(8);
- writel(value, SYS_CTRL_GMAC_DELAY_CTRL);
-
- return 0;
-}
-
-void ox820_gmac_exit(struct platform_device *pdev, void *priv)
-{
- struct reset_control *rstc;
-
- clk_disable_unprepare(priv);
- clk_put(priv);
-
- rstc = reset_control_get(&pdev->dev, NULL);
- if (!IS_ERR(rstc)) {
- reset_control_assert(rstc);
- reset_control_put(rstc);
- }
-}
-
-static int __init ox820_ether_init(void)
-{
- struct device_node *node;
- struct platform_device *pdev;
- struct plat_gmac_data *pdata;
-
- node = of_find_compatible_node(NULL, NULL, "plxtech,nas782x-gmac");
- if (!node)
- return -ENOENT;
-
- pdev = of_find_device_by_node(node);
- of_node_put(node);
-
- if (!pdev)
- return -EINVAL;
-
- pdata = kzalloc(sizeof(struct plat_gmac_data), GFP_KERNEL);
- if (!pdata)
- return -ENOMEM;
-
- pdata->stmmac.setup = ox820_gmac_setup;
- pdata->stmmac.init = ox820_gmac_init;
- pdata->stmmac.exit = ox820_gmac_exit;
- pdev->dev.platform_data = pdata;
-
- return 0;
-}
-
static void __init ox820_dt_init(void)
{
int ret;
@@ -165,10 +68,6 @@ static void __init ox820_dt_init(void)
BUG();
}
- ret = ox820_ether_init();
-
- if (ret)
- pr_info("ox820_ether_init failed: %d\n", ret);
}
static void __init ox820_timer_init(void)