load board's mac address on Compex devices
[openwrt/staging/mkresin.git] / target / linux / adm5120 / files-2.6.26 / arch / mips / adm5120 / compex / compex.c
index adc765f5e0b4ae4ab1903e16bb3cbac5db9b34bb..10120d6226d4b7e41edc6ab3b59e45e377a5c6ce 100644 (file)
 
 #include <linux/kernel.h>
 #include <linux/init.h>
+#include <linux/gpio.h>
 
 #include <asm/bootinfo.h>
-#include <linux/gpio.h>
 
 #include <asm/mach-adm5120/adm5120_info.h>
 #include <asm/mach-adm5120/adm5120_board.h>
 #include <asm/mach-adm5120/adm5120_platform.h>
 #include <asm/mach-adm5120/adm5120_irq.h>
 
+#include <asm/mach-adm5120/prom/myloader.h>
+
+#include "compex.h"
+
 #define COMPEX_GPIO_DEV_MASK   (1 << ADM5120_GPIO_PIN5)
 
 static void switch_bank_gpio5(unsigned bank)
@@ -34,6 +38,18 @@ static void switch_bank_gpio5(unsigned bank)
        }
 }
 
+void __init compex_mac_setup(void)
+{
+       int i, j;
+
+       if (!myloader_present())
+               return;
+
+       for (i = 0; i < 6; i++)
+               for (j = 0; j < 6; j++)
+                       adm5120_eth_macs[i][j] = myloader_info.macs[i][j];
+}
+
 void __init compex_generic_setup(void)
 {
        gpio_request(ADM5120_GPIO_PIN5, NULL); /* for flash A20 line */
@@ -43,4 +59,6 @@ void __init compex_generic_setup(void)
        adm5120_add_device_flash(0);
 
        adm5120_add_device_gpio(COMPEX_GPIO_DEV_MASK);
+
+       compex_mac_setup();
 }