Re: [PATCH V5 1/4] backlight: qcom-wled: convert the wled bindings to .yaml format

From: Rob Herring
Date: Wed Apr 15 2020 - 11:09:13 EST


On Tue, Apr 07, 2020 at 09:17:07PM +0530, Kiran Gunda wrote:
> Convert the qcom-wled bindings from .txt to .yaml format.
> Also replace PM8941 to WLED3 and PMI8998 to WLED4.
>
> Signed-off-by: Kiran Gunda <kgunda@xxxxxxxxxxxxxx>
> Signed-off-by: Subbaraman Narayanamurthy <subbaram@xxxxxxxxxxxxxx>
> Acked-by: Daniel Thompson <daniel.thompson@xxxxxxxxxx>
> ---
> .../bindings/leds/backlight/qcom-wled.txt | 154 ----------------
> .../bindings/leds/backlight/qcom-wled.yaml | 201 +++++++++++++++++++++
> 2 files changed, 201 insertions(+), 154 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/leds/backlight/qcom-wled.txt
> create mode 100644 Documentation/devicetree/bindings/leds/backlight/qcom-wled.yaml


> diff --git a/Documentation/devicetree/bindings/leds/backlight/qcom-wled.yaml b/Documentation/devicetree/bindings/leds/backlight/qcom-wled.yaml
> new file mode 100644
> index 0000000..770e780
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/leds/backlight/qcom-wled.yaml
> @@ -0,0 +1,201 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/leds/backlight/qcom-wled.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Binding for Qualcomm Technologies, Inc. WLED driver
> +
> +maintainers:
> + - Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>
> + - Kiran Gunda <kgunda@xxxxxxxxxxxxxx>
> +
> +description: |
> + WLED (White Light Emitting Diode) driver is used for controlling display
> + backlight that is part of PMIC on Qualcomm Technologies, Inc. reference
> + platforms. The PMIC is connected to the host processor via SPMI bus.
> +
> +properties:
> + compatible:
> + enum:
> + - qcom,pm8941-wled
> + - qcom,pmi8998-wled
> + - qcom,pm660l-wled
> +
> + reg:
> + maxItems: 1
> +
> + default-brightness:
> + description:
> + brightness value on boot.
> + minimum: 0
> + maximum: 4095
> + default: 2048
> +
> + label: true
> +
> + qcom,cs-out:
> + description:
> + enable current sink output.
> + This property is supported only for WLED3.
> + type: boolean
> +
> + qcom,cabc:
> + description:
> + enable content adaptive backlight control.
> + type: boolean
> +
> + qcom,ext-gen:
> + description:
> + use externally generated modulator signal to dim.
> + This property is supported only for WLED3.
> + type: boolean
> +
> + qcom,current-limit:
> + description:
> + mA; per-string current limit.
> + This property is supported only for WLED3.
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32
> + default: 20
> + minimum: 0
> + maximum: 25
> + multipleOf: 1

No point in defining a multiple of 1.

> +
> + qcom,current-limit-microamp:
> + description:
> + uA; per-string current limit.
> + default: 25
> + minimum: 0
> + maximum: 30000
> + multipleOf: 25
> +
> + qcom,current-boost-limit:
> + description:
> + mA; boost current limit.
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32
> +
> + qcom,switching-freq:
> + description:
> + kHz; switching frequency.
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32
> + - enum: [ 600, 640, 685, 738, 800, 872, 960, 1066, 1200, 1371, 1600, 1920, 2400, 3200, 4800, 9600 ]
> +
> + qcom,ovp:
> + description:
> + V; Over-voltage protection limit.
> + This property is supported only for WLED3.
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32
> + - enum: [ 27, 29, 32, 35 ]
> + - default: 29
> +
> + qcom,ovp-millivolt:
> + description:
> + Over-voltage protection limit. This property is for WLED4 only.
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32
> + - enum: [ 18100, 19600, 29600, 31100 ]
> + - default: 29600
> +
> + qcom,num-strings:
> + description:
> + number of led strings attached.
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32
> +
> + qcom,enabled-strings:
> + description:
> + Array of the WLED strings numbered from 0 to 3. Each
> + string of leds are operated individually. Specify the
> + list of strings used by the device. Any combination of
> + led strings can be used.
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32-array
> + minItems: 1
> + maxItems: 4
> +
> + qcom,external-pfet:
> + description:
> + Specify if external PFET control for short circuit
> + protection is used. This property is supported only
> + for WLED4.
> + type: boolean
> +
> + qcom,auto-string-detection:
> + description:
> + Enables auto-detection of the WLED string configuration.
> + This feature is not supported for WLED3.
> + type: boolean
> +
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: qcom,pm8941-wled
> +
> + then:
> + properties:
> + qcom,current-boost-limit:
> + enum: [ 105, 385, 525, 805, 980, 1260, 1400, 1680 ]
> + default: 805
> +
> + qcom,switching-freq:
> + default: 1600
> +
> + qcom,num-strings:
> + enum: [ 1, 2, 3 ]
> +
> + interrupts:
> + items:
> + - description: over voltage protection interrupt.
> +
> + interrupt-names:
> + items:
> + - const: ovp
> +
> + else:
> + properties:
> + qcom,current-boost-limit:
> + enum: [ 105, 280, 450, 620, 970, 1150, 1300, 1500 ]
> + default: 970
> +
> + qcom,switching-freq:
> + default: 800
> +
> + qcom,num-strings:
> + enum: [ 1, 2, 3, 4 ]
> +
> + interrupts:
> + items:
> + - description: over voltage protection interrupt.
> + - description: short circuit interrupt.
> +
> + interrupt-names:
> + items:
> + - const: ovp
> + - const: short

Move these 2 props to the main section adding a 'minItems: 1'. Then just
define 'minItems: 2' here and 'maxItems: 1' in the 'then' clause.

> +
> +required:
> + - compatible
> + - reg
> + - label

Add:

additionalProperties: false

> +
> +examples:
> + - |
> + backlight@d800 {
> + compatible = "qcom,pm8941-wled";
> + reg = <0xd800 0x100>;
> + label = "backlight";
> +
> + qcom,cs-out;
> + qcom,current-limit = <20>;
> + qcom,current-boost-limit = <805>;
> + qcom,switching-freq = <1600>;
> + qcom,ovp = <29>;
> + qcom,num-strings = <2>;
> + qcom,enabled-strings = <0 1>;
> + };
> --
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> a Linux Foundation Collaborative Project
>