mirror of https://gitee.com/openkylin/linux.git
stmmac: add a generic dwmac driver
Create a new driver around the generic device tree match strings in the stmmac platform code. This driver is intended to be used by all platforms that doesn't require any platform specific code to function or is using platform data. Signed-off-by: Joachim Eastwood <manabian@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
902b1607f4
commit
ba25020e27
|
@ -26,6 +26,18 @@ config STMMAC_PLATFORM
|
|||
|
||||
If unsure, say N.
|
||||
|
||||
if STMMAC_PLATFORM
|
||||
|
||||
config DWMAC_GENERIC
|
||||
tristate "Generic driver for DWMAC"
|
||||
default STMMAC_PLATFORM
|
||||
---help---
|
||||
Generic DWMAC driver for platforms that don't require any
|
||||
platform specific code to function or is using platform
|
||||
data for setup.
|
||||
|
||||
endif
|
||||
|
||||
config STMMAC_PCI
|
||||
tristate "STMMAC PCI bus support"
|
||||
depends on STMMAC_ETH && PCI
|
||||
|
|
|
@ -4,7 +4,9 @@ stmmac-objs:= stmmac_main.o stmmac_ethtool.o stmmac_mdio.o ring_mode.o \
|
|||
dwmac100_core.o dwmac100_dma.o enh_desc.o norm_desc.o \
|
||||
mmc_core.o stmmac_hwtstamp.o stmmac_ptp.o $(stmmac-y)
|
||||
|
||||
obj-$(CONFIG_STMMAC_PLATFORM) += stmmac-platform.o
|
||||
# Ordering matters. Generic driver must be last.
|
||||
obj-$(CONFIG_STMMAC_PLATFORM) += stmmac-platform.o
|
||||
obj-$(CONFIG_DWMAC_GENERIC) += dwmac-generic.o
|
||||
stmmac-platform-objs:= stmmac_platform.o dwmac-meson.o dwmac-sunxi.o \
|
||||
dwmac-sti.o dwmac-socfpga.o dwmac-rk.o \
|
||||
dwmac-lpc18xx.o
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
/*
|
||||
* Generic DWMAC platform driver
|
||||
*
|
||||
* Copyright (C) 2015 Joachim Eastwood <manabian@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
* warranty of any kind, whether express or implied.
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include "stmmac_platform.h"
|
||||
|
||||
static const struct of_device_id dwmac_generic_match[] = {
|
||||
{ .compatible = "st,spear600-gmac"},
|
||||
{ .compatible = "snps,dwmac-3.610"},
|
||||
{ .compatible = "snps,dwmac-3.70a"},
|
||||
{ .compatible = "snps,dwmac-3.710"},
|
||||
{ .compatible = "snps,dwmac"},
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, dwmac_generic_match);
|
||||
|
||||
static struct platform_driver dwmac_generic_driver = {
|
||||
.probe = stmmac_pltfr_probe,
|
||||
.remove = stmmac_pltfr_remove,
|
||||
.driver = {
|
||||
.name = "dwmac-generic",
|
||||
.pm = &stmmac_pltfr_pm_ops,
|
||||
.of_match_table = of_match_ptr(dwmac_generic_match),
|
||||
},
|
||||
};
|
||||
module_platform_driver(dwmac_generic_driver);
|
||||
|
||||
MODULE_DESCRIPTION("Generic dwmac driver");
|
||||
MODULE_LICENSE("GPL v2");
|
|
@ -43,11 +43,6 @@ static const struct of_device_id stmmac_dt_ids[] = {
|
|||
{ .compatible = "st,stid127-dwmac", .data = &stid127_dwmac_data},
|
||||
{ .compatible = "st,stih407-dwmac", .data = &stih4xx_dwmac_data},
|
||||
{ .compatible = "altr,socfpga-stmmac", .data = &socfpga_gmac_data },
|
||||
{ .compatible = "st,spear600-gmac"},
|
||||
{ .compatible = "snps,dwmac-3.610"},
|
||||
{ .compatible = "snps,dwmac-3.70a"},
|
||||
{ .compatible = "snps,dwmac-3.710"},
|
||||
{ .compatible = "snps,dwmac"},
|
||||
{ /* sentinel */ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, stmmac_dt_ids);
|
||||
|
|
Loading…
Reference in New Issue