diff options
Diffstat (limited to 'arch/blackfin/mach-bf537')
-rw-r--r-- | arch/blackfin/mach-bf537/boards/Kconfig | 6 | ||||
-rw-r--r-- | arch/blackfin/mach-bf537/boards/Makefile | 1 | ||||
-rw-r--r-- | arch/blackfin/mach-bf537/boards/cm_bf537.c | 11 | ||||
-rw-r--r-- | arch/blackfin/mach-bf537/boards/generic_board.c | 11 | ||||
-rw-r--r-- | arch/blackfin/mach-bf537/boards/minotaur.c | 317 | ||||
-rw-r--r-- | arch/blackfin/mach-bf537/boards/pnav10.c | 9 | ||||
-rw-r--r-- | arch/blackfin/mach-bf537/boards/stamp.c | 80 |
7 files changed, 417 insertions, 18 deletions
diff --git a/arch/blackfin/mach-bf537/boards/Kconfig b/arch/blackfin/mach-bf537/boards/Kconfig index 96a15196e416..7e789dbef036 100644 --- a/arch/blackfin/mach-bf537/boards/Kconfig +++ b/arch/blackfin/mach-bf537/boards/Kconfig | |||
@@ -21,6 +21,12 @@ config PNAV10 | |||
21 | help | 21 | help |
22 | PNAV board support. | 22 | PNAV board support. |
23 | 23 | ||
24 | config CAMSIG_MINOTAUR | ||
25 | bool "Cambridge Signal Processing LTD Minotaur" | ||
26 | depends on (BF537) | ||
27 | help | ||
28 | Board supply package for CSP Minotaur | ||
29 | |||
24 | config GENERIC_BF537_BOARD | 30 | config GENERIC_BF537_BOARD |
25 | bool "Generic" | 31 | bool "Generic" |
26 | help | 32 | help |
diff --git a/arch/blackfin/mach-bf537/boards/Makefile b/arch/blackfin/mach-bf537/boards/Makefile index 94a85174283a..87e450f29e37 100644 --- a/arch/blackfin/mach-bf537/boards/Makefile +++ b/arch/blackfin/mach-bf537/boards/Makefile | |||
@@ -6,3 +6,4 @@ obj-$(CONFIG_GENERIC_BF537_BOARD) += generic_board.o | |||
6 | obj-$(CONFIG_BFIN537_STAMP) += stamp.o led.o | 6 | obj-$(CONFIG_BFIN537_STAMP) += stamp.o led.o |
7 | obj-$(CONFIG_BFIN537_BLUETECHNIX_CM) += cm_bf537.o | 7 | obj-$(CONFIG_BFIN537_BLUETECHNIX_CM) += cm_bf537.o |
8 | obj-$(CONFIG_PNAV10) += pnav10.o | 8 | obj-$(CONFIG_PNAV10) += pnav10.o |
9 | obj-$(CONFIG_CAMSIG_MINOTAUR) += minotaur.o | ||
diff --git a/arch/blackfin/mach-bf537/boards/cm_bf537.c b/arch/blackfin/mach-bf537/boards/cm_bf537.c index c0fb06dbc42e..8703b67d5ec6 100644 --- a/arch/blackfin/mach-bf537/boards/cm_bf537.c +++ b/arch/blackfin/mach-bf537/boards/cm_bf537.c | |||
@@ -29,6 +29,7 @@ | |||
29 | */ | 29 | */ |
30 | 30 | ||
31 | #include <linux/device.h> | 31 | #include <linux/device.h> |
32 | #include <linux/etherdevice.h> | ||
32 | #include <linux/platform_device.h> | 33 | #include <linux/platform_device.h> |
33 | #include <linux/mtd/mtd.h> | 34 | #include <linux/mtd/mtd.h> |
34 | #include <linux/mtd/partitions.h> | 35 | #include <linux/mtd/partitions.h> |
@@ -216,6 +217,12 @@ static struct platform_device rtc_device = { | |||
216 | }; | 217 | }; |
217 | #endif | 218 | #endif |
218 | 219 | ||
220 | #if defined(CONFIG_FB_HITACHI_TX09) || defined(CONFIG_FB_HITACHI_TX09_MODULE) | ||
221 | static struct platform_device hitachi_fb_device = { | ||
222 | .name = "hitachi-tx09", | ||
223 | }; | ||
224 | #endif | ||
225 | |||
219 | #if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) | 226 | #if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) |
220 | static struct resource smc91x_resources[] = { | 227 | static struct resource smc91x_resources[] = { |
221 | { | 228 | { |
@@ -374,6 +381,10 @@ static struct platform_device bfin_pata_device = { | |||
374 | #endif | 381 | #endif |
375 | 382 | ||
376 | static struct platform_device *cm_bf537_devices[] __initdata = { | 383 | static struct platform_device *cm_bf537_devices[] __initdata = { |
384 | #if defined(CONFIG_FB_HITACHI_TX09) || defined(CONFIG_FB_HITACHI_TX09_MODULE) | ||
385 | &hitachi_fb_device, | ||
386 | #endif | ||
387 | |||
377 | #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) | 388 | #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) |
378 | &rtc_device, | 389 | &rtc_device, |
379 | #endif | 390 | #endif |
diff --git a/arch/blackfin/mach-bf537/boards/generic_board.c b/arch/blackfin/mach-bf537/boards/generic_board.c index 09f4bfbd2350..3e52f3f5bd58 100644 --- a/arch/blackfin/mach-bf537/boards/generic_board.c +++ b/arch/blackfin/mach-bf537/boards/generic_board.c | |||
@@ -8,7 +8,7 @@ | |||
8 | * | 8 | * |
9 | * Modified: | 9 | * Modified: |
10 | * Copyright 2005 National ICT Australia (NICTA) | 10 | * Copyright 2005 National ICT Australia (NICTA) |
11 | * Copyright 2004-2007 Analog Devices Inc. | 11 | * Copyright 2004-2008 Analog Devices Inc. |
12 | * | 12 | * |
13 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | 13 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ |
14 | * | 14 | * |
@@ -29,6 +29,7 @@ | |||
29 | */ | 29 | */ |
30 | 30 | ||
31 | #include <linux/device.h> | 31 | #include <linux/device.h> |
32 | #include <linux/etherdevice.h> | ||
32 | #include <linux/platform_device.h> | 33 | #include <linux/platform_device.h> |
33 | #include <linux/mtd/mtd.h> | 34 | #include <linux/mtd/mtd.h> |
34 | #include <linux/mtd/partitions.h> | 35 | #include <linux/mtd/partitions.h> |
@@ -204,12 +205,8 @@ static struct resource sl811_hcd_resources[] = { | |||
204 | void sl811_port_power(struct device *dev, int is_on) | 205 | void sl811_port_power(struct device *dev, int is_on) |
205 | { | 206 | { |
206 | gpio_request(CONFIG_USB_SL811_BFIN_GPIO_VBUS, "usb:SL811_VBUS"); | 207 | gpio_request(CONFIG_USB_SL811_BFIN_GPIO_VBUS, "usb:SL811_VBUS"); |
207 | gpio_direction_output(CONFIG_USB_SL811_BFIN_GPIO_VBUS); | 208 | gpio_direction_output(CONFIG_USB_SL811_BFIN_GPIO_VBUS, is_on); |
208 | 209 | ||
209 | if (is_on) | ||
210 | gpio_set_value(CONFIG_USB_SL811_BFIN_GPIO_VBUS, 1); | ||
211 | else | ||
212 | gpio_set_value(CONFIG_USB_SL811_BFIN_GPIO_VBUS, 0); | ||
213 | } | 210 | } |
214 | #endif | 211 | #endif |
215 | 212 | ||
@@ -733,9 +730,11 @@ void native_machine_restart(char *cmd) | |||
733 | bfin_gpio_reset_spi0_ssel1(); | 730 | bfin_gpio_reset_spi0_ssel1(); |
734 | } | 731 | } |
735 | 732 | ||
733 | #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) | ||
736 | void bfin_get_ether_addr(char *addr) | 734 | void bfin_get_ether_addr(char *addr) |
737 | { | 735 | { |
738 | random_ether_addr(addr); | 736 | random_ether_addr(addr); |
739 | printk(KERN_WARNING "%s:%s: Setting Ethernet MAC to a random one\n", __FILE__, __func__); | 737 | printk(KERN_WARNING "%s:%s: Setting Ethernet MAC to a random one\n", __FILE__, __func__); |
740 | } | 738 | } |
741 | EXPORT_SYMBOL(bfin_get_ether_addr); | 739 | EXPORT_SYMBOL(bfin_get_ether_addr); |
740 | #endif | ||
diff --git a/arch/blackfin/mach-bf537/boards/minotaur.c b/arch/blackfin/mach-bf537/boards/minotaur.c new file mode 100644 index 000000000000..b8bbba85af53 --- /dev/null +++ b/arch/blackfin/mach-bf537/boards/minotaur.c | |||
@@ -0,0 +1,317 @@ | |||
1 | /* | ||
2 | */ | ||
3 | |||
4 | #include <linux/device.h> | ||
5 | #include <linux/platform_device.h> | ||
6 | #include <linux/mtd/mtd.h> | ||
7 | #include <linux/mtd/partitions.h> | ||
8 | #include <linux/spi/spi.h> | ||
9 | #include <linux/spi/flash.h> | ||
10 | #if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) | ||
11 | #include <linux/usb_isp1362.h> | ||
12 | #endif | ||
13 | #include <linux/pata_platform.h> | ||
14 | #include <linux/irq.h> | ||
15 | #include <linux/interrupt.h> | ||
16 | #include <linux/usb_sl811.h> | ||
17 | #include <asm/dma.h> | ||
18 | #include <asm/bfin5xx_spi.h> | ||
19 | #include <asm/reboot.h> | ||
20 | #include <linux/spi/ad7877.h> | ||
21 | |||
22 | /* | ||
23 | * Name the Board for the /proc/cpuinfo | ||
24 | */ | ||
25 | char *bfin_board_name = "CamSig Minotaur BF537"; | ||
26 | |||
27 | #if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) | ||
28 | static struct resource bfin_pcmcia_cf_resources[] = { | ||
29 | { | ||
30 | .start = 0x20310000, /* IO PORT */ | ||
31 | .end = 0x20312000, | ||
32 | .flags = IORESOURCE_MEM, | ||
33 | }, { | ||
34 | .start = 0x20311000, /* Attribute Memory */ | ||
35 | .end = 0x20311FFF, | ||
36 | .flags = IORESOURCE_MEM, | ||
37 | }, { | ||
38 | .start = IRQ_PF4, | ||
39 | .end = IRQ_PF4, | ||
40 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, | ||
41 | }, { | ||
42 | .start = IRQ_PF6, /* Card Detect PF6 */ | ||
43 | .end = IRQ_PF6, | ||
44 | .flags = IORESOURCE_IRQ, | ||
45 | }, | ||
46 | }; | ||
47 | |||
48 | static struct platform_device bfin_pcmcia_cf_device = { | ||
49 | .name = "bfin_cf_pcmcia", | ||
50 | .id = -1, | ||
51 | .num_resources = ARRAY_SIZE(bfin_pcmcia_cf_resources), | ||
52 | .resource = bfin_pcmcia_cf_resources, | ||
53 | }; | ||
54 | #endif | ||
55 | |||
56 | #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) | ||
57 | static struct platform_device rtc_device = { | ||
58 | .name = "rtc-bfin", | ||
59 | .id = -1, | ||
60 | }; | ||
61 | #endif | ||
62 | |||
63 | #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) | ||
64 | static struct platform_device bfin_mac_device = { | ||
65 | .name = "bfin_mac", | ||
66 | }; | ||
67 | #endif | ||
68 | |||
69 | #if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE) | ||
70 | static struct resource net2272_bfin_resources[] = { | ||
71 | { | ||
72 | .start = 0x20300000, | ||
73 | .end = 0x20300000 + 0x100, | ||
74 | .flags = IORESOURCE_MEM, | ||
75 | }, { | ||
76 | .start = IRQ_PF7, | ||
77 | .end = IRQ_PF7, | ||
78 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, | ||
79 | }, | ||
80 | }; | ||
81 | |||
82 | static struct platform_device net2272_bfin_device = { | ||
83 | .name = "net2272", | ||
84 | .id = -1, | ||
85 | .num_resources = ARRAY_SIZE(net2272_bfin_resources), | ||
86 | .resource = net2272_bfin_resources, | ||
87 | }; | ||
88 | #endif | ||
89 | |||
90 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | ||
91 | /* all SPI peripherals info goes here */ | ||
92 | |||
93 | #if defined(CONFIG_MTD_M25P80) \ | ||
94 | || defined(CONFIG_MTD_M25P80_MODULE) | ||
95 | |||
96 | /* Partition sizes */ | ||
97 | #define FLASH_SIZE 0x00400000 | ||
98 | #define PSIZE_UBOOT 0x00030000 | ||
99 | #define PSIZE_INITRAMFS 0x00240000 | ||
100 | |||
101 | static struct mtd_partition bfin_spi_flash_partitions[] = { | ||
102 | { | ||
103 | .name = "uboot", | ||
104 | .size = PSIZE_UBOOT, | ||
105 | .offset = 0x000000, | ||
106 | .mask_flags = MTD_CAP_ROM | ||
107 | }, { | ||
108 | .name = "initramfs", | ||
109 | .size = PSIZE_INITRAMFS, | ||
110 | .offset = PSIZE_UBOOT | ||
111 | }, { | ||
112 | .name = "opt", | ||
113 | .size = FLASH_SIZE - (PSIZE_UBOOT + PSIZE_INITRAMFS), | ||
114 | .offset = PSIZE_UBOOT + PSIZE_INITRAMFS, | ||
115 | } | ||
116 | }; | ||
117 | |||
118 | static struct flash_platform_data bfin_spi_flash_data = { | ||
119 | .name = "m25p80", | ||
120 | .parts = bfin_spi_flash_partitions, | ||
121 | .nr_parts = ARRAY_SIZE(bfin_spi_flash_partitions), | ||
122 | .type = "m25p64", | ||
123 | }; | ||
124 | |||
125 | /* SPI flash chip (m25p64) */ | ||
126 | static struct bfin5xx_spi_chip spi_flash_chip_info = { | ||
127 | .enable_dma = 0, /* use dma transfer with this chip*/ | ||
128 | .bits_per_word = 8, | ||
129 | }; | ||
130 | #endif | ||
131 | |||
132 | #if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) | ||
133 | static struct bfin5xx_spi_chip spi_mmc_chip_info = { | ||
134 | .enable_dma = 1, | ||
135 | .bits_per_word = 8, | ||
136 | }; | ||
137 | #endif | ||
138 | |||
139 | static struct spi_board_info bfin_spi_board_info[] __initdata = { | ||
140 | #if defined(CONFIG_MTD_M25P80) \ | ||
141 | || defined(CONFIG_MTD_M25P80_MODULE) | ||
142 | { | ||
143 | /* the modalias must be the same as spi device driver name */ | ||
144 | .modalias = "m25p80", /* Name of spi_driver for this device */ | ||
145 | .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ | ||
146 | .bus_num = 0, /* Framework bus number */ | ||
147 | .chip_select = 1, /* Framework chip select. On STAMP537 it is SPISSEL1*/ | ||
148 | .platform_data = &bfin_spi_flash_data, | ||
149 | .controller_data = &spi_flash_chip_info, | ||
150 | .mode = SPI_MODE_3, | ||
151 | }, | ||
152 | #endif | ||
153 | |||
154 | #if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) | ||
155 | { | ||
156 | .modalias = "spi_mmc_dummy", | ||
157 | .max_speed_hz = 5000000, /* max spi clock (SCK) speed in HZ */ | ||
158 | .bus_num = 0, | ||
159 | .chip_select = 0, | ||
160 | .platform_data = NULL, | ||
161 | .controller_data = &spi_mmc_chip_info, | ||
162 | .mode = SPI_MODE_3, | ||
163 | }, | ||
164 | { | ||
165 | .modalias = "spi_mmc", | ||
166 | .max_speed_hz = 5000000, /* max spi clock (SCK) speed in HZ */ | ||
167 | .bus_num = 0, | ||
168 | .chip_select = CONFIG_SPI_MMC_CS_CHAN, | ||
169 | .platform_data = NULL, | ||
170 | .controller_data = &spi_mmc_chip_info, | ||
171 | .mode = SPI_MODE_3, | ||
172 | }, | ||
173 | #endif | ||
174 | }; | ||
175 | |||
176 | /* SPI controller data */ | ||
177 | static struct bfin5xx_spi_master bfin_spi0_info = { | ||
178 | .num_chipselect = 8, | ||
179 | .enable_dma = 1, /* master has the ability to do dma transfer */ | ||
180 | }; | ||
181 | |||
182 | /* SPI (0) */ | ||
183 | static struct resource bfin_spi0_resource[] = { | ||
184 | [0] = { | ||
185 | .start = SPI0_REGBASE, | ||
186 | .end = SPI0_REGBASE + 0xFF, | ||
187 | .flags = IORESOURCE_MEM, | ||
188 | }, | ||
189 | [1] = { | ||
190 | .start = CH_SPI, | ||
191 | .end = CH_SPI, | ||
192 | .flags = IORESOURCE_IRQ, | ||
193 | }, | ||
194 | }; | ||
195 | |||
196 | static struct platform_device bfin_spi0_device = { | ||
197 | .name = "bfin-spi", | ||
198 | .id = 0, /* Bus number */ | ||
199 | .num_resources = ARRAY_SIZE(bfin_spi0_resource), | ||
200 | .resource = bfin_spi0_resource, | ||
201 | .dev = { | ||
202 | .platform_data = &bfin_spi0_info, /* Passed to driver */ | ||
203 | }, | ||
204 | }; | ||
205 | #endif /* spi master and devices */ | ||
206 | |||
207 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) | ||
208 | static struct resource bfin_uart_resources[] = { | ||
209 | { | ||
210 | .start = 0xFFC00400, | ||
211 | .end = 0xFFC004FF, | ||
212 | .flags = IORESOURCE_MEM, | ||
213 | }, { | ||
214 | .start = 0xFFC02000, | ||
215 | .end = 0xFFC020FF, | ||
216 | .flags = IORESOURCE_MEM, | ||
217 | }, | ||
218 | }; | ||
219 | |||
220 | static struct platform_device bfin_uart_device = { | ||
221 | .name = "bfin-uart", | ||
222 | .id = 1, | ||
223 | .num_resources = ARRAY_SIZE(bfin_uart_resources), | ||
224 | .resource = bfin_uart_resources, | ||
225 | }; | ||
226 | #endif | ||
227 | |||
228 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) | ||
229 | static struct resource bfin_twi0_resource[] = { | ||
230 | [0] = { | ||
231 | .start = TWI0_REGBASE, | ||
232 | .end = TWI0_REGBASE + 0xFF, | ||
233 | .flags = IORESOURCE_MEM, | ||
234 | }, | ||
235 | [1] = { | ||
236 | .start = IRQ_TWI, | ||
237 | .end = IRQ_TWI, | ||
238 | .flags = IORESOURCE_IRQ, | ||
239 | }, | ||
240 | }; | ||
241 | |||
242 | static struct platform_device i2c_bfin_twi_device = { | ||
243 | .name = "i2c-bfin-twi", | ||
244 | .id = 0, | ||
245 | .num_resources = ARRAY_SIZE(bfin_twi0_resource), | ||
246 | .resource = bfin_twi0_resource, | ||
247 | }; | ||
248 | #endif | ||
249 | |||
250 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) | ||
251 | static struct platform_device bfin_sport0_uart_device = { | ||
252 | .name = "bfin-sport-uart", | ||
253 | .id = 0, | ||
254 | }; | ||
255 | |||
256 | static struct platform_device bfin_sport1_uart_device = { | ||
257 | .name = "bfin-sport-uart", | ||
258 | .id = 1, | ||
259 | }; | ||
260 | #endif | ||
261 | |||
262 | static struct platform_device *minotaur_devices[] __initdata = { | ||
263 | #if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) | ||
264 | &bfin_pcmcia_cf_device, | ||
265 | #endif | ||
266 | |||
267 | #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) | ||
268 | &rtc_device, | ||
269 | #endif | ||
270 | |||
271 | #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) | ||
272 | &bfin_mac_device, | ||
273 | #endif | ||
274 | |||
275 | #if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE) | ||
276 | &net2272_bfin_device, | ||
277 | #endif | ||
278 | |||
279 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | ||
280 | &bfin_spi0_device, | ||
281 | #endif | ||
282 | |||
283 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) | ||
284 | &bfin_uart_device, | ||
285 | #endif | ||
286 | |||
287 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) | ||
288 | &i2c_bfin_twi_device, | ||
289 | #endif | ||
290 | |||
291 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) | ||
292 | &bfin_sport0_uart_device, | ||
293 | &bfin_sport1_uart_device, | ||
294 | #endif | ||
295 | |||
296 | }; | ||
297 | |||
298 | static int __init minotaur_init(void) | ||
299 | { | ||
300 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | ||
301 | platform_add_devices(minotaur_devices, ARRAY_SIZE(minotaur_devices)); | ||
302 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | ||
303 | spi_register_board_info(bfin_spi_board_info, | ||
304 | ARRAY_SIZE(bfin_spi_board_info)); | ||
305 | #endif | ||
306 | |||
307 | return 0; | ||
308 | } | ||
309 | |||
310 | arch_initcall(minotaur_init); | ||
311 | |||
312 | void native_machine_restart(char *cmd) | ||
313 | { | ||
314 | /* workaround reboot hang when booting from SPI */ | ||
315 | if ((bfin_read_SYSCR() & 0x7) == 0x3) | ||
316 | bfin_gpio_reset_spi0_ssel1(); | ||
317 | } | ||
diff --git a/arch/blackfin/mach-bf537/boards/pnav10.c b/arch/blackfin/mach-bf537/boards/pnav10.c index fd5f4a6f08e4..509a8a236fd0 100644 --- a/arch/blackfin/mach-bf537/boards/pnav10.c +++ b/arch/blackfin/mach-bf537/boards/pnav10.c | |||
@@ -8,7 +8,7 @@ | |||
8 | * | 8 | * |
9 | * Modified: | 9 | * Modified: |
10 | * Copyright 2005 National ICT Australia (NICTA) | 10 | * Copyright 2005 National ICT Australia (NICTA) |
11 | * Copyright 2004-2006 Analog Devices Inc. | 11 | * Copyright 2004-2008 Analog Devices Inc. |
12 | * | 12 | * |
13 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | 13 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ |
14 | * | 14 | * |
@@ -29,6 +29,7 @@ | |||
29 | */ | 29 | */ |
30 | 30 | ||
31 | #include <linux/device.h> | 31 | #include <linux/device.h> |
32 | #include <linux/etherdevice.h> | ||
32 | #include <linux/platform_device.h> | 33 | #include <linux/platform_device.h> |
33 | #include <linux/mtd/mtd.h> | 34 | #include <linux/mtd/mtd.h> |
34 | #include <linux/mtd/partitions.h> | 35 | #include <linux/mtd/partitions.h> |
@@ -133,12 +134,8 @@ static struct resource sl811_hcd_resources[] = { | |||
133 | void sl811_port_power(struct device *dev, int is_on) | 134 | void sl811_port_power(struct device *dev, int is_on) |
134 | { | 135 | { |
135 | gpio_request(CONFIG_USB_SL811_BFIN_GPIO_VBUS, "usb:SL811_VBUS"); | 136 | gpio_request(CONFIG_USB_SL811_BFIN_GPIO_VBUS, "usb:SL811_VBUS"); |
136 | gpio_direction_output(CONFIG_USB_SL811_BFIN_GPIO_VBUS); | 137 | gpio_direction_output(CONFIG_USB_SL811_BFIN_GPIO_VBUS, is_on); |
137 | 138 | ||
138 | if (is_on) | ||
139 | gpio_set_value(CONFIG_USB_SL811_BFIN_GPIO_VBUS, 1); | ||
140 | else | ||
141 | gpio_set_value(CONFIG_USB_SL811_BFIN_GPIO_VBUS, 0); | ||
142 | } | 139 | } |
143 | #endif | 140 | #endif |
144 | 141 | ||
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c index 07b0dc273d2f..772541548b76 100644 --- a/arch/blackfin/mach-bf537/boards/stamp.c +++ b/arch/blackfin/mach-bf537/boards/stamp.c | |||
@@ -32,6 +32,7 @@ | |||
32 | #include <linux/platform_device.h> | 32 | #include <linux/platform_device.h> |
33 | #include <linux/mtd/mtd.h> | 33 | #include <linux/mtd/mtd.h> |
34 | #include <linux/mtd/partitions.h> | 34 | #include <linux/mtd/partitions.h> |
35 | #include <linux/mtd/physmap.h> | ||
35 | #include <linux/spi/spi.h> | 36 | #include <linux/spi/spi.h> |
36 | #include <linux/spi/flash.h> | 37 | #include <linux/spi/flash.h> |
37 | #if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) | 38 | #if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) |
@@ -103,6 +104,30 @@ void __exit bfin_isp1761_exit(void) | |||
103 | arch_initcall(bfin_isp1761_init); | 104 | arch_initcall(bfin_isp1761_init); |
104 | #endif | 105 | #endif |
105 | 106 | ||
107 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) | ||
108 | #include <linux/input.h> | ||
109 | #include <linux/gpio_keys.h> | ||
110 | |||
111 | static struct gpio_keys_button bfin_gpio_keys_table[] = { | ||
112 | {BTN_0, GPIO_PF2, 1, "gpio-keys: BTN0"}, | ||
113 | {BTN_1, GPIO_PF3, 1, "gpio-keys: BTN1"}, | ||
114 | {BTN_2, GPIO_PF4, 1, "gpio-keys: BTN2"}, | ||
115 | {BTN_3, GPIO_PF5, 1, "gpio-keys: BTN3"}, | ||
116 | }; | ||
117 | |||
118 | static struct gpio_keys_platform_data bfin_gpio_keys_data = { | ||
119 | .buttons = bfin_gpio_keys_table, | ||
120 | .nbuttons = ARRAY_SIZE(bfin_gpio_keys_table), | ||
121 | }; | ||
122 | |||
123 | static struct platform_device bfin_device_gpiokeys = { | ||
124 | .name = "gpio-keys", | ||
125 | .dev = { | ||
126 | .platform_data = &bfin_gpio_keys_data, | ||
127 | }, | ||
128 | }; | ||
129 | #endif | ||
130 | |||
106 | #if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) | 131 | #if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) |
107 | static struct resource bfin_pcmcia_cf_resources[] = { | 132 | static struct resource bfin_pcmcia_cf_resources[] = { |
108 | { | 133 | { |
@@ -226,12 +251,7 @@ static struct resource sl811_hcd_resources[] = { | |||
226 | void sl811_port_power(struct device *dev, int is_on) | 251 | void sl811_port_power(struct device *dev, int is_on) |
227 | { | 252 | { |
228 | gpio_request(CONFIG_USB_SL811_BFIN_GPIO_VBUS, "usb:SL811_VBUS"); | 253 | gpio_request(CONFIG_USB_SL811_BFIN_GPIO_VBUS, "usb:SL811_VBUS"); |
229 | gpio_direction_output(CONFIG_USB_SL811_BFIN_GPIO_VBUS); | 254 | gpio_direction_output(CONFIG_USB_SL811_BFIN_GPIO_VBUS, is_on); |
230 | |||
231 | if (is_on) | ||
232 | gpio_set_value(CONFIG_USB_SL811_BFIN_GPIO_VBUS, 1); | ||
233 | else | ||
234 | gpio_set_value(CONFIG_USB_SL811_BFIN_GPIO_VBUS, 0); | ||
235 | } | 255 | } |
236 | #endif | 256 | #endif |
237 | 257 | ||
@@ -320,6 +340,49 @@ static struct platform_device net2272_bfin_device = { | |||
320 | }; | 340 | }; |
321 | #endif | 341 | #endif |
322 | 342 | ||
343 | static struct mtd_partition stamp_partitions[] = { | ||
344 | { | ||
345 | .name = "Bootloader", | ||
346 | .size = 0x20000, | ||
347 | .offset = 0, | ||
348 | }, { | ||
349 | .name = "Kernel", | ||
350 | .size = 0xE0000, | ||
351 | .offset = MTDPART_OFS_APPEND, | ||
352 | }, { | ||
353 | .name = "RootFS", | ||
354 | .size = 0x400000 - 0x20000 - 0xE0000 - 0x10000, | ||
355 | .offset = MTDPART_OFS_APPEND, | ||
356 | }, { | ||
357 | .name = "MAC Address", | ||
358 | .size = MTDPART_SIZ_FULL, | ||
359 | .offset = 0x3F0000, | ||
360 | .mask_flags = MTD_WRITEABLE, | ||
361 | } | ||
362 | }; | ||
363 | |||
364 | static struct physmap_flash_data stamp_flash_data = { | ||
365 | .width = 2, | ||
366 | .parts = stamp_partitions, | ||
367 | .nr_parts = ARRAY_SIZE(stamp_partitions), | ||
368 | }; | ||
369 | |||
370 | static struct resource stamp_flash_resource = { | ||
371 | .start = 0x20000000, | ||
372 | .end = 0x203fffff, | ||
373 | .flags = IORESOURCE_MEM, | ||
374 | }; | ||
375 | |||
376 | static struct platform_device stamp_flash_device = { | ||
377 | .name = "physmap-flash", | ||
378 | .id = 0, | ||
379 | .dev = { | ||
380 | .platform_data = &stamp_flash_data, | ||
381 | }, | ||
382 | .num_resources = 1, | ||
383 | .resource = &stamp_flash_resource, | ||
384 | }; | ||
385 | |||
323 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | 386 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) |
324 | /* all SPI peripherals info goes here */ | 387 | /* all SPI peripherals info goes here */ |
325 | 388 | ||
@@ -738,6 +801,11 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
738 | #if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) | 801 | #if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) |
739 | &bfin_pata_device, | 802 | &bfin_pata_device, |
740 | #endif | 803 | #endif |
804 | |||
805 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) | ||
806 | &bfin_device_gpiokeys, | ||
807 | #endif | ||
808 | &stamp_flash_device, | ||
741 | }; | 809 | }; |
742 | 810 | ||
743 | static int __init stamp_init(void) | 811 | static int __init stamp_init(void) |