Re: [PATCH 1/3] dt-bindings: leds: Add bindings for the TLC5925 controller

From: Krzysztof Kozlowski
Date: Mon May 23 2022 - 11:30:37 EST


On 23/05/2022 17:16, Jean-Jacques Hiblot wrote:
>
> On 23/05/2022 12:14, Krzysztof Kozlowski wrote:
>> On 23/05/2022 10:49, Jean-Jacques Hiblot wrote:
>>> Add bindings documentation for the TLC5925 LED controller.
>>>
>>> Signed-off-by: Jean-Jacques Hiblot <jjhiblot@xxxxxxxxxxxxxxx>
>> Thank you for your patch. There is something to discuss/improve.
>>
>>> ---
>>> devicetree@xxxxxxxxxxxxxxx
>>> .../bindings/leds/leds-tlc5925.yaml | 100 ++++++++++++++++++
>>> 1 file changed, 100 insertions(+)
>>> create mode 100644 Documentation/devicetree/bindings/leds/leds-tlc5925.yaml
>>>
>>> diff --git a/Documentation/devicetree/bindings/leds/leds-tlc5925.yaml b/Documentation/devicetree/bindings/leds/leds-tlc5925.yaml
>>> new file mode 100644
>>> index 000000000000..156db599d5a1
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/leds/leds-tlc5925.yaml
>> Filename: vendor,device
>> so "ti,tlc5925-leds.yaml" for example.
>>
>>
>>
>>> @@ -0,0 +1,100 @@
>>> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
>>> +%YAML 1.2
>>> +---
>>> +$id: http://devicetree.org/schemas/leds/leds-tlc5925.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: LEDs connected to TI TLC5925 controller
>>> +
>>> +maintainers:
>>> + - Jean-Jacques Hiblot <jjhiblot@xxxxxxxxxxxxxxx>
>>> +
>>> +description: |
>>> + The TLC5925 is a low-power 16-channel constant-current LED sink driver.
>>> + It is controlled through a SPI interface.
>>> + It is built around a shift register and latches which convert serial
>>> + input data into a parallel output. Several TLC5925 can be chained to
>>> + control more than 16 LEDs with a single chip-select.
>>> + The brightness level cannot be controlled, each LED is either on or off.
>>> +
>>> + Each LED is represented as a sub-node of the ti,tlc5925 device.
>>> +
>>> +properties:
>>> + compatible:
>>> + const: ti,tlc5925
>>> +
>>> + shift_register_length:
>>> + maxItems: 1
>> No...
>> 1. Did you test your bindings with dt_binding_check? This fails
>> obviously... please, do not send untested bindings.
>>
>> 2. vendor prefix, no underscores, proper type, maxItems look wrong here
>>
>>> + description: |
>>> + The length of the shift register. If several TLC5925 are chained,
>>> + shift_register_length should be set to 16 times the number of TLC5925.
>>> + The value must be a multiple of 8.
>>> +
>>> + "#address-cells":
>>> + const: 1
>>> +
>>> + "#size-cells":
>>> + const: 0
>>> +
>>> + output-enable-b-gpios:
>>> + description: |
>>> + GPIO pins to enable/disable the parallel output. They describe the GPIOs
>>> + connected to the OE/ pin of the TLC5925s.
>> maxItems
>
> There is no limitation in the driver itself. The actual number of items
> here really depends on the number of chips and how they are wired.

So you could daisy chain 4 billion of devices? Because by not using any
limit you claim that 4 billion is doable?

>
>>
>>
>>> +
>>> +patternProperties:
>>> + "@[a-f0-9]+$":
>> How many LEDs you can have here? Usually it is limited, so the pattern
>> should be narrowed.
>
> There is no limitation here either. The chips can be chained to augment
> the number of LEDs.
>
> The max number of LED is equal to the length of the shift-register.



Best regards,
Krzysztof