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

From: Krzysztof Kozlowski
Date: Mon May 23 2022 - 11:39:53 EST


On 23/05/2022 17:37, Jean-Jacques Hiblot wrote:
>
> On 23/05/2022 17:30, Krzysztof Kozlowski wrote:
>> 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?
>
> You could chain 1000 devices or more and have 16000 leds. It would be a
> bit tedious to describe them all in the DTS though.
>
> We can impose a limit but it will be arbitrary. Is this how it is
> usually treated ?

1000 is still less than billion, although above that number it probably
does not make sense to have any limit.

Best regards,
Krzysztof