diff options
Diffstat (limited to 'arch/arm/mach-omap1/board-h3.c')
-rw-r--r-- | arch/arm/mach-omap1/board-h3.c | 75 |
1 files changed, 29 insertions, 46 deletions
diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c index 056519860565..6fc516855a8c 100644 --- a/arch/arm/mach-omap1/board-h3.c +++ b/arch/arm/mach-omap1/board-h3.c | |||
@@ -42,6 +42,7 @@ | |||
42 | #include <asm/arch/irqs.h> | 42 | #include <asm/arch/irqs.h> |
43 | #include <asm/arch/mux.h> | 43 | #include <asm/arch/mux.h> |
44 | #include <asm/arch/tc.h> | 44 | #include <asm/arch/tc.h> |
45 | #include <asm/arch/nand.h> | ||
45 | #include <asm/arch/irda.h> | 46 | #include <asm/arch/irda.h> |
46 | #include <asm/arch/usb.h> | 47 | #include <asm/arch/usb.h> |
47 | #include <asm/arch/keypad.h> | 48 | #include <asm/arch/keypad.h> |
@@ -50,8 +51,6 @@ | |||
50 | #include <asm/arch/mcbsp.h> | 51 | #include <asm/arch/mcbsp.h> |
51 | #include <asm/arch/omap-alsa.h> | 52 | #include <asm/arch/omap-alsa.h> |
52 | 53 | ||
53 | extern int omap_gpio_init(void); | ||
54 | |||
55 | static int h3_keymap[] = { | 54 | static int h3_keymap[] = { |
56 | KEY(0, 0, KEY_LEFT), | 55 | KEY(0, 0, KEY_LEFT), |
57 | KEY(0, 1, KEY_RIGHT), | 56 | KEY(0, 1, KEY_RIGHT), |
@@ -179,7 +178,7 @@ static struct mtd_partition nand_partitions[] = { | |||
179 | }; | 178 | }; |
180 | 179 | ||
181 | /* dip switches control NAND chip access: 8 bit, 16 bit, or neither */ | 180 | /* dip switches control NAND chip access: 8 bit, 16 bit, or neither */ |
182 | static struct nand_platform_data nand_data = { | 181 | static struct omap_nand_platform_data nand_data = { |
183 | .options = NAND_SAMSUNG_LP_OPTIONS, | 182 | .options = NAND_SAMSUNG_LP_OPTIONS, |
184 | .parts = nand_partitions, | 183 | .parts = nand_partitions, |
185 | .nr_parts = ARRAY_SIZE(nand_partitions), | 184 | .nr_parts = ARRAY_SIZE(nand_partitions), |
@@ -387,18 +386,18 @@ static struct omap_mcbsp_reg_cfg mcbsp_regs = { | |||
387 | .srgr2 = GSYNC | CLKSP | FSGM | FPER(31), | 386 | .srgr2 = GSYNC | CLKSP | FSGM | FPER(31), |
388 | 387 | ||
389 | .pcr0 = CLKRM | SCLKME | FSXP | FSRP | CLKXP | CLKRP, | 388 | .pcr0 = CLKRM | SCLKME | FSXP | FSRP | CLKXP | CLKRP, |
390 | //.pcr0 = CLKXP | CLKRP, /* mcbsp: slave */ | 389 | /*.pcr0 = CLKXP | CLKRP,*/ /* mcbsp: slave */ |
391 | }; | 390 | }; |
392 | 391 | ||
393 | static struct omap_alsa_codec_config alsa_config = { | 392 | static struct omap_alsa_codec_config alsa_config = { |
394 | .name = "H3 TSC2101", | 393 | .name = "H3 TSC2101", |
395 | .mcbsp_regs_alsa = &mcbsp_regs, | 394 | .mcbsp_regs_alsa = &mcbsp_regs, |
396 | .codec_configure_dev = NULL, // tsc2101_configure, | 395 | .codec_configure_dev = NULL, /* tsc2101_configure, */ |
397 | .codec_set_samplerate = NULL, // tsc2101_set_samplerate, | 396 | .codec_set_samplerate = NULL, /* tsc2101_set_samplerate, */ |
398 | .codec_clock_setup = NULL, // tsc2101_clock_setup, | 397 | .codec_clock_setup = NULL, /* tsc2101_clock_setup, */ |
399 | .codec_clock_on = NULL, // tsc2101_clock_on, | 398 | .codec_clock_on = NULL, /* tsc2101_clock_on, */ |
400 | .codec_clock_off = NULL, // tsc2101_clock_off, | 399 | .codec_clock_off = NULL, /* tsc2101_clock_off, */ |
401 | .get_default_samplerate = NULL, // tsc2101_get_default_samplerate, | 400 | .get_default_samplerate = NULL, /* tsc2101_get_default_samplerate, */ |
402 | }; | 401 | }; |
403 | 402 | ||
404 | static struct platform_device h3_mcbsp1_device = { | 403 | static struct platform_device h3_mcbsp1_device = { |
@@ -436,12 +435,13 @@ static struct omap_usb_config h3_usb_config __initdata = { | |||
436 | 435 | ||
437 | static struct omap_mmc_config h3_mmc_config __initdata = { | 436 | static struct omap_mmc_config h3_mmc_config __initdata = { |
438 | .mmc[0] = { | 437 | .mmc[0] = { |
439 | .enabled = 1, | 438 | .enabled = 1, |
440 | .power_pin = -1, /* tps65010 GPIO4 */ | 439 | .wire4 = 1, |
441 | .switch_pin = OMAP_MPUIO(1), | 440 | }, |
442 | }, | ||
443 | }; | 441 | }; |
444 | 442 | ||
443 | extern struct omap_mmc_platform_data h3_mmc_data; | ||
444 | |||
445 | static struct omap_uart_config h3_uart_config __initdata = { | 445 | static struct omap_uart_config h3_uart_config __initdata = { |
446 | .enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)), | 446 | .enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)), |
447 | }; | 447 | }; |
@@ -450,29 +450,28 @@ static struct omap_lcd_config h3_lcd_config __initdata = { | |||
450 | .ctrl_name = "internal", | 450 | .ctrl_name = "internal", |
451 | }; | 451 | }; |
452 | 452 | ||
453 | static struct omap_board_config_kernel h3_config[] = { | 453 | static struct omap_board_config_kernel h3_config[] __initdata = { |
454 | { OMAP_TAG_USB, &h3_usb_config }, | 454 | { OMAP_TAG_USB, &h3_usb_config }, |
455 | { OMAP_TAG_MMC, &h3_mmc_config }, | 455 | { OMAP_TAG_MMC, &h3_mmc_config }, |
456 | { OMAP_TAG_UART, &h3_uart_config }, | 456 | { OMAP_TAG_UART, &h3_uart_config }, |
457 | { OMAP_TAG_LCD, &h3_lcd_config }, | 457 | { OMAP_TAG_LCD, &h3_lcd_config }, |
458 | }; | 458 | }; |
459 | 459 | ||
460 | static struct i2c_board_info __initdata h3_i2c_board_info[] = { | 460 | static struct omap_gpio_switch h3_gpio_switches[] __initdata = { |
461 | { | 461 | { |
462 | I2C_BOARD_INFO("tps65010", 0x48), | 462 | .name = "mmc_slot", |
463 | .type = "tps65013", | 463 | .gpio = OMAP_MPUIO(1), |
464 | /* .irq = OMAP_GPIO_IRQ(??), */ | 464 | .type = OMAP_GPIO_SWITCH_TYPE_COVER, |
465 | .debounce_rising = 100, | ||
466 | .debounce_falling = 0, | ||
467 | .notify = h3_mmc_slot_cover_handler, | ||
468 | .notify_data = NULL, | ||
465 | }, | 469 | }, |
466 | /* TODO when driver support is ready: | ||
467 | * - isp1301 OTG transceiver | ||
468 | * - optional ov9640 camera sensor at 0x30 | ||
469 | * - ... | ||
470 | */ | ||
471 | }; | 470 | }; |
472 | 471 | ||
473 | #define H3_NAND_RB_GPIO_PIN 10 | 472 | #define H3_NAND_RB_GPIO_PIN 10 |
474 | 473 | ||
475 | static int nand_dev_ready(struct nand_platform_data *data) | 474 | static int nand_dev_ready(struct omap_nand_platform_data *data) |
476 | { | 475 | { |
477 | return omap_get_gpio_datain(H3_NAND_RB_GPIO_PIN); | 476 | return omap_get_gpio_datain(H3_NAND_RB_GPIO_PIN); |
478 | } | 477 | } |
@@ -500,13 +499,14 @@ static void __init h3_init(void) | |||
500 | omap_cfg_reg(V2_1710_GPIO10); | 499 | omap_cfg_reg(V2_1710_GPIO10); |
501 | 500 | ||
502 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 501 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
502 | spi_register_board_info(h3_spi_board_info, | ||
503 | ARRAY_SIZE(h3_spi_board_info)); | ||
503 | omap_board_config = h3_config; | 504 | omap_board_config = h3_config; |
504 | omap_board_config_size = ARRAY_SIZE(h3_config); | 505 | omap_board_config_size = ARRAY_SIZE(h3_config); |
505 | omap_serial_init(); | 506 | omap_serial_init(); |
506 | 507 | omap_register_i2c_bus(1, 100, h3_i2c_board_info, | |
507 | /* FIXME setup irq for tps65013 chip */ | 508 | ARRAY_SIZE(h3_i2c_board_info)); |
508 | i2c_register_board_info(1, h3_i2c_board_info, | 509 | h3_mmc_init(); |
509 | ARRAY_SIZE(h3_i2c_board_info)); | ||
510 | } | 510 | } |
511 | 511 | ||
512 | static void __init h3_init_smc91x(void) | 512 | static void __init h3_init_smc91x(void) |
@@ -531,23 +531,6 @@ static void __init h3_map_io(void) | |||
531 | omap1_map_common_io(); | 531 | omap1_map_common_io(); |
532 | } | 532 | } |
533 | 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 | |||
551 | MACHINE_START(OMAP_H3, "TI OMAP1710 H3 board") | 534 | MACHINE_START(OMAP_H3, "TI OMAP1710 H3 board") |
552 | /* Maintainer: Texas Instruments, Inc. */ | 535 | /* Maintainer: Texas Instruments, Inc. */ |
553 | .phys_io = 0xfff00000, | 536 | .phys_io = 0xfff00000, |