[adm5120] add definitions for RouterBOARD 150, no NAND driver yet
[openwrt/svn-archive/archive.git] / target / linux / adm5120-2.6 / files / arch / mips / adm5120 / boards / mikrotik.c
index fccb284..5fa7528 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  $Id$
  *
- *  Mikrotik RouterBOARDs 111/112/133/133C/153
+ *  Mikrotik RouterBOARDs 111/112/133/133C/150/153
  *
  *  Copyright (C) 2007 OpenWrt.org
  *  Copyright (C) 2007 Gabor Juhos <juhosg@freemail.hu>
@@ -50,6 +50,11 @@ static struct platform_device *rb1xx_devices[] __initdata = {
        &adm5120_nand_device,
 };
 
+static struct platform_device *rb150_devices[] __initdata = {
+       &adm5120_flash0_device,
+       /* TODO: nand device is not yet supported */
+};
+
 static void __init rb1xx_setup(void)
 {
        /* setup data for flash0 device */
@@ -59,11 +64,32 @@ static void __init rb1xx_setup(void)
        /* TODO: setup mac address */
 }
 
+static unsigned char rb11x_vlans[6] __initdata = {
+       /* FIXME: untested */
+       0x41, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static unsigned char rb133_vlans[6] __initdata = {
+       /* FIXME: untested */
+       0x41, 0x42, 0x44, 0x00, 0x00, 0x00
+};
+
+static unsigned char rb133c_vlans[6] __initdata = {
+       /* FIXME: untested */
+       0x44, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static unsigned char rb15x_vlans[6] __initdata = {
+       /* FIXME: untested */
+       0x41, 0x42, 0x44, 0x48, 0x50, 0x00
+};
+
 static struct adm5120_board rb111_board __initdata = {
        .mach_type      = MACH_ADM5120_RB_111,
        .name           = "Mikrotik RouterBOARD 111",
        .board_setup    = rb1xx_setup,
-       .num_eth_ports  = 1,
+       .eth_num_ports  = 1,
+       .eth_vlans      = rb11x_vlans,
        .num_devices    = ARRAY_SIZE(rb1xx_devices),
        .devices        = rb1xx_devices,
 };
@@ -72,7 +98,8 @@ static struct adm5120_board rb112_board __initdata = {
        .mach_type      = MACH_ADM5120_RB_112,
        .name           = "Mikrotik RouterBOARD 112",
        .board_setup    = rb1xx_setup,
-       .num_eth_ports  = 1,
+       .eth_num_ports  = 1,
+       .eth_vlans      = rb11x_vlans,
        .num_devices    = ARRAY_SIZE(rb1xx_devices),
        .devices        = rb1xx_devices,
 };
@@ -81,7 +108,8 @@ static struct adm5120_board rb133_board __initdata = {
        .mach_type      = MACH_ADM5120_RB_133,
        .name           = "Mikrotik RouterBOARD 133",
        .board_setup    = rb1xx_setup,
-       .num_eth_ports  = 3,
+       .eth_num_ports  = 3,
+       .eth_vlans      = rb133_vlans,
        .num_devices    = ARRAY_SIZE(rb1xx_devices),
        .devices        = rb1xx_devices,
 };
@@ -90,16 +118,28 @@ static struct adm5120_board rb133c_board __initdata = {
        .mach_type      = MACH_ADM5120_RB_133C,
        .name           = "Mikrotik RouterBOARD 133C",
        .board_setup    = rb1xx_setup,
-       .num_eth_ports  = 1,
+       .eth_num_ports  = 1,
+       .eth_vlans      = rb133c_vlans,
        .num_devices    = ARRAY_SIZE(rb1xx_devices),
        .devices        = rb1xx_devices,
 };
 
+static struct adm5120_board rb150_board __initdata = {
+       .mach_type      = MACH_ADM5120_RB_150,
+       .name           = "Mikrotik RouterBOARD 150",
+       .board_setup    = rb1xx_setup,
+       .eth_num_ports  = 5,
+       .eth_vlans      = rb15x_vlans,
+       .num_devices    = ARRAY_SIZE(rb150_devices),
+       .devices        = rb150_devices,
+};
+
 static struct adm5120_board rb153_board __initdata = {
        .mach_type      = MACH_ADM5120_RB_153,
        .name           = "Mikrotik RouterBOARD 153",
        .board_setup    = rb1xx_setup,
-       .num_eth_ports  = 5,
+       .eth_num_ports  = 5,
+       .eth_vlans      = rb15x_vlans,
        .num_devices    = ARRAY_SIZE(rb1xx_devices),
        .devices        = rb1xx_devices,
 };
@@ -110,6 +150,7 @@ static int __init register_boards(void)
        adm5120_board_register(&rb112_board);
        adm5120_board_register(&rb133_board);
        adm5120_board_register(&rb133c_board);
+       adm5120_board_register(&rb150_board);
        adm5120_board_register(&rb153_board);
        return 0;
 }