Root/target/linux/lantiq/patches-2.6.39/150-falcon-easy98020.patch

1--- /dev/null
2+++ b/arch/mips/lantiq/falcon/mach-easy98020.c
3@@ -0,0 +1,117 @@
4+#include <linux/init.h>
5+#include <linux/platform_device.h>
6+#include <linux/leds.h>
7+#include <linux/gpio.h>
8+#include <linux/gpio_buttons.h>
9+#include <linux/mtd/mtd.h>
10+#include <linux/mtd/partitions.h>
11+#include <linux/input.h>
12+#include <linux/interrupt.h>
13+#include <linux/spi/spi.h>
14+#include <linux/spi/flash.h>
15+#include "../machtypes.h"
16+
17+#include "devices.h"
18+#include "dev-leds-gpio.h"
19+
20+#define EASY98020_GPIO_LED_0 9
21+#define EASY98020_GPIO_LED_1 10
22+#define EASY98020_GPIO_LED_2 11
23+#define EASY98020_GPIO_LED_3 12
24+#define EASY98020_GPIO_LED_GE0_ACT 110
25+#define EASY98020_GPIO_LED_GE0_LINK 109
26+#define EASY98020_GPIO_LED_GE1_ACT 106
27+#define EASY98020_GPIO_LED_GE1_LINK 105
28+
29+extern unsigned char ltq_ethaddr[6];
30+
31+#ifdef CONFIG_MTD_PARTITIONS
32+static struct mtd_partition easy98020_spi_partitions[] =
33+{
34+ {
35+ .name = "uboot",
36+ .offset = 0x0,
37+ .size = 0x40000,
38+ },
39+ {
40+ .name = "uboot_env",
41+ .offset = 0x40000,
42+ .size = 0x40000, /* 2 sectors for redundant env. */
43+ },
44+ {
45+ .name = "linux",
46+ .offset = 0x80000,
47+ .size = 0xF80000, /* map only 16 MiB */
48+ },
49+};
50+
51+static struct flash_platform_data easy98020_spi_flash_platform_data = {
52+ .name = "sflash",
53+ .parts = easy98020_spi_partitions,
54+ .nr_parts = ARRAY_SIZE(easy98020_spi_partitions)
55+};
56+#endif
57+
58+static struct spi_board_info easy98020_spi_flash_data __initdata = {
59+ .modalias = "m25p80",
60+ .bus_num = 0,
61+ .chip_select = 0,
62+ .max_speed_hz = 10 * 1000 * 1000,
63+ .mode = SPI_MODE_3,
64+#ifdef CONFIG_MTD_PARTITIONS
65+ .platform_data = &easy98020_spi_flash_platform_data
66+#endif
67+};
68+
69+static struct gpio_led easy98020_leds_gpio[] __initdata = {
70+ {
71+ .name = "easy98020:green:0",
72+ .gpio = EASY98020_GPIO_LED_0,
73+ .active_low = 0,
74+ }, {
75+ .name = "easy98020:green:1",
76+ .gpio = EASY98020_GPIO_LED_1,
77+ .active_low = 0,
78+ }, {
79+ .name = "easy98020:green:2",
80+ .gpio = EASY98020_GPIO_LED_2,
81+ .active_low = 0,
82+ }, {
83+ .name = "easy98020:green:3",
84+ .gpio = EASY98020_GPIO_LED_3,
85+ .active_low = 0,
86+ }, {
87+ .name = "easy98020:ge0_act",
88+ .gpio = EASY98020_GPIO_LED_GE0_ACT,
89+ .active_low = 0,
90+ }, {
91+ .name = "easy98020:ge0_link",
92+ .gpio = EASY98020_GPIO_LED_GE0_LINK,
93+ .active_low = 0,
94+ }, {
95+ .name = "easy98020:ge1_act",
96+ .gpio = EASY98020_GPIO_LED_GE1_ACT,
97+ .active_low = 0,
98+ }, {
99+ .name = "easy98020:ge1_link",
100+ .gpio = EASY98020_GPIO_LED_GE1_LINK,
101+ .active_low = 0,
102+ }
103+};
104+
105+static void __init easy98020_init(void)
106+{
107+ falcon_register_asc(0);
108+ falcon_register_gpio();
109+ falcon_register_wdt();
110+ falcon_register_i2c();
111+ falcon_register_spi_flash(&easy98020_spi_flash_data);
112+ ltq_add_device_leds_gpio(-1, ARRAY_SIZE(easy98020_leds_gpio),
113+ easy98020_leds_gpio);
114+ falcon_register_crypto();
115+}
116+
117+MIPS_MACHINE(LANTIQ_MACH_EASY98020,
118+ "EASY98020",
119+ "EASY98020 Eval Board",
120+ easy98020_init);
121--- a/arch/mips/lantiq/falcon/Kconfig
122+++ b/arch/mips/lantiq/falcon/Kconfig
123@@ -6,6 +6,10 @@ config LANTIQ_MACH_EASY98000
124     bool "Easy98000"
125     default y
126 
127+config LANTIQ_MACH_EASY98020
128+ bool "Easy98020"
129+ default y
130+
131 endmenu
132 
133 endif
134--- a/arch/mips/lantiq/falcon/Makefile
135+++ b/arch/mips/lantiq/falcon/Makefile
136@@ -3,3 +3,4 @@ obj-y += softdog_vpe.o
137 obj-$(CONFIG_LANTIQ_MACH_EASY98000) += addon-easy98000.o
138 obj-$(CONFIG_LANTIQ_MACH_EASY98000) += mach-easy98000.o
139 obj-$(CONFIG_LANTIQ_MACH_EASY98000) += dev-leds-easy98000-cpld.o
140+obj-$(CONFIG_LANTIQ_MACH_EASY98020) += mach-easy98020.o
141

Archive Download this file



interactive