backlight_lm3630a: add enable_gpios property

Started by Andreas Kemnade on Sep 11, 2019 · 8 messages from 3 authors · Last reply Sep 12, 2019

Series

2 patches, 2 files

+14 −0

Subsystems (5)

Show 2 more

Maintainers (9)

Show 5 more
STALE2620d SUPERSEDED

Status: Superseded by v4 (posted 2019-09-12). [go to v4]

Revision v3 (4 revisions archived).

Revisions (4)
  1. v1
  2. v2 [diff against previous]
  3. v3 current [diff against previous]
  4. v4 [diff against previous]

open the first message on its own page

  1. [PATCH v3 1/2] dt-bindings: backlight: lm3630a: add enable_gpios
    Revisions and related patches
    Revisions (4)
    1. v1
    2. v2 [diff against previous]
    3. v3 current [diff against previous]
    4. v4 [diff against previous]
  2. [PATCH v3 2/2] backlight: lm3630a: add an enable gpio for the HWEN pin
    Revisions and related patches
    Revisions (4)
    1. v1
    2. v2 [diff against previous]
    3. v3 current [diff against previous]
    4. v4 [diff against previous]
Message details and related content
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

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(+)

-- 
2.20.1

[PATCH v3 1/2] dt-bindings: backlight: lm3630a: add enable_gpios

Message details and related content
add enable-gpios to describe HWEN pin

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Acked-by: Daniel Thompson <redacted>
---
changes in v2: added example
changes in v3: added Acked-by
 .../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..1fa83feffe16 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
@@ -92,6 +96,7 @@ examples:
     i2c {
         #address-cells = <1>;
         #size-cells = <0>;
+        enable-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
 
         led-controller@38 {
                 compatible = "ti,lm3630a";
-- 
2.20.1

[PATCH v3 2/2] backlight: lm3630a: add an enable gpio for the HWEN pin

Message details and related content
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>
---
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) {
-- 
2.20.1

Re: [PATCH v3 2/2] backlight: lm3630a: add an enable gpio for the HWEN pin

Message details and related content
On Wed, Sep 11, 2019 at 07:21:06PM +0200, 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>
Make sure Dan is happy w.r.t. his review comments but if this driver is
unchanged when you spin v4 (for the DT changes) then feel free to add:

Reviewed-by: Daniel Thompson <redacted>


Daniel.
quoted hunk
---
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;

8 more quoted lines

Re: [PATCH v3 1/2] dt-bindings: backlight: lm3630a: add enable_gpios

Message details and related content
Andreas

On 9/11/19 12:21 PM, Andreas Kemnade wrote:
quoted hunk
add enable-gpios to describe HWEN pin

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Acked-by: Daniel Thompson <redacted>
---
changes in v2: added example
changes in v3: added Acked-by
  .../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..1fa83feffe16 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
@@ -92,6 +96,7 @@ examples:
      i2c {
          #address-cells = <1>;
          #size-cells = <0>;
+        enable-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
  
          led-controller@38 {
                  compatible = "ti,lm3630a";
Looks good to me

Reviewed-by: Dan Murphy <redacted>

Re: [PATCH v3 2/2] backlight: lm3630a: add an enable gpio for the HWEN pin

Message details and related content
Andreas

On 9/11/19 12:21 PM, Andreas Kemnade wrote:
quoted hunk
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>
---
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,

13 more quoted lines

Thanks for the explanation

It looks good to me

Reviewed-by: Dan Murphy <redacted>

Re: [PATCH v3 1/2] dt-bindings: backlight: lm3630a: add enable_gpios

Message details and related content
On Thu, 12 Sep 2019 06:39:50 -0500
Dan Murphy [off-list ref] wrote:
Andreas

On 9/11/19 12:21 PM, Andreas Kemnade wrote:
quoted
add enable-gpios to describe HWEN pin

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Acked-by: Daniel Thompson <redacted>
---
changes in v2: added example
changes in v3: added Acked-by
  .../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..1fa83feffe16 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
@@ -92,6 +96,7 @@ examples:
      i2c {
          #address-cells = <1>;
          #size-cells = <0>;
+        enable-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
  
          led-controller@38 {
                  compatible = "ti,lm3630a";  
Looks good to me
well, the enable-gpios is still at the same place as in v2. This was sent
before your comments to v2 have been arrived.

Regards,
Andreas

Re: [PATCH v3 1/2] dt-bindings: backlight: lm3630a: add enable_gpios

Message details and related content
Andreas

On 9/12/19 9:58 AM, Andreas Kemnade wrote:
On Thu, 12 Sep 2019 06:39:50 -0500
Dan Murphy [off-list ref] wrote:
quoted
Andreas

On 9/11/19 12:21 PM, Andreas Kemnade wrote:
quoted
add enable-gpios to describe HWEN pin

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Acked-by: Daniel Thompson <redacted>
---
changes in v2: added example
changes in v3: added Acked-by
   .../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..1fa83feffe16 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
@@ -92,6 +96,7 @@ examples:
       i2c {
           #address-cells = <1>;
           #size-cells = <0>;
+        enable-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
   
           led-controller@38 {
                   compatible = "ti,lm3630a";
Looks good to me

3 more quoted lines

Ah I overlooked that.  Yeah that still needs to move I assumed you moved it.

Dan

Regards,
Andreas
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help