From: Pengyu Luo <mitltlatltl@gmail.com>
Add Awinic AW99706 backlight binding documentation.
Signed-off-by: Junjie Cao <caojunjie650@gmail.com>
---
Changes in v2:
- use proper units for properties (Krzysztof)
- drop non-fixed properties (Krzysztof)
- add properties(max-brightness, default-brightness) (Krzysztof)
- Link to v1: https://lore.kernel.org/linux-leds/20251026123923.1531727-2-caojunjie650@gmail.com
.../leds/backlight/awinic,aw99706.yaml | 100 ++++++++++++++++++
1 file changed, 100 insertions(+)
create mode 100644 Documentation/devicetree/bindings/leds/backlight/awinic,aw99706.yaml
diff --git a/Documentation/devicetree/bindings/leds/backlight/awinic,aw99706.yaml b/Documentation/devicetree/bindings/leds/backlight/awinic,aw99706.yaml
new file mode 100644
index 000000000..9b7266e61
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/backlight/awinic,aw99706.yaml
@@ -0,0 +1,100 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/backlight/awinic,aw99706.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Awinic AW99706 6-channel WLED Backlight Driver
+
+maintainers:
+ - Junjie Cao <caojunjie650@gmail.com>
+
+allOf:
+ - $ref: common.yaml#
+
+properties:
+ compatible:
+ const: awinic,aw99706
+
+ reg:
+ maxItems: 1
+
+ enable-gpios:
+ description: GPIO to use to enable/disable the backlight (HWEN pin).
+ maxItems: 1
+
+ awinic,dim-mode:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: >
+ Select dimming mode of the device.
+ 0 = Bypass mode.
+ 1 = DC mode.
+ 2 = MIX mode(PWM at low brightness and DC at high brightness).
+ 3 = MIX-26k mode(MIX mode with different PWM frequency).
+ enum: [ 0, 1, 2, 3 ]
+ default: 1
+
+ awinic,sw-freq-hz:
+ description: Boost switching frequency in Hz.
+ enum: [ 300000, 400000, 500000, 600000, 660000, 750000, 850000, 1000000, 1200000, 1330000, 1500000, 1700000 ]
+ default: 750000
+
+ awinic,sw-ilmt-microamp:
+ description: Switching current limitation in uA.
+ enum: [ 1500000, 2000000, 2500000, 3000000 ]
+ default: 3000000
+
+ awinic,iled-max-microamp:
+ description: Maximum LED current setting in uA.
+ minimum: 5000
+ maximum: 50000
+ multipleOf: 500
+ default: 20000
+
+ awinic,uvlo-thres-microvolt:
+ description: UVLO(Under Voltage Lock Out) in uV.
+ enum: [ 2200000, 5000000 ]
+ default: 2200000
+
+ awinic,ramp-ctl:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: >
+ Select ramp control and filter of the device.
+ 0 = Fade in/fade out.
+ 1 = Light filter.
+ 2 = Medium filter.
+ 3 = Heavy filter.
+ enum: [ 0, 1, 2, 3 ]
+ default: 2
+
+required:
+ - compatible
+ - reg
+ - enable-gpios
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ aw99706@76 {
+ compatible = "awinic,aw99706";
+ reg = <0x76>;
+ enable-gpios = <&tlmm 88 GPIO_ACTIVE_HIGH>;
+ default-brightness = <2047>;
+ max-brightness = <4095>;
+ awinic,dim-mode = <1>;
+ awinic,sw-freq-hz = <750000>;
+ awinic,sw-ilmt-microamp = <3000000>;
+ awinic,uvlo-thres-microvolt = <2200000>;
+ awinic,iled-max-microamp = <20000>;
+ awinic,ramp-ctl = <2>;
+ };
+ };
+
+...
--
2.51.1.dirty
On Mon, Nov 03, 2025 at 07:06:47PM +0800, Junjie Cao wrote:
> From: Pengyu Luo <mitltlatltl@gmail.com>
>
> Add Awinic AW99706 backlight binding documentation.
>
> Signed-off-by: Junjie Cao <caojunjie650@gmail.com>
Messed DCO chain. This wasn't here, so you must have altered v1 to add
some weird change.
This is a blocker, please read carefully submitting patches and DCO.
> ---
> Changes in v2:
> - use proper units for properties (Krzysztof)
> - drop non-fixed properties (Krzysztof)
> - add properties(max-brightness, default-brightness) (Krzysztof)
> - Link to v1: https://lore.kernel.org/linux-leds/20251026123923.1531727-2-caojunjie650@gmail.com
...
> + awinic,dim-mode:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: >
> + Select dimming mode of the device.
> + 0 = Bypass mode.
> + 1 = DC mode.
> + 2 = MIX mode(PWM at low brightness and DC at high brightness).
> + 3 = MIX-26k mode(MIX mode with different PWM frequency).
> + enum: [ 0, 1, 2, 3 ]
> + default: 1
> +
> + awinic,sw-freq-hz:
> + description: Boost switching frequency in Hz.
> + enum: [ 300000, 400000, 500000, 600000, 660000, 750000, 850000, 1000000, 1200000, 1330000, 1500000, 1700000 ]
Please wrap code according to the preferred limit expressed in Kernel
coding style (checkpatch is not a coding style description, but only a
tool).
> + default: 750000
> +
> + awinic,sw-ilmt-microamp:
> + description: Switching current limitation in uA.
> + enum: [ 1500000, 2000000, 2500000, 3000000 ]
> + default: 3000000
> +
> + awinic,iled-max-microamp:
> + description: Maximum LED current setting in uA.
> + minimum: 5000
> + maximum: 50000
> + multipleOf: 500
> + default: 20000
> +
> + awinic,uvlo-thres-microvolt:
> + description: UVLO(Under Voltage Lock Out) in uV.
> + enum: [ 2200000, 5000000 ]
> + default: 2200000
> +
> + awinic,ramp-ctl:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: >
> + Select ramp control and filter of the device.
> + 0 = Fade in/fade out.
> + 1 = Light filter.
> + 2 = Medium filter.
> + 3 = Heavy filter.
> + enum: [ 0, 1, 2, 3 ]
> + default: 2
> +
> +required:
> + - compatible
> + - reg
> + - enable-gpios
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> +
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + aw99706@76 {
Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
If you cannot find a name matching your device, please check in kernel
sources for similar cases or you can grow the spec (via pull request to
DT spec repo).
> + compatible = "awinic,aw99706";
> + reg = <0x76>;
> + enable-gpios = <&tlmm 88 GPIO_ACTIVE_HIGH>;
> + default-brightness = <2047>;
> + max-brightness = <4095>;
> + awinic,dim-mode = <1>;
> + awinic,sw-freq-hz = <750000>;
> + awinic,sw-ilmt-microamp = <3000000>;
> + awinic,uvlo-thres-microvolt = <2200000>;
> + awinic,iled-max-microamp = <20000>;
> + awinic,ramp-ctl = <2>;
> + };
> + };
> +
> +...
> --
> 2.51.1.dirty
>
On Tue, Nov 4, 2025 at 3:30 PM Krzysztof Kozlowski <krzk@kernel.org> wrote:
>
> On Mon, Nov 03, 2025 at 07:06:47PM +0800, Junjie Cao wrote:
> > From: Pengyu Luo <mitltlatltl@gmail.com>
> >
> > Add Awinic AW99706 backlight binding documentation.
> >
> > Signed-off-by: Junjie Cao <caojunjie650@gmail.com>
>
> Messed DCO chain. This wasn't here, so you must have altered v1 to add
> some weird change.
>
> This is a blocker, please read carefully submitting patches and DCO.
>
Apologies for the DCO mess.
The tablet device is currently with Pengyu. He helped with testing and
tweaked the .c driver file (patch 2/2) after my change. The entire
series was then re-formatted on his machine, which caused his git
configuration to be incorrectly applied to the From: line of this
dt-binding patch (patch 1/2).
I am the actual author of this dt-binding file. I will correct the
authorship and DCO chain in v2.
> > ---
> > Changes in v2:
> > - use proper units for properties (Krzysztof)
> > - drop non-fixed properties (Krzysztof)
> > - add properties(max-brightness, default-brightness) (Krzysztof)
> > - Link to v1: https://lore.kernel.org/linux-leds/20251026123923.1531727-2-caojunjie650@gmail.com
>
> ...
>
> > + awinic,dim-mode:
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + description: >
> > + Select dimming mode of the device.
> > + 0 = Bypass mode.
> > + 1 = DC mode.
> > + 2 = MIX mode(PWM at low brightness and DC at high brightness).
> > + 3 = MIX-26k mode(MIX mode with different PWM frequency).
> > + enum: [ 0, 1, 2, 3 ]
> > + default: 1
> > +
> > + awinic,sw-freq-hz:
> > + description: Boost switching frequency in Hz.
> > + enum: [ 300000, 400000, 500000, 600000, 660000, 750000, 850000, 1000000, 1200000, 1330000, 1500000, 1700000 ]
>
> Please wrap code according to the preferred limit expressed in Kernel
> coding style (checkpatch is not a coding style description, but only a
> tool).
>
ACK.
> > + default: 750000
> > +
> > + awinic,sw-ilmt-microamp:
> > + description: Switching current limitation in uA.
> > + enum: [ 1500000, 2000000, 2500000, 3000000 ]
> > + default: 3000000
> > +
> > + awinic,iled-max-microamp:
> > + description: Maximum LED current setting in uA.
> > + minimum: 5000
> > + maximum: 50000
> > + multipleOf: 500
> > + default: 20000
> > +
> > + awinic,uvlo-thres-microvolt:
> > + description: UVLO(Under Voltage Lock Out) in uV.
> > + enum: [ 2200000, 5000000 ]
> > + default: 2200000
> > +
> > + awinic,ramp-ctl:
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + description: >
> > + Select ramp control and filter of the device.
> > + 0 = Fade in/fade out.
> > + 1 = Light filter.
> > + 2 = Medium filter.
> > + 3 = Heavy filter.
> > + enum: [ 0, 1, 2, 3 ]
> > + default: 2
> > +
> > +required:
> > + - compatible
> > + - reg
> > + - enable-gpios
> > +
> > +unevaluatedProperties: false
> > +
> > +examples:
> > + - |
> > + #include <dt-bindings/gpio/gpio.h>
> > +
> > + i2c {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + aw99706@76 {
>
> Node names should be generic. See also an explanation and list of
> examples (not exhaustive) in DT specification:
> https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
> If you cannot find a name matching your device, please check in kernel
> sources for similar cases or you can grow the spec (via pull request to
> DT spec repo).
>
I see. backlight@76, thanks for your detailed explanation.
Regards,
Junjie
On Mon, 03 Nov 2025 19:06:47 +0800, Junjie Cao wrote: > From: Pengyu Luo <mitltlatltl@gmail.com> > > Add Awinic AW99706 backlight binding documentation. > > Signed-off-by: Junjie Cao <caojunjie650@gmail.com> > --- > Changes in v2: > - use proper units for properties (Krzysztof) > - drop non-fixed properties (Krzysztof) > - add properties(max-brightness, default-brightness) (Krzysztof) > - Link to v1: https://lore.kernel.org/linux-leds/20251026123923.1531727-2-caojunjie650@gmail.com > > .../leds/backlight/awinic,aw99706.yaml | 100 ++++++++++++++++++ > 1 file changed, 100 insertions(+) > create mode 100644 Documentation/devicetree/bindings/leds/backlight/awinic,aw99706.yaml > My bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: ./Documentation/devicetree/bindings/leds/backlight/awinic,aw99706.yaml:39:111: [warning] line too long (113 > 110 characters) (line-length) dtschema/dtc warnings/errors: doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20251103110648.878325-2-caojunjie650@gmail.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
© 2016 - 2026 Red Hat, Inc.