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; #ifdef CONFIG_MMC_EMBEDDED_SDIO /* The controller that is connected to the 128x device * should have the card detect gpio disabled. This is * achieved by initializing it with a negative value */ mmc[CONFIG_TIWLAN_MMC_CONTROLLER - 1].gpio_cd = -EINVAL; #endif twl4030_mmc_init(mmc); /* link regulators to MMC adapters ... we "know" the * regulators will be set up only *after* we return. */ zoom_vmmc1_supply.dev = mmc[0].dev; zoom_vsim_supply.dev = mmc[0].dev; zoom_vmmc2_supply.dev = mmc[1].dev; return 0; }
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; twl4030_mmc_init(mmc); /* link regulators to MMC adapters ... we "know" the * regulators will be set up only *after* we return. */ sdp3430_vmmc1_supply.dev = mmc[0].dev; sdp3430_vsim_supply.dev = mmc[0].dev; sdp3430_vmmc2_supply.dev = mmc[1].dev; /* gpio + 7 is "sub_lcd_en_bkl" (output/PWM1) */ gpio_request(gpio + 7, "sub_lcd_en_bkl"); gpio_direction_output(gpio + 7, 0); /* gpio + 15 is "sub_lcd_nRST" (output) */ gpio_request(gpio + 15, "sub_lcd_nRST"); gpio_direction_output(gpio + 15, 0); return 0; }
static int beagle_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { if (system_rev >= 0x20 && system_rev <= 0x34301000) { omap_mux_init_gpio(23, OMAP_PIN_INPUT); mmc[0].gpio_wp = 23; } else { omap_mux_init_gpio(29, OMAP_PIN_INPUT); } /* gpio + 0 is "mmc0_cd" (input/IRQ) */ mmc[0].gpio_cd = gpio + 0; twl4030_mmc_init(mmc); /* link regulators to MMC adapters */ beagle_vmmc1_supply.dev = mmc[0].dev; beagle_vsim_supply.dev = mmc[0].dev; /* REVISIT: need ehci-omap hooks for external VBUS * power switch and overcurrent detect */ gpio_request(gpio + 1, "EHCI_nOC"); gpio_direction_input(gpio + 1); /* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */ gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR"); gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; return 0; }
static int cm_t35_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { int wlan_rst = gpio + 2; if ((gpio_request(wlan_rst, "WLAN RST") == 0) && (gpio_direction_output(wlan_rst, 1) == 0)) { gpio_export(wlan_rst, 0); udelay(10); gpio_set_value(wlan_rst, 0); udelay(10); gpio_set_value(wlan_rst, 1); } else { pr_err("CM-T35: could not obtain gpio for WiFi reset\n"); } /* gpio + 0 is "mmc0_cd" (input/IRQ) */ mmc[0].gpio_cd = gpio + 0; twl4030_mmc_init(mmc); /* link regulators to MMC adapters */ cm_t35_vmmc1_supply.dev = mmc[0].dev; cm_t35_vsim_supply.dev = mmc[0].dev; /* setup USB with proper PHY reset GPIOs */ ehci_pdata.reset_gpio_port[0] = gpio + 6; ehci_pdata.reset_gpio_port[1] = gpio + 7; usb_ehci_init(&ehci_pdata); return 0; }
static void __init board_init(void) { int num_displays = 0; init_buffer_pbias(); omap_board_config = board_config; omap_board_config_size = ARRAY_SIZE(board_config); #ifdef CONFIG_CLOCKS_INIT archos_clocks_init(&board_clocks); #endif archos_leds_init(); // set it here mask hugly transitions /* before omap_i2c_init() or IRQ will not forwarded to driver */ if (display_config.nrev > hardware_rev) archos_hdmi_gpio_init(&display_config.rev[hardware_rev]); msecure_init(); /* offmode config, before I2C config! */ board_offmode_config(); omap_i2c_init(); /* Fix to prevent VIO leakage on wl127x */ wl127x_vio_leakage_fix(); #if defined CONFIG_OMAP2_DSS if (archos_lcd_panel_init(&board_lcd_device) == 0) { board_dss_devices[num_displays++] = &board_lcd_device; board_dss_data.default_device = &board_lcd_device; } board_dss_devices[num_displays++] = &board_hdmi_device; #ifdef CONFIG_OMAP2_DSS_DUMMY board_dss_devices[num_displays++] = &board_dummy_device; board_dss_data.default_device = &board_dummy_device; #endif /* CONFIG_OMAP2_DSS_DUMMY */ board_dss_data.num_devices = num_displays; #endif/* CONFIG_OMAP2_DSS */ platform_add_devices(board_devices, ARRAY_SIZE(board_devices)); omap_cfg_reg(H20_3430_UART3_RX_IRRX); omap_serial_init(); usb_musb_init(); archos_usb_ehci_init(); archos_accel_init(&board_mma7660fc_pdata); twl4030_mmc_init(mmc); board_vmmc2_supply.dev = mmc[0].dev; archos_audio_gpio_init(); archos_usb2sata_init(); archos_camera_ov7675_init(); archos_keys_init(); enable_board_wakeup_source(); }
static int beagle_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { /* gpio + 0 is "mmc0_cd" (input/IRQ) */ omap_cfg_reg(AH8_34XX_GPIO29); mmc[0].gpio_cd = gpio + 0; twl4030_mmc_init(mmc); /* link regulators to MMC adapters */ beagle_vmmc1_supply.dev = mmc[0].dev; beagle_vsim_supply.dev = mmc[0].dev; /* REVISIT: need ehci-omap hooks for external VBUS * power switch and overcurrent detect */ gpio_request(gpio + 1, "EHCI_nOC"); gpio_direction_input(gpio + 1); /* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */ gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR"); gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1); /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; return 0; }
static int overo_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { twl4030_mmc_init(mmc); overo_vmmc1_supply.dev = mmc[0].dev; return 0; }
static void __init overo_init(void) { overo_i2c_init(); platform_add_devices(overo_devices, ARRAY_SIZE(overo_devices)); omap_board_config = overo_config; omap_board_config_size = ARRAY_SIZE(overo_config); omap_serial_init(); twl4030_mmc_init(mmc); usb_musb_init(); usb_ehci_init(); overo_flash_init(); if ((gpio_request(OVERO_GPIO_W2W_NRESET, "OVERO_GPIO_W2W_NRESET") == 0) && (gpio_direction_output(OVERO_GPIO_W2W_NRESET, 1) == 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 { printk(KERN_ERR "could not obtain gpio for " "OVERO_GPIO_W2W_NRESET\n"); } if ((gpio_request(OVERO_GPIO_BT_XGATE, "OVERO_GPIO_BT_XGATE") == 0) && (gpio_direction_output(OVERO_GPIO_BT_XGATE, 0) == 0)) gpio_export(OVERO_GPIO_BT_XGATE, 0); else printk(KERN_ERR "could not obtain gpio for OVERO_GPIO_BT_XGATE\n"); if ((gpio_request(OVERO_GPIO_BT_NRESET, "OVERO_GPIO_BT_NRESET") == 0) && (gpio_direction_output(OVERO_GPIO_BT_NRESET, 1) == 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); } else { printk(KERN_ERR "could not obtain gpio for " "OVERO_GPIO_BT_NRESET\n"); } if ((gpio_request(OVERO_GPIO_USBH_CPEN, "OVERO_GPIO_USBH_CPEN") == 0) && (gpio_direction_output(OVERO_GPIO_USBH_CPEN, 1) == 0)) gpio_export(OVERO_GPIO_USBH_CPEN, 0); else printk(KERN_ERR "could not obtain gpio for " "OVERO_GPIO_USBH_CPEN\n"); if ((gpio_request(OVERO_GPIO_USBH_NRESET, "OVERO_GPIO_USBH_NRESET") == 0) && (gpio_direction_output(OVERO_GPIO_USBH_NRESET, 1) == 0)) gpio_export(OVERO_GPIO_USBH_NRESET, 0); else printk(KERN_ERR "could not obtain gpio for " "OVERO_GPIO_USBH_NRESET\n"); }
static void __init omap_ldp_init(void) { omap_i2c_init(); platform_add_devices(ldp_devices, ARRAY_SIZE(ldp_devices)); omap_board_config = ldp_config; omap_board_config_size = ARRAY_SIZE(ldp_config); omap_serial_init(); twl4030_mmc_init(mmc); usb_musb_init(); }
static int omap3pandora_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { /* gpio + {0,1} is "mmc{0,1}_cd" (input/IRQ) */ omap3pandora_mmc[0].gpio_cd = gpio + 0; omap3pandora_mmc[1].gpio_cd = gpio + 1; twl4030_mmc_init(omap3pandora_mmc); return 0; }
//-------------------------20111121 modified by haolong------------------------------------------ static int beagle_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { // if (system_rev >= 0x20 && system_rev <= 0x34301000) { // omap_mux_init_gpio(23, OMAP_PIN_INPUT); // mmc[0].gpio_wp = 23; // } else { // omap_mux_init_gpio(29, OMAP_PIN_INPUT); // } int r; mmc[0].gpio_wp = -EINVAL; /* gpio + 0 is "mmc0_cd" (input/IRQ) */ mmc[0].gpio_cd = gpio + 0; twl4030_mmc_init(mmc); /* link regulators to MMC adapters */ beagle_vmmc1_supply.dev = mmc[0].dev; beagle_vsim_supply.dev = mmc[0].dev; /* REVISIT: need ehci-omap hooks for external VBUS * power switch and overcurrent detect */ // gpio_request(gpio + 1, "EHCI_nOC"); // gpio_direction_input(gpio + 1); /* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */ gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR"); gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; /*modified by haolong, 2012/03/27 r = gpio_request(gpio + 1, "nDVI_PWR_EN"); if (!r) { r = gpio_direction_output(gpio + 1, 0); if (r) gpio_free(gpio + 1); } if (r) pr_err("%s: unable to configure nDVI_PWR_EN\n", __func__); */ r = gpio_request(gpio + 2, "nDVI_PWR_EN"); if (!r) { r = gpio_direction_output(gpio + 2, 1); if (r) gpio_free(gpio + 2); } if (r) pr_err("%s: unable to configure nDVI_PWR_EN\n", __func__); return 0; }
static int VAR_SOM_OM3X_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { /* gpio + 0 is "mmc0_cd" (input/IRQ) */ omap_mux_init_gpio(65, OMAP_PIN_INPUT); mmc[0].gpio_cd = gpio + 0; twl4030_mmc_init(mmc); /* link regulators to MMC adapters */ twl4030_vmmc1_supply.dev = mmc[0].dev; twl4030_vsim_supply.dev = mmc[0].dev; return 0; }
static int igep2_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { /* gpio + 0 is "mmc0_cd" (input/IRQ) */ mmc[0].gpio_cd = gpio + 0; twl4030_mmc_init(mmc); /* link regulators to MMC adapters ... we "know" the * regulators will be set up only *after* we return. */ igep2_vmmc1_supply.dev = mmc[0].dev; return 0; };
static int omap3pandora_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { /* gpio + {0,1} is "mmc{0,1}_cd" (input/IRQ) */ omap3pandora_mmc[0].gpio_cd = gpio + 0; omap3pandora_mmc[1].gpio_cd = gpio + 1; twl4030_mmc_init(omap3pandora_mmc); /* link regulators to MMC adapters */ pandora_vmmc1_supply.dev = omap3pandora_mmc[0].dev; pandora_vmmc2_supply.dev = omap3pandora_mmc[1].dev; return 0; }
static int zoom2_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { mmc[0].gpio_cd = gpio + 0; mmc[1].gpio_cd = gpio + 1; twl4030_mmc_init(mmc); zoom2_vmmc1_supply.dev = mmc[0].dev; zoom2_vsim_supply.dev = mmc[0].dev; zoom2_vmmc2_supply.dev = mmc[1].dev; return 0; }
static void __init board_init(void) { int num_displays = 0; omap_board_config = board_config; omap_board_config_size = ARRAY_SIZE(board_config); msecure_init(); /* offmode config, before I2C config! */ board_offmode_config(); omap_i2c_init(); /* Fix to prevent VIO leakage on wl127x */ wl127x_vio_leakage_fix(); #if defined CONFIG_OMAP2_DSS if (archos_lcd_panel_init(&board_lcd_device) == 0) { board_dss_devices[num_displays++] = &board_lcd_device; board_dss_data.default_device = &board_lcd_device; } #ifdef CONFIG_OMAP2_DSS_DUMMY board_dss_devices[num_displays++] = &board_dummy_device; board_dss_data.default_device = &board_dummy_device; #endif /* CONFIG_OMAP2_DSS_DUMMY */ board_dss_data.num_devices = num_displays; #endif/* CONFIG_OMAP2_DSS */ platform_add_devices(board_devices, ARRAY_SIZE(board_devices)); omap_cfg_reg(R3_3611_UART2_RX); omap_cfg_reg(Y3_3611_UART1_RX); omap_cfg_reg(AA2_3611_UART1_CTS); omap_serial_init(); usb_musb_init(); archos_accel_init(&board_mma7660fc_pdata); ads7846_dev_init(); archos_mmc1_setup_gpios(&mmc[0], &board_vmmc_ext); twl4030_mmc_init(mmc); board_vmmc_ext_supply.dev = mmc[0].dev; board_vmmc2_supply.dev = mmc[1].dev; archos_audio_gpio_init(); archos_leds_init(); archos_keys_init(); enable_board_wakeup_source(); }
static void __init omap_ldp_init(void) { omap_i2c_init(); platform_add_devices(ldp_devices, ARRAY_SIZE(ldp_devices)); ts_gpio = 54; ldp_spi_board_info[0].irq = gpio_to_irq(ts_gpio); spi_register_board_info(ldp_spi_board_info, ARRAY_SIZE(ldp_spi_board_info)); ads7846_dev_init(); omap_serial_init(); usb_musb_init(); twl4030_mmc_init(mmc); /* link regulators to MMC adapters */ ldp_vmmc1_supply.dev = mmc[0].dev; }
static int beagle_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { printk("%s:%d\n", __func__, __LINE__); /* gpio + 0 is "mmc0_cd" (input/IRQ) */ omap_cfg_reg(AH8_34XX_GPIO29); mmc[0].gpio_cd = gpio + 0; twl4030_mmc_init(mmc); /* link regulators to MMC adapters */ beagle_vmmc1_supply.dev = mmc[0].dev; beagle_vsim_supply.dev = mmc[0].dev; return 0; }
static void __init omap_ldp_init(void) { omap_i2c_init(); platform_add_devices(ldp_devices, ARRAY_SIZE(ldp_devices)); omap_board_config = ldp_config; omap_board_config_size = ARRAY_SIZE(ldp_config); ts_gpio = 54; ldp_spi_board_info[0].irq = gpio_to_irq(ts_gpio); spi_register_board_info(ldp_spi_board_info, ARRAY_SIZE(ldp_spi_board_info)); msecure_init(); ads7846_dev_init(); omap_serial_init(); usb_musb_init(); twl4030_mmc_init(mmc); }
static int rx51_twlgpio_setup(struct device *dev, unsigned gpio, unsigned n) { /* FIXME this gpio setup is just a placeholder for now */ gpio_request(gpio + 6, "backlight_pwm"); gpio_direction_output(gpio + 6, 0); gpio_request(gpio + 7, "speaker_en"); gpio_direction_output(gpio + 7, 1); /* set up MMC adapters, linking their regulators to them */ twl4030_mmc_init(mmc); rx51_vmmc1_supply.dev = mmc[0].dev; rx51_vmmc2_supply.dev = mmc[1].dev; rx51_vsim_supply.dev = mmc[1].dev; return 0; }
static void __init omap_2430sdp_init(void) { int ret; omap2430_i2c_init(); platform_add_devices(sdp2430_devices, ARRAY_SIZE(sdp2430_devices)); omap_serial_init(); twl4030_mmc_init(mmc); usb_musb_init(); board_smc91x_init(); /* Turn off secondary LCD backlight */ ret = gpio_request(SECONDARY_LCD_GPIO, "Secondary LCD backlight"); if (ret == 0) gpio_direction_output(SECONDARY_LCD_GPIO, 0); }
static void __init board_init(void) { int num_displays = 0; omap_board_config = board_config; omap_board_config_size = ARRAY_SIZE(board_config); msecure_init(); /* offmode config, before I2C config! */ board_offmode_config(); omap_i2c_init(); /* Fix to prevent VIO leakage on wl127x */ wl127x_vio_leakage_fix(); #if defined CONFIG_OMAP2_DSS if (archos_lcd_panel_init(&board_lcd_device) == 0) { board_dss_devices[num_displays++] = &board_lcd_device; board_dss_data.default_device = &board_lcd_device; } board_dss_devices[num_displays++] = &board_tv_device; board_dss_data.num_devices = num_displays; panel_tv_init(); #endif platform_add_devices(board_devices, ARRAY_SIZE(board_devices)); omap_cfg_reg(H20_3430_UART3_RX_IRRX); omap_serial_init(); usb_musb_init(); archos_accel_init(&board_mma7660fc_pdata); ads7846_dev_init(); twl4030_mmc_init(mmc); board_vmmc2_supply.dev = mmc[0].dev; archos_audio_gpio_init(); archos_camera_ov7675_init(); archos_leds_init(); archos_keys_init(); enable_board_wakeup_source(); }
static int __init omap3bug_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { /* gpio + 0 is "mmc0_cd" (input/IRQ) */ mmc[0].gpio_cd = gpio + 0; twl4030_mmc_init(mmc); bug_vmmc_supplies[0].dev = mmc[0].dev; bug_vmmc_supplies[1].dev = mmc[1].dev; bug_vmmc_supplies[2].dev = mmc[2].dev; /* Most GPIOs are for USB OTG. Some are mostly sent to * the P2 connector; notably LEDA for the LCD backlight. */ gpio_request(gpio + 1, "usb_hub"); gpio_direction_output(gpio + 1, 1); gpio_free(gpio + 1); return 0; }
static int omap3evm_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { /* gpio + 0 is "mmc0_cd" (input/IRQ) */ omap_cfg_reg(L8_34XX_GPIO63); mmc[0].gpio_cd = gpio + 0; twl4030_mmc_init(mmc); /* * Most GPIOs are for USB OTG. Some are mostly sent to * the P2 connector; notably LEDA for the LCD backlight. */ /* TWL4030_GPIO_MAX + 1 == ledB (out, active low LED) */ gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; platform_device_register(&leds_gpio); return 0; }
static int hub_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { /* gpio + 0 is "mmc0_cd" (input/IRQ) */ // mmc[0].gpio_cd = gpio + 0; #if 1 twl4030_mmc_init(mmc); #else omap2_hsmmc_init(mmc); #endif /* link regulators to MMC adapters ... we "know" the * regulators will be set up only *after* we return. */ //hub_vmmc1_supply.dev = mmc[0].dev; // 20100630 [email protected] Hub Sensor Power //hub_vsim_supply.dev = mmc[0].dev; //hub_vmmc2_supply.dev = mmc[1].dev; // 20100630 [email protected] Hub Sensor Power return 0; }
static void __init omap_3430sdp_init(void) { omap3430_i2c_init(); platform_add_devices(sdp3430_devices, ARRAY_SIZE(sdp3430_devices)); omap_board_config = sdp3430_config; omap_board_config_size = ARRAY_SIZE(sdp3430_config); if (omap_rev() > OMAP3430_REV_ES1_0) ts_gpio = OMAP34XX_TS_GPIO_IRQ_SDPV2; else ts_gpio = OMAP34XX_TS_GPIO_IRQ_SDPV1; sdp3430_spi_board_info[0].irq = gpio_to_irq(ts_gpio); spi_register_board_info(sdp3430_spi_board_info, ARRAY_SIZE(sdp3430_spi_board_info)); ads7846_dev_init(); sdp3430_flash_init(); msecure_init(); omap_serial_init(); usb_musb_init(); usb_ehci_init(); twl4030_mmc_init(mmc); sdp3430_display_init(); }
static void __init omap_2430sdp_init(void) { omap2430_i2c_init(); platform_add_devices(sdp2430_devices, ARRAY_SIZE(sdp2430_devices)); omap_board_config = sdp2430_config; omap_board_config_size = ARRAY_SIZE(sdp2430_config); omap_serial_init(); msecure_init(); sdp2430_flash_init(); usb_musb_init(NULL); spi_register_board_info(sdp2430_spi_board_info, ARRAY_SIZE(sdp2430_spi_board_info)); ads7846_dev_init(); twl4030_mmc_init(mmc); /* turn off secondary LCD backlight */ gpio_direction_output(SECONDARY_LCD_GPIO, 0); }
static int omap3evm_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { /* gpio + 0 is "mmc0_cd" (input/IRQ) */ omap_mux_init_gpio(63, OMAP_PIN_INPUT); mmc[0].gpio_cd = gpio + 0; twl4030_mmc_init(mmc); /* link regulators to MMC adapters */ omap3evm_vmmc1_supply.dev = mmc[0].dev; omap3evm_vsim_supply.dev = mmc[0].dev; /* * Most GPIOs are for USB OTG. Some are mostly sent to * the P2 connector; notably LEDA for the LCD backlight. */ /* TWL4030_GPIO_MAX + 1 == ledB (out, active low LED) */ gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; platform_device_register(&leds_gpio); return 0; }