[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <d30e5994-9e7a-4f0c-96e6-14fe6f132f5f@emfend.at>
Date: Mon, 10 Mar 2025 09:40:02 +0100
From: Matthias Fend <matthias.fend@...end.at>
To: Krzysztof Kozlowski <krzk@...nel.org>, Pavel Machek <pavel@....cz>,
Lee Jones <lee@...nel.org>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>, Conor Dooley <conor+dt@...nel.org>
Cc: linux-leds@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, bsp-development.geo@...ca-geosystems.com
Subject: Re: [PATCH 1/2] dt-bindings: leds: add Texas Instruments TPS6131x
flash LED driver
Hi Krzysztof,
thanks for your review.
Am 10.03.2025 um 08:49 schrieb Krzysztof Kozlowski:
> On 28/02/2025 11:31, Matthias Fend wrote:
>> +
>> +properties:
>> + compatible:
>> + enum:
>> + - ti,tps61310
>> + - ti,tps61311
>> +
>> + reg:
>> + maxItems: 1
>> +
>> + '#address-cells':
>> + const: 1
>> +
>> + '#size-cells':
>> + const: 0
>
> Why do you need these two?
As a template, I also used recently added bindings
(silergy,sy7802.yaml). These entries come from there, but as I
understand it, they are supposed to be removed, right?
>
>> +
>> + reset-gpios:
>> + maxItems: 1
>> + description: GPIO connected to NRESET pin
>> +
>> + ti,valley-current-limit:
>> + type: boolean
>> + description:
>> + Reduce the valley peak current limit from 1750mA to 1250mA (TPS61310) or
>> + from 2480mA to 1800mA (TPS61311).
>> +
>> + led:
>
> Why do you have only one led node? Description says three: LED1-3,
> unless these are just sinks which always have to be connected to the
> same LED?
That is basically correct. If you just want to switch the 3 LEDs on or
off, you could map that accordingly.
In detail, however, the 3 channels are not really independent of each
other. All channels share, for example, the flash controller, the safety
timers and the operating mode. In addition, two channels share the
configuration registers. It is therefore not possible to use one channel
as a flash and another as a normal LED.
For use as an LED flash controller (what the chip actually is), it
therefore only makes sense if one or more channels are combined.
>
>> + type: object
>> + $ref: common.yaml#
>> + unevaluatedProperties: false
>> +
>> + properties:
>> + led-sources:
>> + allOf:
>
> Drop allOf
>
>> + - minItems: 1
>> + maxItems: 3
>> + items:
>> + enum: [1, 2, 3]
>> +
>> + led-max-microamp:
>> + anyOf:
>
> oneOf
>
>> + - minimum: 25000
>> + maximum: 350000
>> + multipleOf: 50000
>> + - minimum: 25000
>> + maximum: 525000
>
> Why two different values?
The channels can in principle be configured in 25mA steps.
If only the two channels that share the configuration register are used,
the step size doubles to 50mA. The maximum current values for such a
configuration are also different.
There are of course several other combinations of channels that would
result in different maximum values, but since the step size is an
important value for the API, I wanted to describe these two cases
explicitly.
Best regards
~Matthias
>
>> + multipleOf: 25000
>> +
>> + flash-max-microamp:
>> + anyOf:
>
> oneOf
>
>> + - minimum: 25000
>> + maximum: 800000
>> + multipleOf: 50000
>> + - minimum: 25000
>
> Same question
>
>> + maximum: 1500000
>> + multipleOf: 25000
>> +
>> + flash-max-timeout-us:
>> + enum: [ 5300, 10700, 16000, 21300, 26600, 32000, 37300, 68200, 71500,
>> + 102200, 136300, 170400, 204500, 340800, 579300, 852000 ]
>> +
>> + required:
>> + - led-sources
>> + - led-max-microamp
>> + - flash-max-microamp
>> + - flash-max-timeout-us
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - '#address-cells'
>> + - '#size-cells'
>
> Why?
>
>> + - led
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/leds/common.h>
>> + #include <dt-bindings/gpio/gpio.h>
>> +
>> + i2c {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + led-controller@33 {
>> + compatible = "ti,tps61310";
>> + reg = <0x33>;
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + reset-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
>> +
>> + tps61310_flash: led {
>
> Drop unused label
>
> Best regards,
> Krzysztof
Powered by blists - more mailing lists