[PATCH v2 04/10] dt-bindings: pwm: Add bindings for PWM function in Netronix EC

Rob Herring robh at kernel.org
Mon Sep 14 20:54:43 EDT 2020


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 at gmx.net>
> ---
> 
> 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 at 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 at gmx.net>
> +
> +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.

Rob



More information about the linux-arm-kernel mailing list