diff options
Diffstat (limited to 'target/linux/lantiq/patches-2.6.39/160-falcon-95C3AM1.patch')
-rw-r--r-- | target/linux/lantiq/patches-2.6.39/160-falcon-95C3AM1.patch | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/target/linux/lantiq/patches-2.6.39/160-falcon-95C3AM1.patch b/target/linux/lantiq/patches-2.6.39/160-falcon-95C3AM1.patch new file mode 100644 index 0000000000..0347037428 --- /dev/null +++ b/target/linux/lantiq/patches-2.6.39/160-falcon-95C3AM1.patch @@ -0,0 +1,136 @@ +--- /dev/null ++++ b/arch/mips/lantiq/falcon/mach-95C3AM1.c +@@ -0,0 +1,103 @@ ++#include <linux/init.h> ++#include <linux/platform_device.h> ++#include <linux/i2c-gpio.h> ++#include "../machtypes.h" ++ ++#include "devices.h" ++#include "dev-leds-gpio.h" ++ ++#define BOARD_95C3AM1_GPIO_LED_0 10 ++#define BOARD_95C3AM1_GPIO_LED_1 11 ++#define BOARD_95C3AM1_GPIO_LED_2 12 ++#define BOARD_95C3AM1_GPIO_LED_3 13 ++ ++extern unsigned char ltq_ethaddr[6]; ++ ++#ifdef CONFIG_MTD_PARTITIONS ++static struct mtd_partition board_95C3AM1_partitions[] = ++{ ++ { ++ .name = "uboot", ++ .offset = 0x0, ++ .size = 0x40000, ++ }, ++ { ++ .name = "uboot_env", ++ .offset = 0x40000, ++ .size = 0x40000, /* 2 sectors for redundant env. */ ++ }, ++ { ++ .name = "linux", ++ .offset = 0x80000, ++ .size = 0xF80000, /* map only 16 MiB */ ++ }, ++}; ++ ++static struct flash_platform_data board_95C3AM1_flash_platform_data = { ++ .name = "sflash", ++ .parts = board_95C3AM1_partitions, ++ .nr_parts = ARRAY_SIZE(board_95C3AM1_partitions) ++}; ++#endif ++ ++static struct spi_board_info board_95C3AM1_flash_data __initdata = { ++ .modalias = "m25p80", ++ .bus_num = 0, ++ .chip_select = 0, ++ .max_speed_hz = 10 * 1000 * 1000, ++ .mode = SPI_MODE_3, ++#ifdef CONFIG_MTD_PARTITIONS ++ .platform_data = &board_95C3AM1_flash_platform_data ++#endif ++}; ++ ++static struct gpio_led board_95C3AM1_leds_gpio[] __initdata = { ++ { ++ .name = "power", ++ .gpio = BOARD_95C3AM1_GPIO_LED_0, ++ .active_low = 0, ++ }, { ++ .name = "optical", ++ .gpio = BOARD_95C3AM1_GPIO_LED_1, ++ .active_low = 0, ++ }, { ++ .name = "lan", ++ .gpio = BOARD_95C3AM1_GPIO_LED_2, ++ .active_low = 0, ++ }, { ++ .name = "update", ++ .gpio = BOARD_95C3AM1_GPIO_LED_3, ++ .active_low = 0, ++ } ++}; ++ ++static struct i2c_gpio_platform_data board_95C3AM1_i2c_gpio_data = { ++ .sda_pin = 107, ++ .scl_pin = 108, ++}; ++ ++static struct platform_device board_95C3AM1_i2c_gpio_device = { ++ .name = "i2c-gpio", ++ .id = 0, ++ .dev = { ++ .platform_data = &board_95C3AM1_i2c_gpio_data, ++ } ++}; ++ ++static void __init board_95C3AM1_init(void) ++{ ++ falcon_register_asc(0); ++ falcon_register_gpio(); ++ falcon_register_wdt(); ++ falcon_register_i2c(); ++ falcon_register_spi_flash(&board_95C3AM1_flash_data); ++ platform_device_register(&board_95C3AM1_i2c_gpio_device); ++ ltq_add_device_leds_gpio(-1, ARRAY_SIZE(board_95C3AM1_leds_gpio), ++ board_95C3AM1_leds_gpio); ++ falcon_register_crypto(); ++} ++ ++MIPS_MACHINE(LANTIQ_MACH_95C3AM1, ++ "95C3AM1", ++ "95C3AM1 Board", ++ board_95C3AM1_init); +--- a/arch/mips/lantiq/falcon/Kconfig ++++ b/arch/mips/lantiq/falcon/Kconfig +@@ -10,6 +10,10 @@ + bool "Easy98020" + default y + ++config LANTIQ_MACH_95C3AM1 ++ bool "95C3AM1" ++ default y ++ + endmenu + + endif +--- a/arch/mips/lantiq/falcon/Makefile ++++ b/arch/mips/lantiq/falcon/Makefile +@@ -3,3 +3,4 @@ + obj-$(CONFIG_LANTIQ_MACH_EASY98000) += mach-easy98000.o + obj-$(CONFIG_LANTIQ_MACH_EASY98000) += dev-leds-easy98000-cpld.o + obj-$(CONFIG_LANTIQ_MACH_EASY98020) += mach-easy98020.o ++obj-$(CONFIG_LANTIQ_MACH_95C3AM1) += mach-95C3AM1.o +--- a/arch/mips/lantiq/machtypes.h ++++ b/arch/mips/lantiq/machtypes.h +@@ -20,6 +20,7 @@ + LANTIQ_MACH_EASY98000, /* Falcon Eval Board, NOR Flash */ + LANTIQ_MACH_EASY98000SF, /* Falcon Eval Board, Serial Flash */ + LANTIQ_MACH_EASY98020, /* Falcon Reference Board */ ++ LANTIQ_MACH_95C3AM1, /* Board 95C3AM1 */ + }; + + #endif |