dt-bindings: leds: add documentation for leds-qti-flash
Flash LED device provides support for the clients to turn ON/OFF LED channels in different modes (flash/torch) individually or as a group. Add the bindings necessary to describe it. This is a snapshot taken as of qcom-6.1 branch commit b8790c7e1f77 ("dt-bindings: leds: leds-qti-flash: Add support for external LED setup"). Change-Id: Icbdcb3aa794d999b2edb9995f73b00fe4ccb34d1 Signed-off-by: Anjelique Melendez <quic_amelende@quicinc.com>
This commit is contained in:
429
bindings/leds/leds-qti-flash.yaml
Normal file
429
bindings/leds/leds-qti-flash.yaml
Normal file
@@ -0,0 +1,429 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/leds/leds-qti-flash.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Qualcomm Technologies, Inc. Flash LED
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Anjelique Melendez <quic_amelende@quicinc.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
Qualcomm Technologies, Inc. Flash LED supports camera flash with
|
||||||
|
multiple LED channels (HW dependent) that can be used for multiple
|
||||||
|
camera devices which can be configured for pre-flash(torch) and
|
||||||
|
flash modes.
|
||||||
|
|
||||||
|
Flash LED device has two level of nodes. The main node represents
|
||||||
|
flash LED peripheral and sub node represents the type of device
|
||||||
|
that uses flash LED channel. It can be a torch, flash or switch.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: qcom,qti-pm8350c-flash-led
|
||||||
|
|
||||||
|
reg:
|
||||||
|
description: Base address of flash LED module.
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
description: Specifies the interrupts associated with this device.
|
||||||
|
|
||||||
|
interrupt-names:
|
||||||
|
items:
|
||||||
|
- const: led-fault-irq
|
||||||
|
- const: all-ramp-down-done-irq
|
||||||
|
- const: all-ramp-up-done-irq
|
||||||
|
|
||||||
|
qcom,secure-vm:
|
||||||
|
description: Flag to indicate if the device is used by a secure VM.
|
||||||
|
This can be used to differentiate whether some hardware based
|
||||||
|
calculation is needed or not.
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
qcom,external-led:
|
||||||
|
description: Flag to indicate if the device is to be set up to
|
||||||
|
drive an external LED. In this case, there are no flash, torch
|
||||||
|
or switch devices created, only some initial configurations
|
||||||
|
are done to enable the external LED to be driven by HW strobing.
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
qcom,thermal-derate-current:
|
||||||
|
description: Array of current limits for different level of thermal mitigation.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
|
||||||
|
qcom,hw-strobe-gpios:
|
||||||
|
description: Array of one or more phandles to specify GPIOs to use
|
||||||
|
for strobing flash/torch devices with HW strobe option.
|
||||||
|
qcom,strobe-sel for flash/torch should be 1 if phandle is specified.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
'^qcom,flash_[0-9]$':
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
label:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/string-array
|
||||||
|
description: Specifies type of LED that will be used.
|
||||||
|
const: flash
|
||||||
|
|
||||||
|
qcom,led-name:
|
||||||
|
description: Specifies the name of flash device.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/string
|
||||||
|
|
||||||
|
qcom,id:
|
||||||
|
description: Specifies the LED channel number for flash device.
|
||||||
|
It depends on hardware and starts with an index 0.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
enum: [ 0, 1, 2, 3 ]
|
||||||
|
|
||||||
|
qcom,default-led-trigger:
|
||||||
|
description: Trigger for camera flash device.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/string
|
||||||
|
|
||||||
|
qcom,max-current-ma:
|
||||||
|
description: Maximum current allowed for flash LED device. Unit is mA.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
minimum: 0
|
||||||
|
maximum: 1600
|
||||||
|
default: 1600
|
||||||
|
|
||||||
|
qcom,duration-ms:
|
||||||
|
description: Default time duration for flash LED device. Unit is ms.
|
||||||
|
minimum: 10
|
||||||
|
maximum: 1280
|
||||||
|
default: 1000
|
||||||
|
|
||||||
|
qcom,ires-ua:
|
||||||
|
description: Current resolution for flash LED device. Unit is uA.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
enum: [ 5000, 12500 ]
|
||||||
|
|
||||||
|
qcom,strobe-sel:
|
||||||
|
description: Strobe type selection for flash LED device. 0 for
|
||||||
|
SW strobe and 1 for HW strobe. If not specified, SW strobe is used.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
enum: [ 0, 1 ]
|
||||||
|
|
||||||
|
qcom,strobe-config:
|
||||||
|
description: Strobe input selection for flash LED device. Each
|
||||||
|
flash LED device has independently connected HW strobe inputs
|
||||||
|
(GPIO1, GPIO2, GPIO3, GPIO4). This is applicable only when HW
|
||||||
|
strobe is selected.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
enum: [ 0, 1, 2, 3 ]
|
||||||
|
|
||||||
|
required:
|
||||||
|
- label
|
||||||
|
- qcom,led-name
|
||||||
|
- qcom,default-led-trigger
|
||||||
|
- qcom,id
|
||||||
|
- qcom,max-current-ma
|
||||||
|
|
||||||
|
'^qcom,torch_[0-9]$':
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
label:
|
||||||
|
description: Specifies type of LED that will be used.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/string-array
|
||||||
|
const: torch
|
||||||
|
|
||||||
|
qcom,led-name:
|
||||||
|
description: Specifies the name of the torch device.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/string
|
||||||
|
|
||||||
|
qcom,id:
|
||||||
|
description: Specifies the LED channel number for torch device.
|
||||||
|
It depends on hardware and starts with an index 0.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
enum: [ 0, 1, 2, 3 ]
|
||||||
|
|
||||||
|
qcom,default-led-trigger:
|
||||||
|
description: Trigger for torch device.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/string
|
||||||
|
|
||||||
|
qcom,max-current-ma:
|
||||||
|
description: Maximum current allowed for torch device.
|
||||||
|
Unit is mA.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
minimum: 0
|
||||||
|
maximum: 500
|
||||||
|
default: 500
|
||||||
|
|
||||||
|
qcom,ires-ua:
|
||||||
|
description: Current resolution for torch device. Unit is uA.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
enum: [ 5000, 12500 ]
|
||||||
|
|
||||||
|
qcom,strobe-sel:
|
||||||
|
description: Strobe type selection for torch device. 0 for SW
|
||||||
|
strobe and 1 for HW strobe. If not specified, SW strobe is
|
||||||
|
used.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
enum: [ 0, 1 ]
|
||||||
|
|
||||||
|
qcom,strobe-config:
|
||||||
|
description: Strobe input selection for torch device. Each
|
||||||
|
torch device has independently connected HW strobe inputs
|
||||||
|
(GPIO1, GPIO2, GPIO3, GPIO4). This is applicable only when
|
||||||
|
HW strobe is selected.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
enum: [ 0, 1, 2, 3 ]
|
||||||
|
|
||||||
|
required:
|
||||||
|
- label
|
||||||
|
- qcom,led-name
|
||||||
|
- qcom,default-led-trigger
|
||||||
|
- qcom,id
|
||||||
|
- qcom,max-current-ma
|
||||||
|
|
||||||
|
'^qcom,switch_[0-9]$':
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
label:
|
||||||
|
description: Specifies type of LED that will be used.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/string-array
|
||||||
|
const: switch
|
||||||
|
|
||||||
|
qcom,led-name:
|
||||||
|
description: Specifies the name of the switch device.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/string
|
||||||
|
|
||||||
|
qcom,id:
|
||||||
|
description: Specifies the number of switch device.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
enum: [ 0, 1 ]
|
||||||
|
|
||||||
|
qcom,default-led-trigger:
|
||||||
|
description: Trigger for switch device.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/string
|
||||||
|
|
||||||
|
qcom,led-mask:
|
||||||
|
description: Bit mask indicating group of LEDs that are controlled
|
||||||
|
by the switch device. It depends on the number of LED channels
|
||||||
|
present on the LED peripheral.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
|
||||||
|
qcom,symmetry-en:
|
||||||
|
description: Specify if the flash LEDs under a switch device are
|
||||||
|
controlled symmetrically. This is specified if a group of LED
|
||||||
|
channels are connected to single LED.
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
required:
|
||||||
|
- label
|
||||||
|
- qcom,led-name
|
||||||
|
- qcom,default-led-trigger
|
||||||
|
- qcom,led-mask
|
||||||
|
|
||||||
|
'^qcom,indicator_[0-9]$':
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
label:
|
||||||
|
description: Specifies type of LED that will be used.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/string-array
|
||||||
|
const: indicator
|
||||||
|
|
||||||
|
qcom,led-name:
|
||||||
|
description: Specifies the name of indicator LED device.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/string
|
||||||
|
|
||||||
|
qcom,id:
|
||||||
|
description: Specifies the LED channel number for indicator LED device.
|
||||||
|
It depends on hardware and starts with an index 0.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
enum: [ 0, 1, 2, 3 ]
|
||||||
|
|
||||||
|
qcom,max-current-ma:
|
||||||
|
description: Maximum current allowed for indicator LED device. Unit is mA.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
minimum: 0
|
||||||
|
maximum: 100
|
||||||
|
|
||||||
|
qcom,ires-ua:
|
||||||
|
description: Current resolution for indicator LED device. Unit is uA.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
const: 5000
|
||||||
|
|
||||||
|
required:
|
||||||
|
- label
|
||||||
|
- qcom,led-name
|
||||||
|
- qcom,id
|
||||||
|
- qcom,max-current-ma
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
#include <dt-bindings/spmi/spmi.h>
|
||||||
|
|
||||||
|
qcom,pm8550@1 {
|
||||||
|
reg = <0x1 SPMI_USID>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
qcom,leds@ee00 {
|
||||||
|
compatible = "qcom,qti-pm8350c-flash-led";
|
||||||
|
reg = <0xee00>;
|
||||||
|
interrupts = <0x1 0xee 0x0 IRQ_TYPE_EDGE_RISING>,
|
||||||
|
<0x1 0xee 0x3 IRQ_TYPE_EDGE_RISING>,
|
||||||
|
<0x1 0xee 0x4 IRQ_TYPE_EDGE_RISING>;
|
||||||
|
interrupt-names = "led-fault-irq",
|
||||||
|
"all-ramp-down-done-irq",
|
||||||
|
"all-ramp-up-done-irq";
|
||||||
|
qcom,thermal-derate-current = <200 500>;
|
||||||
|
|
||||||
|
qcom,flash_0 {
|
||||||
|
label = "flash";
|
||||||
|
qcom,led-name = "led:flash_0";
|
||||||
|
qcom,max-current-ma = <1500>;
|
||||||
|
qcom,default-led-trigger = "flash0_trigger";
|
||||||
|
qcom,id = <0>;
|
||||||
|
qcom,duration-ms = <1280>;
|
||||||
|
qcom,ires-ua = <12500>;
|
||||||
|
qcom,strobe-sel = <1>;
|
||||||
|
qcom,strobe-config = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
qcom,flash_1 {
|
||||||
|
label = "flash";
|
||||||
|
qcom,led-name = "led:flash_1";
|
||||||
|
qcom,max-current-ma = <1500>;
|
||||||
|
qcom,default-led-trigger = "flash1_trigger";
|
||||||
|
qcom,id = <1>;
|
||||||
|
qcom,duration-ms = <1280>;
|
||||||
|
qcom,ires-ua = <12500>;
|
||||||
|
};
|
||||||
|
|
||||||
|
qcom,flash_2 {
|
||||||
|
label = "flash";
|
||||||
|
qcom,led-name = "led:flash_2";
|
||||||
|
qcom,max-current-ma = <1500>;
|
||||||
|
qcom,default-led-trigger = "flash2_trigger";
|
||||||
|
qcom,id = <2>;
|
||||||
|
qcom,duration-ms = <1280>;
|
||||||
|
qcom,ires-ua = <12500>;
|
||||||
|
};
|
||||||
|
|
||||||
|
qcom,flash_3 {
|
||||||
|
label = "flash";
|
||||||
|
qcom,led-name = "led:flash_3";
|
||||||
|
qcom,max-current-ma = <1500>;
|
||||||
|
qcom,default-led-trigger = "flash3_trigger";
|
||||||
|
qcom,id = <3>;
|
||||||
|
qcom,duration-ms = <1280>;
|
||||||
|
qcom,ires-ua = <12500>;
|
||||||
|
};
|
||||||
|
|
||||||
|
qcom,torch_0 {
|
||||||
|
label = "torch";
|
||||||
|
qcom,led-name = "led:torch_0";
|
||||||
|
qcom,max-current-ma = <500>;
|
||||||
|
qcom,default-led-trigger = "torch0_trigger";
|
||||||
|
qcom,id = <0>;
|
||||||
|
qcom,ires-ua = <12500>;
|
||||||
|
qcom,strobe-sel = <1>;
|
||||||
|
qcom,strobe-config = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
qcom,torch_1 {
|
||||||
|
label = "torch";
|
||||||
|
qcom,led-name = "led:torch_1";
|
||||||
|
qcom,max-current-ma = <500>;
|
||||||
|
qcom,default-led-trigger = "torch1_trigger";
|
||||||
|
qcom,id = <1>;
|
||||||
|
qcom,ires-ua = <12500>;
|
||||||
|
};
|
||||||
|
|
||||||
|
qcom,torch_2 {
|
||||||
|
label = "torch";
|
||||||
|
qcom,led-name = "led:torch_2";
|
||||||
|
qcom,max-current-ma = <500>;
|
||||||
|
qcom,default-led-trigger = "torch2_trigger";
|
||||||
|
qcom,id = <2>;
|
||||||
|
qcom,ires-ua = <12500>;
|
||||||
|
};
|
||||||
|
|
||||||
|
qcom,torch_3 {
|
||||||
|
label = "torch";
|
||||||
|
qcom,led-name = "led:torch_3";
|
||||||
|
qcom,max-current-ma = <500>;
|
||||||
|
qcom,default-led-trigger = "torch3_trigger";
|
||||||
|
qcom,id = <3>;
|
||||||
|
qcom,ires-ua = <12500>;
|
||||||
|
};
|
||||||
|
|
||||||
|
qcom,switch_0 {
|
||||||
|
label = "switch";
|
||||||
|
qcom,led-name = "led:switch_0";
|
||||||
|
qcom,led-mask = <9>; /* Channels 1 & 4 */
|
||||||
|
qcom,default-led-trigger = "switch0_trigger";
|
||||||
|
qcom,symmetry-en;
|
||||||
|
};
|
||||||
|
|
||||||
|
qcom,switch_1 {
|
||||||
|
label = "switch";
|
||||||
|
qcom,led-name = "led:switch_1";
|
||||||
|
qcom,led-mask = <6>; /* Channels 2 & 3 */
|
||||||
|
qcom,default-led-trigger = "switch1_trigger";
|
||||||
|
qcom,symmetry-en;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
- |
|
||||||
|
qcom,pm8550@1 {
|
||||||
|
reg = <0x1 SPMI_USID>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
qcom,leds@ee00 {
|
||||||
|
compatible = "qcom,qti-pm8350c-flash-led";
|
||||||
|
reg = <0xee00>;
|
||||||
|
interrupts = <0x1 0xee 0x0 IRQ_TYPE_EDGE_RISING>,
|
||||||
|
<0x1 0xee 0x3 IRQ_TYPE_EDGE_RISING>,
|
||||||
|
<0x1 0xee 0x4 IRQ_TYPE_EDGE_RISING>;
|
||||||
|
interrupt-names = "led-fault-irq",
|
||||||
|
"all-ramp-down-done-irq",
|
||||||
|
"all-ramp-up-done-irq";
|
||||||
|
|
||||||
|
qcom,indicator_0 {
|
||||||
|
label = "indicator";
|
||||||
|
qcom,id = <0>;
|
||||||
|
qcom,led-name = "led:white";
|
||||||
|
qcom,max-current-ma = <20>;
|
||||||
|
qcom,ires-ua = <5000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
qcom,indicator_1 {
|
||||||
|
label = "indicator";
|
||||||
|
qcom,id = <1>;
|
||||||
|
qcom,led-name = "led:red";
|
||||||
|
qcom,max-current-ma = <5>;
|
||||||
|
qcom,ires-ua = <5000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
qcom,indicator_2 {
|
||||||
|
label = "indicator";
|
||||||
|
qcom,id = <2>;
|
||||||
|
qcom,led-name = "led:green";
|
||||||
|
qcom,max-current-ma = <5>;
|
||||||
|
qcom,ires-ua = <5000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
qcom,indicator_3 {
|
||||||
|
label = "indicator";
|
||||||
|
qcom,id = <3>;
|
||||||
|
qcom,led-name = "led:blue";
|
||||||
|
qcom,max-current-ma = <5>;
|
||||||
|
qcom,ires-ua = <5000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
...
|
Reference in New Issue
Block a user