static int msm_pmic_led_probe(struct platform_device *pdev) { int rc; printk("[KeyLED] %s \n", __func__); rc = led_classdev_register(&pdev->dev, &msm_kp_bl_led); if (rc) { dev_err(&pdev->dev, "unable to register led class driver\n"); return rc; } #ifdef CONFIG_KEYPAD_TOUCH_BLN printk("%s misc_register(%s)\n", __FUNCTION__, backlightnotification_device.name); rc = misc_register(&backlightnotification_device); if (rc) { printk("%s misc_register(%s) fail\n", __FUNCTION__, backlightnotification_device.name); } else { /* add the backlightnotification attributes */ if (sysfs_create_group(&backlightnotification_device.this_device->kobj, &bln_interface_attributes_group) < 0) { printk("%s sysfs_create_group fail\n", __FUNCTION__); printk("Failed to create sysfs group for device (%s)!\n", backlightnotification_device.name); } } #endif msm_keypad_bl_led_set(&msm_kp_bl_led, 0); return rc; }
static int msm_pmic_led_probe(struct platform_device *pdev) { int rc; rc = led_classdev_register(&pdev->dev, &msm_kp_bl_led); if (rc) { dev_err(&pdev->dev, "unable to register led class driver\n"); return rc; } msm_keypad_bl_led_set(&msm_kp_bl_led, LED_OFF); return rc; }
static int msm_pmic_led_probe(struct platform_device *pdev) { int rc; rc = led_classdev_register(&pdev->dev, &msm_kp_bl_led); if (rc) { dev_err(&pdev->dev, "unable to register led class driver\n"); return rc; } msm_keypad_bl_led_set(&msm_kp_bl_led, LED_FULL); schedule_delayed_work(&keypad_bl_work, 3 * HZ); return rc; }
static int msm_pmic_led_probe(struct platform_device *pdev) { int rc, ret = 0; #if !defined(CONFIG_MACH_COOPER) && !defined(CONFIG_MACH_GIO) && !defined(CONFIG_MACH_TASSDT) struct vreg *vreg_keyled; #endif #if defined(CONFIG_MACH_COOPER) if ( board_hw_revision >= 0x3 ) { vreg_keyled = vreg_get(NULL, "ldo17"); ret = vreg_set_level(vreg_keyled, OUT3300mV); } else { vreg_keyled = vreg_get(NULL, "ldo4"); ret = vreg_set_level(vreg_keyled, OUT3000mV); } #endif #if defined(CONFIG_MACH_GIO) vreg_keyled = vreg_get(NULL, "ldo17"); ret = vreg_set_level(vreg_keyled, OUT2800mV); #endif #if defined(CONFIG_MACH_TASSDT) vreg_keyled = vreg_get(NULL, "ldo4"); ret = vreg_set_level(vreg_keyled, OUT3000mV); #endif rc = led_classdev_register(&pdev->dev, &msm_kp_bl_led); if (rc) { dev_err(&pdev->dev, "unable to register led class driver\n"); return rc; } #ifdef CONFIG_KEYPAD_TOUCH_BLN printk("%s misc_register(%s)\n", __FUNCTION__, backlightnotification_device.name); rc = misc_register(&backlightnotification_device); if (rc) { printk("%s misc_register(%s) fail\n", __FUNCTION__, backlightnotification_device.name); } else { /* add the backlightnotification attributes */ if (sysfs_create_group(&backlightnotification_device.this_device->kobj, &bln_interface_attributes_group) < 0) { printk("%s sysfs_create_group fail\n", __FUNCTION__); printk("Failed to create sysfs group for device (%s)!\n", backlightnotification_device.name); } } #endif msm_keypad_bl_led_set(&msm_kp_bl_led, 0); return rc; }
static int msm_pmic_led_probe(struct platform_device *pdev) { int rc; rc = led_classdev_register(&pdev->dev, &msm_kp_bl_led); if (rc) { dev_err(&pdev->dev, "unable to register led class driver\n"); return rc; } /* LGE_CHANGE_S: [[email protected]]: 2012-03-23, Enabled key backlight leds till idle screen */ msm_keypad_bl_led_set(&msm_kp_bl_led, 5); /* 5mA Brightness */ /* LGE_CHANGE_E: [[email protected]]-2012-03-23 */ return rc; }
static int msm_pmic_led_probe(struct platform_device *pdev) { int rc; rc = led_classdev_register(&pdev->dev, &msm_kp_bl_led); if (rc) { dev_err(&pdev->dev, "unable to register led class driver\n"); return rc; } #ifdef CONFIG_HAS_EARLYSUSPEND early_suspend.suspend=(void *)msm_pmic_led_early_suspend; early_suspend.resume=(void *)msm_pmic_led_early_resume; register_early_suspend(&early_suspend); #endif msm_keypad_bl_led_set(&msm_kp_bl_led, LED_FULL); schedule_delayed_work(&keypad_bl_work, 3 * HZ); return rc; }
static int msm_pmic_led_probe(struct platform_device *pdev) { int rc; #if defined (CONFIG_LGE_UNIFIED_LED) leds_pdata = pdev->dev.platform_data; #endif rc = led_classdev_register(&pdev->dev, &msm_kp_bl_led); if (rc) { dev_err(&pdev->dev, "unable to register led class driver\n"); return rc; } msm_keypad_bl_led_set(&msm_kp_bl_led, LED_OFF); #if defined (CONFIG_LGE_UNIFIED_LED) leds_pdata->register_custom_leds(pdev); #endif return rc; }
static int msm_pmic_led_suspend(struct platform_device *dev, pm_message_t pm_state) { #ifdef CONFIG_KEYPAD_TOUCH_BLN /* * Disallow powering off the touchkey controller * while a led notification is ongoing */ if(!bln_notification_ongoing) #endif { msm_keypad_bl_led_set(&msm_kp_bl_led, 0); led_classdev_suspend(&msm_kp_bl_led); } #ifdef CONFIG_KEYPAD_TOUCH_BLN else enable_led_notification(); #endif return 0; }
static int msm_pmic_led_probe(struct platform_device *pdev) { int rc; rc = led_classdev_register(&pdev->dev, &msm_kp_bl_led); if (rc) { dev_err(&pdev->dev, "unable to register led class driver\n"); return rc; } #ifdef CONFIG_HUAWEI_LEDS_PMIC if( machine_is_msm8255_u8860lp() || machine_is_msm8255_u8860_r() ||machine_is_msm8255_u8860_51()) { led_pwm_gpio_config(); bl_pwm = pwm_request(LED_PM_GPIO25_PWM_ID, "keypad backlight"); } #endif msm_keypad_bl_led_set(&msm_kp_bl_led, LED_OFF); return rc; }
static void update_kaypad_bl(struct work_struct *work) { msm_keypad_bl_led_set(&msm_kp_bl_led, LED_OFF); printk("Close the kaypad back light\n"); }
static void disable_touchkey_backlights(void){ msm_keypad_bl_led_set(&msm_kp_bl_led, 0); }
static void msm_keypad_bl_led_set(struct led_classdev *led_cdev, enum led_brightness value) { #if defined(CONFIG_MACH_MSM7X27A_U0) || defined (CONFIG_MACH_MSM7X25A_M4) int on_off; int brightness; /* debug mesg */ printk(KERN_INFO " LED DEBUG: Value is %d\n", value); if (value == 0) on_off = (int)PM_MPP__I_SINK__SWITCH_DIS; else on_off = (int)PM_MPP__I_SINK__SWITCH_ENA; #if defined (CONFIG_MACH_MSM7X25A_M4) brightness = PM_MPP__I_SINK__LEVEL_10mA; #else brightness = PM_MPP__I_SINK__LEVEL_5mA; #endif #if 0 switch (value) { case 5: brightness = PM_MPP__I_SINK__LEVEL_5mA; break; case 10: brightness = PM_MPP__I_SINK__LEVEL_10mA; break; case 15: brightness = PM_MPP__I_SINK__LEVEL_15mA; break; case 20: brightness = PM_MPP__I_SINK__LEVEL_20mA; break; case 25: brightness = PM_MPP__I_SINK__LEVEL_25mA; break; case 30: brightness = PM_MPP__I_SINK__LEVEL_30mA; break; case 35: brightness = PM_MPP__I_SINK__LEVEL_35mA; break; case 40: brightness = PM_MPP__I_SINK__LEVEL_40mA; break; default:/* LGE_CHANGE [[email protected]] 20120223 : LED Current Reduce 25 -> 5mA */ brightness = PM_MPP__I_SINK__LEVEL_5mA; break; } if (lge_bd_rev == LGE_REV_A) { /* LED power(MPP pin) use *REV.A *EU :MPP3, MPP4 *MPCS :MPP4 */ pmic_secure_mpp_config_i_sink((enum mpp_which)PM_MPP_4, brightness, (enum mpp_i_sink_switch)on_off); } else if (lge_bd_rev >= LGE_REV_B) { /* LED power(MPP pin) use *REV.B *EU :MPP3 *MPCS :MPP3 */ #endif #if defined (CONFIG_MACH_MSM7X25A_M4) pmic_secure_mpp_config_i_sink((enum mpp_which)PM_MPP_7, brightness, (enum mpp_i_sink_switch)on_off); #else pmic_secure_mpp_config_i_sink((enum mpp_which)PM_MPP_3, brightness, (enum mpp_i_sink_switch)on_off); #endif // } #else //CONFIG_MACH_MSM7X27A_U0 int ret; ret = pmic_set_led_intensity(LED_KEYPAD, value / MAX_KEYPAD_BL_LEVEL); if (ret) dev_err(led_cdev->dev, "can't set keypad backlight\n"); #endif } static struct led_classdev msm_kp_bl_led = { #if defined(CONFIG_MACH_MSM7X27A_U0) || defined (CONFIG_MACH_MSM7X25A_M4) .name = "button-backlight", #else .name = "keyboard-backlight", #endif .brightness_set = msm_keypad_bl_led_set, .brightness = LED_OFF, }; static int msm_pmic_led_probe(struct platform_device *pdev) { int rc; rc = led_classdev_register(&pdev->dev, &msm_kp_bl_led); if (rc) { dev_err(&pdev->dev, "unable to register led class driver\n"); return rc; } #if 0//defined(CONFIG_MACH_MSM7X27A_U0) /* LGE_CHANGE_S: [[email protected]]: 2012-03-23, Enabled key backlight leds till idle screen */ msm_keypad_bl_led_set(&msm_kp_bl_led, 5); /* 5mA Brightness */ #else//CONFIG_MACH_MSM7X27A_U0 msm_keypad_bl_led_set(&msm_kp_bl_led, LED_OFF); #endif return rc; } static int __devexit msm_pmic_led_remove(struct platform_device *pdev) { led_classdev_unregister(&msm_kp_bl_led); return 0; }