ar71xx: change mac address initialization
[openwrt/svn-archive/archive.git] / target / linux / ar71xx / files / arch / mips / ar71xx / mach-rb4xx.c
index bf1a39f3b43526d83bae14d52081ac0b27334048..a477cd3ade4108f824068cb09965b0621ed0c70b 100644 (file)
@@ -42,7 +42,7 @@ static struct gpio_button rb4xx_gpio_buttons[] __initdata = {
        {
                .desc           = "reset_switch",
                .type           = EV_KEY,
-               .code           = BTN_0,
+               .code           = KEY_RESTART,
                .threshold      = 3,
                .gpio           = RB4XX_GPIO_RESET_SWITCH,
                .active_low     = 1,
@@ -177,10 +177,11 @@ static void __init rb411_setup(void)
        rb4xx_generic_setup();
        rb4xx_add_device_spi();
 
-       ar71xx_add_device_mdio(0xfffffffe);
+       ar71xx_add_device_mdio(0xfffffffc);
 
+       ar71xx_init_mac(ar71xx_eth0_data.mac_addr, ar71xx_mac_base, 0);
        ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII;
-       ar71xx_eth0_data.phy_mask = 0x00000001;
+       ar71xx_eth0_data.phy_mask = 0x00000003;
 
        ar71xx_add_device_eth(0);
 
@@ -192,36 +193,31 @@ MIPS_MACHINE(AR71XX_MACH_RB_411, "411", "MikroTik RouterBOARD 411/A/AH",
 
 static void __init rb411u_setup(void)
 {
-       rb4xx_generic_setup();
-       rb4xx_add_device_spi();
-
-       ar71xx_add_device_mdio(0xfffffffd);
-
-       ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII;
-       ar71xx_eth0_data.phy_mask = 0x00000002;
-       ar71xx_add_device_eth(0);
-
-       ar71xx_pci_init(ARRAY_SIZE(rb4xx_pci_irqs), rb4xx_pci_irqs);
+       rb411_setup();
        ar71xx_add_device_usb();
 }
 
 MIPS_MACHINE(AR71XX_MACH_RB_411U, "411U", "MikroTik RouterBOARD 411U",
             rb411u_setup);
 
+#define RB433_LAN_PHYMASK      BIT(0)
+#define RB433_WAN_PHYMASK      BIT(4)
+#define RB433_MDIO_PHYMASK     (RB433_LAN_PHYMASK | RB433_WAN_PHYMASK)
+
 static void __init rb433_setup(void)
 {
        rb4xx_generic_setup();
        rb433_add_device_spi();
 
-       ar71xx_add_device_mdio(0xffffffe9);
+       ar71xx_add_device_mdio(~RB433_MDIO_PHYMASK);
 
+       ar71xx_init_mac(ar71xx_eth0_data.mac_addr, ar71xx_mac_base, 1);
        ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII;
-       ar71xx_eth0_data.phy_mask = 0x00000006;
-       ar71xx_eth0_data.speed = SPEED_100;
-       ar71xx_eth0_data.duplex = DUPLEX_FULL;
+       ar71xx_eth0_data.phy_mask = RB433_LAN_PHYMASK;
 
+       ar71xx_init_mac(ar71xx_eth1_data.mac_addr, ar71xx_mac_base, 0);
        ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
-       ar71xx_eth1_data.phy_mask = 0x00000010;
+       ar71xx_eth1_data.phy_mask = RB433_WAN_PHYMASK;
 
        ar71xx_add_device_eth(1);
        ar71xx_add_device_eth(0);
@@ -241,20 +237,24 @@ static void __init rb433u_setup(void)
 MIPS_MACHINE(AR71XX_MACH_RB_433U, "433U", "MikroTik RouterBOARD 433UAH",
             rb433u_setup);
 
+#define RB450_LAN_PHYMASK      BIT(0)
+#define RB450_WAN_PHYMASK      BIT(4)
+#define RB450_MDIO_PHYMASK     (RB450_LAN_PHYMASK | RB450_WAN_PHYMASK)
+
 static void __init rb450_generic_setup(int gige)
 {
        rb4xx_generic_setup();
        rb4xx_add_device_spi();
 
-       ar71xx_add_device_mdio(0xffffffe0);
+       ar71xx_add_device_mdio(~RB450_MDIO_PHYMASK);
 
+       ar71xx_init_mac(ar71xx_eth0_data.mac_addr, ar71xx_mac_base, 1);
        ar71xx_eth0_data.phy_if_mode = (gige) ? PHY_INTERFACE_MODE_RGMII : PHY_INTERFACE_MODE_MII;
-       ar71xx_eth0_data.phy_mask = 0x0000000f;
-       ar71xx_eth0_data.speed = (gige) ? SPEED_1000 : SPEED_100;
-       ar71xx_eth0_data.duplex = DUPLEX_FULL;
+       ar71xx_eth0_data.phy_mask = RB450_LAN_PHYMASK;
 
+       ar71xx_init_mac(ar71xx_eth1_data.mac_addr, ar71xx_mac_base, 0);
        ar71xx_eth1_data.phy_if_mode = (gige) ? PHY_INTERFACE_MODE_RGMII : PHY_INTERFACE_MODE_RMII;
-       ar71xx_eth1_data.phy_mask = 0x00000010;
+       ar71xx_eth1_data.phy_mask = RB450_WAN_PHYMASK;
 
        ar71xx_add_device_eth(1);
        ar71xx_add_device_eth(0);
@@ -283,11 +283,12 @@ static void __init rb493_setup(void)
 
        ar71xx_add_device_mdio(0x3fffff00);
 
+       ar71xx_init_mac(ar71xx_eth0_data.mac_addr, ar71xx_mac_base, 0);
        ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII;
-       ar71xx_eth0_data.phy_mask = 0;
        ar71xx_eth0_data.speed = SPEED_100;
        ar71xx_eth0_data.duplex = DUPLEX_FULL;
 
+       ar71xx_init_mac(ar71xx_eth1_data.mac_addr, ar71xx_mac_base, 1);
        ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
        ar71xx_eth1_data.phy_mask = 0x00000001;