linux-leds.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 1/2] led: led-class: Read max-brightness from devicetree
       [not found] <20230630092248.4146169-1-astrid.rost@axis.com>
@ 2023-06-30  9:22 ` Astrid Rost
  2023-06-30 17:59   ` Andy Shevchenko
  2023-07-01 11:09   ` Jacek Anaszewski
  2023-06-30  9:22 ` [PATCH v2 2/2] dt-bindings: leds: " Astrid Rost
  1 sibling, 2 replies; 7+ messages in thread
From: Astrid Rost @ 2023-06-30  9:22 UTC (permalink / raw)
  To: Andy Shevchenko, Krzysztof Kozlowski, Rob Herring,
	Jacek Anaszewski, Pavel Machek, Lee Jones
  Cc: kernel, Astrid Rost, linux-leds, linux-kernel

Add max-brightness in order to reduce the current on the connected LEDs.
Normally, the maximum brightness is determined by the hardware, and this
property is not required. This property is used to set a software limit.
It could happen that an LED is made so bright that it gets damaged or
causes damage due to restrictions in a specific system, such as mounting
conditions. Note that led-max-microamp should be preferably used, if it
is supported by the controller.

Signed-off-by: Astrid Rost <astrid.rost@axis.com>
---
 drivers/leds/led-class.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/leds/led-class.c b/drivers/leds/led-class.c
index 9255bc11f99d..ce652abf9336 100644
--- a/drivers/leds/led-class.c
+++ b/drivers/leds/led-class.c
@@ -457,6 +457,10 @@ int led_classdev_register_ext(struct device *parent,
 			if (fwnode_property_present(init_data->fwnode,
 						    "retain-state-shutdown"))
 				led_cdev->flags |= LED_RETAIN_AT_SHUTDOWN;
+
+			fwnode_property_read_u32(init_data->fwnode,
+				"max-brightness",
+				&led_cdev->max_brightness);
 		}
 	} else {
 		proposed_name = led_cdev->name;
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 2/2] dt-bindings: leds: Read max-brightness from devicetree
       [not found] <20230630092248.4146169-1-astrid.rost@axis.com>
  2023-06-30  9:22 ` [PATCH v2 1/2] led: led-class: Read max-brightness from devicetree Astrid Rost
@ 2023-06-30  9:22 ` Astrid Rost
  2023-06-30 16:49   ` Rob Herring
  1 sibling, 1 reply; 7+ messages in thread
From: Astrid Rost @ 2023-06-30  9:22 UTC (permalink / raw)
  To: Andy Shevchenko, Krzysztof Kozlowski, Rob Herring,
	Jacek Anaszewski, Pavel Machek, Lee Jones, Rob Herring,
	Conor Dooley
  Cc: kernel, Astrid Rost, linux-leds, devicetree, linux-kernel

Add max-brightness in order to reduce the current on the connected LEDs.
Normally, the maximum brightness is determined by the hardware, and this
property is not required. This property is used to set a software limit.
It could happen that an LED is made so bright that it gets damaged or
causes damage due to restrictions in a specific system, such as mounting
conditions. Note that led-max-microamp should be preferably used, if it
is supported by the controller.

Signed-off-by: Astrid Rost <astrid.rost@axis.com>
---
 Documentation/devicetree/bindings/leds/common.yaml | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/Documentation/devicetree/bindings/leds/common.yaml b/Documentation/devicetree/bindings/leds/common.yaml
index 11aedf1650a1..603a5630fc3d 100644
--- a/Documentation/devicetree/bindings/leds/common.yaml
+++ b/Documentation/devicetree/bindings/leds/common.yaml
@@ -160,6 +160,16 @@ properties:
       For flash LED controllers with configurable current this property is
       mandatory for the LEDs in the non-flash modes (e.g. torch or indicator).
 
+  max-brightness:
+    description:
+      Normally, the maximum brightness is determined by the hardware, and
+      this property is not required. This property is used to set a software
+      limit. It could happen that an LED is made so bright that it gets damaged
+      or causes damage due to restrictions in a specific system, such as
+      mounting conditions. Note that led-max-microamp should be preferably used,
+      if it is supported by the controller.
+    $ref: /schemas/types.yaml#definitions/uint32
+
   panic-indicator:
     description:
       This property specifies that the LED should be used, if at all possible,
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 2/2] dt-bindings: leds: Read max-brightness from devicetree
  2023-06-30  9:22 ` [PATCH v2 2/2] dt-bindings: leds: " Astrid Rost
