From: Rob Herring <robh@kernel.org>
To: Robert Marko <robert.marko@sartura.hr>
Cc: Linus Walleij <linus.walleij@linaro.org>,
Bartosz Golaszewski <bgolaszewski@baylibre.com>,
Lee Jones <lee.jones@linaro.org>,
Philipp Zabel <p.zabel@pengutronix.de>,
"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
devicetree <devicetree@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Luka Perkov <luka.perkov@sartura.hr>,
jmp@epiphyte.org, Paul Menzel <pmenzel@molgen.mpg.de>,
Donald Buczek <buczek@molgen.mpg.de>
Subject: Re: [PATCH v6 5/6] dt-bindings: mfd: Add Delta TN48M CPLD drivers bindings
Date: Mon, 19 Jul 2021 16:59:06 -0600 [thread overview]
Message-ID: <20210719225906.GA2769608@robh.at.kernel.org> (raw)
In-Reply-To: <CA+HBbNFj5+6sLKxmL8XtsZQ48ch8OjTbJ1bwkDC8dfRiOyWY1Q@mail.gmail.com>
On Sun, Jul 18, 2021 at 11:15:38AM +0200, Robert Marko wrote:
> On Wed, Jul 14, 2021 at 12:25 AM Rob Herring <robh@kernel.org> wrote:
> >
> > On Fri, Jun 25, 2021 at 01:46:08PM +0200, Robert Marko wrote:
> > > On Mon, Jun 7, 2021 at 2:33 PM Robert Marko <robert.marko@sartura.hr> wrote:
> > > >
> > > > Add binding documents for the Delta TN48M CPLD drivers.
> > > >
> > > > Signed-off-by: Robert Marko <robert.marko@sartura.hr>
> > > > ---
> > > > Changes in v3:
> > > > * Include bindings for reset driver
> > > >
> > > > Changes in v2:
> > > > * Implement MFD as a simple I2C MFD
> > > > * Add GPIO bindings as separate
> > > >
> > > > .../bindings/gpio/delta,tn48m-gpio.yaml | 42 +++++++++
> > > > .../bindings/mfd/delta,tn48m-cpld.yaml | 90 +++++++++++++++++++
> > > > .../bindings/reset/delta,tn48m-reset.yaml | 35 ++++++++
> > > > 3 files changed, 167 insertions(+)
> > > > create mode 100644 Documentation/devicetree/bindings/gpio/delta,tn48m-gpio.yaml
> > > > create mode 100644 Documentation/devicetree/bindings/mfd/delta,tn48m-cpld.yaml
> > > > create mode 100644 Documentation/devicetree/bindings/reset/delta,tn48m-reset.yaml
> > > >
> > > > diff --git a/Documentation/devicetree/bindings/gpio/delta,tn48m-gpio.yaml b/Documentation/devicetree/bindings/gpio/delta,tn48m-gpio.yaml
> > > > new file mode 100644
> > > > index 000000000000..aca646aecb12
> > > > --- /dev/null
> > > > +++ b/Documentation/devicetree/bindings/gpio/delta,tn48m-gpio.yaml
> > > > @@ -0,0 +1,42 @@
> > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > > +%YAML 1.2
> > > > +---
> > > > +$id: http://devicetree.org/schemas/gpio/delta,tn48m-gpio.yaml#
> > > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > > +
> > > > +title: Delta Networks TN48M CPLD GPIO controller
> > > > +
> > > > +maintainers:
> > > > + - Robert Marko <robert.marko@sartura.hr>
> > > > +
> > > > +description: |
> > > > + This module is part of the Delta TN48M multi-function device. For more
> > > > + details see ../mfd/delta,tn48m-cpld.yaml.
> > > > +
> > > > + GPIO controller module provides GPIO-s for the SFP slots.
> > > > + It is split into 3 controllers, one output only for the SFP TX disable
> > > > + pins, one input only for the SFP present pins and one input only for
> > > > + the SFP LOS pins.
> > > > +
> > > > +properties:
> > > > + compatible:
> > > > + enum:
> > > > + - delta,tn48m-gpio-sfp-tx-disable
> > > > + - delta,tn48m-gpio-sfp-present
> > > > + - delta,tn48m-gpio-sfp-los
> > > > +
> > > > + reg:
> > > > + maxItems: 1
> > > > +
> > > > + "#gpio-cells":
> > > > + const: 2
> > > > +
> > > > + gpio-controller: true
> > > > +
> > > > +required:
> > > > + - compatible
> > > > + - reg
> > > > + - "#gpio-cells"
> > > > + - gpio-controller
> > > > +
> > > > +additionalProperties: false
> > > > diff --git a/Documentation/devicetree/bindings/mfd/delta,tn48m-cpld.yaml b/Documentation/devicetree/bindings/mfd/delta,tn48m-cpld.yaml
> > > > new file mode 100644
> > > > index 000000000000..2c6e2adf73ca
> > > > --- /dev/null
> > > > +++ b/Documentation/devicetree/bindings/mfd/delta,tn48m-cpld.yaml
> > > > @@ -0,0 +1,90 @@
> > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > > +%YAML 1.2
> > > > +---
> > > > +$id: http://devicetree.org/schemas/mfd/delta,tn48m-cpld.yaml#
> > > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > > +
> > > > +title: Delta Networks TN48M CPLD controller
> > > > +
> > > > +maintainers:
> > > > + - Robert Marko <robert.marko@sartura.hr>
> > > > +
> > > > +description: |
> > > > + Lattice CPLD onboard the TN48M switches is used for system
> > > > + management.
> > > > +
> > > > + It provides information about the hardware model, revision,
> > > > + PSU status etc.
> > > > +
> > > > + It is also being used as a GPIO expander for the SFP slots and
> > > > + reset controller for the switch MAC-s and other peripherals.
> > > > +
> > > > +properties:
> > > > + compatible:
> > > > + const: delta,tn48m-cpld
> > > > +
> > > > + reg:
> > > > + description:
> > > > + I2C device address.
> > > > + maxItems: 1
> > > > +
> > > > + "#address-cells":
> > > > + const: 1
> > > > +
> > > > + "#size-cells":
> > > > + const: 0
> > > > +
> > > > +required:
> > > > + - compatible
> > > > + - reg
> > > > + - "#address-cells"
> > > > + - "#size-cells"
> > > > +
> > > > +patternProperties:
> > > > + "^gpio(@[0-9a-f]+)?$":
> > > > + $ref: ../gpio/delta,tn48m-gpio.yaml
> > > > +
> > > > + "^reset-controller?$":
> > > > + $ref: ../reset/delta,tn48m-reset.yaml
> > > > +
> > > > +additionalProperties: false
> > > > +
> > > > +examples:
> > > > + - |
> > > > + i2c {
> > > > + #address-cells = <1>;
> > > > + #size-cells = <0>;
> > > > +
> > > > + cpld@41 {
> > > > + compatible = "delta,tn48m-cpld";
> > > > + reg = <0x41>;
> > > > + #address-cells = <1>;
> > > > + #size-cells = <0>;
> > > > +
> > > > + gpio@31 {
> > > > + compatible = "delta,tn48m-gpio-sfp-tx-disable";
> > > > + reg = <0x31>;
> > > > + gpio-controller;
> > > > + #gpio-cells = <2>;
> > > > + };
> > > > +
> > > > + gpio@3a {
> > > > + compatible = "delta,tn48m-gpio-sfp-present";
> > > > + reg = <0x3a>;
> > > > + gpio-controller;
> > > > + #gpio-cells = <2>;
> > > > + };
> > > > +
> > > > + gpio@40 {
> > > > + compatible = "delta,tn48m-gpio-sfp-los";
> > > > + reg = <0x40>;
> > > > + gpio-controller;
> > > > + #gpio-cells = <2>;
> > > > + };
> > > > +
> > > > + reset-controller {
> > > > + compatible = "delta,tn48m-reset";
> > > > + #reset-cells = <1>;
> > > > + };
> > > > + };
> > > > + };
> > > > diff --git a/Documentation/devicetree/bindings/reset/delta,tn48m-reset.yaml b/Documentation/devicetree/bindings/reset/delta,tn48m-reset.yaml
> > > > new file mode 100644
> > > > index 000000000000..0e5ee8decc0d
> > > > --- /dev/null
> > > > +++ b/Documentation/devicetree/bindings/reset/delta,tn48m-reset.yaml
> > > > @@ -0,0 +1,35 @@
> > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > > +%YAML 1.2
> > > > +---
> > > > +$id: http://devicetree.org/schemas/reset/delta,tn48m-reset.yaml#
> > > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > > +
> > > > +title: Delta Networks TN48M CPLD reset controller
> > > > +
> > > > +maintainers:
> > > > + - Robert Marko <robert.marko@sartura.hr>
> > > > +
> > > > +description: |
> > > > + This module is part of the Delta TN48M multi-function device. For more
> > > > + details see ../mfd/delta,tn48m-cpld.yaml.
> > > > +
> > > > + Reset controller modules provides resets for the following:
> > > > + * 88F7040 SoC
> > > > + * 88F6820 SoC
> > > > + * 98DX3265 switch MAC-s
> > > > + * 88E1680 PHY-s
> > > > + * 88E1512 PHY
> > > > + * PoE PSE controller
> > > > +
> > > > +properties:
> > > > + compatible:
> > > > + const: delta,tn48m-reset
> > > > +
> > > > + "#reset-cells":
> > > > + const: 1
> > > > +
> > > > +required:
> > > > + - compatible
> > > > + - "#reset-cells"
> > > > +
> > > > +additionalProperties: false
> > > > --
> > > > 2.31.1
> > > >
> > >
> > > Are there any issues with the bindings?
> >
> > Yes. Primarily the GPIO function being part of the compatible. I'm
> > surprised Linus W is okay with that.
>
> I think I already explained this before, having a single compatible
> won't work here.
> Then there would not be anything to know whether its input or output
> only as the pins
> have specific purpose.
The client side should tell the direction. Are you using the SFP
binding?: Documentation/devicetree/bindings/net/sff,sfp.txt
Specific purpose IOs are not general purpose IOs. Repeating Linus W
here. Maybe his opinion has evolved...
If the programming model of each instance is different, then different
compatibles are justified. But describe what the difference is, not the
connection.
> And knowing the capabilites is a requirment of the GPIO regmap driver
> and the GPIO
> core itself as it exposes that information in a generic manner and
> driver like for the
> SFP bus use that.
Driver details aren't justification for bindings.
> Maybe Linus W can chime in here as well.
>
> >
> > > The patch series is depending on this as the rest has been reviewed.
> >
> > The bindings have been reviewed too, you just didn't like my comments...
>
> Sorry, I did not pick that up as after my replies there was no further
> discussion.
>
> I am really hoping that we can find a middle ground here and get this
> merged as the driver code itself has been revied and ACK-ed.
>
> Regards,
> Robert
> >
> > Rob
>
>
>
> --
> Robert Marko
> Staff Embedded Linux Engineer
> Sartura Ltd.
> Lendavska ulica 16a
> 10000 Zagreb, Croatia
> Email: robert.marko@sartura.hr
> Web: www.sartura.hr
>
next prev parent reply other threads:[~2021-07-20 0:38 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-07 12:33 [PATCH v6 1/6] mfd: simple-mfd-i2c: Add Delta TN48M CPLD support Robert Marko
2021-06-07 12:33 ` [PATCH v6 2/6] gpio: Add Delta TN48M CPLD GPIO driver Robert Marko
2021-06-07 12:33 ` [PATCH v6 3/6] dt-bindings: reset: Add Delta TN48M Robert Marko
2021-06-07 12:33 ` [PATCH v6 4/6] reset: Add Delta TN48M CPLD reset controller Robert Marko
2021-06-07 12:33 ` [PATCH v6 5/6] dt-bindings: mfd: Add Delta TN48M CPLD drivers bindings Robert Marko
2021-06-25 11:46 ` Robert Marko
2021-07-13 22:25 ` Rob Herring
2021-07-18 9:15 ` Robert Marko
2021-07-19 10:46 ` Lee Jones
2021-07-19 22:59 ` Rob Herring [this message]
2021-07-21 14:16 ` Linus Walleij
2021-08-03 19:22 ` Robert Marko
2021-08-11 12:17 ` Linus Walleij
2021-08-24 8:03 ` Robert Marko
2021-09-07 21:02 ` Robert Marko
2021-09-25 14:47 ` Robert Marko
2021-10-03 22:48 ` Linus Walleij
2021-10-12 16:31 ` Robert Marko
2021-10-19 1:40 ` Andrew Lunn
2021-10-19 10:49 ` Robert Marko
2021-10-19 2:05 ` Andrew Lunn
2021-10-19 10:54 ` Robert Marko
2021-06-07 12:33 ` [PATCH v6 6/6] MAINTAINERS: Add Delta Networks TN48M CPLD drivers Robert Marko
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=20210719225906.GA2769608@robh.at.kernel.org \
--to=robh@kernel.org \
--cc=bgolaszewski@baylibre.com \
--cc=buczek@molgen.mpg.de \
--cc=devicetree@vger.kernel.org \
--cc=jmp@epiphyte.org \
--cc=lee.jones@linaro.org \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luka.perkov@sartura.hr \
--cc=p.zabel@pengutronix.de \
--cc=pmenzel@molgen.mpg.de \
--cc=robert.marko@sartura.hr \
/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.