On 28/09/2022 04:42, Fenglin Wu wrote: > Add binding document for flash LED module inside Qualcomm Technologies, > Inc. PMICs. > > Signed-off-by: Fenglin Wu <quic_fenglinw@xxxxxxxxxxx> You did not Cc me on first patch, so difficult to say how much it matches the driver... There is also no DTS. > --- > .../bindings/leds/leds-qcom-flash.yaml | 108 ++++++++++++++++++ > 1 file changed, 108 insertions(+) > create mode 100644 Documentation/devicetree/bindings/leds/leds-qcom-flash.yaml > > 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 Filename matching compatible if there is one fallback (e.g. qcom,spmi-flash-led.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@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,spmi-flash-led > + - qcom,pm8150c-flash-led > + - qcom,pm8150l-flash-led > + - qcom,pm8350c-flash-led I doubt these are all different. You should use fallback, which also will make use of the "items" you used... > + > + 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. Does not look like wrapped at 80. Other places as well. > + > + properties: Does not look like you tested the bindings... You miss here reg. > + 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 You need minimum and maximum. > + > + 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 You need minimum and maximum. > + > + flash-max-timeout-us: > + description: | > + The maximum timeout value when LED is operating in flash mode. > + Valid values: 10000 - 1280000, step by 10000 You need minimum and maximum. > + > + required: > + - led-sources > + - led-max-microamp reg. > + > +required: > + - compatible > + - reg > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/leds/common.h> > + flash-led@ee00 { Node name: led-controller > + compatible = "qcom,spmi-flash-led"; > + reg = <0xee00>; > + > + led@0 { Test your bindings... > + function = LED_FUNCTION_FLASH; Use 4 spaces for indentation of example. > + 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>; > + }; > + Best regards, Krzysztof