devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] mips: gpio: mscc_sgpio: Add DT bindings documentation
@ 2018-11-26 12:06 Lars Povlsen
  2018-12-07  9:43 ` Linus Walleij
  2018-12-27 13:11 ` [PATCH v2] " Lars Povlsen
  0 siblings, 2 replies; 8+ messages in thread
From: Lars Povlsen @ 2018-11-26 12:06 UTC (permalink / raw)
  To: devicetree; +Cc: linus.walleij, Gregory CLEMENT


Hello device tree!

I am submitting this device tree driver binding documentation for review
comments.

The driver is currently implemented on u-boot, but will also eventually
be upstreamed to Linux.

By using a serial interface, the MSCC SIO controller significantly
extends the number of available GPIOs with a minimum number of
additional pins on the device. The primary purpose of the SIO controller
is to connect control signals from SFP modules and to act as an LED
controller.

This add device tree binding documentation for the MSCC serial GPIO
driver.

Signed-off-by: Lars Povlsen <lars.povlsen@microsemi.com>
---
 doc/device-tree-bindings/gpio/mscc_sgpio.txt | 39 ++++++++++++++++++++
 1 file changed, 39 insertions(+)
 create mode 100644 doc/device-tree-bindings/gpio/mscc_sgpio.txt

diff --git a/doc/device-tree-bindings/gpio/mscc_sgpio.txt b/doc/device-tree-bindings/gpio/mscc_sgpio.txt
new file mode 100644
index 0000000000..24e6aa345e
--- /dev/null
+++ b/doc/device-tree-bindings/gpio/mscc_sgpio.txt
@@ -0,0 +1,39 @@
+MSCC Serial GPIO driver
+
+Required properties:
+- compatible : "mscc,luton-sgpio" or "mscc,ocelot-sgpio"
+- clock: Reference clock used to generate clock divider setting. See
+  mscc,sgpio-frequency property.
+- reg : Physical base address and length of the controller's registers.
+- #gpio-cells : Should be two. The first cell is the pin number and the
+  second cell is used to specify optional parameters:
+  - bit 0 specifies polarity (0 for normal, 1 for inverted)
+- gpio-controller : Marks the device node as a GPIO controller.
+- gpio-ranges: The 4th cell will typically be 32*<sgpio-bitcount>
+
+Optional properties:
+- mscc,sgpio-frequency: The frequency at which the serial bitstream is
+  generated and sampled. Default: 12500000 (Hz).
+- mscc,sgpio-bitcount: The number of bits enabled per
+  port. (1-4). Default: 2.
+- mscc,sgpio-ports: A bitmask (32 bits) of which ports are enabled in
+  the serialized gpio stream. Default: 0xFFFFFFFF.
+
+Typically the pinctrl-0 and pinctrl-names properties will also be
+present to enable the use of the SIO CLK, LD, DI and DO for some
+regular GPIO pins.
+
+Example:
+
+sgpio: gpio@10700f8 {
+       compatible = "mscc,ocelot-sgpio";
+       pinctrl-0 = <&sgpio_pins>;
+       pinctrl-names = "default";
+       reg = <0x10700f8 0x100>;
+       gpio-controller;
+       #gpio-cells = <2>;
+       gpio-ranges = <&sgpio 0 0 64>; // 32*<sgpio-bitcount>
+       mscc,sgpio-frequency = <12500>;
+       mscc,sgpio-bitcount = <2>;
+       mscc,sgpio-ports = <0x000FFFFF>;
+};
-- 
2.19.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread
* Re: [PATCH] mips: gpio: mscc_sgpio: Add DT bindings documentation
@ 2018-12-27 10:31 Lars.Povlsen
  0 siblings, 0 replies; 8+ messages in thread
From: Lars.Povlsen @ 2018-12-27 10:31 UTC (permalink / raw)
  To: linus.walleij, devicetree; +Cc: gregory.clement

Hi Linus!

Thank you very much for your feedback - and sorry about the delay in 
getting back to you.

I will send you a v2 updated version addressing you comments. Thank you!

See below for comments

---Lars

> From: Linus Walleij <linus.walleij@linaro.org>
> Date: Fri, 7 Dec 2018 10:43:38 +0100
> Message-ID: <CACRpkdZ47tELuJR3DG-
> d8tsvz4ez_j6TxCYiiGT3L01CJ1LSTA@mail.gmail.com>
> Subject: Re: [PATCH] mips: gpio: mscc_sgpio: Add DT bindings
> documentation
> To: lars.povlsen@microchip.com
> Cc: "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
> <devicetree@vger.kernel.org>,
> 	Gregory Clement <gregory.clement@bootlin.com>
> 
> Hi Lars,
> 
> thanks for your patch!
> 
> On Mon, Nov 26, 2018 at 1:22 PM Lars Povlsen
> <lars.povlsen@microchip.com> wrote:
> 
> > +MSCC Serial GPIO driver
> 
> Expand the acronym please, if IIUC this is
> "Microsemi Corporation (MSCC) Serial GPIO driver"

Will do.

> 
> > +- mscc,sgpio-frequency: The frequency at which the serial bitstream
> is
> > +  generated and sampled. Default: 12500000 (Hz).
> 
> Uhm what is a serial bitstream in this context, I am lost.
> Please elaborate.

I added some background details to the description.

> 
> > +- mscc,sgpio-bitcount: The number of bits enabled per
> > +  port. (1-4). Default: 2.
> 
> Can't you just use the standard "ngpios" property for this?
> See
> Documentation/devicetree/bindings/gpio/gpio.txt
> 

I dropped this property in favor of deriving from gpio-ranges and
(optionally) ngpios as proposed.

> Why is this a global setting for all ports and not per-port?
> 
> > +- mscc,sgpio-ports: A bitmask (32 bits) of which ports are enabled in
> > +  the serialized gpio stream. Default: 0xFFFFFFFF.
> 
> I don't understand this either. Are there up to 32 ports?
> (Also referred to as "banks") with 1-4 GPIOs each?

Yes each port represent 1-4 GPIOs. Changed to:

- mscc,sgpio-ports: A bitmask (32 bits) of which ports are enabled in
  the serialized gpio stream. One 'port' will transport from 1 to 4
  gpio bits. Default: 0xFFFFFFFF.


Again, thank you very much for your comments - they are highly appreciated.

---Lars

> 
> Yours,
> Linus Walleij
> -------------------- End of forwarded message --------------------
> 
> --
> Gregory Clement, Bootlin
> Embedded Linux and Kernel engineering
> http://bootlin.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-01-02  7:44 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-11-26 12:06 [PATCH] mips: gpio: mscc_sgpio: Add DT bindings documentation Lars Povlsen
2018-12-07  9:43 ` Linus Walleij
2018-12-07 13:54   ` Rob Herring
2018-12-27 10:18     ` Lars.Povlsen
2018-12-27 13:11 ` [PATCH v2] " Lars Povlsen
2018-12-30 20:00   ` Linus Walleij
2019-01-02  7:44     ` Lars.Povlsen
  -- strict thread matches above, loose matches on Subject: below --
2018-12-27 10:31 [PATCH] " Lars.Povlsen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).