summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/leds/ti,lm3560.yaml
blob: 6cf8cf91ab2e2a996679af81a38c75b57ba2e647 (plain)
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>;
            };
        };
    };