mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-08-15 17:56:04 -04:00
fm-eth: Add ability for board code to disable a port
The SoC configuration may have more ports enabled than a given board actually can utilize. Add a routinue that allows the board code to disable a port that it knows isn't being used. fm_disable_port() needs to be called before cpu_eth_init(). Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
parent
2b3a1cdd9e
commit
69a8524258
@ -110,6 +110,7 @@ u32 fm_muram_base(int fm_idx);
|
|||||||
int fm_init_common(int index, struct ccsr_fman *reg);
|
int fm_init_common(int index, struct ccsr_fman *reg);
|
||||||
int fm_eth_initialize(struct ccsr_fman *reg, struct fm_eth_info *info);
|
int fm_eth_initialize(struct ccsr_fman *reg, struct fm_eth_info *info);
|
||||||
phy_interface_t fman_port_enet_if(enum fm_port port);
|
phy_interface_t fman_port_enet_if(enum fm_port port);
|
||||||
|
void fman_disable_port(enum fm_port port);
|
||||||
|
|
||||||
struct fsl_enet_mac {
|
struct fsl_enet_mac {
|
||||||
void *base; /* MAC controller registers base address */
|
void *base; /* MAC controller registers base address */
|
||||||
|
@ -123,6 +123,14 @@ void fman_enet_init(void)
|
|||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void fm_disable_port(enum fm_port port)
|
||||||
|
{
|
||||||
|
int i = fm_port_to_index(port);
|
||||||
|
|
||||||
|
fm_info[i].enabled = 0;
|
||||||
|
fman_disable_port(port);
|
||||||
|
}
|
||||||
|
|
||||||
void fm_info_set_mdio(enum fm_port port, struct mii_dev *bus)
|
void fm_info_set_mdio(enum fm_port port, struct mii_dev *bus)
|
||||||
{
|
{
|
||||||
int i = fm_port_to_index(port);
|
int i = fm_port_to_index(port);
|
||||||
|
@ -36,6 +36,12 @@ static int is_device_disabled(enum fm_port port)
|
|||||||
return port_to_devdisr[port] & devdisr;
|
return port_to_devdisr[port] & devdisr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void fman_disable_port(enum fm_port port)
|
||||||
|
{
|
||||||
|
ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
|
||||||
|
setbits_be32(&gur->devdisr, port_to_devdisr[port]);
|
||||||
|
}
|
||||||
|
|
||||||
phy_interface_t fman_port_enet_if(enum fm_port port)
|
phy_interface_t fman_port_enet_if(enum fm_port port)
|
||||||
{
|
{
|
||||||
ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
|
ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
|
||||||
|
@ -44,6 +44,12 @@ static int is_device_disabled(enum fm_port port)
|
|||||||
return port_to_devdisr[port] & devdisr2;
|
return port_to_devdisr[port] & devdisr2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void fman_disable_port(enum fm_port port)
|
||||||
|
{
|
||||||
|
ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
|
||||||
|
setbits_be32(&gur->devdisr2, port_to_devdisr[port]);
|
||||||
|
}
|
||||||
|
|
||||||
phy_interface_t fman_port_enet_if(enum fm_port port)
|
phy_interface_t fman_port_enet_if(enum fm_port port)
|
||||||
{
|
{
|
||||||
ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
|
ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
|
||||||
|
@ -40,6 +40,12 @@ static int is_device_disabled(enum fm_port port)
|
|||||||
return port_to_devdisr[port] & devdisr2;
|
return port_to_devdisr[port] & devdisr2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void fman_disable_port(enum fm_port port)
|
||||||
|
{
|
||||||
|
ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
|
||||||
|
setbits_be32(&gur->devdisr2, port_to_devdisr[port]);
|
||||||
|
}
|
||||||
|
|
||||||
phy_interface_t fman_port_enet_if(enum fm_port port)
|
phy_interface_t fman_port_enet_if(enum fm_port port)
|
||||||
{
|
{
|
||||||
ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
|
ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
|
||||||
|
@ -110,5 +110,6 @@ void fdt_fixup_fman_ethernet(void *fdt);
|
|||||||
phy_interface_t fm_info_get_enet_if(enum fm_port port);
|
phy_interface_t fm_info_get_enet_if(enum fm_port port);
|
||||||
void fm_info_set_phy_address(enum fm_port port, int address);
|
void fm_info_set_phy_address(enum fm_port port, int address);
|
||||||
void fm_info_set_mdio(enum fm_port port, struct mii_dev *bus);
|
void fm_info_set_mdio(enum fm_port port, struct mii_dev *bus);
|
||||||
|
void fm_disable_port(enum fm_port port);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user