diff mbox series

[v1,2/2] dt-bindings: add bindings for QCOM flash LED

Message ID 20220928024239.3843909-3-quic_fenglinw@quicinc.com
State Superseded
Headers show
Series [v1,1/2] leds: flash: add driver to support flash LED module in QCOM PMICs | expand

Commit Message

Fenglin Wu Sept. 28, 2022, 2:42 a.m. UTC
Add binding document for flash LED module inside Qualcomm Technologies,
Inc. PMICs.

Signed-off-by: Fenglin Wu <quic_fenglinw@quicinc.com>
---
 .../bindings/leds/leds-qcom-flash.yaml        | 108 ++++++++++++++++++
 1 file changed, 108 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/leds/leds-qcom-flash.yaml
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/leds/leds-qcom-flash.yaml b/Documentation/devicetree/bindings/leds/leds-qcom-flash.yaml
new file mode 100644
index 000000000000..52a99182961b
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/leds-qcom-flash.yaml
@@ -0,0 +1,108 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/leds-qcom-flash.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Flash LED device inside Qualcomm Technologies, Inc. PMICs
+
+maintainers:
+  - Fenglin Wu <quic_fenglinw@quicinc.com>
+
+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,spmi-flash-led
+          - qcom,pm8150c-flash-led
+          - qcom,pm8150l-flash-led
+          - qcom,pm8350c-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
+
+      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
+
+      flash-max-timeout-us:
+        description: |
+          The maximum timeout value when LED is operating in flash mode.
+          Valid values: 10000 - 1280000, step by 10000
+
+    required:
+      - led-sources
+      - led-max-microamp
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/leds/common.h>
+    flash-led@ee00 {
+            compatible = "qcom,spmi-flash-led";
+            reg = <0xee00>;
+
+            led@0 {
+                    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>;
+            };
+
+            led@1 {
+                    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>;
+            };
+    };