|
@@ -686,3 +686,77 @@ static struct mtd_partition omap3evm_nand_partitions[] = {
|
|
|
.offset = MTDPART_OFS_APPEND,
|
|
|
},
|
|
|
};
|
|
|
+
|
|
|
+static void __init omap3_evm_init(void)
|
|
|
+{
|
|
|
+ struct omap_board_mux *obm;
|
|
|
+
|
|
|
+ omap3_evm_get_revision();
|
|
|
+ regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
|
|
|
+
|
|
|
+ obm = (cpu_is_omap3630()) ? omap36x_board_mux : omap35x_board_mux;
|
|
|
+ omap3_mux_init(obm, OMAP_PACKAGE_CBB);
|
|
|
+
|
|
|
+ omap_mux_init_gpio(63, OMAP_PIN_INPUT);
|
|
|
+ omap_hsmmc_init(mmc);
|
|
|
+
|
|
|
+ if (get_omap3_evm_rev() >= OMAP3EVM_BOARD_GEN_2)
|
|
|
+ omap3evm_twldata.vaux2 = &omap3evm_vaux2;
|
|
|
+
|
|
|
+ omap3_evm_i2c_init();
|
|
|
+
|
|
|
+ omap_display_init(&omap3_evm_dss_data);
|
|
|
+
|
|
|
+ omap_serial_init();
|
|
|
+ omap_sdrc_init(mt46h32m32lf6_sdrc_params, NULL);
|
|
|
+
|
|
|
+ /* OMAP3EVM uses ISP1504 phy and so register nop transceiver */
|
|
|
+ usb_nop_xceiv_register();
|
|
|
+
|
|
|
+ if (get_omap3_evm_rev() >= OMAP3EVM_BOARD_GEN_2) {
|
|
|
+ /* enable EHCI VBUS using GPIO22 */
|
|
|
+ omap_mux_init_gpio(OMAP3_EVM_EHCI_VBUS, OMAP_PIN_INPUT_PULLUP);
|
|
|
+ /* Select EHCI port on main board */
|
|
|
+ omap_mux_init_gpio(OMAP3_EVM_EHCI_SELECT,
|
|
|
+ OMAP_PIN_INPUT_PULLUP);
|
|
|
+ gpio_request_array(omap3_evm_ehci_gpios,
|
|
|
+ ARRAY_SIZE(omap3_evm_ehci_gpios));
|
|
|
+
|
|
|
+ /* setup EHCI phy reset config */
|
|
|
+ omap_mux_init_gpio(21, OMAP_PIN_INPUT_PULLUP);
|
|
|
+ usbhs_bdata.reset_gpio_port[1] = 21;
|
|
|
+
|
|
|
+ /* EVM REV >= E can supply 500mA with EXTVBUS programming */
|
|
|
+ musb_board_data.power = 500;
|
|
|
+ musb_board_data.extvbus = 1;
|
|
|
+ } else {
|
|
|
+ /* setup EHCI phy reset on MDC */
|
|
|
+ omap_mux_init_gpio(135, OMAP_PIN_OUTPUT);
|
|
|
+ usbhs_bdata.reset_gpio_port[1] = 135;
|
|
|
+ }
|
|
|
+ usb_musb_init(&musb_board_data);
|
|
|
+ usbhs_init(&usbhs_bdata);
|
|
|
+ board_nand_init(omap3evm_nand_partitions,
|
|
|
+ ARRAY_SIZE(omap3evm_nand_partitions), NAND_CS,
|
|
|
+ NAND_BUSWIDTH_16, NULL);
|
|
|
+
|
|
|
+ omap_ads7846_init(1, OMAP3_EVM_TS_GPIO, 310, NULL);
|
|
|
+ omap3evm_init_smsc911x();
|
|
|
+ omap3_evm_display_init();
|
|
|
+ omap3_evm_wl12xx_init();
|
|
|
+ omap_twl4030_audio_init("omap3evm");
|
|
|
+}
|
|
|
+
|
|
|
+MACHINE_START(OMAP3EVM, "OMAP3 EVM")
|
|
|
+ /* Maintainer: Syed Mohammed Khasim - Texas Instruments */
|
|
|
+ .atag_offset = 0x100,
|
|
|
+ .reserve = omap_reserve,
|
|
|
+ .map_io = omap3_map_io,
|
|
|
+ .init_early = omap35xx_init_early,
|
|
|
+ .init_irq = omap3_init_irq,
|
|
|
+ .handle_irq = omap3_intc_handle_irq,
|
|
|
+ .init_machine = omap3_evm_init,
|
|
|
+ .init_late = omap35xx_init_late,
|
|
|
+ .timer = &omap3_timer,
|
|
|
+ .restart = omap3xxx_restart,
|
|
|
+MACHINE_END
|