lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