diff options
author | Horatiu Vultur | 2019-04-11 14:11:33 +0200 |
---|---|---|
committer | Daniel Schwierzeck | 2019-05-03 16:42:23 +0200 |
commit | d2691b4af2cd2c3cb7f385938fcd63af7de74fca (patch) | |
tree | 3ad5e7f94af0656a76ebfbcd18086cf4acfd602b /board/mscc/serval | |
parent | 8cf9473288dc4f35858d8267b7b4ed0702c89209 (diff) |
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>
Diffstat (limited to 'board/mscc/serval')
-rw-r--r-- | board/mscc/serval/serval.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/board/mscc/serval/serval.c b/board/mscc/serval/serval.c index ade041e1183..da7f55620de 100644 --- a/board/mscc/serval/serval.c +++ b/board/mscc/serval/serval.c @@ -6,6 +6,7 @@ #include <common.h> #include <asm/io.h> #include <led.h> +#include <miiphy.h> enum { BOARD_TYPE_PCB106 = 0xAABBCD00, @@ -27,6 +28,17 @@ int board_early_init_r(void) 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) { u16 gpio_in_reg; |