xref: /openbmc/linux/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.h (revision f6d73b12ca9fd3b1c29a6a725cd751b972c740cf)
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