Add binding document for flash LED module inside Qualcomm Technologies, Inc. PMICs. Signed-off-by: Fenglin Wu <quic_fenglinw@xxxxxxxxxxx> --- .../bindings/leds/qcom,spmi-flash-led.yaml | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 Documentation/devicetree/bindings/leds/qcom,spmi-flash-led.yaml diff --git a/Documentation/devicetree/bindings/leds/qcom,spmi-flash-led.yaml b/Documentation/devicetree/bindings/leds/qcom,spmi-flash-led.yaml new file mode 100644 index 000000000000..3ab1113a7b28 --- /dev/null +++ b/Documentation/devicetree/bindings/leds/qcom,spmi-flash-led.yaml @@ -0,0 +1,120 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/leds/qcom,spmi-flash-led.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Flash LED device inside Qualcomm Technologies, Inc. PMICs + +maintainers: + - Fenglin Wu <quic_fenglinw@xxxxxxxxxxx> + +description: | + Flash LED controller is present inside some Qualcomm Technologies, Inc. PMICs. + The flash LED module can have different number of LED channels supported + e.g. 3 or 4. There are some different registers between them but they can + both support maximum current up to 1.5 A per channel and they can also support + ganging 2 channels together to supply maximum current up to 2 A. The current + will be split symmetrically on each channel and they will be enabled and + disabled at the same time. + +properties: + compatible: + items: + - enum: + - qcom,pm8150c-flash-led + - qcom,pm8150l-flash-led + - qcom,pm8350c-flash-led + - const: qcom,spmi-flash-led + reg: + description: address offset of the flash LED controller + maxItems: 1 + +patternProperties: + "^led[0-3]$": + type: object + $ref: common.yaml# + unevaluatedProperties: false + description: | + Represents the physical LED components which are connected to the + flash LED channels' output. + + properties: + led-sources: + description: | + The HW indices of the flash LED channels that connect to the + physical LED + allOf: + - minItems: 1 + maxItems: 2 + items: + enum: [1, 2, 3, 4] + + led-max-microamp: + description: | + The maximum current value when LED is not operating in flash mode (i.e. torch mode) + Valid values when an LED is connected to one flash LED channel: + 5000 - 500000, step by 5000 + Valid values when an LED is connected to two flash LED channels: + 10000 - 1000000, step by 10000 + minimum: 5000 + maximum: 1000000 + + flash-max-microamp: + description: | + The maximum current value when LED is operating in flash mode. + Valid values when an LED is connected to one flash LED channel: + 12500 - 1500000, step by 12500 + Valid values when an LED is connected to two flash LED channels: + 25000 - 2000000, step by 12500 + minimum: 12500 + maximum: 2000000 + + flash-max-timeout-us: + description: | + The maximum timeout value when LED is operating in flash mode. + Valid values: 10000 - 1280000, step by 10000 + minimum: 10000 + maximum: 1280000 + + required: + - led-sources + - led-max-microamp + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + #include <dt-bindings/leds/common.h> + spmi_bus { + #address-cells = <1>; + #size-cells = <0>; + led-controller@ee00 { + compatible = "qcom,pm8350c-flash-led", "qcom,spmi-flash-led"; + reg = <0xee00>; + + led0 { + function = LED_FUNCTION_FLASH; + color = <LED_COLOR_ID_WHITE>; + led-sources = <1>, <4>; + led-max-microamp = <300000>; + flash-max-microamp = <2000000>; + flash-max-timeout-us = <1280000>; + function-enumerator = <0>; + }; + + led1 { + function = LED_FUNCTION_FLASH; + color = <LED_COLOR_ID_YELLOW>; + led-sources = <2>, <3>; + led-max-microamp = <300000>; + flash-max-microamp = <2000000>; + flash-max-timeout-us = <1280000>; + function-enumerator = <1>; + }; + }; + }; -- 2.25.1