@ 2023-06-30 16:49   ` Rob Herring
  0 siblings, 0 replies; 7+ messages in thread
From: Rob Herring @ 2023-06-30 16:49 UTC (permalink / raw)
  To: Astrid Rost
  Cc: Andy Shevchenko, Krzysztof Kozlowski, Jacek Anaszewski,
	Pavel Machek, Lee Jones, Conor Dooley, kernel, linux-leds,
	devicetree, linux-kernel

On Fri, Jun 30, 2023 at 11:22:47AM +0200, Astrid Rost wrote:
> Add max-brightness in order to reduce the current on the connected LEDs.
> Normally, the maximum brightness is determined by the hardware, and this
> property is not required. This property is used to set a software limit.
> It could happen that an LED is made so bright that it gets damaged or
> causes damage due to restrictions in a specific system, such as mounting
> conditions. Note that led-max-microamp should be preferably used, if it
> is supported by the controller.
> 
> Signed-off-by: Astrid Rost <astrid.rost@axis.com>
> ---
>  Documentation/devicetree/bindings/leds/common.yaml | 10 ++++++++++
>  1 file changed, 10 insertions(+)

The patch order is wrong. You have to define a property before you can 
use it. Otherwise,

Reviewed-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 1/2] led: led-class: Read max-brightness from devicetree
  2023-06-30  9:22 ` [PATCH v2 1/2] led: led-class: Read max-brightness from devicetree Astrid Rost
@ 2023-06-30 17:59   ` Andy Shevchenko
  2023-07-01 11:09   ` Jacek Anaszewski
  1 sibling, 0 replies; 7+ messages in thread
From: Andy Shevchenko @ 2023-06-30 17:59 UTC (permalink / raw)
  To: Astrid Rost
  Cc: Krzysztof Kozlowski, Rob Herring, Jacek Anaszewski, Pavel Machek,
	Lee Jones, kernel, linux-leds, linux-kernel

On Fri, Jun 30, 2023 at 11:22:46AM +0200, Astrid Rost wrote:
> Add max-brightness in order to reduce the current on the connected LEDs.
> Normally, the maximum brightness is determined by the hardware, and this
> property is not required. This property is used to set a software limit.
> It could happen that an LED is made so bright that it gets damaged or
> causes damage due to restrictions in a specific system, such as mounting
> conditions. Note that led-max-microamp should be preferably used, if it
> is supported by the controller.

LGTM,
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Maybe you can also add to the cover letter that there are already users in
the kernel that may be simplified after this change lands the upstream.

> Signed-off-by: Astrid Rost <astrid.rost@axis.com>
> ---
>  drivers/leds/led-class.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/leds/led-class.c b/drivers/leds/led-class.c
> index 9255bc11f99d..ce652abf9336 100644
> --- a/drivers/leds/led-class.c
> +++ b/drivers/leds/led-class.c
> @@ -457,6 +457,10 @@ int led_classdev_register_ext(struct device *parent,
>  			if (fwnode_property_present(init_data->fwnode,
>  						    "retain-state-shutdown"))
>  				led_cdev->flags |= LED_RETAIN_AT_SHUTDOWN;
> +
> +			fwnode_property_read_u32(init_data->fwnode,
> +				"max-brightness",
> +				&led_cdev->max_brightness);
>  		}
>  	} else {
>  		proposed_name = led_cdev->name;
> -- 
> 2.30.2
> 

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 1/2] led: led-class: Read max-brightness from devicetree
  2023-06-30  9:22 ` [PATCH v2 1/2] led: led-class: Read max-brightness from devicetree Astrid Rost
  2023-06-30 17:59   ` Andy Shevchenko
@ 2023-07-01 11:09   ` Jacek Anaszewski
  2023-07-03  7:53     ` Astrid Rost
  1 sibling, 1 reply; 7+ messages in thread
From: Jacek Anaszewski @ 2023-07-01 11:09 UTC (permalink / raw)
  To: Astrid Rost, Andy Shevchenko, Krzysztof Kozlowski, Rob Herring,
	Pavel Machek, Lee Jones
  Cc: kernel, linux-leds, linux-kernel

Hi Astrid,

