Commit c7c52ae7 authored by Joachim Eastwood's avatar Joachim Eastwood Committed by David S. Miller

stmmac: convert dwmac-socfpga to platform driver

Convert platform glue layer into a proper platform
driver and add it to the build system.
Signed-off-by: default avatarJoachim Eastwood <manabian@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e0fb4013
...@@ -66,6 +66,18 @@ config DWMAC_ROCKCHIP ...@@ -66,6 +66,18 @@ config DWMAC_ROCKCHIP
This selects the Rockchip RK3288 SoC glue layer support for This selects the Rockchip RK3288 SoC glue layer support for
the stmmac device driver. the stmmac device driver.
config DWMAC_SOCFPGA
tristate "SOCFPGA dwmac support"
default ARCH_SOCFPGA
depends on OF
select MFD_SYSCON
help
Support for ethernet controller on Altera SOCFPGA
This selects the Altera SOCFPGA SoC glue layer support
for the stmmac device driver. This driver is used for
arria5 and cyclone5 FPGA SoCs.
endif endif
config STMMAC_PCI config STMMAC_PCI
......
...@@ -9,9 +9,10 @@ obj-$(CONFIG_STMMAC_PLATFORM) += stmmac-platform.o ...@@ -9,9 +9,10 @@ obj-$(CONFIG_STMMAC_PLATFORM) += stmmac-platform.o
obj-$(CONFIG_DWMAC_LPC18XX) += dwmac-lpc18xx.o obj-$(CONFIG_DWMAC_LPC18XX) += dwmac-lpc18xx.o
obj-$(CONFIG_DWMAC_MESON) += dwmac-meson.o obj-$(CONFIG_DWMAC_MESON) += dwmac-meson.o
obj-$(CONFIG_DWMAC_ROCKCHIP) += dwmac-rk.o obj-$(CONFIG_DWMAC_ROCKCHIP) += dwmac-rk.o
obj-$(CONFIG_DWMAC_SOCFPGA) += dwmac-socfpga.o
obj-$(CONFIG_DWMAC_GENERIC) += dwmac-generic.o obj-$(CONFIG_DWMAC_GENERIC) += dwmac-generic.o
stmmac-platform-objs:= stmmac_platform.o dwmac-sunxi.o \ stmmac-platform-objs:= stmmac_platform.o dwmac-sunxi.o \
dwmac-sti.o dwmac-socfpga.o dwmac-sti.o
obj-$(CONFIG_STMMAC_PCI) += stmmac-pci.o obj-$(CONFIG_STMMAC_PCI) += stmmac-pci.o
stmmac-pci-objs:= stmmac_pci.o stmmac-pci-objs:= stmmac_pci.o
...@@ -257,9 +257,28 @@ static int socfpga_dwmac_init(struct platform_device *pdev, void *priv) ...@@ -257,9 +257,28 @@ static int socfpga_dwmac_init(struct platform_device *pdev, void *priv)
return ret; return ret;
} }
const struct stmmac_of_data socfpga_gmac_data = { static const struct stmmac_of_data socfpga_gmac_data = {
.setup = socfpga_dwmac_probe, .setup = socfpga_dwmac_probe,
.init = socfpga_dwmac_init, .init = socfpga_dwmac_init,
.exit = socfpga_dwmac_exit, .exit = socfpga_dwmac_exit,
.fix_mac_speed = socfpga_dwmac_fix_mac_speed, .fix_mac_speed = socfpga_dwmac_fix_mac_speed,
}; };
static const struct of_device_id socfpga_dwmac_match[] = {
{ .compatible = "altr,socfpga-stmmac", .data = &socfpga_gmac_data },
{ }
};
MODULE_DEVICE_TABLE(of, socfpga_dwmac_match);
static struct platform_driver socfpga_dwmac_driver = {
.probe = stmmac_pltfr_probe,
.remove = stmmac_pltfr_remove,
.driver = {
.name = "socfpga-dwmac",
.pm = &stmmac_pltfr_pm_ops,
.of_match_table = socfpga_dwmac_match,
},
};
module_platform_driver(socfpga_dwmac_driver);
MODULE_LICENSE("GPL v2");
...@@ -39,7 +39,6 @@ static const struct of_device_id stmmac_dt_ids[] = { ...@@ -39,7 +39,6 @@ static const struct of_device_id stmmac_dt_ids[] = {
{ .compatible = "st,stih416-dwmac", .data = &stih4xx_dwmac_data}, { .compatible = "st,stih416-dwmac", .data = &stih4xx_dwmac_data},
{ .compatible = "st,stid127-dwmac", .data = &stid127_dwmac_data}, { .compatible = "st,stid127-dwmac", .data = &stid127_dwmac_data},
{ .compatible = "st,stih407-dwmac", .data = &stih4xx_dwmac_data}, { .compatible = "st,stih407-dwmac", .data = &stih4xx_dwmac_data},
{ .compatible = "altr,socfpga-stmmac", .data = &socfpga_gmac_data },
{ /* sentinel */ } { /* sentinel */ }
}; };
MODULE_DEVICE_TABLE(of, stmmac_dt_ids); MODULE_DEVICE_TABLE(of, stmmac_dt_ids);
......
...@@ -26,6 +26,5 @@ extern const struct dev_pm_ops stmmac_pltfr_pm_ops; ...@@ -26,6 +26,5 @@ extern const struct dev_pm_ops stmmac_pltfr_pm_ops;
extern const struct stmmac_of_data sun7i_gmac_data; extern const struct stmmac_of_data sun7i_gmac_data;
extern const struct stmmac_of_data stih4xx_dwmac_data; extern const struct stmmac_of_data stih4xx_dwmac_data;
extern const struct stmmac_of_data stid127_dwmac_data; extern const struct stmmac_of_data stid127_dwmac_data;
extern const struct stmmac_of_data socfpga_gmac_data;
#endif /* __STMMAC_PLATFORM_H__ */ #endif /* __STMMAC_PLATFORM_H__ */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment