Commit dd08e136 authored by Daniel Mack's avatar Daniel Mack Committed by Jacek Anaszewski
Browse files

leds: lt3593: drop pdata handling code



The only user of this driver in mainline has now moved to DTS, so the pdata
code is no longer in use by anyone. Let's drop some dead code, and make the
driver depend on CONFIG_OF.

Signed-off-by: default avatarDaniel Mack <daniel@zonque.org>
Signed-off-by: default avatarJacek Anaszewski <jacek.anaszewski@gmail.com>
parent 5b6cd445
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -533,6 +533,7 @@ config LEDS_LT3593
	tristate "LED driver for LT3593 controllers"
	depends on LEDS_CLASS
	depends on GPIOLIB || COMPILE_TEST
	depends on OF
	help
	  This option enables support for LEDs driven by a Linear Technology
	  LT3593 controller. This controller uses a special one-wire pulse
+0 −56
Original line number Diff line number Diff line
@@ -60,50 +60,6 @@ static int lt3593_led_set(struct led_classdev *led_cdev,
	return 0;
}

static struct lt3593_led_data *lt3593_led_probe_pdata(struct device *dev)
{
	struct gpio_led_platform_data *pdata = dev_get_platdata(dev);
	const struct gpio_led *template = &pdata->leds[0];
	struct lt3593_led_data *led_data;
	int ret, state;

	if (pdata->num_leds != 1)
		return ERR_PTR(-EINVAL);

	led_data = devm_kzalloc(dev, sizeof(*led_data), GFP_KERNEL);
	if (!led_data)
		return ERR_PTR(-ENOMEM);

	led_data->cdev.name = template->name;
	led_data->cdev.default_trigger = template->default_trigger;
	led_data->cdev.brightness_set_blocking = lt3593_led_set;

	state = (template->default_state == LEDS_GPIO_DEFSTATE_ON);
	led_data->cdev.brightness = state ? LED_FULL : LED_OFF;

	if (!template->retain_state_suspended)
		led_data->cdev.flags |= LED_CORE_SUSPENDRESUME;

	ret = devm_gpio_request_one(dev, template->gpio, state ?
				    GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW,
				    template->name);
	if (ret < 0)
		return ERR_PTR(ret);

	led_data->gpiod = gpio_to_desc(template->gpio);
	if (!led_data->gpiod)
		return ERR_PTR(-EPROBE_DEFER);

	ret = devm_led_classdev_register(dev, &led_data->cdev);
	if (ret < 0)
		return ERR_PTR(ret);

	dev_info(dev, "registered LT3593 LED '%s' at GPIO %d\n",
		 template->name, template->gpio);

	return led_data;
}

static int lt3593_led_probe(struct platform_device *pdev)
{
	struct device *dev = &pdev->dev;
@@ -113,14 +69,6 @@ static int lt3593_led_probe(struct platform_device *pdev)
	enum gpiod_flags flags = GPIOD_OUT_LOW;
	const char *tmp;

	if (dev_get_platdata(dev)) {
		led_data = lt3593_led_probe_pdata(dev);
		if (IS_ERR(led_data))
			return PTR_ERR(led_data);

		goto out;
	}

	if (!dev->of_node)
		return -ENODEV;

@@ -171,20 +119,16 @@ static int lt3593_led_probe(struct platform_device *pdev)
	}

	led_data->cdev.dev->of_node = dev->of_node;

out:
	platform_set_drvdata(pdev, led_data);

	return 0;
}

#ifdef CONFIG_OF
static const struct of_device_id of_lt3593_leds_match[] = {
	{ .compatible = "lltc,lt3593", },
	{},
};
MODULE_DEVICE_TABLE(of, of_lt3593_leds_match);
#endif

static struct platform_driver lt3593_led_driver = {
	.probe		= lt3593_led_probe,