All of lore.kernel.org
 help / color / mirror / Atom feed
From: Billy Tsai <billy_tsai@aspeedtech.com>
To: Rob Herring <robh@kernel.org>
Cc: "lee.jones@linaro.org" <lee.jones@linaro.org>,
	"joel@jms.id.au" <joel@jms.id.au>,
	"andrew@aj.id.au" <andrew@aj.id.au>,
	"thierry.reding@gmail.com" <thierry.reding@gmail.com>,
	"u.kleine-koenig@pengutronix.de" <u.kleine-koenig@pengutronix.de>,
	"p.zabel@pengutronix.de" <p.zabel@pengutronix.de>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"linux-aspeed@lists.ozlabs.org" <linux-aspeed@lists.ozlabs.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-pwm@vger.kernel.org" <linux-pwm@vger.kernel.org>,
	BMC-SW <BMC-SW@aspeedtech.com>
Subject: Re: [v2 1/2] dt-bindings: Add bindings for aspeed pwm-tach and pwm.
Date: Thu, 15 Apr 2021 03:44:29 +0000	[thread overview]
Message-ID: <B9287FE7-5EF5-40B3-BCB3-08DA11D6CDD7@aspeedtech.com> (raw)
In-Reply-To: <20210414221553.GA56046@robh.at.kernel.org>

Hi Rob,

On 2021/4/15, 6:16 AM,Rob Herringwrote:

    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@aspeedtech.com>
    >> 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 

Our PWM is not only for fans but also used for the motor, led, buzzer, and so on. 
So I want to split the function into two devices with a multi-function device. 
One for PWM output and one for tach monitor.

    > other existing PWM+tach bindings we have for fans.

I didn't see the PWM+tach bindings can you give some example for me, thanks.

    >> +
    >> +maintainers:
    >> +  - Billy Tsai <billy_tsai@aspeedtech.com>
    >> +
    >> +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.

Our pwm and tach is used the same base address and the offset is like below:

PWM0 used 0x0 0x4, Tach0 used 0x8 0xc
PWM1 used 0x10 0x14, Tach1 used 0x18 0x1c
...

I will remove the reg property from pwm and tach node and remove the "#address-cells" and
"#size-cells" from the parent node.

    >> +      };

    > There's no real need for 2 child nodes. The parent node can be a PWM 
    > provider.

However, In our usage, the parent node is a mfd, not a simple PWM device only. I don't want to
combine the different functions with the one device node.


    >> +    };
    >> 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@aspeedtech.com>
    >> +
    >> +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
    >>


  reply	other threads:[~2021-04-15  3:44 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-14 10:49 [v2 0/2] Support pwm driver for aspeed ast26xx Billy Tsai
2021-04-14 10:49 ` Billy Tsai
2021-04-14 10:49 ` [v2 1/2] dt-bindings: Add bindings for aspeed pwm-tach and pwm Billy Tsai
2021-04-14 10:49   ` Billy Tsai
2021-04-14 14:50   ` Rob Herring
2021-04-14 14:50     ` Rob Herring
2021-04-14 22:15   ` Rob Herring
2021-04-14 22:15     ` Rob Herring
2021-04-15  3:44     ` Billy Tsai [this message]
2021-04-15 14:43       ` Rob Herring
2021-04-15 14:43         ` Rob Herring
2021-04-16  8:44         ` Billy Tsai
2021-04-16  8:44           ` Billy Tsai
2021-04-14 10:49 ` [v2 2/2] pwm: Add Aspeed ast2600 PWM support Billy Tsai
2021-04-14 10:49   ` Billy Tsai
2021-04-26 20:43   ` Uwe Kleine-König
2021-04-26 20:43     ` Uwe Kleine-König
2021-05-03  4:42     ` Billy Tsai
2021-05-03  4:42       ` Billy Tsai
2021-05-03  5:57       ` Billy Tsai
2021-05-03  5:57         ` Billy Tsai
2021-05-03  6:23         ` Uwe Kleine-König
2021-05-03  6:23           ` Uwe Kleine-König
2021-05-03  6:10       ` Uwe Kleine-König
2021-05-03  6:10         ` Uwe Kleine-König

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=B9287FE7-5EF5-40B3-BCB3-08DA11D6CDD7@aspeedtech.com \
    --to=billy_tsai@aspeedtech.com \
    --cc=BMC-SW@aspeedtech.com \
    --cc=andrew@aj.id.au \
    --cc=devicetree@vger.kernel.org \
    --cc=joel@jms.id.au \
    --cc=lee.jones@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-aspeed@lists.ozlabs.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=p.zabel@pengutronix.de \
    --cc=robh@kernel.org \
    --cc=thierry.reding@gmail.com \
    --cc=u.kleine-koenig@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.