14fa9c49fSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
2f10f9fb2SAndy Shevchenko /*******************************************************************************
3f10f9fb2SAndy Shevchenko Copyright (C) 2007-2009 STMicroelectronics Ltd
4f10f9fb2SAndy Shevchenko
5f10f9fb2SAndy Shevchenko
6f10f9fb2SAndy Shevchenko Author: Giuseppe Cavallaro <peppe.cavallaro@st.com>
7f10f9fb2SAndy Shevchenko *******************************************************************************/
8f10f9fb2SAndy Shevchenko
9f10f9fb2SAndy Shevchenko #ifndef __STMMAC_PLATFORM_H__
10f10f9fb2SAndy Shevchenko #define __STMMAC_PLATFORM_H__
11f10f9fb2SAndy Shevchenko
12402dae0bSJoachim Eastwood #include "stmmac.h"
13402dae0bSJoachim Eastwood
14402dae0bSJoachim Eastwood struct plat_stmmacenet_data *
1583216e39SMichael Walle stmmac_probe_config_dt(struct platform_device *pdev, u8 *mac);
16d7406542SBartosz Golaszewski struct plat_stmmacenet_data *
17d7406542SBartosz Golaszewski devm_stmmac_probe_config_dt(struct platform_device *pdev, u8 *mac);
18d2ed0a77SJohan Hovold void stmmac_remove_config_dt(struct platform_device *pdev,
19d2ed0a77SJohan Hovold struct plat_stmmacenet_data *plat);
20402dae0bSJoachim Eastwood
21402dae0bSJoachim Eastwood int stmmac_get_platform_resources(struct platform_device *pdev,
22402dae0bSJoachim Eastwood struct stmmac_resources *stmmac_res);
23402dae0bSJoachim Eastwood
2497117eb5SBartosz Golaszewski int stmmac_pltfr_init(struct platform_device *pdev,
2597117eb5SBartosz Golaszewski struct plat_stmmacenet_data *plat);
265b0acf8dSBartosz Golaszewski void stmmac_pltfr_exit(struct platform_device *pdev,
275b0acf8dSBartosz Golaszewski struct plat_stmmacenet_data *plat);
2897117eb5SBartosz Golaszewski
293d5bf75dSBartosz Golaszewski int stmmac_pltfr_probe(struct platform_device *pdev,
303d5bf75dSBartosz Golaszewski struct plat_stmmacenet_data *plat,
313d5bf75dSBartosz Golaszewski struct stmmac_resources *res);
32*fc9ee2acSBartosz Golaszewski int devm_stmmac_pltfr_probe(struct platform_device *pdev,
33*fc9ee2acSBartosz Golaszewski struct plat_stmmacenet_data *plat,
34*fc9ee2acSBartosz Golaszewski struct stmmac_resources *res);
353246627fSUwe Kleine-König void stmmac_pltfr_remove(struct platform_device *pdev);
36902b1607SJoachim Eastwood extern const struct dev_pm_ops stmmac_pltfr_pm_ops;
37902b1607SJoachim Eastwood
get_stmmac_bsp_priv(struct device * dev)381b0acbfdSJoachim Eastwood static inline void *get_stmmac_bsp_priv(struct device *dev)
391b0acbfdSJoachim Eastwood {
401b0acbfdSJoachim Eastwood struct net_device *ndev = dev_get_drvdata(dev);
411b0acbfdSJoachim Eastwood struct stmmac_priv *priv = netdev_priv(ndev);
421b0acbfdSJoachim Eastwood
431b0acbfdSJoachim Eastwood return priv->plat->bsp_priv;
441b0acbfdSJoachim Eastwood }
451b0acbfdSJoachim Eastwood
46f10f9fb2SAndy Shevchenko #endif /* __STMMAC_PLATFORM_H__ */
47