1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- From 34722924d416c3521de2bc8d10dfcd07a55135ea Mon Sep 17 00:00:00 2001
- From: Chen-Yu Tsai <[email protected]>
- Date: Sat, 7 Dec 2013 01:29:36 +0800
- Subject: [PATCH] net: stmmac: Use platform data tied with compatible strings
- Signed-off-by: Chen-Yu Tsai <[email protected]>
- ---
- .../net/ethernet/stmicro/stmmac/stmmac_platform.c | 29 ++++++++++++++--------
- 1 file changed, 19 insertions(+), 10 deletions(-)
- --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
- +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
- @@ -26,8 +26,19 @@
- #include <linux/io.h>
- #include <linux/of.h>
- #include <linux/of_net.h>
- +#include <linux/of_device.h>
- #include "stmmac.h"
-
- +static const struct of_device_id stmmac_dt_ids[] = {
- + { .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);
- +
- #ifdef CONFIG_OF
- static int stmmac_probe_config_dt(struct platform_device *pdev,
- struct plat_stmmacenet_data *plat,
- @@ -35,10 +46,18 @@ static int stmmac_probe_config_dt(struct
- {
- struct device_node *np = pdev->dev.of_node;
- struct stmmac_dma_cfg *dma_cfg;
- + const struct of_device_id *device;
-
- if (!np)
- return -ENODEV;
-
- + device = of_match_device(stmmac_dt_ids, &pdev->dev);
- + if (!device)
- + return -ENODEV;
- +
- + if (device->data)
- + memcpy(plat, device->data, sizeof(*plat));
- +
- *mac = of_get_mac_address(np);
- plat->interface = of_get_phy_mode(np);
-
- @@ -257,16 +276,6 @@ static const struct dev_pm_ops stmmac_pl
- static const struct dev_pm_ops stmmac_pltfr_pm_ops;
- #endif /* CONFIG_PM */
-
- -static const struct of_device_id stmmac_dt_ids[] = {
- - { .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);
- -
- struct platform_driver stmmac_pltfr_driver = {
- .probe = stmmac_pltfr_probe,
- .remove = stmmac_pltfr_remove,
|