[PATCH v2 3/3] dt-bindings: leds: Document LTC3208 Multidisplay LED Driver

Jan Carlo Roleda posted 3 patches 1 week, 1 day ago
[PATCH v2 3/3] dt-bindings: leds: Document LTC3208 Multidisplay LED Driver
Posted by Jan Carlo Roleda 1 week, 1 day ago
Add Documentation for LTC3208 Multidisplay LED Driver.

Signed-off-by: Jan Carlo Roleda <jancarlo.roleda@analog.com>
---
 .../devicetree/bindings/leds/adi,ltc3208.yaml      | 158 +++++++++++++++++++++
 MAINTAINERS                                        |   1 +
 2 files changed, 159 insertions(+)

diff --git a/Documentation/devicetree/bindings/leds/adi,ltc3208.yaml b/Documentation/devicetree/bindings/leds/adi,ltc3208.yaml
new file mode 100644
index 000000000000..c139937936bc
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/adi,ltc3208.yaml
@@ -0,0 +1,158 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (c) 2026 Analog Devices, Inc.
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/adi,ltc3208.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: LTC3208 Multidisplay LED Controller from Linear Technologies (Now Analog Devices).
+
+maintainers:
+  - Jan Carlo Roleda <jancarlo.roleda@analog.com>
+
+description:
+  The LTC3208 is a multidisplay LED controller that can support up to 1A to all
+  connected LEDs.
+
+  The datasheet for this device can be found in
+  https://www.analog.com/en/products/ltc3208.html
+
+properties:
+  compatible:
+    const: adi,ltc3208
+
+  reg:
+    maxItems: 1
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+  adi,disable-camhl-pin:
+    type: boolean
+    description:
+      Configures whether the external CAMHL pin is disabled.
+      if disabled then the output pins associated with CAM will always select
+      the CAM register's high half-byte brightness.
+
+  adi,cfg-enrgbs-pin:
+    type: boolean
+    description:
+      Configures which channel the ENRGBS pin toggles when it receives a signal.
+      ENRGBS pin controls the SUB channel's output pins if this is set,
+      or RGB channel's output pins if this is unset.
+
+  adi,disable-rgb-aux4-dropout:
+    type: boolean
+    description:
+      Configures the RGB and AUX4 dropout signals to be disabled.
+
+  adi,aux1-channel:
+    $ref: /schemas/types.yaml#/definitions/string
+    description:
+      LED Channel that the AUX1 output pin mirrors its brightness level from.
+    enum: [aux, main, sub, cam]
+    default: aux
+
+  adi,aux2-channel:
+    $ref: /schemas/types.yaml#/definitions/string
+    description:
+      LED Channel that the AUX2 output pin mirrors its brightness level from.
+    enum: [aux, main, sub, cam]
+    default: aux
+
+  adi,aux3-channel:
+    $ref: /schemas/types.yaml#/definitions/string
+    description:
+      LED Channel that the AUX3 output pin mirrors its brightness level from.
+    enum: [aux, main, sub, cam]
+    default: aux
+
+  adi,aux4-channel:
+    $ref: /schemas/types.yaml#/definitions/string
+    description:
+      LED Channel that the AUX4 output pin mirrors its brightness level from.
+    enum: [aux, main, sub, cam]
+    default: aux
+
+patternProperties:
+  "^led@[0-7]$":
+    type: object
+    $ref: /schemas/leds/common.yaml#
+    unevaluatedProperties: false
+    properties:
+      reg:
+        description:
+          LED Channel Number. each channel maps to a specific channel group used
+          to configure the brightness level of the output pins corresponding to
+          the channel.
+        enum:
+          - 0 # Main Channel (8-bit brightness)
+          - 1 # Sub Channel (8-bit brightness)
+          - 2 # AUX Channel (4-bit brightness)
+          - 3 # Camera Channel, Low-side byte (4-bit brightness)
+          - 4 # Camera Channel, High-side byte (4-bit brightness)
+          - 5 # Red Channel (4-bit brightness)
+          - 6 # Blue Channel (4-bit brightness)
+          - 7 # Green Channel (4-bit brightness)
+    required:
+      - reg
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/leds/common.h>
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      led-controller@1b {
+        compatible = "adi,ltc3208";
+        reg = <0x1b>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+        adi,disable-camhl-pin;
+        adi,cfg-enrgbs-pin;
+        adi,disable-rgb-aux4-dropout;
+
+        led@0 {
+          reg = <0>;
+        };
+
+        led@1 {
+          reg = <1>;
+        };
+
+        led@2 {
+          reg = <2>;
+        };
+
+        led@3 {
+          reg = <3>;
+        };
+
+        led@4 {
+          reg = <4>;
+        };
+
+        led@5 {
+          reg = <5>;
+        };
+
+        led@6 {
+          reg = <6>;
+        };
+
+        led@7 {
+          reg = <7>;
+        };
+      };
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index 48bae02057d5..97072e906928 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -15131,6 +15131,7 @@ M:	Jan Carlo Roleda <jancarlo.roleda@analog.com>
 L:	linux-leds@vger.kernel.org
 S:	Maintained
 W:	https://ez.analog.com/linux-software-drivers
+F:	Documentation/devicetree/bindings/leds/adi,ltc3208.yaml
 F:	drivers/leds/leds-ltc3208.c
 
 LTC4282 HARDWARE MONITOR DRIVER

