2023-06-29 14:04:29

by Astrid Rost

[permalink] [raw]
Subject: [PATCH v1 2/2] dt: bindings: lp50xx: Add max-brightness as in leds-pwm

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.

Signed-off-by: Astrid Rost <[email protected]>
---
Documentation/devicetree/bindings/leds/leds-lp50xx.yaml | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/Documentation/devicetree/bindings/leds/leds-lp50xx.yaml b/Documentation/devicetree/bindings/leds/leds-lp50xx.yaml
index 402c25424525..6a1425969cb4 100644
--- a/Documentation/devicetree/bindings/leds/leds-lp50xx.yaml
+++ b/Documentation/devicetree/bindings/leds/leds-lp50xx.yaml
@@ -73,6 +73,15 @@ patternProperties:
'#size-cells':
const: 0

+ 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.
+ $ref: /schemas/types.yaml#definitions/uint32
+
patternProperties:
"^led@[0-9a-f]+$":
type: object
--
2.30.2



2023-06-29 18:25:19

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH v1 2/2] dt: bindings: lp50xx: Add max-brightness as in leds-pwm

On Thu, Jun 29, 2023 at 03:47:22PM +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.
>
> Signed-off-by: Astrid Rost <[email protected]>
> ---
> Documentation/devicetree/bindings/leds/leds-lp50xx.yaml | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/leds/leds-lp50xx.yaml b/Documentation/devicetree/bindings/leds/leds-lp50xx.yaml
> index 402c25424525..6a1425969cb4 100644
> --- a/Documentation/devicetree/bindings/leds/leds-lp50xx.yaml
> +++ b/Documentation/devicetree/bindings/leds/leds-lp50xx.yaml
> @@ -73,6 +73,15 @@ patternProperties:
> '#size-cells':
> const: 0
>
> + 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.
> + $ref: /schemas/types.yaml#definitions/uint32

We already have led-max-microamp. If this h/w works by controlling the
current, then that is what you should use. "max-brightness" makes more
sense for PWM based control.

If you do end up keeping this, it belongs in the 'led' nodes not the
controller as brightness is a property of the LED, not the LED
driver(controller). And it should be in common schema rather than
defining the type yet again.

Rob

2023-06-30 07:36:52

by Astrid Rost

[permalink] [raw]
Subject: Re: [PATCH v1 2/2] dt: bindings: lp50xx: Add max-brightness as in leds-pwm



On 6/29/23 19:59, Rob Herring wrote:
> On Thu, Jun 29, 2023 at 03:47:22PM +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.
>>
>> Signed-off-by: Astrid Rost <[email protected]>
>> ---
>> Documentation/devicetree/bindings/leds/leds-lp50xx.yaml | 9 +++++++++
>> 1 file changed, 9 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/leds/leds-lp50xx.yaml b/Documentation/devicetree/bindings/leds/leds-lp50xx.yaml
>> index 402c25424525..6a1425969cb4 100644
>> --- a/Documentation/devicetree/bindings/leds/leds-lp50xx.yaml
>> +++ b/Documentation/devicetree/bindings/leds/leds-lp50xx.yaml
>> @@ -73,6 +73,15 @@ patternProperties:
>> '#size-cells':
>> const: 0
>>
>> + 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.
>> + $ref: /schemas/types.yaml#definitions/uint32
>
> We already have led-max-microamp. If this h/w works by controlling the
> current, then that is what you should use. "max-brightness" makes more
> sense for PWM based control.

Yes, I looked into this. This LED controller TI-LP5024 has only one flag
as max current option, which allows to set between 35 mA and the default
value 25.5 mA. This is not enough for our application.

>
> If you do end up keeping this, it belongs in the 'led' nodes not the
> controller as brightness is a property of the LED, not the LED
> driver(controller). And it should be in common schema rather than
> defining the type yet again.

I will look moving it into the the LED generic bindings as Andy
suggested. max_brightness is already there and handled correctly. It is
just a matter of reading it from the devicetree.

>
> Rob