static void __init devkit8000_init(void) { omap3_mux_init(board_mux, OMAP_PACKAGE_CUS); omap_serial_init(); omap_sdrc_init(mt46h32m32lf6_sdrc_params, mt46h32m32lf6_sdrc_params); omap_dm9000_init(); omap_hsmmc_init(mmc); devkit8000_i2c_init(); omap_dm9000_resources[2].start = gpio_to_irq(OMAP_DM9000_GPIO_IRQ); platform_add_devices(devkit8000_devices, ARRAY_SIZE(devkit8000_devices)); omap_display_init(&devkit8000_dss_data); omap_ads7846_init(2, OMAP3_DEVKIT_TS_GPIO, 0, NULL); usb_musb_init(NULL); usbhs_init(&usbhs_bdata); board_nand_init(devkit8000_nand_partitions, ARRAY_SIZE(devkit8000_nand_partitions), NAND_CS, NAND_BUSWIDTH_16, NULL); omap_twl4030_audio_init("omap3beagle"); /* Ensure SDRC pins are mux'd for self-refresh */ omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT); omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT); }
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); omap_nand_flash_init(NAND_BUSWIDTH_16, omap3evm_nand_partitions, ARRAY_SIZE(omap3evm_nand_partitions)); 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"); }
static void __init overo_init(void) { int ret; regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies)); omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); overo_i2c_init(); omap_hsmmc_init(mmc); omap_display_init(&overo_dss_data); omap_serial_init(); omap_sdrc_init(mt46h32m32lf6_sdrc_params, mt46h32m32lf6_sdrc_params); board_nand_init(overo_nand_partitions, ARRAY_SIZE(overo_nand_partitions), NAND_CS, 0, NULL); usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); usb_musb_init(NULL); usbhs_init_phys(phy_data, ARRAY_SIZE(phy_data)); usbhs_init(&usbhs_bdata); overo_spi_init(); overo_init_smsc911x(); overo_init_led(); overo_init_keys(); omap_twl4030_audio_init("overo", NULL); /* Ensure SDRC pins are mux'd for self-refresh */ omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT); omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT); ret = gpio_request_one(OVERO_GPIO_W2W_NRESET, GPIOF_OUT_INIT_HIGH, "OVERO_GPIO_W2W_NRESET"); if (ret == 0) { gpio_export(OVERO_GPIO_W2W_NRESET, 0); gpio_set_value(OVERO_GPIO_W2W_NRESET, 0); udelay(10); gpio_set_value(OVERO_GPIO_W2W_NRESET, 1); } else { pr_err("could not obtain gpio for OVERO_GPIO_W2W_NRESET\n"); } ret = gpio_request_array(overo_bt_gpios, ARRAY_SIZE(overo_bt_gpios)); if (ret) { pr_err("%s: could not obtain BT gpios\n", __func__); } else { gpio_export(OVERO_GPIO_BT_XGATE, 0); gpio_export(OVERO_GPIO_BT_NRESET, 0); gpio_set_value(OVERO_GPIO_BT_NRESET, 0); mdelay(6); gpio_set_value(OVERO_GPIO_BT_NRESET, 1); } ret = gpio_request_one(OVERO_GPIO_USBH_CPEN, GPIOF_OUT_INIT_HIGH, "OVERO_GPIO_USBH_CPEN"); if (ret == 0) gpio_export(OVERO_GPIO_USBH_CPEN, 0); else pr_err("could not obtain gpio for OVERO_GPIO_USBH_CPEN\n"); }
static void __init omap3_devkit8500_init(void) { omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); omap_hsmmc_init(mmc); //HS MMC omap3_devkit8500_i2c_init(); //require recheck for omap3_devkit8500_i2c_init() /*[OMAP_DISPLAY DISABLED]*/ omap_display_init(&devkit8500_dss_data); /* * Platform Devices Registeration * Leds, Keys, .... */ platform_add_devices(omap3_devkit8500_devices, ARRAY_SIZE(omap3_devkit8500_devices)); /* [TOUCH SCREEN CONTROLLER] */ //omap_ads7846_init(2, OMAP3_DEVKIT8500_TS_GPIO, 0xA, NULL); /* in datasheet SPI2_CS0 */ /* [SERIAL PORTS] */ omap_serial_init(); /* [RAM Initialization] */ omap_sdrc_init(mt46h32m32lf6_sdrc_params,mt46h32m32lf6_sdrc_params); /* [NAND Init] */ board_nand_init(devkit8500_nand_partitions, ARRAY_SIZE(devkit8500_nand_partitions), NAND_CS, NAND_BUSWIDTH_16, NULL); omap_twl4030_audio_init("omap3devkit8500", NULL); /* [USB HOST] */ usbhs_init_phys(phy_data, ARRAY_SIZE(phy_data)); usbhs_init(&usbhs_bdata); /* [USB OTG] */ usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); usb_musb_init(NULL); /* Ensure SDRC pins are mux'd for self-refresh */ omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT); omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT); /* [ETHERNET] */ omap_dm9000_init(); }
static int zoom_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { /* gpio + 0 is "mmc0_cd" (input/IRQ) */ mmc[0].gpio_cd = gpio + 0; omap_hsmmc_late_init(mmc); /* Audio setup */ omap_twl4030_audio_data.jack_detect = gpio + 2; omap_twl4030_audio_init("Zoom2", &omap_twl4030_audio_data); return 0; }
static void __init cm_t3x_common_init(void) { omap3_mux_init(board_mux, OMAP_PACKAGE_CUS); omap_serial_init(); omap_sdrc_init(mt46h32m32lf6_sdrc_params, mt46h32m32lf6_sdrc_params); omap_hsmmc_init(mmc); cm_t35_init_i2c(); omap_ads7846_init(1, CM_T35_GPIO_PENDOWN, 0, NULL); cm_t35_init_ethernet(); cm_t35_init_led(); cm_t35_init_display(); omap_twl4030_audio_init("cm-t3x"); usb_musb_init(NULL); cm_t35_init_usbh(); cm_t35_init_camera(); }
static void __init omap3_beagle_init(void) { omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); omap3_beagle_init_rev(); if (gpio_is_valid(beagle_config.mmc1_gpio_wp)) omap_mux_init_gpio(beagle_config.mmc1_gpio_wp, OMAP_PIN_INPUT); mmc[0].caps = beagle_config.mmc_caps; omap_hsmmc_init(mmc); omap3_beagle_i2c_init(); gpio_buttons[0].gpio = beagle_config.usr_button_gpio; platform_add_devices(omap3_beagle_devices, ARRAY_SIZE(omap3_beagle_devices)); if (gpio_is_valid(beagle_config.dvi_pd_gpio)) omap_mux_init_gpio(beagle_config.dvi_pd_gpio, OMAP_PIN_OUTPUT); omap_display_init(&beagle_dss_data); omap_serial_init(); omap_sdrc_init(mt46h32m32lf6_sdrc_params, mt46h32m32lf6_sdrc_params); usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); usb_musb_init(NULL); usbhs_init(&usbhs_bdata); board_nand_init(omap3beagle_nand_partitions, ARRAY_SIZE(omap3beagle_nand_partitions), NAND_CS, NAND_BUSWIDTH_16, NULL); omap_twl4030_audio_init("omap3beagle", NULL); /* Ensure msecure is mux'd to be able to set the RTC. */ omap_mux_init_signal("sys_drm_msecure", OMAP_PIN_OFF_OUTPUT_HIGH); /* Ensure SDRC pins are mux'd for self-refresh */ omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT); omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT); pwm_add_table(pwm_lookup, ARRAY_SIZE(pwm_lookup)); }
static int sdp3430_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { /* gpio + 0 is "mmc0_cd" (input/IRQ), * gpio + 1 is "mmc1_cd" (input/IRQ) */ mmc[0].gpio_cd = gpio + 0; mmc[1].gpio_cd = gpio + 1; omap_hsmmc_late_init(mmc); /* gpio + 7 is "sub_lcd_en_bkl" (output/PWM1) */ gpio_request_one(gpio + 7, GPIOF_OUT_INIT_LOW, "sub_lcd_en_bkl"); /* gpio + 15 is "sub_lcd_nRST" (output) */ gpio_request_one(gpio + 15, GPIOF_OUT_INIT_LOW, "sub_lcd_nRST"); omap_twl4030_audio_data.jack_detect = gpio + 2; omap_twl4030_audio_init("SDP3430", &omap_twl4030_audio_data); return 0; }
static void __init igep_init(void) { regulator_register_fixed(1, dummy_supplies, ARRAY_SIZE(dummy_supplies)); omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); /* Get IGEP2 hardware revision */ igep2_get_revision(); omap_hsmmc_init(mmc); /* Register I2C busses and drivers */ igep_i2c_init(); platform_add_devices(igep_devices, ARRAY_SIZE(igep_devices)); omap_serial_init(); omap_sdrc_init(m65kxxxxam_sdrc_params, m65kxxxxam_sdrc_params); usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); usb_musb_init(NULL); igep_flash_init(); igep_leds_init(); omap_twl4030_audio_init("igep2", NULL); /* * WLAN-BT combo module from MuRata which has a Marvell WLAN * (88W8686) + CSR Bluetooth chipset. Uses SDIO interface. */ igep_wlan_bt_init(); if (machine_is_igep0020()) { omap_display_init(&igep2_dss_data); igep2_init_smsc911x(); usbhs_init_phys(igep2_phy_data, ARRAY_SIZE(igep2_phy_data)); usbhs_init(&igep2_usbhs_bdata); } else { usbhs_init_phys(igep3_phy_data, ARRAY_SIZE(igep3_phy_data)); usbhs_init(&igep3_usbhs_bdata); } }
static void __init omap3_beagle_init(void) { omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); omap3_beagle_init_rev(); if ((!strcmp(expansionboard_name, "zippy")) || (!strcmp(expansionboard_name, "zippy2"))) { pr_info("Beagle expansionboard: initializing zippy mmc\n"); platform_device_register(&omap_zippy_device); expansion_config.i2c_settings = EXPANSION_I2C_ZIPPY; expansion_config.mmc_settings = EXPANSION_MMC_ZIPPY; omap_mux_init_gpio(OMAP3BEAGLE_GPIO_ZIPPY_MMC_WP, OMAP_PIN_INPUT); omap_mux_init_gpio(OMAP3BEAGLE_GPIO_ZIPPY_MMC_CD, OMAP_PIN_INPUT); } if ((!strcmp(expansionboard_name, "bbtoys-wifi")) || (!strcmp(expansionboard_name, "lsr-com6l-adpt"))) { #if defined(CONFIG_WL12XX) || defined(CONFIG_WL12XX_MODULE) pr_info("Beagle expansion: wl12xx: setting up gpio pinmux\n"); omap_mux_init_gpio(OMAP_BEAGLE_FM_EN_BT_WU, OMAP_PIN_OUTPUT); omap_mux_init_gpio(OMAP_BEAGLE_BT_EN_GPIO, OMAP_PIN_OUTPUT); omap_mux_init_gpio(OMAP_BEAGLE_WLAN_EN_GPIO, OMAP_PIN_OUTPUT); omap_mux_init_gpio(OMAP_BEAGLE_WLAN_IRQ_GPIO, OMAP_PIN_INPUT_PULLUP); /* WLAN SDIO: MMC2 CLK */ omap_mux_init_signal("sdmmc2_clk.sdmmc2_clk", OMAP_PIN_INPUT_PULLUP); /* WLAN SDIO: MMC2 CMD */ omap_mux_init_signal("sdmmc2_cmd.sdmmc2_cmd", OMAP_PIN_INPUT_PULLUP); /* WLAN SDIO: MMC2 DAT[0-3] */ omap_mux_init_signal("sdmmc2_dat0.sdmmc2_dat0", OMAP_PIN_INPUT_PULLUP); omap_mux_init_signal("sdmmc2_dat1.sdmmc2_dat1", OMAP_PIN_INPUT_PULLUP); omap_mux_init_signal("sdmmc2_dat2.sdmmc2_dat2", OMAP_PIN_INPUT_PULLUP); omap_mux_init_signal("sdmmc2_dat3.sdmmc2_dat3", OMAP_PIN_INPUT_PULLUP); expansion_config.mmc_settings = EXPANSION_MMC_WIFI; expansion_config.i2c_settings = EXPANSION_I2C_COM6L; #endif } if (!strcmp(expansionboard2_name, "bbtoys-ulcd")) { int r; expansion_config.i2c_settings = EXPANSION_I2C_7ULCD; /* TODO: set lcd_driver_name by command line or device tree */ beagle_config.lcd_driver_name = "tfc_s9700rtwv35tr-01b", lcd_panel.name = beagle_config.lcd_driver_name; r = gpio_request_one(beagle_config.lcd_pwren, GPIOF_OUT_INIT_LOW, "LCD power"); if (r < 0) pr_err("Beagle expansionboard: Unable to get LCD power enable GPIO\n"); } if (gpio_is_valid(beagle_config.mmc1_gpio_wp)) omap_mux_init_gpio(beagle_config.mmc1_gpio_wp, OMAP_PIN_INPUT); switch (expansion_config.mmc_settings) { case EXPANSION_MMC_WIFI: mmcbbt[0].caps = beagle_config.mmc_caps; omap_hsmmc_init(mmcbbt); break; case EXPANSION_MMC_ZIPPY: mmc_zippy[0].caps = beagle_config.mmc_caps; omap_hsmmc_init(mmc_zippy); break; default: mmc[0].caps = beagle_config.mmc_caps; omap_hsmmc_init(mmc); } omap3_beagle_i2c_init(); gpio_buttons[0].gpio = beagle_config.usr_button_gpio; platform_add_devices(omap3_beagle_devices, ARRAY_SIZE(omap3_beagle_devices)); if (gpio_is_valid(beagle_config.dvi_pd_gpio)) omap_mux_init_gpio(beagle_config.dvi_pd_gpio, OMAP_PIN_OUTPUT); omap_display_init(&beagle_dss_data); omap_serial_init(); omap_sdrc_init(mt46h32m32lf6_sdrc_params, mt46h32m32lf6_sdrc_params); if (!strcmp(expansionboard_name, "zippy")) { pr_info("Beagle expansionboard: initializing enc28j60\n"); omap3beagle_enc28j60_init(); } if (!strcmp(expansionboard_name, "zippy2")) { pr_info("Beagle expansionboard: initializing ks_8851\n"); omap3beagle_ks8851_init(); } if (!strcmp(expansionboard_name, "trainer")) { pr_info("Beagle expansionboard: exporting GPIOs 130-141,162 to userspace\n"); gpio_request(130, "sysfs"); gpio_export(130, 1); gpio_request(131, "sysfs"); gpio_export(131, 1); gpio_request(132, "sysfs"); gpio_export(132, 1); gpio_request(133, "sysfs"); gpio_export(133, 1); gpio_request(134, "sysfs"); gpio_export(134, 1); gpio_request(135, "sysfs"); gpio_export(135, 1); gpio_request(136, "sysfs"); gpio_export(136, 1); gpio_request(137, "sysfs"); gpio_export(137, 1); gpio_request(138, "sysfs"); gpio_export(138, 1); gpio_request(139, "sysfs"); gpio_export(139, 1); gpio_request(140, "sysfs"); gpio_export(140, 1); gpio_request(141, "sysfs"); gpio_export(141, 1); gpio_request(162, "sysfs"); gpio_export(162, 1); } if ((!strcmp(expansionboard_name, "bbtoys-wifi")) || (!strcmp(expansionboard_name, "lsr-com6l-adpt"))) { #if defined(CONFIG_WL12XX) || defined(CONFIG_WL12XX_MODULE) pr_info("Beagle expansionboard: initializing wl12xx platform\n"); if (!strcmp(wl12xx_name, "wl12xx_26mhz")) { pr_info("wl12xx: 26Mhz reference clock (TiWi5)\n"); omap_beagle_wlan_data_26mhz.irq = gpio_to_irq(OMAP_BEAGLE_WLAN_IRQ_GPIO); if (wl12xx_set_platform_data(&omap_beagle_wlan_data_26mhz)) pr_err("error setting wl12xx data\n"); } else { pr_info("wl12xx: 38.4Mhz reference clock (TiWi2/TiWi-BLE)\n"); pr_info("wl12xx: for (TiWi5) support pass kernel [wl12xx_clk=wl12xx_26mhz]\n"); omap_beagle_wlan_data.irq = gpio_to_irq(OMAP_BEAGLE_WLAN_IRQ_GPIO); if (wl12xx_set_platform_data(&omap_beagle_wlan_data)) pr_err("error setting wl12xx data\n"); } pr_info("Beagle expansionboard: registering wl12xx bt platform device\n"); platform_device_register(&wl12xx_device); platform_device_register(&btwilink_device); pr_info("Beagle expansionboard: registering wl12xx wifi platform device\n"); platform_device_register(&omap_vwlan_device); #endif } if (!strcmp(expansionboard_name, "beaglefpga")) { pr_info("Beagle expansionboard: enabling SPIdev for McSPI3/4 and pin muxing for McBSP3 slave mode\n"); /* FPGA pin settings configure McSPI 3, McSPI 4 and McBSP 3 */ omap3_beagle_config_fpga_mux(); /* register McSPI 3 and McSPI 4 for FPGA programming and control */ spi_register_board_info(beagle_mcspi_board_info, ARRAY_SIZE(beagle_mcspi_board_info)); } if (!strcmp(expansionboard_name, "spidev")) { pr_info("Beagle expansionboard: registering spidev\n"); omap3_beagle_config_mcspi3_mux(); omap3_beagle_config_mcspi4_mux(); spi_register_board_info(beagle_mcspi_board_info, ARRAY_SIZE(beagle_mcspi_board_info)); } if (!strcmp(expansionboard2_name, "bbtoys-ulcd")) { #if defined(CONFIG_TOUCHSCREEN_TSC2007) || defined(CONFIG_TOUCHSCREEN_TSC2007_MODULE) pr_info("Beagle expansionboard: initializing touchscreen: tsc2007\n"); omap3beagle_tsc2007_init(); #endif } usb_musb_init(NULL); usbhs_init(&usbhs_bdata); omap_nand_flash_init(NAND_BUSWIDTH_16, omap3beagle_nand_partitions, ARRAY_SIZE(omap3beagle_nand_partitions)); omap_twl4030_audio_init("omap3beagle"); /* Ensure msecure is mux'd to be able to set the RTC. */ omap_mux_init_signal("sys_drm_msecure", OMAP_PIN_OFF_OUTPUT_HIGH); /* Ensure SDRC pins are mux'd for self-refresh */ omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT); omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT); }