-- 
2.43.0
Re: [PATCH v2 3/3] dt-bindings: leds: Document LTC3208 Multidisplay LED Driver
Posted by Krzysztof Kozlowski 1 week ago
On Thu, Mar 26, 2026 at 06:30:12AM +0800, Jan Carlo Roleda wrote:
> Add Documentation for LTC3208 Multidisplay LED Driver.

Please organize the patch documenting the compatible (DT bindings)
before the patch using that compatible.
See also: https://elixir.bootlin.com/linux/v6.14-rc6/source/Documentation/devicetree/bindings/submitting-patches.rst#L46

> 
> Signed-off-by: Jan Carlo Roleda <jancarlo.roleda@analog.com>
> ---
>  .../devicetree/bindings/leds/adi,ltc3208.yaml      | 158 +++++++++++++++++++++
>  MAINTAINERS                                        |   1 +
>  2 files changed, 159 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/leds/adi,ltc3208.yaml b/Documentation/devicetree/bindings/leds/adi,ltc3208.yaml
> new file mode 100644
> index 000000000000..c139937936bc
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/leds/adi,ltc3208.yaml
> @@ -0,0 +1,158 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +# Copyright (c) 2026 Analog Devices, Inc.
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/leds/adi,ltc3208.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: LTC3208 Multidisplay LED Controller from Linear Technologies (Now Analog Devices).

Drop full stop

> +
> +maintainers:
> +  - Jan Carlo Roleda <jancarlo.roleda@analog.com>
> +
> +description:
> +  The LTC3208 is a multidisplay LED controller that can support up to 1A to all
> +  connected LEDs.
> +
> +  The datasheet for this device can be found in
> +  https://www.analog.com/en/products/ltc3208.html
> +
> +properties:
> +  compatible:
> +    const: adi,ltc3208
> +
> +  reg:
> +    maxItems: 1
> +
> +  '#address-cells':

Use consistent quotes, either ' or "

> +    const: 1
> +
> +  '#size-cells':
> +    const: 0
> +
> +  adi,disable-camhl-pin:
> +    type: boolean
> +    description:
> +      Configures whether the external CAMHL pin is disabled.
> +      if disabled then the output pins associated with CAM will always select

s/if/If/.

> +      the CAM register's high half-byte brightness.
> +
> +  adi,cfg-enrgbs-pin:
> +    type: boolean
> +    description:
> +      Configures which channel the ENRGBS pin toggles when it receives a signal.
> +      ENRGBS pin controls the SUB channel's output pins if this is set,
> +      or RGB channel's output pins if this is unset.
> +
> +  adi,disable-rgb-aux4-dropout:
> +    type: boolean
> +    description:
> +      Configures the RGB and AUX4 dropout signals to be disabled.
> +
> +  adi,aux1-channel:
> +    $ref: /schemas/types.yaml#/definitions/string
> +    description:
> +      LED Channel that the AUX1 output pin mirrors its brightness level from.
> +    enum: [aux, main, sub, cam]
> +    default: aux
> +
> +  adi,aux2-channel:
> +    $ref: /schemas/types.yaml#/definitions/string
> +    description:
> +      LED Channel that the AUX2 output pin mirrors its brightness level from.
> +    enum: [aux, main, sub, cam]
> +    default: aux
> +
> +  adi,aux3-channel:
> +    $ref: /schemas/types.yaml#/definitions/string
> +    description:
> +      LED Channel that the AUX3 output pin mirrors its brightness level from.
> +    enum: [aux, main, sub, cam]
> +    default: aux
> +
> +  adi,aux4-channel:
> +    $ref: /schemas/types.yaml#/definitions/string
> +    description:
> +      LED Channel that the AUX4 output pin mirrors its brightness level from.
> +    enum: [aux, main, sub, cam]
> +    default: aux
> +
> +patternProperties:
> +  "^led@[0-7]$":
> +    type: object
> +    $ref: /schemas/leds/common.yaml#
> +    unevaluatedProperties: false
> +    properties:
> +      reg:
> +        description:
> +          LED Channel Number. each channel maps to a specific channel group used
> +          to configure the brightness level of the output pins corresponding to
> +          the channel.
> +        enum:
> +          - 0 # Main Channel (8-bit brightness)
> +          - 1 # Sub Channel (8-bit brightness)
> +          - 2 # AUX Channel (4-bit brightness)
> +          - 3 # Camera Channel, Low-side byte (4-bit brightness)
> +          - 4 # Camera Channel, High-side byte (4-bit brightness)
> +          - 5 # Red Channel (4-bit brightness)
> +          - 6 # Blue Channel (4-bit brightness)
> +          - 7 # Green Channel (4-bit brightness)
> +    required:
> +      - reg
> +
> +required:
> +  - compatible
> +  - reg
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/gpio/gpio.h>

Where do you use it?

> +    #include <dt-bindings/leds/common.h>
> +    i2c {
> +      #address-cells = <1>;
> +      #size-cells = <0>;
> +
> +      led-controller@1b {
> +        compatible = "adi,ltc3208";
> +        reg = <0x1b>;
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +        adi,disable-camhl-pin;
> +        adi,cfg-enrgbs-pin;
> +        adi,disable-rgb-aux4-dropout;
> +
> +        led@0 {
> +          reg = <0>;

Please list other applicable properties. Otherwise listing all these
children is pointless - feels deducible from the compatible.

> +        };
> +
> +        led@1 {
> +          reg = <1>;
> +        };

Best regards,
Krzysztof