Documentation / devicetree / bindings / leds / ti,lm3560.yaml


Based on kernel version 7.2. Page generated on 2026-08-20 08:41 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/leds/ti,lm3560.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: TI LM3560 Synchronous Boost Flash Driver

maintainers:
  - Svyatoslav Ryhel <clamor95@gmail.com>

description:
  The LM3560 is a 2-MHz fixed frequency synchronous boost converter with two
  1000-mA constant current drivers for high-current white LEDs. The dual high-
  side current sources allow for grounded cathode LED operation and can be
  tied together for providing flash currents at up to 2 A through a single LED.
  An adaptive regulation method ensures the current for each LED remains in
  regulation and maximizes efficiency.

properties:
  compatible:
    enum:
      - ti,lm3559
      - ti,lm3560

  reg:
    maxItems: 1
 
  '#address-cells':
    const: 1
 
  '#size-cells':
    const: 0

  enable-gpios:
    description: GPIO connected to the HWEN pin.
    maxItems: 1

  vin-supply:
    description: Supply connected to the IN line.

  flash-max-timeout-us:
    minimum: 32000
    maximum: 1024000
    default: 32000

  ti,peak-current-microamp:
    description:
      The LM3560 features 4 selectable current limits 1.6A, 2.3A, 3A, and 3.6A
      (in case of LM3559 - 1.4A, 2.1A, 2.7A, and 3.2A). When the current limit
      is reached, the LM3559/LM3560 stops switching for the remainder of the
      switching cycle.

patternProperties:
  '^led@[01]$':
    type: object
    $ref: /schemas/leds/common.yaml#
    description: LED control bank nodes.
    unevaluatedProperties: false

    properties:
      reg:
        description: Control bank selection (0 = bank A, 1 = bank B).
        maximum: 1

    required:
      - reg
      - flash-max-microamp
      - led-max-microamp

allOf:
  - $ref: /schemas/leds/common.yaml#
  - if:
      properties:
        compatible:
          contains:
            const: ti,lm3559
    then:
      properties:
        ti,peak-current-microamp:
          enum: [1400000, 2100000, 2700000, 3200000]
          default: 1400000
      patternProperties:
        '^led@[01]$':
          properties:
            flash-max-microamp:
              minimum: 56250
              maximum: 900000
            led-max-microamp:
              minimum: 28125
              maximum: 225000

  - if:
      properties:
        compatible:
          contains:
            const: ti,lm3560
    then:
      properties:
        ti,peak-current-microamp:
          enum: [1600000, 2300000, 3000000, 3600000]
          default: 1600000
      patternProperties:
        '^led@[01]$':
          properties:
            flash-max-microamp:
              minimum: 62500
              maximum: 1000000
            led-max-microamp:
              minimum: 31250
              maximum: 250000

required:
  - compatible
  - reg
  - '#address-cells'
  - '#size-cells'

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/leds/common.h>
 
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;
 
        led-controller@53 {
            compatible = "ti,lm3560";
            reg = <0x53>;
 
            enable-gpios = <&gpio 28 GPIO_ACTIVE_HIGH>;
            vin-supply = <&vdd_3v3_sys>;
 
            flash-max-timeout-us = <1024000>;
            ti,peak-current-microamp = <1600000>;
 
            #address-cells = <1>;
            #size-cells = <0>;
 
            led@0 {
                reg = <0>;
 
                function = LED_FUNCTION_FLASH;
                color = <LED_COLOR_ID_WHITE>;
 
                flash-max-microamp = <562500>;
                led-max-microamp = <156250>;
            };
 
            led@1 {
                reg = <1>;
 
                function = LED_FUNCTION_FLASH;
                color = <LED_COLOR_ID_YELLOW>;
 
                flash-max-microamp = <562500>;
                led-max-microamp = <156250>;
            };
        };
    };