diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-15 19:08:50 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-15 19:08:50 -0400 |
commit | 65a6ec0d72a07f16719e9b7a96e1c4bae044b591 (patch) | |
tree | 344e03a5039a44982c1b78d6113633b21b434820 /arch/arm/mach-omap1/board-osk.c | |
parent | 541010e4b8921cd781ff02ae68028501457045b6 (diff) | |
parent | 0181b61a988424b5cc44fe09e6968142359c815e (diff) |
Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm
* 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (95 commits)
[ARM] 4578/1: CM-x270: PCMCIA support
[ARM] 4577/1: ITE 8152 PCI bridge support
[ARM] 4576/1: CM-X270 machine support
[ARM] pxa: Avoid pxa_gpio_mode() in gpio_direction_{in,out}put()
[ARM] pxa: move pxa_set_mode() from pxa2xx_mainstone.c to mainstone.c
[ARM] pxa: move pxa_set_mode() from pxa2xx_lubbock.c to lubbock.c
[ARM] pxa: Make cpu_is_pxaXXX dependent on configuration symbols
[ARM] pxa: PXA3xx base support
[NET] smc91x: fix PXA DMA support code
[SERIAL] Fix console initialisation ordering
[ARM] pxa: tidy up arch/arm/mach-pxa/Makefile
[ARM] Update arch/arm/Kconfig for drivers/Kconfig changes
[ARM] 4600/1: fix kernel build failure with build-id-supporting binutils
[ARM] 4599/1: Preserve ATAG list for use with kexec (2.6.23)
[ARM] Rename consistent_sync() as dma_cache_maint()
[ARM] 4572/1: ep93xx: add cirrus logic edb9307 support
[ARM] 4596/1: S3C2412: Correct IRQs for SDI+CF and add decoding support
[ARM] 4595/1: ns9xxx: define registers as void __iomem * instead of volatile u32
[ARM] 4594/1: ns9xxx: use the new gpio functions
[ARM] 4593/1: ns9xxx: implement generic clockevents
...
Diffstat (limited to 'arch/arm/mach-omap1/board-osk.c')
-rw-r--r-- | arch/arm/mach-omap1/board-osk.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/arch/arm/mach-omap1/board-osk.c b/arch/arm/mach-omap1/board-osk.c index a61bf455ee02..5db182da322b 100644 --- a/arch/arm/mach-omap1/board-osk.c +++ b/arch/arm/mach-omap1/board-osk.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include <linux/kernel.h> | 29 | #include <linux/kernel.h> |
30 | #include <linux/init.h> | 30 | #include <linux/init.h> |
31 | #include <linux/platform_device.h> | 31 | #include <linux/platform_device.h> |
32 | #include <linux/interrupt.h> | ||
32 | #include <linux/irq.h> | 33 | #include <linux/irq.h> |
33 | #include <linux/interrupt.h> | 34 | #include <linux/interrupt.h> |
34 | #include <linux/i2c.h> | 35 | #include <linux/i2c.h> |
@@ -308,6 +309,18 @@ static struct platform_device osk5912_kp_device = { | |||
308 | .resource = osk5912_kp_resources, | 309 | .resource = osk5912_kp_resources, |
309 | }; | 310 | }; |
310 | 311 | ||
312 | static struct omap_backlight_config mistral_bl_data = { | ||
313 | .default_intensity = 0xa0, | ||
314 | }; | ||
315 | |||
316 | static struct platform_device mistral_bl_device = { | ||
317 | .name = "omap-bl", | ||
318 | .id = -1, | ||
319 | .dev = { | ||
320 | .platform_data = &mistral_bl_data, | ||
321 | }, | ||
322 | }; | ||
323 | |||
311 | static struct platform_device osk5912_lcd_device = { | 324 | static struct platform_device osk5912_lcd_device = { |
312 | .name = "lcd_osk", | 325 | .name = "lcd_osk", |
313 | .id = -1, | 326 | .id = -1, |
@@ -315,6 +328,7 @@ static struct platform_device osk5912_lcd_device = { | |||
315 | 328 | ||
316 | static struct platform_device *mistral_devices[] __initdata = { | 329 | static struct platform_device *mistral_devices[] __initdata = { |
317 | &osk5912_kp_device, | 330 | &osk5912_kp_device, |
331 | &mistral_bl_device, | ||
318 | &osk5912_lcd_device, | 332 | &osk5912_lcd_device, |
319 | }; | 333 | }; |
320 | 334 | ||
@@ -358,6 +372,38 @@ static void __init osk_mistral_init(void) | |||
358 | * can't talk to the ads or even the i2c eeprom. | 372 | * can't talk to the ads or even the i2c eeprom. |
359 | */ | 373 | */ |
360 | 374 | ||
375 | /* parallel camera interface */ | ||
376 | omap_cfg_reg(J15_1610_CAM_LCLK); | ||
377 | omap_cfg_reg(J18_1610_CAM_D7); | ||
378 | omap_cfg_reg(J19_1610_CAM_D6); | ||
379 | omap_cfg_reg(J14_1610_CAM_D5); | ||
380 | omap_cfg_reg(K18_1610_CAM_D4); | ||
381 | omap_cfg_reg(K19_1610_CAM_D3); | ||
382 | omap_cfg_reg(K15_1610_CAM_D2); | ||
383 | omap_cfg_reg(K14_1610_CAM_D1); | ||
384 | omap_cfg_reg(L19_1610_CAM_D0); | ||
385 | omap_cfg_reg(L18_1610_CAM_VS); | ||
386 | omap_cfg_reg(L15_1610_CAM_HS); | ||
387 | omap_cfg_reg(M19_1610_CAM_RSTZ); | ||
388 | omap_cfg_reg(Y15_1610_CAM_OUTCLK); | ||
389 | |||
390 | /* serial camera interface */ | ||
391 | omap_cfg_reg(H19_1610_CAM_EXCLK); | ||
392 | omap_cfg_reg(W13_1610_CCP_CLKM); | ||
393 | omap_cfg_reg(Y12_1610_CCP_CLKP); | ||
394 | /* CCP_DATAM CONFLICTS WITH UART1.TX (and serial console) */ | ||
395 | // omap_cfg_reg(Y14_1610_CCP_DATAM); | ||
396 | omap_cfg_reg(W14_1610_CCP_DATAP); | ||
397 | |||
398 | /* CAM_PWDN */ | ||
399 | if (omap_request_gpio(11) == 0) { | ||
400 | omap_cfg_reg(N20_1610_GPIO11); | ||
401 | omap_set_gpio_direction(11, 0 /* out */); | ||
402 | omap_set_gpio_dataout(11, 0 /* off */); | ||
403 | } else | ||
404 | pr_debug("OSK+Mistral: CAM_PWDN is awol\n"); | ||
405 | |||
406 | |||
361 | // omap_cfg_reg(P19_1610_GPIO6); // BUSY | 407 | // omap_cfg_reg(P19_1610_GPIO6); // BUSY |
362 | omap_cfg_reg(P20_1610_GPIO4); // PENIRQ | 408 | omap_cfg_reg(P20_1610_GPIO4); // PENIRQ |
363 | set_irq_type(OMAP_GPIO_IRQ(4), IRQT_FALLING); | 409 | set_irq_type(OMAP_GPIO_IRQ(4), IRQT_FALLING); |
@@ -388,6 +434,15 @@ static void __init osk_mistral_init(void) | |||
388 | } else | 434 | } else |
389 | printk(KERN_ERR "OSK+Mistral: wakeup button is awol\n"); | 435 | printk(KERN_ERR "OSK+Mistral: wakeup button is awol\n"); |
390 | 436 | ||
437 | /* LCD: backlight, and power; power controls other devices on the | ||
438 | * board, like the touchscreen, EEPROM, and wakeup (!) switch. | ||
439 | */ | ||
440 | omap_cfg_reg(PWL); | ||
441 | if (omap_request_gpio(2) == 0) { | ||
442 | omap_set_gpio_direction(2, 0 /* out */); | ||
443 | omap_set_gpio_dataout(2, 1 /* on */); | ||
444 | } | ||
445 | |||
391 | platform_add_devices(mistral_devices, ARRAY_SIZE(mistral_devices)); | 446 | platform_add_devices(mistral_devices, ARRAY_SIZE(mistral_devices)); |
392 | } | 447 | } |
393 | #else | 448 | #else |