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 >