From bd507b0146ab7937946e5e85baa69bdb7d7efdd8 Mon Sep 17 00:00:00 2001 From: Gabor Juhos Date: Thu, 1 May 2008 18:34:44 +0000 Subject: [PATCH] improve support of the Infineon EASY 5120-RT Reference Board SVN-Revision: 10996 --- .../files/arch/mips/adm5120/boards/infineon.c | 17 +++++++- .../adm5120/files/drivers/leds/leds-adm5120.c | 40 ++++++++++++++----- .../adm5120/router_le/profiles/Infineon.mk | 17 ++++++++ 3 files changed, 62 insertions(+), 12 deletions(-) create mode 100644 target/linux/adm5120/router_le/profiles/Infineon.mk diff --git a/target/linux/adm5120/files/arch/mips/adm5120/boards/infineon.c b/target/linux/adm5120/files/arch/mips/adm5120/boards/infineon.c index be8292a949..8ef01e6e68 100644 --- a/target/linux/adm5120/files/arch/mips/adm5120/boards/infineon.c +++ b/target/linux/adm5120/files/arch/mips/adm5120/boards/infineon.c @@ -4,7 +4,7 @@ * Infineon boards * * Copyright (C) 2007 OpenWrt.org - * Copyright (C) 2007 Gabor Juhos + * Copyright (C) 2007,2008 Gabor Juhos * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 as published @@ -18,8 +18,11 @@ #include #include +#include +#include #include #include +#include static void switch_bank_gpio3(unsigned bank) { @@ -62,6 +65,10 @@ static struct mtd_partition easy_partitions[] = { } }; +static struct adm5120_pci_irq easy5120rt_pci_irqs[] __initdata = { + PCIIRQ(2, 0, 1, ADM5120_IRQ_PCI0), +}; + static struct platform_device *easy5120pata_devices[] __initdata = { &adm5120_flash0_device, /* TODO: add VINETIC2 device? */ @@ -69,6 +76,7 @@ static struct platform_device *easy5120pata_devices[] __initdata = { static struct platform_device *easy5120rt_devices[] __initdata = { &adm5120_flash0_device, + &adm5120_hcd_device, }; static struct platform_device *easy5120wvoip_devices[] __initdata = { @@ -107,6 +115,10 @@ static void __init easy_setup_bga(void) /* TODO: setup mac addresses */ } +unsigned char easy5120rt_vlans[6] = { + 0x41, 0x42, 0x44, 0x48, 0x50, 0x00 +}; + /*--------------------------------------------------------------------------*/ ADM5120_BOARD_START(EASY5120PATA, "Infineon EASY 5120P-ATA Reference Board") @@ -119,8 +131,11 @@ ADM5120_BOARD_END ADM5120_BOARD_START(EASY5120RT, "Infineon EASY 5120-RT Reference Board") .board_setup = easy_setup_bga, .eth_num_ports = 5, + .eth_vlans = easy5120rt_vlans, .num_devices = ARRAY_SIZE(easy5120rt_devices), .devices = easy5120rt_devices, + .pci_nr_irqs = ARRAY_SIZE(easy5120rt_pci_irqs), + .pci_irq_map = easy5120rt_pci_irqs, ADM5120_BOARD_END ADM5120_BOARD_START(EASY5120WVOIP, "Infineon EASY 5120-WVoIP Reference Board") diff --git a/target/linux/adm5120/files/drivers/leds/leds-adm5120.c b/target/linux/adm5120/files/drivers/leds/leds-adm5120.c index 823254c5ec..216acf837f 100644 --- a/target/linux/adm5120/files/drivers/leds/leds-adm5120.c +++ b/target/linux/adm5120/files/drivers/leds/leds-adm5120.c @@ -145,6 +145,22 @@ LED_ARRAY(br61x4wg) { LED_INV(ADM5120_GPIO_P4L0, "lan4_lnkact", NULL), }; +/* + * Infineon boards + */ +LED_ARRAY(easy5120rt) { + LED_INV(ADM5120_GPIO_PIN6, "user", NULL), + LED_INV(ADM5120_GPIO_P0L0, "lan0_led1", NULL), + LED_INV(ADM5120_GPIO_P0L1, "lan0_led2", NULL), + LED_INV(ADM5120_GPIO_P1L0, "lan1_led1", NULL), + LED_INV(ADM5120_GPIO_P1L1, "lan1_led2", NULL), + LED_INV(ADM5120_GPIO_P2L0, "lan2_led1", NULL), + LED_INV(ADM5120_GPIO_P2L1, "lan2_led2", NULL), + LED_INV(ADM5120_GPIO_P3L0, "lan3_led1", NULL), + LED_INV(ADM5120_GPIO_P3L1, "lan3_led2", NULL), + LED_INV(ADM5120_GPIO_P4L0, "wan", NULL), +}; + /* * Mikrotik boards */ @@ -173,17 +189,17 @@ LED_ARRAY(rb133c) { }; LED_ARRAY(rb153) { - LED_STD(ADM5120_GPIO_PIN5, "user", NULL), - LED_INV(ADM5120_GPIO_P0L1, "lan1_speed", NULL), - LED_INV(ADM5120_GPIO_P0L0, "lan1_lnkact", NULL), - LED_INV(ADM5120_GPIO_P1L1, "lan5_speed", NULL), - LED_INV(ADM5120_GPIO_P1L0, "lan5_lnkact", NULL), - LED_INV(ADM5120_GPIO_P2L1, "lan4_speed", NULL), - LED_INV(ADM5120_GPIO_P2L0, "lan4_lnkact", NULL), - LED_INV(ADM5120_GPIO_P3L1, "lan3_speed", NULL), - LED_INV(ADM5120_GPIO_P3L0, "lan3_lnkact", NULL), - LED_INV(ADM5120_GPIO_P4L1, "lan2_speed", NULL), - LED_INV(ADM5120_GPIO_P4L0, "lan2_lnkact", NULL), + LED_STD(ADM5120_GPIO_PIN5, "user", NULL), + LED_INV(ADM5120_GPIO_P0L1, "lan1_speed", NULL), + LED_INV(ADM5120_GPIO_P0L0, "lan1_lnkact", NULL), + LED_INV(ADM5120_GPIO_P1L1, "lan5_speed", NULL), + LED_INV(ADM5120_GPIO_P1L0, "lan5_lnkact", NULL), + LED_INV(ADM5120_GPIO_P2L1, "lan4_speed", NULL), + LED_INV(ADM5120_GPIO_P2L0, "lan4_lnkact", NULL), + LED_INV(ADM5120_GPIO_P3L1, "lan3_speed", NULL), + LED_INV(ADM5120_GPIO_P3L0, "lan3_lnkact", NULL), + LED_INV(ADM5120_GPIO_P4L1, "lan2_speed", NULL), + LED_INV(ADM5120_GPIO_P4L0, "lan2_lnkact", NULL), }; /* @@ -278,6 +294,8 @@ static struct mach_data machines[] __initdata = { /* Edimax */ MACH_DATA(MACH_ADM5120_BR6104K, br6104k), MACH_DATA(MACH_ADM5120_BR61x4WG, br61x4wg), + /* Infineon */ + MACH_DATA(MACH_ADM5120_EASY5120RT, easy5120rt), /* Mikrotik */ MACH_DATA(MACH_ADM5120_RB_111, rb100), MACH_DATA(MACH_ADM5120_RB_112, rb100), diff --git a/target/linux/adm5120/router_le/profiles/Infineon.mk b/target/linux/adm5120/router_le/profiles/Infineon.mk new file mode 100644 index 0000000000..3f207d4f52 --- /dev/null +++ b/target/linux/adm5120/router_le/profiles/Infineon.mk @@ -0,0 +1,17 @@ +# +# Copyright (C) 2008 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/EASY5120RT + NAME:=Infineon EASY 5120-RT Reference Board + PACKAGES:=kmod-usb-core kmod-usb-adm5120 +endef + +define Profile/EASY5120RT/Description + Package set optimized for the Infineon EASY 5120-RT Reference Board +endef + +$(eval $(call Profile,EASY5120RT))