Commit e43232c0 authored by Krzysztof Kozlowski's avatar Krzysztof Kozlowski Committed by Rob Herring
Browse files

dt-bindings: leds: skyworks,aat1290: convert to dtschema



Convert the Skyworks Solutions, Inc. AAT1290 Current Regulator bindings
to DT Schema.

Signed-off-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Acked-by: default avatarJacek Anaszewski <jacek.anaszewski@gmail.com>
Signed-off-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20220721160611.250274-1-krzysztof.kozlowski@linaro.org
parent 5b967e8e
Loading
Loading
Loading
Loading
+0 −77
Original line number Diff line number Diff line
* 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:
- function : see Documentation/devicetree/bindings/leds/common.txt
- color : see Documentation/devicetree/bindings/leds/common.txt
- label : see Documentation/devicetree/bindings/leds/common.txt (deprecated)

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"
#include <dt-bindings/leds/common.h>

led-controller {
	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: led {
		function = LED_FUNCTION_FLASH;
		color = <LED_COLOR_ID_WHITE>;
		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>;
	};
};
+95 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/leds/skyworks,aat1290.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Skyworks Solutions, Inc. AAT1290 Current Regulator for Flash LEDs

maintainers:
  - Jacek Anaszewski <jacek.anaszewski@gmail.com>
  - Krzysztof Kozlowski <krzk@kernel.org>

description: |
  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.

properties:
  compatible:
    const: skyworks,aat1290

  enset-gpios:
    maxItems: 1
    description: EN_SET pin

  flen-gpios:
    maxItems: 1
    description: FL_EN pin

  led:
    $ref: common.yaml#
    unevaluatedProperties: false

    properties:
      led-max-microamp: true

      flash-max-microamp:
        description: |
          Maximum flash LED supply current can be calculated using following
          formula:: I = 1A * 162 kOhm / Rset.

      flash-max-timeout-us:
        description: |
          Maximum flash timeout can be calculated using following formula::
            T = 8.82 * 10^9 * Ct.

    required:
      - flash-max-microamp
      - flash-max-timeout-us
      - led-max-microamp

  pinctrl-names:
    items:
      - const: default
      - const: host
      - const: isp

  pinctrl-0: true
  pinctrl-1: true
  pinctrl-2: true

required:
  - compatible
  - enset-gpios
  - flen-gpios
  - led

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/leds/common.h>

    // Ct = 220 nF, Rset = 160 kOhm
    led-controller {
        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>;

        led {
            function = LED_FUNCTION_FLASH;
            color = <LED_COLOR_ID_WHITE>;
            led-max-microamp = <520833>;
            flash-max-microamp = <1012500>;
            flash-max-timeout-us = <1940000>;
        };
    };