static void smdk4415_gpio_keys_config_setup(void) { int irq; s3c_gpio_cfgpin(GPIO_VOLUP_BUTTON, S3C_GPIO_SFN(0xf)); s3c_gpio_cfgpin(GPIO_VOLDOWN_BUTTON, S3C_GPIO_SFN(0xf)); s3c_gpio_cfgpin(GPIO_HOMEPAGE_BUTTON, S3C_GPIO_SFN(0xf)); s3c_gpio_cfgpin(GPIO_POWER_BUTTON, S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(GPIO_VOLUP_BUTTON, S3C_GPIO_PULL_UP); s3c_gpio_setpull(GPIO_VOLDOWN_BUTTON, S3C_GPIO_PULL_UP); s3c_gpio_setpull(GPIO_HOMEPAGE_BUTTON, S3C_GPIO_PULL_UP); s3c_gpio_setpull(GPIO_POWER_BUTTON, S3C_GPIO_PULL_UP); irq = s5p_register_gpio_interrupt(GPIO_VOLUP_BUTTON); /* VOL UP */ if (IS_ERR_VALUE(irq)) { pr_err("%s: Failed to configure VOL UP GPIO\n", __func__); return; } irq = s5p_register_gpio_interrupt(GPIO_VOLDOWN_BUTTON); /* VOL DOWN */ if (IS_ERR_VALUE(irq)) { pr_err("%s: Failed to configure VOL DOWN GPIO\n", __func__); return; } irq = s5p_register_gpio_interrupt(GPIO_HOMEPAGE_BUTTON);/* HOMEPAGE */ if (IS_ERR_VALUE(irq)) { pr_err("%s: Failed to configure HOMEPAGE GPIO\n", __func__); return; } irq = s5p_register_gpio_interrupt(GPIO_POWER_BUTTON);/* POWER */ if (IS_ERR_VALUE(irq)) { pr_err("%s: Failed to configure POWER GPIO\n", __func__); return; } }
static int __init tdmb_dev_init(void) { #if defined(CONFIG_TDMB_EBI) struct sromc_bus_cfg *bus_cfg; struct sromc_bank_cfg *bnk_cfg; struct sromc_timing_cfg *tm_cfg; if (sromc_enable() < 0) { printk(KERN_DEBUG "tdmb_dev_init sromc_enable fail\n"); return -1; } bus_cfg = &tdmb_sromc_bus_cfg; if (sromc_config_demux_gpio(bus_cfg) < 0) { printk(KERN_DEBUG "tdmb_dev_init sromc_config_demux_gpio fail\n"); return -1; } bnk_cfg = &tdmb_ebi_bank_cfg; if (sromc_config_csn_gpio(bnk_cfg->csn) < 0) { printk(KERN_DEBUG "tdmb_dev_init sromc_config_csn_gpio fail\n"); return -1; } sromc_config_access_attr(bnk_cfg->csn, bnk_cfg->attr); tm_cfg = &tdmb_ebi_timing_cfg; sromc_config_access_timing(bnk_cfg->csn, tm_cfg); #endif #if defined(CONFIG_TDMB_ANT_DET) { unsigned int tdmb_ant_det_gpio; unsigned int tdmb_ant_det_irq; s5p_register_gpio_interrupt(GPIO_TDMB_ANT_DET); tdmb_ant_det_gpio = GPIO_TDMB_ANT_DET; tdmb_ant_det_irq = GPIO_TDMB_IRQ_ANT_DET; s3c_gpio_cfgpin(tdmb_ant_det_gpio, S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(tdmb_ant_det_gpio, S3C_GPIO_PULL_NONE); tdmb_pdata.gpio_ant_det = tdmb_ant_det_gpio; tdmb_pdata.irq_ant_det = tdmb_ant_det_irq; } #endif tdmb_set_config_poweroff(); s5p_register_gpio_interrupt(GPIO_TDMB_INT); tdmb_pdata.irq = gpio_to_irq(GPIO_TDMB_INT); platform_device_register(&tdmb_device); return 0; }
static void mxt_gpio_init(void) { /* touch interrupt */ gpio_request(GPIO_TOUCH_CHG, "TSP_INT"); s3c_gpio_cfgpin(GPIO_TOUCH_CHG, S3C_GPIO_INPUT); s3c_gpio_setpull(GPIO_TOUCH_CHG, S3C_GPIO_PULL_NONE); s5p_register_gpio_interrupt(GPIO_TOUCH_CHG); s3c_gpio_setpull(GPIO_TSP_SCL_18V, S3C_GPIO_PULL_NONE); s3c_gpio_setpull(GPIO_TSP_SDA_18V, S3C_GPIO_PULL_NONE); gpio_request_one(GPIO_TOUCH_RESET, GPIOF_OUT_INIT_LOW, "atmel_mxt_ts nRESET"); gpio_request(GPIO_TOUCH_EN, "GPIO_TOUCH_EN"); s3c_gpio_cfgpin(GPIO_TOUCH_EN, S3C_GPIO_OUTPUT); s3c_gpio_setpull(GPIO_TOUCH_EN, S3C_GPIO_PULL_NONE); gpio_request(GPIO_TOUCH_EN_1, "GPIO_TOUCH_EN_1"); s3c_gpio_cfgpin(GPIO_TOUCH_EN_1, S3C_GPIO_OUTPUT); s3c_gpio_setpull(GPIO_TOUCH_EN_1, S3C_GPIO_PULL_NONE); s5p_gpio_set_pd_cfg(GPIO_TOUCH_CHG, S5P_GPIO_PD_PREV_STATE); s5p_gpio_set_pd_pull(GPIO_TOUCH_CHG, S5P_GPIO_PD_UPDOWN_DISABLE); s5p_gpio_set_pd_cfg(GPIO_TOUCH_RESET, S5P_GPIO_PD_PREV_STATE); s5p_gpio_set_pd_cfg(GPIO_TOUCH_EN, S5P_GPIO_PD_PREV_STATE); s5p_gpio_set_pd_cfg(GPIO_TOUCH_EN_1, S5P_GPIO_PD_PREV_STATE); }
void __init exynos5_universal5420_input_init(void) { #if defined(CONFIG_TOUCHSCREEN_ATMEL_MXTS) atmel_tsp_init(); //tsp_check_and_init(); #endif universal5410_gpio_keys_config_setup(system_rev); #ifdef CONFIG_INPUT_WACOM wacom_init(); #endif #ifdef CONFIG_SENSORS_HALL s3c_gpio_setpull(GPIO_HALL_SENSOR_INT, S3C_GPIO_PULL_UP); gpio_request(GPIO_HALL_SENSOR_INT, "GPIO_HALL_SENSOR_INT"); s3c_gpio_cfgpin(GPIO_HALL_SENSOR_INT, S3C_GPIO_SFN(0xf)); s5p_register_gpio_interrupt(GPIO_HALL_SENSOR_INT); gpio_direction_input(GPIO_HALL_SENSOR_INT); #endif if (lpcharge == 0) { platform_device_register(&s3c_device_i2c0); } else { printk(KERN_INFO "%s lpm mode : Do not register tsp driver.", __func__); } platform_add_devices(universal5410_input_devices, ARRAY_SIZE(universal5410_input_devices)); }
static int ak8963c_gpio_init(void) { int ret; pr_info("%s\n", __func__); ret = gpio_request(GPIO_MSENSOR_INT, "gpio_akm_int"); if (ret) { pr_err("%s, Failed to request gpio akm_int.(%d)\n", __func__, ret); return ret; } s5p_register_gpio_interrupt(GPIO_MSENSOR_INT); s3c_gpio_setpull(GPIO_MSENSOR_INT, S3C_GPIO_PULL_DOWN); s3c_gpio_cfgpin(GPIO_MSENSOR_INT, S3C_GPIO_SFN(0xF)); i2c_devs10_emul[0].irq = gpio_to_irq(GPIO_MSENSOR_INT); ret = gpio_request(GPIO_MSENSE_RST_N, "gpio_akm_rst"); if (ret) { pr_err("%s, Failed to request gpio akm_rst.(%d)\n", __func__, ret); return ret; } s3c_gpio_cfgpin(GPIO_MSENSE_RST_N, S3C_GPIO_OUTPUT); s3c_gpio_setpull(GPIO_MSENSE_RST_N, S3C_GPIO_PULL_NONE); gpio_direction_output(GPIO_MSENSE_RST_N, 1); return ret; }
void __init midas_tsp_init(void) { #ifndef CONFIG_MACH_NEWTON_BD int gpio; int ret; printk(KERN_INFO "[TSP] midas_tsp_init() is called\n"); /* TSP_INT: XEINT_4 */ gpio = GPIO_TSP_INT; ret = gpio_request(gpio, "TSP_INT"); if (ret) pr_err("failed to request gpio(TSP_INT)\n"); s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(0xf)); /* s3c_gpio_setpull(gpio, S3C_GPIO_PULL_UP); */ s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s5p_register_gpio_interrupt(gpio); i2c_devs3[0].irq = gpio_to_irq(gpio); printk(KERN_INFO "%s touch : %d\n", __func__, i2c_devs3[0].irq); #endif s3c_gpio_cfgpin(GPIO_TSP_EN, S3C_GPIO_OUTPUT); s3c_gpio_setpull(GPIO_TSP_EN, S3C_GPIO_PULL_NONE); i2c_register_board_info(3, i2c_devs3, ARRAY_SIZE(i2c_devs3)); }
void __init midas_tsp_init(void) { int gpio; int ret; pr_info("[TSP] T0 TSP init() is called"); gpio = GPIO_TSP_LDO_EN; gpio_request(gpio, "TSP_LDO_EN"); gpio_direction_output(gpio, 0); gpio_export(gpio, 0); /* TSP_INT: XEINT_4 */ gpio = GPIO_TSP_INT; ret = gpio_request(gpio, "TSP_INT"); if (ret) pr_err("[TSP] failed to request gpio(TSP_INT)"); s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s5p_register_gpio_interrupt(gpio); i2c_devs3[0].irq = gpio_to_irq(gpio); pr_info("[TSP] T0 %s touch : %d\n", __func__, i2c_devs3[0].irq); i2c_register_board_info(3, i2c_devs3, ARRAY_SIZE(i2c_devs3)); }
static void sii8240_cfg_gpio(void) { pr_info("%s()\n", __func__); #ifdef USE_GPIO_I2C_MHL /* AP_MHL_SDA */ s3c_gpio_cfgpin(GPIO_MHL_SDA_18V, S3C_GPIO_SFN(0x0)); s3c_gpio_setpull(GPIO_MHL_SDA_18V, S3C_GPIO_PULL_NONE); /* AP_MHL_SCL */ s3c_gpio_cfgpin(GPIO_MHL_SCL_18V, S3C_GPIO_SFN(0x0)); s3c_gpio_setpull(GPIO_MHL_SCL_18V, S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(GPIO_MHL_SCL_18V, S5P_GPIO_DRVSTR_LV4); s5p_gpio_set_drvstr(GPIO_MHL_SDA_18V, S5P_GPIO_DRVSTR_LV4); #endif gpio_request(GPIO_MHL_INT, "MHL_INT"); s5p_register_gpio_interrupt(GPIO_MHL_INT); s3c_gpio_setpull(GPIO_MHL_INT, S3C_GPIO_PULL_DOWN); irq_set_irq_type(gpio_to_irq(GPIO_MHL_INT), IRQ_TYPE_EDGE_RISING); s3c_gpio_cfgpin(GPIO_MHL_INT, S3C_GPIO_SFN(0xF)); s3c_gpio_cfgpin(GPIO_MHL_RST, S3C_GPIO_OUTPUT); s3c_gpio_setpull(GPIO_MHL_RST, S3C_GPIO_PULL_NONE); gpio_set_value(GPIO_MHL_RST, 0); }
static void __init nuri_camera_init(void) { s3c_set_platdata(&mipi_csis_platdata, sizeof(mipi_csis_platdata), &s5p_device_mipi_csis0); s3c_set_platdata(&fimc_md_platdata, sizeof(fimc_md_platdata), &s5p_device_fimc_md); if (gpio_request_array(nuri_camera_gpios, ARRAY_SIZE(nuri_camera_gpios))) { pr_err("%s: GPIO request failed\n", __func__); return; } m5mols_board_info.irq = s5p_register_gpio_interrupt(GPIO_CAM_8M_ISP_INT); if (!IS_ERR_VALUE(m5mols_board_info.irq)) s3c_gpio_cfgpin(GPIO_CAM_8M_ISP_INT, S3C_GPIO_SFN(0xF)); else pr_err("%s: Failed to configure 8M_ISP_INT GPIO\n", __func__); /* Free GPIOs controlled directly by the sensor drivers. */ gpio_free(GPIO_CAM_VT_NRST); gpio_free(GPIO_CAM_VT_NSTBY); gpio_free(GPIO_CAM_MEGA_RST); if (exynos4_fimc_setup_gpio(S5P_CAMPORT_A)) { pr_err("%s: Camera port A setup failed\n", __func__); return; } /* Increase drive strength of the sensor clock output */ s5p_gpio_set_drvstr(EXYNOS4_GPJ1(3), S5P_GPIO_DRVSTR_LV4); }
int cyttsp5_init(struct cyttsp5_core_platform_data *pdata, int on, struct device *dev) { int irq_gpio = pdata->irq_gpio; int rc = 0; enabled = 0; if (on) { gpio_request(irq_gpio, "TSP_INT"); #ifdef MT04 gpio_direction_input(irq_gpio); #else s3c_gpio_cfgpin(irq_gpio, S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(irq_gpio, S3C_GPIO_PULL_UP); s5p_register_gpio_interrupt(irq_gpio); #endif cyttsp5_hw_power(1); } else { cyttsp5_hw_power(0); gpio_free(irq_gpio); } dev_info(dev, "%s: INIT CYTTSP IRQ gpio=%d onoff=%d r=%d\n", __func__, irq_gpio, on, rc); return rc; }
static void mxt_gpio_init(void) { int gpio = 0; gpio = GPIO_TSP_LDO_ON2; gpio_request(gpio, "TSP_LDO_ON2"); gpio_direction_output(gpio, 0); gpio_export(gpio, 0); gpio = GPIO_TSP_LDO_ON1; gpio_request(gpio, "TSP_LDO_ON1"); gpio_direction_output(gpio, 0); gpio_export(gpio, 0); gpio = GPIO_TSP_LDO_ON; gpio_request(gpio, "TSP_LDO_ON"); gpio_direction_output(gpio, 0); gpio_export(gpio, 0); gpio = GPIO_TSP_RST; gpio_request(gpio, "TSP_RST"); gpio_direction_output(gpio, 0); gpio_export(gpio, 0); gpio = GPIO_TSP_INT; gpio_request(gpio, "TSP_INT"); s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s5p_register_gpio_interrupt(gpio); s3c_gpio_setpull(GPIO_TSP_SCL_18V, S3C_GPIO_PULL_NONE); s3c_gpio_setpull(GPIO_TSP_SDA_18V, S3C_GPIO_PULL_NONE); }
static void sii9234_cfg_gpio(void) { printk(KERN_INFO "%s()\n", __func__); /* AP_MHL_SDA */ s3c_gpio_cfgpin(GPIO_MHL_SDA_18V, S3C_GPIO_SFN(0x0)); s3c_gpio_setpull(GPIO_MHL_SDA_18V, S3C_GPIO_PULL_NONE); /* AP_MHL_SCL */ s3c_gpio_cfgpin(GPIO_MHL_SCL_18V, S3C_GPIO_SFN(0x1)); s3c_gpio_setpull(GPIO_MHL_SCL_18V, S3C_GPIO_PULL_NONE); gpio_request(GPIO_MHL_INT, "MHL_INT"); s5p_register_gpio_interrupt(GPIO_MHL_INT); s3c_gpio_setpull(GPIO_MHL_INT, S3C_GPIO_PULL_DOWN); irq_set_irq_type(MHL_INT_IRQ, IRQ_TYPE_EDGE_RISING); s3c_gpio_cfgpin(GPIO_MHL_INT, GPIO_MHL_INT_AF); s3c_gpio_cfgpin(GPIO_HDMI_EN, S3C_GPIO_OUTPUT); /* HDMI_EN */ gpio_set_value(GPIO_HDMI_EN, GPIO_LEVEL_LOW); s3c_gpio_setpull(GPIO_HDMI_EN, S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(GPIO_MHL_RST, S3C_GPIO_OUTPUT); s3c_gpio_setpull(GPIO_MHL_RST, S3C_GPIO_PULL_NONE); gpio_set_value(GPIO_MHL_RST, GPIO_LEVEL_LOW); }
static void __init smdk4210_init_pmic(void) { gpio_request(GPIO_PMIC_IRQ, "PMIC_IRQ"); s5p_register_gpio_interrupt(GPIO_PMIC_IRQ); s3c_gpio_cfgpin(GPIO_PMIC_IRQ, S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(GPIO_PMIC_IRQ, S3C_GPIO_PULL_UP); i2c_devs5[0].irq = gpio_to_irq(GPIO_PMIC_IRQ); }
void __init exynos5_universal5420_display_init(void) { struct resource *res; struct clk *mout_mdnie1; struct clk *mout_mpll; /* GPIO CONFIG */ gpio_request(GPIO_LCD_EN, "LCD_EN"); gpio_request_one(GPIO_TCON_RDY, GPIOF_IN, "TCON_RDY"); gpio_request(GPIO_TCON_INTR, "TCON_INTR"); s3c_gpio_setpull(GPIO_TCON_INTR, S3C_GPIO_PULL_DOWN); s5p_register_gpio_interrupt(GPIO_TCON_INTR); tcon_irq = gpio_to_irq(GPIO_TCON_INTR); #if defined(CONFIG_FB_HW_TRIGGER) gpio_request(GPIO_PSR_TE, "PSR_TE"); s3c_gpio_cfgpin(GPIO_PSR_TE, S3C_GPIO_SFN(2)); #endif s5p_dsim1_set_platdata(&dsim_platform_data); s5p_fimd1_set_platdata(&chagall_lcd1_pdata); s5p_mic_set_platdata(&chagall_fb_win0); platform_add_devices(chagall_display_devices, ARRAY_SIZE(chagall_display_devices)); mout_mdnie1 = clk_get(NULL, "mout_mdnie1"); if ((IS_ERR(mout_mdnie1))) pr_err("Can't get clock[%s]\n", "mout_mdnie1"); mout_mpll = clk_get(NULL, "mout_mpll"); if ((IS_ERR(mout_mpll))) pr_err("Can't get clock[%s]\n", "mout_mpll"); if (mout_mdnie1 && mout_mpll) clk_set_parent(mout_mdnie1, mout_mpll); if (mout_mdnie1) clk_put(mout_mdnie1); if (mout_mpll) clk_put(mout_mpll); exynos5_fimd1_setup_clock(&s5p_device_fimd1.dev, "sclk_fimd", "mout_mdnie1", 266 * MHZ); keep_lcd_clk(&s5p_device_fimd1.dev, 1); res = platform_get_resource(&s5p_device_fimd1, IORESOURCE_MEM, 1); if (res) { res->start = bootloaderfb_start; res->end = res->start + bootloaderfb_size - 1; pr_info("bootloader fb located at %8X-%8X\n", res->start, res->end); } else { pr_err("failed to find bootloader fb resource\n"); } }
void __init exynos5_m6x_display_init(void) { #if defined(CONFIG_FB_VIDEO_PSR) // For TE_VSYNC, GPIO initialization will be processed // in m6x_init_gpio_cfg of gpio-m6x.c after this step // This interrupt will be chained to 77 (gpio_RT group) int irq; irq = s5p_register_gpio_interrupt(MEIZU_LCD_TE); if (IS_ERR_VALUE(irq)){ pr_err("%s: Failed to configure GPJ1(7) \n", __func__); return; } #endif #ifdef CONFIG_FB_MIPI_DSIM #ifdef CONFIG_S5P_DEV_MIPI_DSIM0 s5p_dsim0_set_platdata(&dsim_platform_data); #else s5p_dsim1_set_platdata(&dsim_platform_data); #endif #endif #ifdef CONFIG_S5P_DP s5p_dp_set_platdata(&smdk5410_dp_data); #endif #ifdef CONFIG_S5P_DEV_FIMD0 s5p_fimd0_set_platdata(&m6x_lcd0_pdata); #else s5p_fimd1_set_platdata(&m6x_lcd1_pdata); #endif #if defined(CONFIG_BACKLIGHT_LM3695) || defined(CONFIG_BACKLIGHT_LM3630) lm3695_rt_init_res(); i2c_register_board_info(9, i2c_bl, ARRAY_SIZE(i2c_bl)); #endif #ifdef CONFIG_TPS65132 i2c_register_board_info(14, i2c_tps, ARRAY_SIZE(i2c_tps)); #endif platform_add_devices(m6x_display_devices, ARRAY_SIZE(m6x_display_devices)); #ifdef CONFIG_S5P_DP exynos5_fimd1_setup_clock(&s5p_device_fimd1.dev, "sclk_fimd", "mout_mpll_bpll", 267 * MHZ); #endif #ifdef CONFIG_FB_MIPI_DSIM #if defined(CONFIG_S5P_DEV_FIMD0) exynos5_fimd0_setup_clock(&s5p_device_fimd0.dev, "sclk_fimd", "mout_mpll_bpll", 140 * MHZ); #else exynos5_fimd1_setup_clock(&s5p_device_fimd1.dev, "sclk_fimd", "mout_mpll_bpll", 140 * MHZ); #endif #endif }
static void __init smdk4210_init_battery_gauge(void) { gpio_request(GPIO_FUEL_ALERT, "FUEL_ALERT"); s5p_register_gpio_interrupt(GPIO_FUEL_ALERT); s3c_gpio_cfgpin(GPIO_FUEL_ALERT, S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(GPIO_FUEL_ALERT, S3C_GPIO_PULL_UP); i2c_gpio_gauge_devs[0].irq = gpio_to_irq(GPIO_FUEL_ALERT); i2c_register_board_info(I2C_GPIO_BUS_GAUGE, i2c_gpio_gauge_devs, ARRAY_SIZE(i2c_gpio_gauge_devs)); }
static void mxt_gpio_init(void) { /* touch interrupt */ gpio_request(GPIO_TSP_nINT, "TSP_INT"); s3c_gpio_cfgpin(GPIO_TSP_nINT, S3C_GPIO_INPUT); s3c_gpio_setpull(GPIO_TSP_nINT, S3C_GPIO_PULL_NONE); s5p_register_gpio_interrupt(GPIO_TSP_nINT); s3c_gpio_setpull(GPIO_TSP_SCL_18V, S3C_GPIO_PULL_NONE); s3c_gpio_setpull(GPIO_TSP_SDA_18V, S3C_GPIO_PULL_NONE); }
static void mxt_gpio_init(void) { /* touch interrupt */ gpio_request(EXYNOS5410_GPJ0(0), "EXYNOS5410_GPJ0(0)"); s3c_gpio_cfgpin(EXYNOS5410_GPJ0(0), S3C_GPIO_INPUT); s3c_gpio_setpull(EXYNOS5410_GPJ0(0), S3C_GPIO_PULL_NONE); s5p_register_gpio_interrupt(EXYNOS5410_GPJ0(0)); s3c_gpio_setpull(EXYNOS5410_GPB3(1), S3C_GPIO_PULL_NONE); s3c_gpio_setpull(EXYNOS5410_GPB3(0), S3C_GPIO_PULL_NONE); }
static void __init smdk4210_init_touchkey(void) { gpio_request(GPIO_3_TOUCH_INT, "3_TOUCH_INT"); s5p_register_gpio_interrupt(GPIO_3_TOUCH_INT); s3c_gpio_cfgpin(GPIO_3_TOUCH_INT, S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(GPIO_3_TOUCH_INT, S3C_GPIO_PULL_UP); i2c_gpio_touchkey_devs[0].irq = gpio_to_irq(GPIO_3_TOUCH_INT); smdk4210_touchkey_power(true); printk("MCS TOUCHKEY: They are initialized!\n"); i2c_register_board_info(I2C_GPIO_BUS_TOUCHKEY, i2c_gpio_touchkey_devs, ARRAY_SIZE(i2c_gpio_touchkey_devs)); }
static void __init smdk4210_init_tsp(void) { gpio_request(GPIO_TSP_INT, "TOUCH_INT"); s5p_register_gpio_interrupt(GPIO_TSP_INT); s3c_gpio_cfgpin(GPIO_TSP_INT, S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(GPIO_TSP_INT, S3C_GPIO_PULL_UP); i2c_devs3[0].irq = gpio_to_irq(GPIO_TSP_INT); gpio_request(GPIO_TSP_LDO_ON, "TOUCH_LDO"); s3c_gpio_cfgpin(GPIO_TSP_LDO_ON, S3C_GPIO_OUTPUT); s3c_gpio_setpull(GPIO_TSP_LDO_ON, S3C_GPIO_PULL_NONE); gpio_direction_output(GPIO_TSP_LDO_ON, 1); msleep(100); }
static void __init universal_touchkey_init(void) { int gpio; gpio = EXYNOS4_GPE3(7); /* XMDMDATA_7 */ gpio_request(gpio, "3_TOUCH_INT"); s5p_register_gpio_interrupt(gpio); s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(0xf)); i2c_gpio12_devs[0].irq = gpio_to_irq(gpio); gpio = EXYNOS4_GPE3(3); /* XMDMDATA_3 */ gpio_request_one(gpio, GPIOF_OUT_INIT_HIGH, "3_TOUCH_EN"); }
static void ak8975c_gpio_init(void) { int ret = gpio_request(GPIO_MSENSOR_INT, "gpio_akm_int"); printk(KERN_INFO "%s\n", __func__); if (ret) printk(KERN_ERR "Failed to request gpio akm_int.\n"); s5p_register_gpio_interrupt(GPIO_MSENSOR_INT); s3c_gpio_setpull(GPIO_MSENSOR_INT, S3C_GPIO_PULL_DOWN); s3c_gpio_cfgpin(GPIO_MSENSOR_INT, S3C_GPIO_SFN(0xF)); i2c_devs10_emul[0].irq = gpio_to_irq(GPIO_MSENSOR_INT); }
static void lsm331dlc_gpio_init(void) { int ret = gpio_request(GPIO_GYRO_INT, "lsm330dlc_gyro_irq"); printk(KERN_INFO "%s\n", __func__); if (ret) printk(KERN_ERR "Failed to request gpio lsm330dlc_gyro_irq\n"); ret = gpio_request(GPIO_GYRO_DE, "lsm330dlc_gyro_data_enable"); if (ret) printk(KERN_ERR "Failed to request gpio lsm330dlc_gyro_data_enable\n"); ret = gpio_request(GPIO_ACC_INT, "lsm330dlc_accel_irq"); if (ret) printk(KERN_ERR "Failed to request gpio lsm330dlc_accel_irq\n"); /* Accelerometer sensor interrupt pin initialization */ s3c_gpio_cfgpin(GPIO_ACC_INT, S3C_GPIO_INPUT); gpio_set_value(GPIO_ACC_INT, 2); s3c_gpio_setpull(GPIO_ACC_INT, S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(GPIO_ACC_INT, S5P_GPIO_DRVSTR_LV1); i2c_devs1[0].irq = gpio_to_irq(GPIO_ACC_INT); /* Gyro sensor interrupt pin initialization */ #if defined(CONFIG_MACH_C1) || defined(CONFIG_MACH_C1VZW) ||\ defined(CONFIG_MACH_JENGA) || defined(CONFIG_MACH_S2PLUS) || \ defined(CONFIG_MACH_M0) || defined(CONFIG_MACH_M3) || \ defined(CONFIG_MACH_C1CTC) s5p_register_gpio_interrupt(GPIO_GYRO_INT); s3c_gpio_cfgpin(GPIO_GYRO_INT, S3C_GPIO_SFN(0xF)); #else /* For Midas */ s3c_gpio_cfgpin(GPIO_GYRO_INT, S3C_GPIO_INPUT); #endif gpio_set_value(GPIO_GYRO_INT, 2); s3c_gpio_setpull(GPIO_GYRO_INT, S3C_GPIO_PULL_DOWN); s5p_gpio_set_drvstr(GPIO_GYRO_INT, S5P_GPIO_DRVSTR_LV1); i2c_devs1[1].irq = -1;/*gpio_to_irq(GPIO_GYRO_INT);*/ /* Gyro sensor data enable pin initialization */ s3c_gpio_cfgpin(GPIO_GYRO_DE, S3C_GPIO_OUTPUT); gpio_set_value(GPIO_GYRO_DE, 0); s3c_gpio_setpull(GPIO_GYRO_DE, S3C_GPIO_PULL_DOWN); s5p_gpio_set_drvstr(GPIO_GYRO_DE, S5P_GPIO_DRVSTR_LV1); }
static int wacom_init_hw(void) { int ret; ret = gpio_request(GPIO_PEN_LDO_EN, "PEN_LDO_EN"); if (ret) { printk(KERN_ERR "[E-PEN] faile to request gpio(GPIO_PEN_LDO_EN)\n"); return ret; } s3c_gpio_cfgpin(GPIO_PEN_LDO_EN, S3C_GPIO_SFN(0x1)); s3c_gpio_setpull(GPIO_PEN_LDO_EN, S3C_GPIO_PULL_NONE); gpio_direction_output(GPIO_PEN_LDO_EN, 0); ret = gpio_request(GPIO_PEN_PDCT_18V, "PEN_PDCT"); if (ret) { printk(KERN_ERR "[E-PEN] faile to request gpio(GPIO_PEN_PDCT_18V)\n"); return ret; } s3c_gpio_cfgpin(GPIO_PEN_PDCT_18V, S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(GPIO_PEN_PDCT_18V, S3C_GPIO_PULL_UP); ret = gpio_request(GPIO_PEN_IRQ_18V, "PEN_IRQ"); if (ret) { printk(KERN_ERR "[E-PEN] faile to request gpio(GPIO_PEN_IRQ_18V)\n"); return ret; } s3c_gpio_cfgpin(GPIO_PEN_IRQ_18V, S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(GPIO_PEN_IRQ_18V, S3C_GPIO_PULL_DOWN); s5p_register_gpio_interrupt(GPIO_PEN_IRQ_18V); i2c_devs6[0].irq = gpio_to_irq(GPIO_PEN_IRQ_18V); #ifdef WACOM_PEN_DETECT s3c_gpio_cfgpin(GPIO_S_PEN_IRQ, S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(GPIO_S_PEN_IRQ, S3C_GPIO_PULL_UP); #endif #ifdef WACOM_HAVE_FWE_PIN ret = gpio_request(GPIO_PEN_FWE0, "GPIO_PEN_FWE0"); if (ret) { printk(KERN_ERR "[E-PEN] faile to request gpio(GPIO_PEN_FWE0)\n"); return ret; } s3c_gpio_cfgpin(GPIO_PEN_FWE0, S3C_GPIO_SFN(0x1)); s3c_gpio_setpull(GPIO_PEN_FWE0, S3C_GPIO_PULL_NONE); gpio_direction_output(GPIO_PEN_FWE0, 0); #endif return 0; }
static int synaptics_gpio_setup(unsigned gpio, bool configure) { int retval = 0; if (configure) { gpio_request(gpio, "TSP_INT"); s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_UP); s5p_register_gpio_interrupt(gpio); } else { pr_warn("%s: No way to deconfigure gpio %d.", __func__, gpio); } return retval; }
static void __init goni_tsp_init(void) { int gpio; gpio = S5PV210_GPJ1(3); /* XMSMADDR_11 */ gpio_request_one(gpio, GPIOF_OUT_INIT_HIGH, "TSP_LDO_ON"); gpio_export(gpio, 0); gpio = S5PV210_GPJ0(5); /* XMSMADDR_5 */ gpio_request(gpio, "TSP_INT"); s5p_register_gpio_interrupt(gpio); s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_UP); i2c2_devs[0].irq = gpio_to_irq(gpio); }
void __init synaptics_tsp_init(void) { gpio_request(EXYNOS5410_GPJ0(0), "TSP_INT"); s3c_gpio_cfgpin(EXYNOS5410_GPJ0(0), S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(EXYNOS5410_GPJ0(0), S3C_GPIO_PULL_UP); s5p_register_gpio_interrupt(EXYNOS5410_GPJ0(0)); synaptics_i2c_devs0[0].irq = gpio_to_irq(EXYNOS5410_GPJ0(0)); s3c_i2c0_set_platdata(NULL); i2c_register_board_info(0, synaptics_i2c_devs0, ARRAY_SIZE(synaptics_i2c_devs0)); printk(KERN_ERR "%s touch : %d\n", __func__, synaptics_i2c_devs0[0].irq); }
void __init p10_tsp_init(void) { int gpio; gpio = GPIO_TOUCH_CHG; gpio_request(gpio, "TSP_INT"); s3c_gpio_cfgpin(gpio, S3C_GPIO_INPUT); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s5p_register_gpio_interrupt(GPIO_TOUCH_CHG); i2c_devs3[0].irq = gpio_to_irq(gpio); s3c_i2c3_set_platdata(NULL); i2c_register_board_info(3, i2c_devs3, ARRAY_SIZE(i2c_devs3)); printk(KERN_ERR "%s touch : %d\n", __func__, i2c_devs3[0].irq); }
static void sii9234_cfg_gpio(void) { printk(KERN_INFO "%s()\n", __func__); /* AP_MHL_SDA */ s3c_gpio_cfgpin(GPIO_MHL_SDA_1_8V, S3C_GPIO_SFN(0x0)); s3c_gpio_setpull(GPIO_MHL_SDA_1_8V, S3C_GPIO_PULL_NONE); /* AP_MHL_SCL */ s3c_gpio_cfgpin(GPIO_MHL_SCL_1_8V, S3C_GPIO_SFN(0x1)); s3c_gpio_setpull(GPIO_MHL_SCL_1_8V, S3C_GPIO_PULL_NONE); /* GPH1(6) XEINT 14 */ s3c_gpio_cfgpin(GPIO_MHL_WAKE_UP, S3C_GPIO_INPUT); irq_set_irq_type(MHL_WAKEUP_IRQ, IRQ_TYPE_EDGE_RISING); s3c_gpio_setpull(GPIO_MHL_WAKE_UP, S3C_GPIO_PULL_DOWN); gpio_request(GPIO_MHL_INT, "MHL_INT"); s5p_register_gpio_interrupt(GPIO_MHL_INT); s3c_gpio_setpull(GPIO_MHL_INT, S3C_GPIO_PULL_DOWN); irq_set_irq_type(MHL_INT_IRQ, IRQ_TYPE_EDGE_RISING); s3c_gpio_cfgpin(GPIO_MHL_INT, GPIO_MHL_INT_AF); s3c_gpio_cfgpin(GPIO_HDMI_EN, S3C_GPIO_OUTPUT); /* HDMI_EN */ gpio_set_value(GPIO_HDMI_EN, GPIO_LEVEL_LOW); s3c_gpio_setpull(GPIO_HDMI_EN, S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(GPIO_MHL_RST, S3C_GPIO_OUTPUT); s3c_gpio_setpull(GPIO_MHL_RST, S3C_GPIO_PULL_NONE); gpio_set_value(GPIO_MHL_RST, GPIO_LEVEL_LOW); #if !defined(CONFIG_MACH_C1_KOR_LGT) && !defined(CONFIG_SAMSUNG_MHL_9290) #if !defined(CONFIG_MACH_P4NOTE) && !defined(CONFIG_MACH_T0) && \ !defined(CONFIG_MACH_M3) && !defined(CONFIG_MACH_SLP_T0_LTE) s3c_gpio_cfgpin(GPIO_MHL_SEL, S3C_GPIO_OUTPUT); s3c_gpio_setpull(GPIO_MHL_SEL, S3C_GPIO_PULL_NONE); gpio_set_value(GPIO_MHL_SEL, GPIO_LEVEL_LOW); #endif #endif #ifdef CONFIG_USE_HPD_EN s3c_gpio_cfgpin(GPIO_HDMI_HPD_EN, S3C_GPIO_OUTPUT); s3c_gpio_setpull(GPIO_HDMI_HPD_EN, S3C_GPIO_PULL_NONE); gpio_set_value(GPIO_HDMI_HPD_EN, GPIO_LEVEL_LOW); #endif }
static void touchkey_init_hw(void) { #ifndef LED_LDO_WITH_REGULATOR gpio_request(GPIO_3_TOUCH_EN, "gpio_3_touch_en"); #endif gpio_request(GPIO_2_TOUCH_INT, "2_TOUCH_INT"); s3c_gpio_setpull(GPIO_2_TOUCH_INT, S3C_GPIO_PULL_NONE); s5p_register_gpio_interrupt(GPIO_2_TOUCH_INT); gpio_direction_input(GPIO_2_TOUCH_INT); i2c_devs8_emul[0].irq = gpio_to_irq(GPIO_2_TOUCH_INT); irq_set_irq_type(gpio_to_irq(GPIO_2_TOUCH_INT), IRQF_TRIGGER_FALLING); s3c_gpio_cfgpin(GPIO_2_TOUCH_INT, S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(GPIO_2_TOUCH_SCL_18V, S3C_GPIO_PULL_DOWN); s3c_gpio_setpull(GPIO_2_TOUCH_SDA_18V, S3C_GPIO_PULL_DOWN); }