* 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>; }; };