From e274375070fbcc2960ff69fc327b329027bb1886 Mon Sep 17 00:00:00 2001 From: Gabor Juhos Date: Tue, 17 Jul 2007 15:43:58 +0000 Subject: [PATCH] [adm5120] restore support for Infineon's EASY 5120 boards SVN-Revision: 8021 --- .../files/arch/mips/adm5120/boards/infineon.c | 83 +++++++++++++++++-- .../files/arch/mips/adm5120/prom.c | 4 +- target/linux/adm5120-2.6/image/Makefile | 4 +- .../image/lzma-loader/src/config.h | 13 +-- .../patches-2.6.22/001-adm5120.patch | 10 +-- 5 files changed, 94 insertions(+), 20 deletions(-) diff --git a/target/linux/adm5120-2.6/files/arch/mips/adm5120/boards/infineon.c b/target/linux/adm5120-2.6/files/arch/mips/adm5120/boards/infineon.c index ca377d1af4..e1426cca9d 100644 --- a/target/linux/adm5120-2.6/files/arch/mips/adm5120/boards/infineon.c +++ b/target/linux/adm5120-2.6/files/arch/mips/adm5120/boards/infineon.c @@ -44,7 +44,19 @@ static void switch_bank_gpio3(unsigned bank) } } -static struct mtd_partition easy83000_partitions[] = { +static void switch_bank_gpio5(unsigned bank) +{ + switch (bank) { + case 0: + gpio_set_value(ADM5120_GPIO_PIN5, 0); + break; + case 1: + gpio_set_value(ADM5120_GPIO_PIN5, 1); + break; + } +} + +static struct mtd_partition easy_partitions[] = { { .name = "admboot", .offset = 0, @@ -61,27 +73,83 @@ static struct mtd_partition easy83000_partitions[] = { } }; +static struct platform_device *easy5120pata_devices[] __initdata = { + &adm5120_flash0_device, + /* TODO: add VINETIC2 device? */ +}; + +static struct platform_device *easy5120rt_devices[] __initdata = { + &adm5120_flash0_device, + &adm5120_usbc_device +}; + +static struct platform_device *easy5120wvoip_devices[] __initdata = { + &adm5120_flash0_device, + /* TODO: add VINETIC2 device? */ +}; + static struct platform_device *easy83000_devices[] __initdata = { &adm5120_flash0_device, + /* TODO: add VINAX device? */ }; -static void __init easy83000_setup(void) +static void __init easy_setup_pqfp(void) { gpio_request(ADM5120_GPIO_PIN3, NULL); /* for flash A20 line */ gpio_direction_output(ADM5120_GPIO_PIN3, 0); /* setup data for flash0 device */ adm5120_flash0_data.switch_bank = switch_bank_gpio3; - adm5120_flash0_data.nr_parts = ARRAY_SIZE(easy83000_partitions); - adm5120_flash0_data.parts = easy83000_partitions; + adm5120_flash0_data.nr_parts = ARRAY_SIZE(easy_partitions); + adm5120_flash0_data.parts = easy_partitions; + + /* TODO: setup mac addresses */ +} + +static void __init easy_setup_bga(void) +{ + gpio_request(ADM5120_GPIO_PIN5, NULL); /* for flash A20 line */ + gpio_direction_output(ADM5120_GPIO_PIN5, 0); + + /* setup data for flash0 device */ + adm5120_flash0_data.switch_bank = switch_bank_gpio5; + adm5120_flash0_data.nr_parts = ARRAY_SIZE(easy_partitions); + adm5120_flash0_data.parts = easy_partitions; /* TODO: setup mac addresses */ } +static struct adm5120_board easy5120pata_board __initdata = { + .mach_type = MACH_ADM5120_EASY5120PATA, + .name = "Infineon EASY 5120P-ATA Reference Board", + .board_setup = easy_setup_pqfp, + .num_eth_ports = 6, + .num_devices = ARRAY_SIZE(easy5120pata_devices), + .devices = easy5120pata_devices, +}; + +static struct adm5120_board easy5120rt_board __initdata = { + .mach_type = MACH_ADM5120_EASY5120RT, + .name = "Infineon EASY 5120-RT Reference Board", + .board_setup = easy_setup_bga, + .num_eth_ports = 5, + .num_devices = ARRAY_SIZE(easy5120rt_devices), + .devices = easy5120rt_devices, +}; + +static struct adm5120_board easy5120wvoip_board __initdata = { + .mach_type = MACH_ADM5120_EASY5120WVOIP, + .name = "Infineon EASY 5120-WVoIP Reference Board", + .board_setup = easy_setup_bga, + .num_eth_ports = 6, + .num_devices = ARRAY_SIZE(easy5120wvoip_devices), + .devices = easy5120wvoip_devices, +}; + static struct adm5120_board easy83000_board __initdata = { .mach_type = MACH_ADM5120_EASY83000, - .name = "Infineon EASY-83000", - .board_setup = easy83000_setup, + .name = "Infineon EASY 83000 Reference Board", + .board_setup = easy_setup_pqfp, .num_eth_ports = 6, .num_devices = ARRAY_SIZE(easy83000_devices), .devices = easy83000_devices, @@ -89,6 +157,9 @@ static struct adm5120_board easy83000_board __initdata = { static int __init register_boards(void) { + adm5120_board_register(&easy5120pata_board); + adm5120_board_register(&easy5120rt_board); + adm5120_board_register(&easy5120wvoip_board); adm5120_board_register(&easy83000_board); return 0; } diff --git a/target/linux/adm5120-2.6/files/arch/mips/adm5120/prom.c b/target/linux/adm5120-2.6/files/arch/mips/adm5120/prom.c index db8037f3be..c14c172299 100644 --- a/target/linux/adm5120-2.6/files/arch/mips/adm5120/prom.c +++ b/target/linux/adm5120-2.6/files/arch/mips/adm5120/prom.c @@ -62,9 +62,9 @@ static struct board_desc common_boards[] __initdata = { DEFBOARD("BR-6104K", MACH_ADM5120_BR6104K), DEFBOARD("BR-6104KP", MACH_ADM5120_BR6104K), /* Infineon boards */ - DEFBOARD("EASY 5120", MACH_ADM5120_EASY5120), - DEFBOARD("EASY 5120-RT", MACH_ADM5120_EASY5120RT), DEFBOARD("EASY 5120P-ATA", MACH_ADM5120_EASY5120PATA), + DEFBOARD("EASY 5120-RT", MACH_ADM5120_EASY5120RT), + DEFBOARD("EASY 5120-WVoIP", MACH_ADM5120_EASY5120WVOIP), DEFBOARD("EASY 83000", MACH_ADM5120_EASY83000), /* Mikrotik RouterBOARDs */ DEFBOARD("111", MACH_ADM5120_RB_111), diff --git a/target/linux/adm5120-2.6/image/Makefile b/target/linux/adm5120-2.6/image/Makefile index bf4ca5711b..d76e1e1fee 100644 --- a/target/linux/adm5120-2.6/image/Makefile +++ b/target/linux/adm5120-2.6/image/Makefile @@ -105,9 +105,9 @@ ifeq ($(CONFIG_DEVEL),y) $(call Image/Build/Edimax,$(1),ps-3205uwg,$(patsubst jffs2-%,jffs2,$(1)),PS-3205UWg) $(call Image/Build/Edimax,$(1),br-6524wg,$(patsubst jffs2-%,jffs2,$(1)),BR-6524WG) $(call Image/Build/Edimax,$(1),br-6524wp,$(patsubst jffs2-%,jffs2,$(1)),BR-6524WP) - $(call Image/Build/Infineon,$(1),easy-5120,$(patsubst jffs2-%,jffs2,$(1))) - $(call Image/Build/Infineon,$(1),easy-5120-rt,$(patsubst jffs2-%,jffs2,$(1))) $(call Image/Build/Infineon,$(1),easy-5120p-ata,$(patsubst jffs2-%,jffs2,$(1))) + $(call Image/Build/Infineon,$(1),easy-5120-rt,$(patsubst jffs2-%,jffs2,$(1))) + $(call Image/Build/Infineon,$(1),easy-5120-wvoip,$(patsubst jffs2-%,jffs2,$(1))) $(call Image/Build/Infineon,$(1),easy-83000,$(patsubst jffs2-%,jffs2,$(1))) $(call Image/Build/MyLoader,$(1),np27g,$(patsubst jffs2-%,jffs2,$(1)),NP27G) $(call Image/Build/MyLoader,$(1),np28g,$(patsubst jffs2-%,jffs2,$(1)),NP28G) diff --git a/target/linux/adm5120-2.6/image/lzma-loader/src/config.h b/target/linux/adm5120-2.6/image/lzma-loader/src/config.h index b90fcfbe9b..f8bb8e2cce 100644 --- a/target/linux/adm5120-2.6/image/lzma-loader/src/config.h +++ b/target/linux/adm5120-2.6/image/lzma-loader/src/config.h @@ -64,16 +64,19 @@ /* * Infineon boards */ -#if defined(CONFIG_BOARD_EASY5120) -# define CONFIG_BOARD_NAME "EASY 5120" +#if defined(CONFIG_BOARD_EASY5120PATA) +# define CONFIG_BOARD_NAME "EASY 5120P-ATA" +# define CONFIG_FLASH_SIZE FLASH_4M #endif #if defined(CONFIG_BOARD_EASY5120RT) # define CONFIG_BOARD_NAME "EASY 5120-RT" +# define CONFIG_FLASH_SIZE FLASH_4M #endif -#if defined(CONFIG_BOARD_EASY5120PATA) -# define CONFIG_BOARD_NAME "EASY 5120P-ATA" +#if defined(CONFIG_BOARD_EASY5120WVOIP) +# define CONFIG_BOARD_NAME "EASY 5120-WVOIP" +# define CONFIG_FLASH_SIZE FLASH_4M #endif #if defined(CONFIG_BOARD_EASY83000) @@ -105,4 +108,4 @@ # define CONFIG_FLASH_SIZE FLASH_2M #endif -#endif /* _CONFIG_H_ */ \ No newline at end of file +#endif /* _CONFIG_H_ */ diff --git a/target/linux/adm5120-2.6/patches-2.6.22/001-adm5120.patch b/target/linux/adm5120-2.6/patches-2.6.22/001-adm5120.patch index cc2a88ed5a..14cb612b08 100644 --- a/target/linux/adm5120-2.6/patches-2.6.22/001-adm5120.patch +++ b/target/linux/adm5120-2.6/patches-2.6.22/001-adm5120.patch @@ -103,11 +103,11 @@ Index: linux-2.6.22.1/include/asm-mips/bootinfo.h +#define MACH_ADM5120_CAS861 39 /* Cellvision CAS-861/861W */ +#define MACH_ADM5120_NFS101U 40 /* Cellvision NFS-101U/101WU */ +#define MACH_ADM5120_NFS202U 41 /* Cellvision NFS-202U/202WU */ -+#define MACH_ADM5120_EASY5120 43 /* Infineon EASY 5120 */ -+#define MACH_ADM5120_EASY5120RT 44 /* Infineon EASY 5120-RT */ -+#define MACH_ADM5120_EASY5120PATA 45 /* Infineon EASY 5120P-ATA */ -+#define MACH_ADM5120_EASY83000 46 /* Infineon EASY-83000 */ -+#define MACH_ADM5120_BR6104K 47 /* Edimax BR-6104K */ ++#define MACH_ADM5120_EASY5120PATA 42 /* Infineon EASY 5120P-ATA */ ++#define MACH_ADM5120_EASY5120RT 43 /* Infineon EASY 5120-RT */ ++#define MACH_ADM5120_EASY5120WVOIP 44 /* Infineon EASY 5120-WVoIP */ ++#define MACH_ADM5120_EASY83000 45 /* Infineon EASY-83000 */ ++#define MACH_ADM5120_BR6104K 46 /* Edimax BR-6104K */ + #define CL_SIZE COMMAND_LINE_SIZE -- 2.30.2