To be able to handle the HWEN pin of the lm3630a, add an enable gpio to the driver and a property.
Tested on Kobo Clara HD.
Changes in v2: simplification and reordering
Changes in v3: added acked-by removed legacy include
Changes in v4: added reviewed-by moved gpio to the right position in the bindings example
Andreas Kemnade (2): dt-bindings: backlight: lm3630a: add enable_gpios backlight: lm3630a: add an enable gpio for the HWEN pin
.../bindings/leds/backlight/lm3630a-backlight.yaml | 5 +++++ drivers/video/backlight/lm3630a_bl.c | 9 +++++++++ 2 files changed, 14 insertions(+)
add enable-gpios to describe HWEN pin
Signed-off-by: Andreas Kemnade andreas@kemnade.info Acked-by: Daniel Thompson daniel.thompson@linaro.org --- changes in v2: added example changes in v3: added Acked-by changes in v4: moved enable-gpios to the right position in the example .../bindings/leds/backlight/lm3630a-backlight.yaml | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.yaml b/Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.yaml index dc129d9a329e..c8470628fe02 100644 --- a/Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.yaml +++ b/Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.yaml @@ -29,6 +29,10 @@ properties: '#size-cells': const: 0
+ enable-gpios: + description: GPIO to use to enable/disable the backlight (HWEN pin). + maxItems: 1 + required: - compatible - reg @@ -96,6 +100,7 @@ examples: led-controller@38 { compatible = "ti,lm3630a"; reg = <0x38>; + enable-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
#address-cells = <1>; #size-cells = <0>;
Andreas
On 9/12/19 4:32 PM, Andreas Kemnade wrote:
add enable-gpios to describe HWEN pin
Signed-off-by: Andreas Kemnade andreas@kemnade.info Acked-by: Daniel Thompson daniel.thompson@linaro.org
Reviewed-by: Dan Murphy dmurphy@ti.com
changes in v2: added example changes in v3: added Acked-by changes in v4: moved enable-gpios to the right position in the example .../bindings/leds/backlight/lm3630a-backlight.yaml | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.yaml b/Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.yaml index dc129d9a329e..c8470628fe02 100644 --- a/Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.yaml +++ b/Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.yaml @@ -29,6 +29,10 @@ properties: '#size-cells': const: 0
- enable-gpios:
- description: GPIO to use to enable/disable the backlight (HWEN pin).
- maxItems: 1
- required:
- compatible
- reg
@@ -96,6 +100,7 @@ examples: led-controller@38 { compatible = "ti,lm3630a"; reg = <0x38>;
enable-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; #address-cells = <1>; #size-cells = <0>;
On Thu, 12 Sep 2019 23:32:56 +0200, Andreas Kemnade wrote:
add enable-gpios to describe HWEN pin
Signed-off-by: Andreas Kemnade andreas@kemnade.info Acked-by: Daniel Thompson daniel.thompson@linaro.org
changes in v2: added example changes in v3: added Acked-by changes in v4: moved enable-gpios to the right position in the example .../bindings/leds/backlight/lm3630a-backlight.yaml | 5 +++++ 1 file changed, 5 insertions(+)
Reviewed-by: Rob Herring robh@kernel.org
On Thu, 12 Sep 2019, Andreas Kemnade wrote:
Provide DT documentation for enable-gpios.
Signed-off-by: Andreas Kemnade andreas@kemnade.info Acked-by: Daniel Thompson daniel.thompson@linaro.org Reviewed-by: Rob Herring robh@kernel.org Reviewed-by: Dan Murphy dmurphy@ti.com
changes in v2: added example changes in v3: added Acked-by changes in v4: moved enable-gpios to the right position in the example .../bindings/leds/backlight/lm3630a-backlight.yaml | 5 +++++ 1 file changed, 5 insertions(+)
Applied, thanks.
On Thu, Sep 12, 2019 at 4:33 PM Andreas Kemnade andreas@kemnade.info wrote:
add enable-gpios to describe HWEN pin
Signed-off-by: Andreas Kemnade andreas@kemnade.info Acked-by: Daniel Thompson daniel.thompson@linaro.org
This breaking linux-next now...
changes in v2: added example changes in v3: added Acked-by changes in v4: moved enable-gpios to the right position in the example .../bindings/leds/backlight/lm3630a-backlight.yaml | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.yaml b/Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.yaml index dc129d9a329e..c8470628fe02 100644 --- a/Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.yaml +++ b/Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.yaml @@ -29,6 +29,10 @@ properties: '#size-cells': const: 0
- enable-gpios:
- description: GPIO to use to enable/disable the backlight (HWEN pin).
- maxItems: 1
required:
- compatible
- reg
@@ -96,6 +100,7 @@ examples: led-controller@38 { compatible = "ti,lm3630a"; reg = <0x38>;
enable-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
Error: Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.example.dts:24.46-47 syntax error FATAL ERROR: Unable to parse input tree make[1]: *** [Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.example.dt.yaml] Error 1 scripts/Makefile.lib:314: recipe for target 'Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.example.dt.yaml' failed
You need the include for the define.
Rob
Hi,
On Mon, 28 Oct 2019 18:25:56 -0500 Rob Herring robh+dt@kernel.org wrote:
On Thu, Sep 12, 2019 at 4:33 PM Andreas Kemnade andreas@kemnade.info wrote:
add enable-gpios to describe HWEN pin
Signed-off-by: Andreas Kemnade andreas@kemnade.info Acked-by: Daniel Thompson daniel.thompson@linaro.org
This breaking linux-next now...
oops, sorry.
changes in v2: added example changes in v3: added Acked-by changes in v4: moved enable-gpios to the right position in the example .../bindings/leds/backlight/lm3630a-backlight.yaml | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.yaml b/Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.yaml index dc129d9a329e..c8470628fe02 100644 --- a/Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.yaml +++ b/Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.yaml @@ -29,6 +29,10 @@ properties: '#size-cells': const: 0
- enable-gpios:
- description: GPIO to use to enable/disable the backlight (HWEN pin).
- maxItems: 1
required:
- compatible
- reg
@@ -96,6 +100,7 @@ examples: led-controller@38 { compatible = "ti,lm3630a"; reg = <0x38>;
enable-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
Error: Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.example.dts:24.46-47 syntax error FATAL ERROR: Unable to parse input tree make[1]: *** [Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.example.dt.yaml] Error 1 scripts/Makefile.lib:314: recipe for target 'Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.example.dt.yaml' failed
You need the include for the define.
gpio/gpio.h is missing. Yes, was not aware of that these things will be compiled and the automatic check did not work on my system at all. So I decided not to fix that for just this simple thing which was a not so good idea. Will send a fixup.
Regards, Andreas
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 --- changes in v2: - simplification - correct gpio direction initialisation
changes in v3: - removed legacy include
drivers/video/backlight/lm3630a_bl.c | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/drivers/video/backlight/lm3630a_bl.c b/drivers/video/backlight/lm3630a_bl.c index 8f84f3684f04..d9e67b9b2571 100644 --- a/drivers/video/backlight/lm3630a_bl.c +++ b/drivers/video/backlight/lm3630a_bl.c @@ -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; }; @@ -535,6 +537,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) {
On Thu, 12 Sep 2019, Andreas Kemnade wrote:
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
changes in v2:
- simplification
- correct gpio direction initialisation
changes in v3:
- removed legacy include
drivers/video/backlight/lm3630a_bl.c | 9 +++++++++ 1 file changed, 9 insertions(+)
Applied, thanks.
dri-devel@lists.freedesktop.org