diff options
Diffstat (limited to 'target/linux/adm5120/files')
-rw-r--r-- | target/linux/adm5120/files/arch/mips/adm5120/boards/edimax.c | 38 | ||||
-rw-r--r-- | target/linux/adm5120/files/arch/mips/adm5120/prom.c | 1 |
2 files changed, 31 insertions, 8 deletions
diff --git a/target/linux/adm5120/files/arch/mips/adm5120/boards/edimax.c b/target/linux/adm5120/files/arch/mips/adm5120/boards/edimax.c index 6b7e7e696..e53e83613 100644 --- a/target/linux/adm5120/files/arch/mips/adm5120/boards/edimax.c +++ b/target/linux/adm5120/files/arch/mips/adm5120/boards/edimax.c @@ -30,9 +30,14 @@ #include <asm/gpio.h> #include <adm5120_board.h> +#include <adm5120_irq.h> #include <adm5120_platform.h> -static struct mtd_partition br6104k_partitions[] = { +static struct adm5120_pci_irq br61xx_pci_irqs[] __initdata = { + PCIIRQ(2, 0, 1, ADM5120_IRQ_PCI0), +}; + +static struct mtd_partition br61xx_partitions[] = { { .name = "admboot", .offset = 0, @@ -54,31 +59,48 @@ static struct platform_device *br6104k_devices[] __initdata = { &adm5120_hcd_device, }; -static void __init br6104k_setup(void) { +static struct platform_device *br61x4wg_devices[] __initdata = { + &adm5120_flash0_device, +}; + +static void __init br61xx_setup(void) { /* setup data for flash0 device */ - adm5120_flash0_data.nr_parts = ARRAY_SIZE(br6104k_partitions); - adm5120_flash0_data.parts = br6104k_partitions; + adm5120_flash0_data.nr_parts = ARRAY_SIZE(br61xx_partitions); + adm5120_flash0_data.parts = br61xx_partitions; /* TODO: setup mac addresses, if possible */ } -unsigned char br6104k_vlans[6] = { +unsigned char br61xx_vlans[6] = { 0x41, 0x42, 0x44, 0x48, 0x50, 0x00 }; static struct adm5120_board br6104k_board __initdata = { .mach_type = MACH_ADM5120_BR6104K, - .name = "Edimax BR-6104K", - .board_setup = br6104k_setup, + .name = "Edimax BR-6104K/6104KP", + .board_setup = br61xx_setup, .eth_num_ports = 5, - .eth_vlans = br6104k_vlans, + .eth_vlans = br61xx_vlans, .num_devices = ARRAY_SIZE(br6104k_devices), .devices = br6104k_devices, }; +static struct adm5120_board br61x4wg_board __initdata = { + .mach_type = MACH_ADM5120_BR61x4WG, + .name = "Edimax BR-6104WG/6114WG", + .board_setup = br61xx_setup, + .eth_num_ports = 5, + .eth_vlans = br61xx_vlans, + .num_devices = ARRAY_SIZE(br61x4wg_devices), + .devices = br61x4wg_devices, + .pci_nr_irqs = ARRAY_SIZE(br61xx_pci_irqs), + .pci_irq_map = br61xx_pci_irqs, +}; + static int __init register_boards(void) { adm5120_board_register(&br6104k_board); + adm5120_board_register(&br61x4wg_board); return 0; } diff --git a/target/linux/adm5120/files/arch/mips/adm5120/prom.c b/target/linux/adm5120/files/arch/mips/adm5120/prom.c index 2f6fb918c..786668b8d 100644 --- a/target/linux/adm5120/files/arch/mips/adm5120/prom.c +++ b/target/linux/adm5120/files/arch/mips/adm5120/prom.c @@ -62,6 +62,7 @@ static struct board_desc common_boards[] __initdata = { /* Edimax boards */ DEFBOARD("BR-6104K", MACH_ADM5120_BR6104K), DEFBOARD("BR-6104KP", MACH_ADM5120_BR6104K), + DEFBOARD("BR-6104WG", MACH_ADM5120_BR61x4WG), /* Infineon boards */ DEFBOARD("EASY 5120P-ATA", MACH_ADM5120_EASY5120PATA), DEFBOARD("EASY 5120-RT", MACH_ADM5120_EASY5120RT), |