diff options
Diffstat (limited to 'arch/arm/mach-omap2/board-cm-t35.c')
-rw-r--r-- | arch/arm/mach-omap2/board-cm-t35.c | 176 |
1 files changed, 89 insertions, 87 deletions
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c index 77456dec93ea..3af8aab435b5 100644 --- a/arch/arm/mach-omap2/board-cm-t35.c +++ b/arch/arm/mach-omap2/board-cm-t35.c | |||
@@ -1,8 +1,9 @@ | |||
1 | /* | 1 | /* |
2 | * board-cm-t35.c (CompuLab CM-T35 module) | 2 | * CompuLab CM-T35/CM-T3730 modules support |
3 | * | 3 | * |
4 | * Copyright (C) 2009 CompuLab, Ltd. | 4 | * Copyright (C) 2009-2011 CompuLab, Ltd. |
5 | * Author: Mike Rapoport <mike@compulab.co.il> | 5 | * Authors: Mike Rapoport <mike@compulab.co.il> |
6 | * Igor Grinberg <grinberg@compulab.co.il> | ||
6 | * | 7 | * |
7 | * This program is free software; you can redistribute it and/or | 8 | * This program is free software; you can redistribute it and/or |
8 | * modify it under the terms of the GNU General Public License | 9 | * modify it under the terms of the GNU General Public License |
@@ -13,11 +14,6 @@ | |||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
14 | * General Public License for more details. | 15 | * General Public License for more details. |
15 | * | 16 | * |
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA | ||
19 | * 02110-1301 USA | ||
20 | * | ||
21 | */ | 17 | */ |
22 | 18 | ||
23 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
@@ -149,12 +145,12 @@ static struct mtd_partition cm_t35_nand_partitions[] = { | |||
149 | }, | 145 | }, |
150 | { | 146 | { |
151 | .name = "linux", | 147 | .name = "linux", |
152 | .offset = MTDPART_OFS_APPEND, /* Offset = 0x280000 */ | 148 | .offset = MTDPART_OFS_APPEND, /* Offset = 0x2A0000 */ |
153 | .size = 32 * NAND_BLOCK_SIZE, | 149 | .size = 32 * NAND_BLOCK_SIZE, |
154 | }, | 150 | }, |
155 | { | 151 | { |
156 | .name = "rootfs", | 152 | .name = "rootfs", |
157 | .offset = MTDPART_OFS_APPEND, /* Offset = 0x680000 */ | 153 | .offset = MTDPART_OFS_APPEND, /* Offset = 0x6A0000 */ |
158 | .size = MTDPART_SIZ_FULL, | 154 | .size = MTDPART_SIZ_FULL, |
159 | }, | 155 | }, |
160 | }; | 156 | }; |
@@ -162,9 +158,7 @@ static struct mtd_partition cm_t35_nand_partitions[] = { | |||
162 | static struct omap_nand_platform_data cm_t35_nand_data = { | 158 | static struct omap_nand_platform_data cm_t35_nand_data = { |
163 | .parts = cm_t35_nand_partitions, | 159 | .parts = cm_t35_nand_partitions, |
164 | .nr_parts = ARRAY_SIZE(cm_t35_nand_partitions), | 160 | .nr_parts = ARRAY_SIZE(cm_t35_nand_partitions), |
165 | .dma_channel = -1, /* disable DMA in OMAP NAND driver */ | ||
166 | .cs = 0, | 161 | .cs = 0, |
167 | |||
168 | }; | 162 | }; |
169 | 163 | ||
170 | static void __init cm_t35_init_nand(void) | 164 | static void __init cm_t35_init_nand(void) |
@@ -337,19 +331,17 @@ static void __init cm_t35_init_display(void) | |||
337 | } | 331 | } |
338 | } | 332 | } |
339 | 333 | ||
340 | static struct regulator_consumer_supply cm_t35_vmmc1_supply = { | 334 | static struct regulator_consumer_supply cm_t35_vmmc1_supply[] = { |
341 | .supply = "vmmc", | 335 | REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"), |
342 | }; | 336 | }; |
343 | 337 | ||
344 | static struct regulator_consumer_supply cm_t35_vsim_supply = { | 338 | static struct regulator_consumer_supply cm_t35_vsim_supply[] = { |
345 | .supply = "vmmc_aux", | 339 | REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.0"), |
346 | }; | 340 | }; |
347 | 341 | ||
348 | static struct regulator_consumer_supply cm_t35_vdac_supply = | 342 | static struct regulator_consumer_supply cm_t35_vdvi_supply[] = { |
349 | REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"); | 343 | REGULATOR_SUPPLY("vdvi", "omapdss"), |
350 | 344 | }; | |
351 | static struct regulator_consumer_supply cm_t35_vdvi_supply = | ||
352 | REGULATOR_SUPPLY("vdvi", "omapdss"); | ||
353 | 345 | ||
354 | /* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max 220 mA) */ | 346 | /* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max 220 mA) */ |
355 | static struct regulator_init_data cm_t35_vmmc1 = { | 347 | static struct regulator_init_data cm_t35_vmmc1 = { |
@@ -362,8 +354,8 @@ static struct regulator_init_data cm_t35_vmmc1 = { | |||
362 | | REGULATOR_CHANGE_MODE | 354 | | REGULATOR_CHANGE_MODE |
363 | | REGULATOR_CHANGE_STATUS, | 355 | | REGULATOR_CHANGE_STATUS, |
364 | }, | 356 | }, |
365 | .num_consumer_supplies = 1, | 357 | .num_consumer_supplies = ARRAY_SIZE(cm_t35_vmmc1_supply), |
366 | .consumer_supplies = &cm_t35_vmmc1_supply, | 358 | .consumer_supplies = cm_t35_vmmc1_supply, |
367 | }; | 359 | }; |
368 | 360 | ||
369 | /* VSIM for MMC1 pins DAT4..DAT7 (2 mA, plus card == max 50 mA) */ | 361 | /* VSIM for MMC1 pins DAT4..DAT7 (2 mA, plus card == max 50 mA) */ |
@@ -377,41 +369,8 @@ static struct regulator_init_data cm_t35_vsim = { | |||
377 | | REGULATOR_CHANGE_MODE | 369 | | REGULATOR_CHANGE_MODE |
378 | | REGULATOR_CHANGE_STATUS, | 370 | | REGULATOR_CHANGE_STATUS, |
379 | }, | 371 | }, |
380 | .num_consumer_supplies = 1, | 372 | .num_consumer_supplies = ARRAY_SIZE(cm_t35_vsim_supply), |
381 | .consumer_supplies = &cm_t35_vsim_supply, | 373 | .consumer_supplies = cm_t35_vsim_supply, |
382 | }; | ||
383 | |||
384 | /* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */ | ||
385 | static struct regulator_init_data cm_t35_vdac = { | ||
386 | .constraints = { | ||
387 | .min_uV = 1800000, | ||
388 | .max_uV = 1800000, | ||
389 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
390 | | REGULATOR_MODE_STANDBY, | ||
391 | .valid_ops_mask = REGULATOR_CHANGE_MODE | ||
392 | | REGULATOR_CHANGE_STATUS, | ||
393 | }, | ||
394 | .num_consumer_supplies = 1, | ||
395 | .consumer_supplies = &cm_t35_vdac_supply, | ||
396 | }; | ||
397 | |||
398 | /* VPLL2 for digital video outputs */ | ||
399 | static struct regulator_init_data cm_t35_vpll2 = { | ||
400 | .constraints = { | ||
401 | .name = "VDVI", | ||
402 | .min_uV = 1800000, | ||
403 | .max_uV = 1800000, | ||
404 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
405 | | REGULATOR_MODE_STANDBY, | ||
406 | .valid_ops_mask = REGULATOR_CHANGE_MODE | ||
407 | | REGULATOR_CHANGE_STATUS, | ||
408 | }, | ||
409 | .num_consumer_supplies = 1, | ||
410 | .consumer_supplies = &cm_t35_vdvi_supply, | ||
411 | }; | ||
412 | |||
413 | static struct twl4030_usb_data cm_t35_usb_data = { | ||
414 | .usb_mode = T2_USB_MODE_ULPI, | ||
415 | }; | 374 | }; |
416 | 375 | ||
417 | static uint32_t cm_t35_keymap[] = { | 376 | static uint32_t cm_t35_keymap[] = { |
@@ -470,9 +429,9 @@ static int cm_t35_twl_gpio_setup(struct device *dev, unsigned gpio, | |||
470 | if (gpio_request_one(wlan_rst, GPIOF_OUT_INIT_HIGH, "WLAN RST") == 0) { | 429 | if (gpio_request_one(wlan_rst, GPIOF_OUT_INIT_HIGH, "WLAN RST") == 0) { |
471 | gpio_export(wlan_rst, 0); | 430 | gpio_export(wlan_rst, 0); |
472 | udelay(10); | 431 | udelay(10); |
473 | gpio_set_value(wlan_rst, 0); | 432 | gpio_set_value_cansleep(wlan_rst, 0); |
474 | udelay(10); | 433 | udelay(10); |
475 | gpio_set_value(wlan_rst, 1); | 434 | gpio_set_value_cansleep(wlan_rst, 1); |
476 | } else { | 435 | } else { |
477 | pr_err("CM-T35: could not obtain gpio for WiFi reset\n"); | 436 | pr_err("CM-T35: could not obtain gpio for WiFi reset\n"); |
478 | } | 437 | } |
@@ -481,10 +440,6 @@ static int cm_t35_twl_gpio_setup(struct device *dev, unsigned gpio, | |||
481 | mmc[0].gpio_cd = gpio + 0; | 440 | mmc[0].gpio_cd = gpio + 0; |
482 | omap2_hsmmc_init(mmc); | 441 | omap2_hsmmc_init(mmc); |
483 | 442 | ||
484 | /* link regulators to MMC adapters */ | ||
485 | cm_t35_vmmc1_supply.dev = mmc[0].dev; | ||
486 | cm_t35_vsim_supply.dev = mmc[0].dev; | ||
487 | |||
488 | return 0; | 443 | return 0; |
489 | } | 444 | } |
490 | 445 | ||
@@ -496,21 +451,23 @@ static struct twl4030_gpio_platform_data cm_t35_gpio_data = { | |||
496 | }; | 451 | }; |
497 | 452 | ||
498 | static struct twl4030_platform_data cm_t35_twldata = { | 453 | static struct twl4030_platform_data cm_t35_twldata = { |
499 | .irq_base = TWL4030_IRQ_BASE, | ||
500 | .irq_end = TWL4030_IRQ_END, | ||
501 | |||
502 | /* platform_data for children goes here */ | 454 | /* platform_data for children goes here */ |
503 | .keypad = &cm_t35_kp_data, | 455 | .keypad = &cm_t35_kp_data, |
504 | .usb = &cm_t35_usb_data, | ||
505 | .gpio = &cm_t35_gpio_data, | 456 | .gpio = &cm_t35_gpio_data, |
506 | .vmmc1 = &cm_t35_vmmc1, | 457 | .vmmc1 = &cm_t35_vmmc1, |
507 | .vsim = &cm_t35_vsim, | 458 | .vsim = &cm_t35_vsim, |
508 | .vdac = &cm_t35_vdac, | ||
509 | .vpll2 = &cm_t35_vpll2, | ||
510 | }; | 459 | }; |
511 | 460 | ||
512 | static void __init cm_t35_init_i2c(void) | 461 | static void __init cm_t35_init_i2c(void) |
513 | { | 462 | { |
463 | omap3_pmic_get_config(&cm_t35_twldata, TWL_COMMON_PDATA_USB, | ||
464 | TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2); | ||
465 | |||
466 | cm_t35_twldata.vpll2->constraints.name = "VDVI"; | ||
467 | cm_t35_twldata.vpll2->num_consumer_supplies = | ||
468 | ARRAY_SIZE(cm_t35_vdvi_supply); | ||
469 | cm_t35_twldata.vpll2->consumer_supplies = cm_t35_vdvi_supply; | ||
470 | |||
514 | omap3_pmic_init("tps65930", &cm_t35_twldata); | 471 | omap3_pmic_init("tps65930", &cm_t35_twldata); |
515 | } | 472 | } |
516 | 473 | ||
@@ -578,17 +535,11 @@ static struct omap_board_mux board_mux[] __initdata = { | |||
578 | OMAP3_MUX(UART1_TX, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | 535 | OMAP3_MUX(UART1_TX, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), |
579 | OMAP3_MUX(UART1_RX, OMAP_MUX_MODE0 | OMAP_PIN_INPUT), | 536 | OMAP3_MUX(UART1_RX, OMAP_MUX_MODE0 | OMAP_PIN_INPUT), |
580 | 537 | ||
581 | /* DSS */ | 538 | /* common DSS */ |
582 | OMAP3_MUX(DSS_PCLK, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | 539 | OMAP3_MUX(DSS_PCLK, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), |
583 | OMAP3_MUX(DSS_HSYNC, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | 540 | OMAP3_MUX(DSS_HSYNC, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), |
584 | OMAP3_MUX(DSS_VSYNC, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | 541 | OMAP3_MUX(DSS_VSYNC, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), |
585 | OMAP3_MUX(DSS_ACBIAS, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | 542 | OMAP3_MUX(DSS_ACBIAS, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), |
586 | OMAP3_MUX(DSS_DATA0, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
587 | OMAP3_MUX(DSS_DATA1, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
588 | OMAP3_MUX(DSS_DATA2, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
589 | OMAP3_MUX(DSS_DATA3, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
590 | OMAP3_MUX(DSS_DATA4, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
591 | OMAP3_MUX(DSS_DATA5, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
592 | OMAP3_MUX(DSS_DATA6, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | 543 | OMAP3_MUX(DSS_DATA6, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), |
593 | OMAP3_MUX(DSS_DATA7, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | 544 | OMAP3_MUX(DSS_DATA7, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), |
594 | OMAP3_MUX(DSS_DATA8, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | 545 | OMAP3_MUX(DSS_DATA8, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), |
@@ -601,12 +552,6 @@ static struct omap_board_mux board_mux[] __initdata = { | |||
601 | OMAP3_MUX(DSS_DATA15, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | 552 | OMAP3_MUX(DSS_DATA15, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), |
602 | OMAP3_MUX(DSS_DATA16, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | 553 | OMAP3_MUX(DSS_DATA16, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), |
603 | OMAP3_MUX(DSS_DATA17, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | 554 | OMAP3_MUX(DSS_DATA17, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), |
604 | OMAP3_MUX(DSS_DATA18, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
605 | OMAP3_MUX(DSS_DATA19, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
606 | OMAP3_MUX(DSS_DATA20, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
607 | OMAP3_MUX(DSS_DATA21, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
608 | OMAP3_MUX(DSS_DATA22, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
609 | OMAP3_MUX(DSS_DATA23, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
610 | 555 | ||
611 | /* display controls */ | 556 | /* display controls */ |
612 | OMAP3_MUX(MCBSP1_FSR, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), | 557 | OMAP3_MUX(MCBSP1_FSR, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), |
@@ -619,19 +564,53 @@ static struct omap_board_mux board_mux[] __initdata = { | |||
619 | 564 | ||
620 | { .reg_offset = OMAP_MUX_TERMINATOR }, | 565 | { .reg_offset = OMAP_MUX_TERMINATOR }, |
621 | }; | 566 | }; |
567 | |||
568 | static void __init cm_t3x_common_dss_mux_init(int mux_mode) | ||
569 | { | ||
570 | omap_mux_init_signal("dss_data18", mux_mode); | ||
571 | omap_mux_init_signal("dss_data19", mux_mode); | ||
572 | omap_mux_init_signal("dss_data20", mux_mode); | ||
573 | omap_mux_init_signal("dss_data21", mux_mode); | ||
574 | omap_mux_init_signal("dss_data22", mux_mode); | ||
575 | omap_mux_init_signal("dss_data23", mux_mode); | ||
576 | } | ||
577 | |||
578 | static void __init cm_t35_init_mux(void) | ||
579 | { | ||
580 | omap_mux_init_signal("gpio_70", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT); | ||
581 | omap_mux_init_signal("gpio_71", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT); | ||
582 | omap_mux_init_signal("gpio_72", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT); | ||
583 | omap_mux_init_signal("gpio_73", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT); | ||
584 | omap_mux_init_signal("gpio_74", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT); | ||
585 | omap_mux_init_signal("gpio_75", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT); | ||
586 | cm_t3x_common_dss_mux_init(OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT); | ||
587 | } | ||
588 | |||
589 | static void __init cm_t3730_init_mux(void) | ||
590 | { | ||
591 | omap_mux_init_signal("sys_boot0", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT); | ||
592 | omap_mux_init_signal("sys_boot1", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT); | ||
593 | omap_mux_init_signal("sys_boot3", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT); | ||
594 | omap_mux_init_signal("sys_boot4", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT); | ||
595 | omap_mux_init_signal("sys_boot5", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT); | ||
596 | omap_mux_init_signal("sys_boot6", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT); | ||
597 | cm_t3x_common_dss_mux_init(OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT); | ||
598 | } | ||
599 | #else | ||
600 | static inline void cm_t35_init_mux(void) {} | ||
601 | static inline void cm_t3730_init_mux(void) {} | ||
622 | #endif | 602 | #endif |
623 | 603 | ||
624 | static struct omap_board_config_kernel cm_t35_config[] __initdata = { | 604 | static struct omap_board_config_kernel cm_t35_config[] __initdata = { |
625 | }; | 605 | }; |
626 | 606 | ||
627 | static void __init cm_t35_init(void) | 607 | static void __init cm_t3x_common_init(void) |
628 | { | 608 | { |
629 | omap_board_config = cm_t35_config; | 609 | omap_board_config = cm_t35_config; |
630 | omap_board_config_size = ARRAY_SIZE(cm_t35_config); | 610 | omap_board_config_size = ARRAY_SIZE(cm_t35_config); |
631 | omap3_mux_init(board_mux, OMAP_PACKAGE_CUS); | 611 | omap3_mux_init(board_mux, OMAP_PACKAGE_CUS); |
632 | omap_serial_init(); | 612 | omap_serial_init(); |
633 | cm_t35_init_i2c(); | 613 | cm_t35_init_i2c(); |
634 | cm_t35_init_nand(); | ||
635 | omap_ads7846_init(1, CM_T35_GPIO_PENDOWN, 0, NULL); | 614 | omap_ads7846_init(1, CM_T35_GPIO_PENDOWN, 0, NULL); |
636 | cm_t35_init_ethernet(); | 615 | cm_t35_init_ethernet(); |
637 | cm_t35_init_led(); | 616 | cm_t35_init_led(); |
@@ -641,12 +620,35 @@ static void __init cm_t35_init(void) | |||
641 | usbhs_init(&usbhs_bdata); | 620 | usbhs_init(&usbhs_bdata); |
642 | } | 621 | } |
643 | 622 | ||
623 | static void __init cm_t35_init(void) | ||
624 | { | ||
625 | cm_t3x_common_init(); | ||
626 | cm_t35_init_mux(); | ||
627 | cm_t35_init_nand(); | ||
628 | } | ||
629 | |||
630 | static void __init cm_t3730_init(void) | ||
631 | { | ||
632 | cm_t3x_common_init(); | ||
633 | cm_t3730_init_mux(); | ||
634 | } | ||
635 | |||
644 | MACHINE_START(CM_T35, "Compulab CM-T35") | 636 | MACHINE_START(CM_T35, "Compulab CM-T35") |
645 | .boot_params = 0x80000100, | 637 | .boot_params = 0x80000100, |
646 | .reserve = omap_reserve, | 638 | .reserve = omap_reserve, |
647 | .map_io = omap3_map_io, | 639 | .map_io = omap3_map_io, |
648 | .init_early = cm_t35_init_early, | 640 | .init_early = cm_t35_init_early, |
649 | .init_irq = omap_init_irq, | 641 | .init_irq = omap3_init_irq, |
650 | .init_machine = cm_t35_init, | 642 | .init_machine = cm_t35_init, |
651 | .timer = &omap_timer, | 643 | .timer = &omap3_timer, |
644 | MACHINE_END | ||
645 | |||
646 | MACHINE_START(CM_T3730, "Compulab CM-T3730") | ||
647 | .boot_params = 0x80000100, | ||
648 | .reserve = omap_reserve, | ||
649 | .map_io = omap3_map_io, | ||
650 | .init_early = cm_t35_init_early, | ||
651 | .init_irq = omap3_init_irq, | ||
652 | .init_machine = cm_t3730_init, | ||
653 | .timer = &omap3_timer, | ||
652 | MACHINE_END | 654 | MACHINE_END |