diff options
Diffstat (limited to 'arch/arm/mach-omap1/board-h3.c')
-rw-r--r-- | arch/arm/mach-omap1/board-h3.c | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c index 4167f3480974..4f84ae273a1f 100644 --- a/arch/arm/mach-omap1/board-h3.c +++ b/arch/arm/mach-omap1/board-h3.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
22 | #include <linux/errno.h> | 22 | #include <linux/errno.h> |
23 | #include <linux/workqueue.h> | 23 | #include <linux/workqueue.h> |
24 | #include <linux/i2c.h> | ||
24 | #include <linux/mtd/mtd.h> | 25 | #include <linux/mtd/mtd.h> |
25 | #include <linux/mtd/nand.h> | 26 | #include <linux/mtd/nand.h> |
26 | #include <linux/mtd/partitions.h> | 27 | #include <linux/mtd/partitions.h> |
@@ -29,12 +30,14 @@ | |||
29 | #include <asm/setup.h> | 30 | #include <asm/setup.h> |
30 | #include <asm/page.h> | 31 | #include <asm/page.h> |
31 | #include <asm/hardware.h> | 32 | #include <asm/hardware.h> |
33 | #include <asm/gpio.h> | ||
34 | |||
32 | #include <asm/mach-types.h> | 35 | #include <asm/mach-types.h> |
33 | #include <asm/mach/arch.h> | 36 | #include <asm/mach/arch.h> |
34 | #include <asm/mach/flash.h> | 37 | #include <asm/mach/flash.h> |
35 | #include <asm/mach/map.h> | 38 | #include <asm/mach/map.h> |
36 | 39 | ||
37 | #include <asm/arch/gpio.h> | 40 | #include <asm/arch/tps65010.h> |
38 | #include <asm/arch/gpioexpander.h> | 41 | #include <asm/arch/gpioexpander.h> |
39 | #include <asm/arch/irqs.h> | 42 | #include <asm/arch/irqs.h> |
40 | #include <asm/arch/mux.h> | 43 | #include <asm/arch/mux.h> |
@@ -454,6 +457,19 @@ static struct omap_board_config_kernel h3_config[] = { | |||
454 | { OMAP_TAG_LCD, &h3_lcd_config }, | 457 | { OMAP_TAG_LCD, &h3_lcd_config }, |
455 | }; | 458 | }; |
456 | 459 | ||
460 | static struct i2c_board_info __initdata h3_i2c_board_info[] = { | ||
461 | { | ||
462 | I2C_BOARD_INFO("tps65010", 0x48), | ||
463 | .type = "tps65013", | ||
464 | /* .irq = OMAP_GPIO_IRQ(??), */ | ||
465 | }, | ||
466 | /* TODO when driver support is ready: | ||
467 | * - isp1301 OTG transceiver | ||
468 | * - optional ov9640 camera sensor at 0x30 | ||
469 | * - ... | ||
470 | */ | ||
471 | }; | ||
472 | |||
457 | #define H3_NAND_RB_GPIO_PIN 10 | 473 | #define H3_NAND_RB_GPIO_PIN 10 |
458 | 474 | ||
459 | static int nand_dev_ready(struct nand_platform_data *data) | 475 | static int nand_dev_ready(struct nand_platform_data *data) |
@@ -487,6 +503,10 @@ static void __init h3_init(void) | |||
487 | omap_board_config = h3_config; | 503 | omap_board_config = h3_config; |
488 | omap_board_config_size = ARRAY_SIZE(h3_config); | 504 | omap_board_config_size = ARRAY_SIZE(h3_config); |
489 | omap_serial_init(); | 505 | omap_serial_init(); |
506 | |||
507 | /* FIXME setup irq for tps65013 chip */ | ||
508 | i2c_register_board_info(1, h3_i2c_board_info, | ||
509 | ARRAY_SIZE(h3_i2c_board_info)); | ||
490 | } | 510 | } |
491 | 511 | ||
492 | static void __init h3_init_smc91x(void) | 512 | static void __init h3_init_smc91x(void) |
@@ -511,6 +531,23 @@ static void __init h3_map_io(void) | |||
511 | omap1_map_common_io(); | 531 | omap1_map_common_io(); |
512 | } | 532 | } |
513 | 533 | ||
534 | #ifdef CONFIG_TPS65010 | ||
535 | static int __init h3_tps_init(void) | ||
536 | { | ||
537 | if (!machine_is_omap_h3()) | ||
538 | return 0; | ||
539 | |||
540 | /* gpio4 for SD, gpio3 for VDD_DSP */ | ||
541 | /* FIXME send power to DSP iff it's configured */ | ||
542 | |||
543 | /* Enable LOW_PWR */ | ||
544 | tps65013_set_low_pwr(ON); | ||
545 | |||
546 | return 0; | ||
547 | } | ||
548 | fs_initcall(h3_tps_init); | ||
549 | #endif | ||
550 | |||
514 | MACHINE_START(OMAP_H3, "TI OMAP1710 H3 board") | 551 | MACHINE_START(OMAP_H3, "TI OMAP1710 H3 board") |
515 | /* Maintainer: Texas Instruments, Inc. */ | 552 | /* Maintainer: Texas Instruments, Inc. */ |
516 | .phys_io = 0xfff00000, | 553 | .phys_io = 0xfff00000, |