Kernel-4.18.0-80.el8_leds-aat1290

  • Skyworks Solutions, Inc. AAT1290 Current Regulator for Flash LEDs

The device is controlled through two pins: FL_EN and EN_SET. The pins when,
asserted high, enable flash strobe and movie mode (max 1/2 of flash current)
respectively. In order to add a capability of selecting the strobe signal source
(e.g. CPU or camera sensor) there is an additional switch required, independent
of the flash chip. The switch is controlled with pin control.

Required properties:

  • compatible : Must be “skyworks,aat1290”.
  • flen-gpios : Must be device tree identifier of the flash device FL_EN pin.
  • enset-gpios : Must be device tree identifier of the flash device EN_SET pin.

Optional properties:

  • pinctrl-names : Must contain entries: “default”, “host”, “isp”. Entries
      "default" and "host" must refer to the same pin configuration
      node, which sets the host as a strobe signal provider. Entry
      "isp" must refer to the pin configuration node, which sets the
      ISP as a strobe signal provider.
    

A discrete LED element connected to the device must be represented by a child
node - see Documentation/devicetree/bindings/leds/common.txt.

Required properties of the LED child node:

  • led-max-microamp : see Documentation/devicetree/bindings/leds/common.txt
  • flash-max-microamp : see Documentation/devicetree/bindings/leds/common.txt
                     Maximum flash LED supply current can be calculated using
                     following formula: I = 1A * 162kohm / Rset.
    
  • flash-max-timeout-us : see Documentation/devicetree/bindings/leds/common.txt
                       Maximum flash timeout can be calculated using following
                       formula: T = 8.82 * 10^9 * Ct.
    

Optional properties of the LED child node:

  • label : see Documentation/devicetree/bindings/leds/common.txt

Example (by Ct = 220nF, Rset = 160kohm and exynos4412-trats2 board with
a switch that allows for routing strobe signal either from the host or from
the camera sensor):

#include “exynos4412.dtsi”

aat1290 {
compatible = “skyworks,aat1290”;
flen-gpios = <&gpj1 1 GPIO_ACTIVE_HIGH>;
enset-gpios = <&gpj1 2 GPIO_ACTIVE_HIGH>;

pinctrl-names = "default", "host", "isp";
pinctrl-0 = <&camera_flash_host>;
pinctrl-1 = <&camera_flash_host>;
pinctrl-2 = <&camera_flash_isp>;

camera_flash: flash-led {
    label = "aat1290-flash";
    led-max-microamp = <520833>;
    flash-max-microamp = <1012500>;
    flash-max-timeout-us = <1940000>;
};

};

&pinctrl_0 {
camera_flash_host: camera-flash-host {
samsung,pins = “gpj1-0”;
samsung,pin-function = <1>;
samsung,pin-val = <0>;
};

camera_flash_isp: camera-flash-isp {
    samsung,pins = "gpj1-0";
    samsung,pin-function = <1>;
    samsung,pin-val = <1>;
};

};