board: mscc: luton: Update MSCC Luton board

Implement method board_phy_config to configure the external phys
on the pcb90.

Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
This commit is contained in:
Horatiu Vultur 2019-05-01 13:16:59 +02:00 committed by Daniel Schwierzeck
parent 7e323f1782
commit bd9216e29b

View file

@ -6,8 +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>
DECLARE_GLOBAL_DATA_PTR;
enum { enum {
BOARD_TYPE_PCB090 = 0xAABBCD00, BOARD_TYPE_PCB090 = 0xAABBCD00,
@ -36,6 +35,16 @@ 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, 0x80A0);
while (phy_read(phydev, 0, 18) & 0x8000)
;
phy_write(phydev, 0, 31, 0);
return 0;
}
static void do_board_detect(void) static void do_board_detect(void)
{ {
u32 chipid = (readl(BASE_DEVCPU_GCB + CHIP_ID) >> 12) & 0xFFFF; u32 chipid = (readl(BASE_DEVCPU_GCB + CHIP_ID) >> 12) & 0xFFFF;