aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap1/board-osk.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap1/board-osk.c')
-rw-r--r--arch/arm/mach-omap1/board-osk.c55
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
312static struct omap_backlight_config mistral_bl_data = {
313 .default_intensity = 0xa0,
314};
315
316static struct platform_device mistral_bl_device = {
317 .name = "omap-bl",
318 .id = -1,
319 .dev = {
320 .platform_data = &mistral_bl_data,
321 },
322};
323
311static struct platform_device osk5912_lcd_device = { 324static 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
316static struct platform_device *mistral_devices[] __initdata = { 329static 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