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

From: Jean-Jacques Hiblot
Date: Mon May 23 2022 - 11:38:06 EST



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 ?


+
+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