Re: [v2 1/2] dt-bindings: Add bindings for aspeed pwm-tach and pwm.
From: Rob Herring
Date: Wed Apr 14 2021 - 18:15:58 EST
On Wed, Apr 14, 2021 at 06:49:38PM +0800, Billy Tsai wrote:
> This patch adds device bindings for aspeed pwm-tach device which is a
> multi-function device include pwn and tach function and pwm device which
> should be the sub-node of pwm-tach device.
>
> Signed-off-by: Billy Tsai <billy_tsai@xxxxxxxxxxxxxx>
> Change-Id: I18d9dea14c3a04e1b7e38ffecd49d45917b9b545
Drop
> ---
> .../bindings/mfd/aspeed,ast2600-pwm-tach.yaml | 60 +++++++++++++++++++
> .../bindings/pwm/aspeed,ast2600-pwm.yaml | 44 ++++++++++++++
> 2 files changed, 104 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/mfd/aspeed,ast2600-pwm-tach.yaml
> create mode 100644 Documentation/devicetree/bindings/pwm/aspeed,ast2600-pwm.yaml
>
> diff --git a/Documentation/devicetree/bindings/mfd/aspeed,ast2600-pwm-tach.yaml b/Documentation/devicetree/bindings/mfd/aspeed,ast2600-pwm-tach.yaml
> new file mode 100644
> index 000000000000..eaf8bdf8d44e
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/aspeed,ast2600-pwm-tach.yaml
> @@ -0,0 +1,60 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +# Copyright (C) 2021 ASPEED, Inc.
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mfd/aspeed,ast2600-pwm-tach.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: PWM Tach controller Device Tree Bindings
> +
> +description: |
> + The PWM Tach controller is represented as a multi-function device which
> + includes:
> + PWM
> + Tach
But is it really? A PWM and tach sounds like a fan controller. Look at
other existing PWM+tach bindings we have for fans.
> +
> +maintainers:
> + - Billy Tsai <billy_tsai@xxxxxxxxxxxxxx>
> +
> +properties:
> + compatible:
> + items:
> + - enum:
> + - aspeed,ast2600-pwm-tach
> + - const: syscon
> + - const: simple-mfd
> + reg:
> + maxItems: 1
> + "#address-cells":
> + const: 1
> + "#size-cells":
> + const: 1
> +
> +required:
> + - compatible
> + - reg
> + - "#address-cells"
> + - "#size-cells"
> +
> +additionalProperties:
> + type: object
As you know the 2 node names, they should be documented. However, see
below.
> +
> +examples:
> + - |
> + pwm_tach: pwm_tach@1e610000 {
> + compatible = "aspeed,ast2600-pwm-tach", "syscon", "simple-mfd";
> + #address-cells = <1>;
> + #size-cells = <1>;
> + reg = <0x1e610000 0x100>;
> +
> + pwm: pwm@0 {
> + compatible = "aspeed,ast2600-pwm";
> + #pwm-cells = <3>;
> + reg = <0x0 0x100>;
> + };
> +
> + tach: tach@1 {
> + compatible = "aspeed,ast2600-tach";
> + reg = <0x0 0x100>;
You have 2 nodes at the same address. Not valid.
> + };
There's no real need for 2 child nodes. The parent node can be a PWM
provider.
> + };
> diff --git a/Documentation/devicetree/bindings/pwm/aspeed,ast2600-pwm.yaml b/Documentation/devicetree/bindings/pwm/aspeed,ast2600-pwm.yaml
> new file mode 100644
> index 000000000000..97923e68ccb9
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pwm/aspeed,ast2600-pwm.yaml
> @@ -0,0 +1,44 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +# Copyright (C) 2021 ASPEED, Inc.
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/pwm/aspeed,ast2600-pwm.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: ASPEED AST2600 PWM controller
> +
> +maintainers:
> + - Billy Tsai <billy_tsai@xxxxxxxxxxxxxx>
> +
> +description: |
> + The ASPEED PWM controller can support upto 16 PWM outputs.
> +
> +properties:
> + compatible:
> + enum:
> + - aspeed,ast2600-pwm
> +
> + "#pwm-cells":
> + const: 3
> +
> + reg:
> + maxItems: 1
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + // The PWM should be a subnode of a "aspeed,ast2600-pwm-tach" compatible
> + // node.
> + pwm_tach: pwm_tach@1e610000 {
> + compatible = "aspeed,ast2600-pwm-tach", "syscon", "simple-mfd";
> + #address-cells = <1>;
> + #size-cells = <1>;
> + reg = <0x1e610000 0x100>;
> +
> + pwm: pwm@0 {
> + compatible = "aspeed,ast2600-pwm";
> + #pwm-cells = <3>;
> + reg = <0x0 0x100>;
> + };
> + };
> --
> 2.25.1
>