board: mscc: serval: Update MSCC Serval boards

In Serval SoC family there are 2 different pcb, both of them have the same
phy, but with different version. Therefore implement board_phy_config
and set all the phys in the same way.

Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
This commit is contained in:
Horatiu Vultur 2019-04-11 14:11:33 +02:00 committed by Daniel Schwierzeck
parent 8cf9473288
commit d2691b4af2

View file

@ -6,6 +6,7 @@
#include <common.h> #include <common.h>
#include <asm/io.h> #include <asm/io.h>
#include <led.h> #include <led.h>
#include <miiphy.h>
enum { enum {
BOARD_TYPE_PCB106 = 0xAABBCD00, BOARD_TYPE_PCB106 = 0xAABBCD00,
@ -27,6 +28,17 @@ int board_early_init_r(void)
return 0; return 0;
} }
int board_phy_config(struct phy_device *phydev)
{
phy_write(phydev, 0, 31, 0x10);
phy_write(phydev, 0, 18, 0x80F0);
while (phy_read(phydev, 0, 18) & 0x8000)
;
phy_write(phydev, 0, 14, 0x800);
phy_write(phydev, 0, 31, 0);
return 0;
}
static void do_board_detect(void) static void do_board_detect(void)
{ {
u16 gpio_in_reg; u16 gpio_in_reg;