On 6/30/23 11:22, Astrid Rost wrote:
> Add max-brightness in order to reduce the current on the connected LEDs.
> Normally, the maximum brightness is determined by the hardware, and this
> property is not required. This property is used to set a software limit.
> It could happen that an LED is made so bright that it gets damaged or
> causes damage due to restrictions in a specific system, such as mounting
> conditions. Note that led-max-microamp should be preferably used, if it
> is supported by the controller.
> 
> Signed-off-by: Astrid Rost <astrid.rost@axis.com>
> ---
>   drivers/leds/led-class.c | 4 ++++
>   1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/leds/led-class.c b/drivers/leds/led-class.c
> index 9255bc11f99d..ce652abf9336 100644
> --- a/drivers/leds/led-class.c
> +++ b/drivers/leds/led-class.c
> @@ -457,6 +457,10 @@ int led_classdev_register_ext(struct device *parent,
>   			if (fwnode_property_present(init_data->fwnode,
>   						    "retain-state-shutdown"))
>   				led_cdev->flags |= LED_RETAIN_AT_SHUTDOWN;
> +
> +			fwnode_property_read_u32(init_data->fwnode,
> +				"max-brightness",
> +				&led_cdev->max_brightness);
>   		}
>   	} else {
>   		proposed_name = led_cdev->name;

We have led-max-microamp for that and every LED class driver is supposed
to calculate its max brightness level basing on it.

-- 
Best regards,
Jacek Anaszewski

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 1/2] led: led-class: Read max-brightness from devicetree
  2023-07-01 11:09   ` Jacek Anaszewski
@ 2023-07-03  7:53     ` Astrid Rost
  2023-07-03  9:32       ` Jacek Anaszewski
  0 siblings, 1 reply; 7+ messages in thread
From: Astrid Rost @ 2023-07-03  7:53 UTC (permalink / raw)
  To: Jacek Anaszewski, Astrid Rost, Andy Shevchenko,
	Krzysztof Kozlowski, Rob Herring, Pavel Machek, Lee Jones
  Cc: kernel, linux-leds, linux-kernel

Hello Jacek,

I am having problems with the PWM controller LP5024.

https://www.ti.com/product/LP5024

There is no such a calculation in the data-sheet like:
max_brightness = max_current / constant.

I also assume it is depending on the type of LEDs and circuit, which are 
connected.

It supports two current modes: 25,5 mA and and 35 mA, both is to high 
for the LEDs I have.

For max_brightness seems to be everything inside the kernel, but reading 
the value from devicetree. I first thought I could add it in the lp50xx
driver, but Andy and Rob thought that I better put it into the general 
parts. And of course drivers having led-max-microamp should better use it.

Please, let me know if you have a better suggestion.

Astrid





On 7/1/23 13:09, Jacek Anaszewski wrote:
> Hi Astrid,
> 
> On 6/30/23 11:22, Astrid Rost wrote:
>> Add max-brightness in order to reduce the current on the connected LEDs.
>> Normally, the maximum brightness is determined by the hardware, and this
>> property is not required. This property is used to set a software limit.
>> It could happen that an LED is made so bright that it gets damaged or
>> causes damage due to restrictions in a specific system, such as mounting
>> conditions. Note that led-max-microamp should be preferably used, if it
>> is supported by the controller.
>>
>> Signed-off-by: Astrid Rost <astrid.rost@axis.com>
>> ---
>>   drivers/leds/led-class.c | 4 ++++
>>   1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/leds/led-class.c b/drivers/leds/led-class.c
>> index 9255bc11f99d..ce652abf9336 100644
>> --- a/drivers/leds/led-class.c
>> +++ b/drivers/leds/led-class.c
>> @@ -457,6 +457,10 @@ int led_classdev_register_ext(struct device *parent,
>>               if (fwnode_property_present(init_data->fwnode,
>>                               "retain-state-shutdown"))
>>                   led_cdev->flags |= LED_RETAIN_AT_SHUTDOWN;
>> +
>> +            fwnode_property_read_u32(init_data->fwnode,
>> +                "max-brightness",
>> +                &led_cdev->max_brightness);
>>           }
>>       } else {
>>           proposed_name = led_cdev->name;
> 
> We have led-max-microamp for that and every LED class driver is supposed
> to calculate its max brightness level basing on it.
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 1/2] led: led-class: Read max-brightness from devicetree
  2023-07-03  7:53     ` Astrid Rost
@ 2023-07-03  9:32       ` Jacek Anaszewski
  0 siblings, 0 replies; 7+ messages in thread
From: Jacek Anaszewski @ 2023-07-03  9:32 UTC (permalink / raw)
  To: Astrid Rost, Astrid Rost, Andy Shevchenko, Krzysztof Kozlowski,
	Rob Herring, Pavel Machek, Lee Jones
  Cc: kernel, linux-leds, linux-kernel

Hi Astrid,

On 7/3/23 09:53, Astrid Rost wrote:
> Hello Jacek,
> 
> I am having problems with the PWM controller LP5024.
> 
> https://www.ti.com/product/LP5024
> 
> There is no such a calculation in the data-sheet like:
> max_brightness = max_current / constant.
> 
> I also assume it is depending on the type of LEDs and circuit, which are 
> connected.
> 
> It supports two current modes: 25,5 mA and and 35 mA, both is to high 
> for the LEDs I have.
> 
> For max_brightness seems to be everything inside the kernel, but reading 
> the value from devicetree. I first thought I could add it in the lp50xx
> driver, but Andy and Rob thought that I better put it into the general 
> parts. And of course drivers having led-max-microamp should better use it.
> 
> Please, let me know if you have a better suggestion.

OK, since this LED controller is PWM-driven then there is no current per
brightness level granulation. Bindings of leds-pwm driver also use
max-brightness DT property. So, yeah, let's make it a common property,
but state clearly that it is mainly for drivers like PWM ones, where it
is not possible to map brightness level to the amount of current.

-- 
Best regards,
Jacek Anaszewski

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-07-03  9:32 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20230630092248.4146169-1-astrid.rost@axis.com>
2023-06-30  9:22 ` [PATCH v2 1/2] led: led-class: Read max-brightness from devicetree Astrid Rost
2023-06-30 17:59   ` Andy Shevchenko
2023-07-01 11:09   ` Jacek Anaszewski
2023-07-03  7:53     ` Astrid Rost
2023-07-03  9:32       ` Jacek Anaszewski
2023-06-30  9:22 ` [PATCH v2 2/2] dt-bindings: leds: " Astrid Rost
2023-06-30 16:49   ` Rob Herring

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).