net: dwc_et_qos: update weak function board_interface_eth_init

Align the board and driver prototype for board_interface_eth_init
to avoid execution issue (the interface_type parameter is defined
as int or phy_interface_t).

To have a generic weak function (it should be reused by other driver)
I change the prototype to use directly udevice.

This prototype is added in netdev.h to allow compilation check
and avoid warning when compiling with W=1 on file
board/st/stm32mp1/stm32mp1.c

warning: no previous prototype for 'board_interface_eth_init'\
[-Wmissing-prototypes]
     int board_interface_eth_init(int interface_type, ....
         ^~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
This commit is contained in:
Patrick Delaunay 2019-08-01 11:29:03 +02:00 committed by Joe Hershberger
parent 50d86e55a4
commit 53e3d52c6c
3 changed files with 19 additions and 16 deletions

View file

@ -17,6 +17,7 @@
#include <misc.h> #include <misc.h>
#include <mtd.h> #include <mtd.h>
#include <mtd_node.h> #include <mtd_node.h>
#include <netdev.h>
#include <phy.h> #include <phy.h>
#include <remoteproc.h> #include <remoteproc.h>
#include <reset.h> #include <reset.h>
@ -683,12 +684,21 @@ void board_quiesce_devices(void)
#endif #endif
} }
/* board interface eth init */ /* eth init function : weak called in eqos driver */
int board_interface_eth_init(phy_interface_t interface_type, int board_interface_eth_init(struct udevice *dev,
bool eth_clk_sel_reg, bool eth_ref_clk_sel_reg) phy_interface_t interface_type)
{ {
u8 *syscfg; u8 *syscfg;
u32 value; u32 value;
bool eth_clk_sel_reg = false;
bool eth_ref_clk_sel_reg = false;
/* Gigabit Ethernet 125MHz clock selection. */
eth_clk_sel_reg = dev_read_bool(dev, "st,eth_clk_sel");
/* Ethernet 50Mhz RMII clock selection */
eth_ref_clk_sel_reg =
dev_read_bool(dev, "st,eth_ref_clk_sel");
syscfg = (u8 *)syscon_get_first_range(STM32MP_SYSCON_SYSCFG); syscfg = (u8 *)syscon_get_first_range(STM32MP_SYSCON_SYSCFG);

View file

@ -1591,8 +1591,8 @@ err_free_reset_eqos:
} }
/* board-specific Ethernet Interface initializations. */ /* board-specific Ethernet Interface initializations. */
__weak int board_interface_eth_init(int interface_type, bool eth_clk_sel_reg, __weak int board_interface_eth_init(struct udevice *dev,
bool eth_ref_clk_sel_reg) phy_interface_t interface_type)
{ {
return 0; return 0;
} }
@ -1602,8 +1602,6 @@ static int eqos_probe_resources_stm32(struct udevice *dev)
struct eqos_priv *eqos = dev_get_priv(dev); struct eqos_priv *eqos = dev_get_priv(dev);
int ret; int ret;
phy_interface_t interface; phy_interface_t interface;
bool eth_clk_sel_reg = false;
bool eth_ref_clk_sel_reg = false;
debug("%s(dev=%p):\n", __func__, dev); debug("%s(dev=%p):\n", __func__, dev);
@ -1614,15 +1612,7 @@ static int eqos_probe_resources_stm32(struct udevice *dev)
return -EINVAL; return -EINVAL;
} }
/* Gigabit Ethernet 125MHz clock selection. */ ret = board_interface_eth_init(dev, interface);
eth_clk_sel_reg = dev_read_bool(dev, "st,eth_clk_sel");
/* Ethernet 50Mhz RMII clock selection */
eth_ref_clk_sel_reg =
dev_read_bool(dev, "st,eth_ref_clk_sel");
ret = board_interface_eth_init(interface, eth_clk_sel_reg,
eth_ref_clk_sel_reg);
if (ret) if (ret)
return -EINVAL; return -EINVAL;

View file

@ -10,6 +10,7 @@
#ifndef _NETDEV_H_ #ifndef _NETDEV_H_
#define _NETDEV_H_ #define _NETDEV_H_
#include <phy_interface.h>
/* /*
* Board and CPU-specific initialization functions * Board and CPU-specific initialization functions
@ -21,6 +22,8 @@
*/ */
int board_eth_init(bd_t *bis); int board_eth_init(bd_t *bis);
int board_interface_eth_init(struct udevice *dev,
phy_interface_t interface_type);
int cpu_eth_init(bd_t *bis); int cpu_eth_init(bd_t *bis);
/* Driver initialization prototypes */ /* Driver initialization prototypes */