board: mscc: luton: Update MSCC Luton board
authorHoratiu Vultur <horatiu.vultur@microchip.com>
Wed, 1 May 2019 11:16:59 +0000 (13:16 +0200)
committerDaniel Schwierzeck <daniel.schwierzeck@gmail.com>
Fri, 3 May 2019 14:46:36 +0000 (16:46 +0200)
Implement method board_phy_config to configure the external phys
on the pcb90.

Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
board/mscc/luton/luton.c

index 807c717e33a470ba5d55f11123ceae5682ce03cf..114f7fd9d9b25a4df1206630195f9fed8dd277e4 100644 (file)
@@ -6,8 +6,7 @@
 #include <common.h>
 #include <asm/io.h>
 #include <led.h>
-
-DECLARE_GLOBAL_DATA_PTR;
+#include <miiphy.h>
 
 enum {
        BOARD_TYPE_PCB090 = 0xAABBCD00,
@@ -36,6 +35,16 @@ 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, 0x80A0);
+       while (phy_read(phydev, 0, 18) & 0x8000)
+               ;
+       phy_write(phydev, 0, 31, 0);
+       return 0;
+}
+
 static void do_board_detect(void)
 {
        u32 chipid = (readl(BASE_DEVCPU_GCB + CHIP_ID) >> 12) & 0xFFFF;