Hi, On Mon, 14 Sep 2020 18:54:43 -0600 Rob Herring <robh@xxxxxxxxxx> wrote: > On Sat, Sep 05, 2020 at 03:32:24PM +0200, Jonathan Neuschäfer wrote: > > The Netronix embedded controller as found in Kobo Aura and Tolino Shine > > supports one PWM channel, which is used to control the frontlight > > brightness on these devices. > > > > Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@xxxxxxx> > > --- > > > > v2: > > - Add plaintext binding to patch description, for comparison > > - Fix pwm-cells property (should be 2, not 1) > > - Add dummy regulator to example, because the pwm-backlight binding requires a > > power supply > > > > > > For reference, here is the binding in text form: > > > > > > PWM functionality in Netronix Embedded Controller > > > > Required properties: > > - compatible: should be "netronix,ntxec-pwm" > > - #pwm-cells: should be 2. > > > > Available PWM channels: > > - 0: The PWM channel controlled by registers 0xa1-0xa7 > > > > Example: > > > > embedded-controller@43 { > > compatible = "netronix,ntxec"; > > ... > > > > ec_pwm: pwm { > > compatible = "netronix,ntxec-pwm"; > > #pwm-cells = <1>; > > }; > > }; > > > > ... > > > > backlight { > > compatible = "pwm-backlight"; > > pwms = <&ec_pwm 0 50000>; > > }; > > --- > > .../bindings/mfd/netronix,ntxec.yaml | 19 +++++++++++ > > .../bindings/pwm/netronix,ntxec-pwm.yaml | 33 +++++++++++++++++++ > > 2 files changed, 52 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/pwm/netronix,ntxec-pwm.yaml > > > > diff --git a/Documentation/devicetree/bindings/mfd/netronix,ntxec.yaml b/Documentation/devicetree/bindings/mfd/netronix,ntxec.yaml > > index 596df460f98eb..73c873dda3e70 100644 > > --- a/Documentation/devicetree/bindings/mfd/netronix,ntxec.yaml > > +++ b/Documentation/devicetree/bindings/mfd/netronix,ntxec.yaml > > @@ -31,6 +31,9 @@ properties: > > description: > > The EC can signal interrupts via a GPIO line > > > > + pwm: > > + $ref: ../pwm/netronix,ntxec-pwm.yaml > > + > > required: > > - compatible > > - reg > > @@ -53,5 +56,21 @@ examples: > > interrupts = <11 IRQ_TYPE_EDGE_FALLING>; > > interrupt-controller; > > #interrupt-cells = <1>; > > + > > + ec_pwm: pwm { > > + compatible = "netronix,ntxec-pwm"; > > + #pwm-cells = <2>; > > + }; > > }; > > }; > > + > > + backlight { > > + compatible = "pwm-backlight"; > > + pwms = <&ec_pwm 0 50000>; > > + power-supply = <&backlight_regulator>; > > + }; > > + > > + backlight_regulator: regulator-dummy { > > + compatible = "regulator-fixed"; > > + regulator-name = "backlight"; > > + }; > > diff --git a/Documentation/devicetree/bindings/pwm/netronix,ntxec-pwm.yaml b/Documentation/devicetree/bindings/pwm/netronix,ntxec-pwm.yaml > > new file mode 100644 > > index 0000000000000..0c9d2801b8de1 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/pwm/netronix,ntxec-pwm.yaml > > @@ -0,0 +1,33 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/pwm/netronix,ntxec-pwm.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: PWM functionality in Netronix embedded controller > > + > > +maintainers: > > + - Jonathan Neuschäfer <j.neuschaefer@xxxxxxx> > > + > > +description: | > > + See also Documentation/devicetree/bindings/mfd/netronix,ntxec.yaml > > + > > + The Netronix EC contains PWM functionality, which is usually used to drive > > + the backlight LED. > > + > > + The following PWM channels are supported: > > + - 0: The PWM channel controlled by registers 0xa1-0xa7 > > + > > +allOf: > > + - $ref: pwm.yaml# > > + > > +properties: > > + compatible: > > + const: netronix,ntxec-pwm > > + > > + "#pwm-cells": > > + const: 2 > > Just move this to the parent and make the parent a pwm provider. There's > no need for child nodes for this or the rtc. > hmm, there are apparently devices without rtc. If there is a child node for the rtc, the corresponding devicetrees could disable rtc by not having that node. But maybe using the controller version is also feasible for that task. Regards, Andreas