backlight: lm3630a: Add an enable gpio for the HWEN pin
authorAndreas Kemnade <andreas@kemnade.info>
Thu, 12 Sep 2019 21:32:57 +0000 (23:32 +0200)
committerLee Jones <lee.jones@linaro.org>
Wed, 2 Oct 2019 13:25:27 +0000 (14:25 +0100)
For now just enable it in the probe function to allow I2C
access. Disabling also means resetting the register values
to default and according to the datasheet does not give
power savings.

Tested on Kobo Clara HD.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Reviewed-by: Dan Murphy <dmurphy@ti.com>
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/video/backlight/lm3630a_bl.c

index 3614a4edbcd13825c7ad7c26141345e94bcb985e..ee320883b7108596d19bf838a2c9df13f2d5eb53 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/uaccess.h>
 #include <linux/interrupt.h>
 #include <linux/regmap.h>
+#include <linux/gpio/consumer.h>
 #include <linux/pwm.h>
 #include <linux/platform_data/lm3630a_bl.h>
 
@@ -48,6 +49,7 @@ struct lm3630a_chip {
        struct lm3630a_platform_data *pdata;
        struct backlight_device *bleda;
        struct backlight_device *bledb;
+       struct gpio_desc *enable_gpio;
        struct regmap *regmap;
        struct pwm_device *pwmd;
 };
@@ -534,6 +536,13 @@ static int lm3630a_probe(struct i2c_client *client,
        }
        pchip->pdata = pdata;
 
+       pchip->enable_gpio = devm_gpiod_get_optional(&client->dev, "enable",
+                                               GPIOD_OUT_HIGH);
+       if (IS_ERR(pchip->enable_gpio)) {
+               rval = PTR_ERR(pchip->enable_gpio);
+               return rval;
+       }
+
        /* chip initialize */
        rval = lm3630a_chip_init(pchip);
        if (rval < 0) {