static void regulator_led_set_value(struct regulator_led *led)
{
	int voltage;
	int ret;

	mutex_lock(&led->mutex);

	if (led->value == LED_OFF) {
		regulator_led_disable(led);
		goto out;
	}

	if (led->cdev.max_brightness > 1) {
		voltage = led_regulator_get_voltage(led->vcc, led->value);
		dev_dbg(led->cdev.dev, "brightness: %d voltage: %d\n",
				led->value, voltage);

		ret = regulator_set_voltage(led->vcc, voltage, voltage);
		if (ret != 0)
			dev_err(led->cdev.dev, "Failed to set voltage %d: %d\n",
				voltage, ret);
	}

	regulator_led_enable(led);

out:
	mutex_unlock(&led->mutex);
}
Example #2
0
static void regulator_led_shutdown(struct platform_device *pdev)
{
	struct regulator_led *led = platform_get_drvdata(pdev);

	if (regulator_is_enabled(led->vcc)) {
		regulator_led_disable(led);
	}
	return;
}
Example #3
0
static int regulator_led_remove(struct platform_device *pdev)
{
	struct regulator_led *led = platform_get_drvdata(pdev);

	led_classdev_unregister(&led->cdev);
	cancel_work_sync(&led->work);
	regulator_led_disable(led);
	return 0;
}
Example #4
0
static void regulator_led_set_value(struct regulator_led *led)
{
	int voltage;
	int ret;
	struct regulator *movie;

	mutex_lock(&led->mutex);

	if(led->cdev.flags & LED_SUSPENDED)
		goto out;
 
	if (led->value == LED_OFF) {
		regulator_led_disable(led);
		goto out;
	}

	movie = regulator_get(NULL, "led_movie");
	if(IS_ERR(movie)) {
		pr_err("%s: led_movie is failed.\n", __func__);
		goto out;
	}

	if (regulator_is_enabled(movie) > 0) {
		pr_info("%s: led_movie is enabled.\n", __func__);
		goto end;
	}

#if 0 //TODO
	if (led->cdev.max_brightness > 1) {
		voltage = led_regulator_get_voltage(led->vcc, led->value);
		dev_dbg(led->cdev.dev, "brightness: %d voltage: %d\n",
				led->value, voltage);

		ret = regulator_set_voltage(led->vcc, voltage, voltage);
		if (ret != 0)
			dev_err(led->cdev.dev, "Failed to set voltage %d: %d\n",
				voltage, ret);
	}
#endif

	regulator_set_current_limit(led->vcc, 90000, 110000);
	regulator_led_enable(led);

end:
	regulator_put(movie);

out:
	mutex_unlock(&led->mutex);
}