ソースを参照

improve support of the Infineon EASY 5120-RT Reference Board

SVN-Revision: 10996
Gabor Juhos 17 年 前
コミット
bd507b0146

+ 16 - 1
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 <juhosg at openwrt.org>
+ *  Copyright (C) 2007,2008 Gabor Juhos <juhosg at openwrt.org>
  *
  *  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 <asm/bootinfo.h>
 #include <asm/gpio.h>
 
+#include <adm5120_defs.h>
+#include <adm5120_irq.h>
 #include <adm5120_board.h>
 #include <adm5120_platform.h>
+#include <adm5120_info.h>
 
 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")

+ 29 - 11
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),

+ 17 - 0
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))