示例#1
0
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;
}
示例#3
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;
	}
	msm_keypad_bl_led_set(&msm_kp_bl_led, LED_FULL);
	schedule_delayed_work(&keypad_bl_work, 3 * HZ);
	return rc;
}
示例#4
0
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;
}
示例#5
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;
	}
	/* 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;
}
示例#8
0
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;
}
示例#10
0
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");
}
示例#11
0
static void disable_touchkey_backlights(void){
	msm_keypad_bl_led_set(&msm_kp_bl_led, 0);
}
示例#12
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;
}