static int __init herring_init_touchkey_led(void) { int i; int ret = 0; if (!machine_is_herring() || system_rev < 0x10) return 0; for (i = 0; i < ARRAY_SIZE(led_gpios); i++) { ret = gpio_request(S5PV210_GPJ3(led_gpios[i]), "touchkey led"); if (ret) { pr_err("Failed to request touchkey led gpio %d\n", i); goto err_req; } s3c_gpio_setpull(S5PV210_GPJ3(led_gpios[i]), S3C_GPIO_PULL_NONE); } herring_touchkey_led_onoff(1); register_early_suspend(&early_suspend); return 0; err_req: while (--i >= 0) gpio_free(S5PV210_GPJ3(led_gpios[i])); return ret; }
static int __init herring_init_touchkey_led(void) { int i; int ret = 0; u32 gpio; if (!machine_is_herring() || !herring_is_tft_dev()) return 0; for (i = 0; i < ARRAY_SIZE(led_gpios); i++) { gpio = S5PV210_GPJ3(led_gpios[i]); ret = gpio_request(gpio, "touchkey led"); if (ret) { pr_err("Failed to request touchkey led gpio %d\n", i); goto err_req; } s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s3c_gpio_slp_cfgpin(gpio, S3C_GPIO_SLP_PREV); s3c_gpio_slp_setpull_updown(gpio, S3C_GPIO_PULL_NONE); } herring_touchkey_led_onoff(1); register_early_suspend(&early_suspend); #ifdef CONFIG_GENERIC_BLN register_bln_implementation(&herring_touchkey_bln); #endif #ifdef CONFIG_BLD register_bld_implementation(&herring_touchkey_bld); #endif return 0; err_req: while (--i >= 0) gpio_free(S5PV210_GPJ3(led_gpios[i])); return ret; }
static void herring_touchkey_led_late_resume(struct early_suspend *h) { herring_touchkey_led_onoff(1); }
static void herring_touchkey_led_early_suspend(struct early_suspend *h) { herring_touchkey_led_onoff(0); }
static void herring_touchkey_bld_disable(void) { herring_touchkey_led_onoff(0); }
static void herring_touchkey_bld_enable(void) { herring_touchkey_led_onoff(1); }