162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/leds/skyworks,aat1290.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Skyworks Solutions, Inc. AAT1290 Current Regulator for Flash LEDs
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Jacek Anaszewski <jacek.anaszewski@gmail.com>
1162306a36Sopenharmony_ci  - Krzysztof Kozlowski <krzk@kernel.org>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cidescription: |
1462306a36Sopenharmony_ci  The device is controlled through two pins:: FL_EN and EN_SET. The pins when,
1562306a36Sopenharmony_ci  asserted high, enable flash strobe and movie mode (max 1/2 of flash current)
1662306a36Sopenharmony_ci  respectively. In order to add a capability of selecting the strobe signal
1762306a36Sopenharmony_ci  source (e.g. CPU or camera sensor) there is an additional switch required,
1862306a36Sopenharmony_ci  independent of the flash chip. The switch is controlled with pin control.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciproperties:
2162306a36Sopenharmony_ci  compatible:
2262306a36Sopenharmony_ci    const: skyworks,aat1290
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci  enset-gpios:
2562306a36Sopenharmony_ci    maxItems: 1
2662306a36Sopenharmony_ci    description: EN_SET pin
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci  flen-gpios:
2962306a36Sopenharmony_ci    maxItems: 1
3062306a36Sopenharmony_ci    description: FL_EN pin
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci  led:
3362306a36Sopenharmony_ci    $ref: common.yaml#
3462306a36Sopenharmony_ci    unevaluatedProperties: false
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci    properties:
3762306a36Sopenharmony_ci      led-max-microamp: true
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci      flash-max-microamp:
4062306a36Sopenharmony_ci        description: |
4162306a36Sopenharmony_ci          Maximum flash LED supply current can be calculated using following
4262306a36Sopenharmony_ci          formula:: I = 1A * 162 kOhm / Rset.
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci      flash-max-timeout-us:
4562306a36Sopenharmony_ci        description: |
4662306a36Sopenharmony_ci          Maximum flash timeout can be calculated using following formula::
4762306a36Sopenharmony_ci            T = 8.82 * 10^9 * Ct.
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci    required:
5062306a36Sopenharmony_ci      - flash-max-microamp
5162306a36Sopenharmony_ci      - flash-max-timeout-us
5262306a36Sopenharmony_ci      - led-max-microamp
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci  pinctrl-names:
5562306a36Sopenharmony_ci    items:
5662306a36Sopenharmony_ci      - const: default
5762306a36Sopenharmony_ci      - const: host
5862306a36Sopenharmony_ci      - const: isp
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci  pinctrl-0: true
6162306a36Sopenharmony_ci  pinctrl-1: true
6262306a36Sopenharmony_ci  pinctrl-2: true
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_cirequired:
6562306a36Sopenharmony_ci  - compatible
6662306a36Sopenharmony_ci  - enset-gpios
6762306a36Sopenharmony_ci  - flen-gpios
6862306a36Sopenharmony_ci  - led
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ciadditionalProperties: false
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ciexamples:
7362306a36Sopenharmony_ci  - |
7462306a36Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
7562306a36Sopenharmony_ci    #include <dt-bindings/leds/common.h>
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci    // Ct = 220 nF, Rset = 160 kOhm
7862306a36Sopenharmony_ci    led-controller {
7962306a36Sopenharmony_ci        compatible = "skyworks,aat1290";
8062306a36Sopenharmony_ci        flen-gpios = <&gpj1 1 GPIO_ACTIVE_HIGH>;
8162306a36Sopenharmony_ci        enset-gpios = <&gpj1 2 GPIO_ACTIVE_HIGH>;
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci        pinctrl-names = "default", "host", "isp";
8462306a36Sopenharmony_ci        pinctrl-0 = <&camera_flash_host>;
8562306a36Sopenharmony_ci        pinctrl-1 = <&camera_flash_host>;
8662306a36Sopenharmony_ci        pinctrl-2 = <&camera_flash_isp>;
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci        led {
8962306a36Sopenharmony_ci            function = LED_FUNCTION_FLASH;
9062306a36Sopenharmony_ci            color = <LED_COLOR_ID_WHITE>;
9162306a36Sopenharmony_ci            led-max-microamp = <520833>;
9262306a36Sopenharmony_ci            flash-max-microamp = <1012500>;
9362306a36Sopenharmony_ci            flash-max-timeout-us = <1940000>;
9462306a36Sopenharmony_ci        };
9562306a36Sopenharmony_ci    };
96