linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [linux,dev-5.1 v1] dt-bindings: gpio: aspeed: Add SGPIO support
@ 2019-07-03 20:01 Hongwei Zhang
  2019-07-09 18:53 ` Rob Herring
  2019-07-10  2:16 ` Andrew Jeffery
  0 siblings, 2 replies; 5+ messages in thread
From: Hongwei Zhang @ 2019-07-03 20:01 UTC (permalink / raw)
  To: devicetree, Joel Stanley, Andrew Jeffery, Linus Walleij
  Cc: Hongwei Zhang, Rob Herring, Mark Rutland, linux-aspeed, linux-kernel

Add bindings to support SGPIO on AST2400 or AST2500.

Signed-off-by: Hongwei Zhang <hongweiz@ami.com>
---
 .../devicetree/bindings/gpio/sgpio-aspeed.txt      | 36 ++++++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/gpio/sgpio-aspeed.txt

diff --git a/Documentation/devicetree/bindings/gpio/sgpio-aspeed.txt b/Documentation/devicetree/bindings/gpio/sgpio-aspeed.txt
new file mode 100644
index 0000000..f5fc6ef
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/sgpio-aspeed.txt
@@ -0,0 +1,36 @@
+Aspeed SGPIO controller Device Tree Bindings
+-------------------------------------------
+
+Required properties:
+- compatible		: Either "aspeed,ast2400-sgpio" or "aspeed,ast2500-sgpio"
+
+- #gpio-cells 		: Should be two
+			  - First cell is the GPIO line number
+			  - Second cell is used to specify optional
+			    parameters (unused)
+
+- reg			: Address and length of the register set for the device
+- gpio-controller	: Marks the device node as a GPIO controller.
+- interrupts		: Interrupt specifier (see interrupt bindings for
+			  details)
+- interrupt-controller	: Mark the GPIO controller as an interrupt-controller
+
+Optional properties:
+
+- clocks                : A phandle to the clock to use for debounce timings
+
+The sgpio and interrupt properties are further described in their respective
+bindings documentation:
+
+- Documentation/devicetree/bindings/sgpio/gpio.txt
+- Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
+
+  Example:
+	sgpio@1e780200 {
+		#gpio-cells = <2>;
+		compatible = "aspeed,ast2500-sgpio";
+		gpio-controller;
+		interrupts = <40>;
+		reg = <0x1e780200 0x0100>;
+		interrupt-controller;
+	};
-- 
2.7.4


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

* Re: [linux,dev-5.1 v1] dt-bindings: gpio: aspeed: Add SGPIO support
  2019-07-03 20:01 [linux,dev-5.1 v1] dt-bindings: gpio: aspeed: Add SGPIO support Hongwei Zhang
@ 2019-07-09 18:53 ` Rob Herring
  2019-07-10  2:00   ` Andrew Jeffery
  2019-07-10  2:16 ` Andrew Jeffery
  1 sibling, 1 reply; 5+ messages in thread
From: Rob Herring @ 2019-07-09 18:53 UTC (permalink / raw)
  To: Hongwei Zhang
  Cc: devicetree, Joel Stanley, Andrew Jeffery, Linus Walleij,
	Mark Rutland, linux-aspeed, linux-kernel

On Wed, Jul 3, 2019 at 2:01 PM Hongwei Zhang <hongweiz@ami.com> wrote:
>
> Add bindings to support SGPIO on AST2400 or AST2500.
>
> Signed-off-by: Hongwei Zhang <hongweiz@ami.com>
> ---
>  .../devicetree/bindings/gpio/sgpio-aspeed.txt      | 36 ++++++++++++++++++++++

Is this SGPIO as in the blinky lights for HDDs in servers? If so, that
has nothing to do with Linux GPIO subsystem.

BTW, You might want to look at Calxeda highbank SATA driver. It has a
bit-banged SGPIO interface using GPIO lines in it.


Rob

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

* Re: [linux,dev-5.1 v1] dt-bindings: gpio: aspeed: Add SGPIO support
  2019-07-09 18:53 ` Rob Herring
@ 2019-07-10  2:00   ` Andrew Jeffery
  0 siblings, 0 replies; 5+ messages in thread
From: Andrew Jeffery @ 2019-07-10  2:00 UTC (permalink / raw)
  To: Rob Herring, Hongwei Zhang
  Cc: devicetree, Joel Stanley, Linus Walleij, Mark Rutland,
	linux-aspeed, linux-kernel



On Wed, 10 Jul 2019, at 04:23, Rob Herring wrote:
> On Wed, Jul 3, 2019 at 2:01 PM Hongwei Zhang <hongweiz@ami.com> wrote:
> >
> > Add bindings to support SGPIO on AST2400 or AST2500.
> >
> > Signed-off-by: Hongwei Zhang <hongweiz@ami.com>
> > ---
> >  .../devicetree/bindings/gpio/sgpio-aspeed.txt      | 36 ++++++++++++++++++++++
> 
> Is this SGPIO as in the blinky lights for HDDs in servers? If so, that
> has nothing to do with Linux GPIO subsystem.
> 

No, this is just literal serialised GPIO, which can be used with e.g. nexperia
74LV595 / 74LV165 parts.

There is a separate chunk of IP in the SoC that acts as an SFF-8485 (blinky
lights) slave monitor.

Andrew

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

* Re: [linux,dev-5.1 v1] dt-bindings: gpio: aspeed: Add SGPIO support
  2019-07-03 20:01 [linux,dev-5.1 v1] dt-bindings: gpio: aspeed: Add SGPIO support Hongwei Zhang
  2019-07-09 18:53 ` Rob Herring
@ 2019-07-10  2:16 ` Andrew Jeffery
  2019-07-12 20:18   ` Hongwei Zhang
  1 sibling, 1 reply; 5+ messages in thread
From: Andrew Jeffery @ 2019-07-10  2:16 UTC (permalink / raw)
  To: Hongwei Zhang, devicetree, Joel Stanley, Linus Walleij
  Cc: Rob Herring, Mark Rutland, linux-aspeed, linux-kernel



On Thu, 4 Jul 2019, at 05:31, Hongwei Zhang wrote:
> Add bindings to support SGPIO on AST2400 or AST2500.
> 
> Signed-off-by: Hongwei Zhang <hongweiz@ami.com>
> ---
>  .../devicetree/bindings/gpio/sgpio-aspeed.txt      | 36 ++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/gpio/sgpio-aspeed.txt
> 
> diff --git a/Documentation/devicetree/bindings/gpio/sgpio-aspeed.txt 
> b/Documentation/devicetree/bindings/gpio/sgpio-aspeed.txt
> new file mode 100644
> index 0000000..f5fc6ef
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/gpio/sgpio-aspeed.txt
> @@ -0,0 +1,36 @@
> +Aspeed SGPIO controller Device Tree Bindings
> +-------------------------------------------
> +
> +Required properties:
> +- compatible		: Either "aspeed,ast2400-sgpio" or "aspeed,ast2500-sgpio"
> +
> +- #gpio-cells 		: Should be two
> +			  - First cell is the GPIO line number
> +			  - Second cell is used to specify optional
> +			    parameters (unused)
> +
> +- reg			: Address and length of the register set for the device
> +- gpio-controller	: Marks the device node as a GPIO controller.
> +- interrupts		: Interrupt specifier (see interrupt bindings for
> +			  details)
> +- interrupt-controller	: Mark the GPIO controller as an 
> interrupt-controller

As this is a serial GPIO controller, a critical piece of configuration
information is how many GPIOs we wish to serialise. This is done
in multiples of 8, up to 80 pins.

The bindings need to describe the "ngpios" property from the
generic GPIO bindings and how this affects the behaviour of
the controller.

We also need to add the "bus-frequency" property here to control
the rate of SGPMCK.

> +
> +Optional properties:
> +
> +- clocks                : A phandle to the clock to use for debounce 
> timings

We need this, but not for the reason specified, and it should be a
required property. We need PCLK (the APB clock) to derive the SGPIO
bus frequency. Despite what the datasheet blurb says, there's no
debounce control for the SGPIO master (this is a copy/paste mistake
from the description of the parallel GPIO master).

> +
> +The sgpio and interrupt properties are further described in their 
> respective
> +bindings documentation:
> +
> +- Documentation/devicetree/bindings/sgpio/gpio.txt
> +- Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
> +
> +  Example:
> +	sgpio@1e780200 {
> +		#gpio-cells = <2>;
> +		compatible = "aspeed,ast2500-sgpio";
> +		gpio-controller;
> +		interrupts = <40>;
> +		reg = <0x1e780200 0x0100>;
> +		interrupt-controller;
> +	};

You'll need to fix up the example after making the changes mentioned
above.

Andrew

> -- 
> 2.7.4
> 
>

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

* RE: [linux,dev-5.1 v1] dt-bindings: gpio: aspeed: Add SGPIO support
  2019-07-10  2:16 ` Andrew Jeffery
@ 2019-07-12 20:18   ` Hongwei Zhang
  0 siblings, 0 replies; 5+ messages in thread
From: Hongwei Zhang @ 2019-07-12 20:18 UTC (permalink / raw)
  To: Andrew Jeffery, devicetree, Joel Stanley, Linus Walleij
  Cc: Rob Herring, Mark Rutland, linux-aspeed, linux-kernel

Thanks for your review, Andrew,

Just submitted an updated binding document, with new proper subject line:

[PATCH 2/3 v2] dt-bindings: gpio: aspeed: Add SGPIO support

Regards,
--Hongwei

-----Original Message-----
From: Andrew Jeffery <andrew@aj.id.au> 
Sent: Tuesday, July 9, 2019 10:16 PM
To: Hongwei Zhang <Hongweiz@ami.com>; devicetree@vger.kernel.org; Joel Stanley <joel@jms.id.au>; Linus Walleij <linus.walleij@linaro.org>
Cc: Rob Herring <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; linux-aspeed@lists.ozlabs.org; linux-kernel@vger.kernel.org
Subject: Re: [linux,dev-5.1 v1] dt-bindings: gpio: aspeed: Add SGPIO support



On Thu, 4 Jul 2019, at 05:31, Hongwei Zhang wrote:
> Add bindings to support SGPIO on AST2400 or AST2500.
> 
> Signed-off-by: Hongwei Zhang <hongweiz@ami.com>
> ---
>  .../devicetree/bindings/gpio/sgpio-aspeed.txt      | 36 ++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
>  create mode 100644 
> Documentation/devicetree/bindings/gpio/sgpio-aspeed.txt
> 
> diff --git a/Documentation/devicetree/bindings/gpio/sgpio-aspeed.txt
> b/Documentation/devicetree/bindings/gpio/sgpio-aspeed.txt
> new file mode 100644
> index 0000000..f5fc6ef
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/gpio/sgpio-aspeed.txt
> @@ -0,0 +1,36 @@
> +Aspeed SGPIO controller Device Tree Bindings
> +-------------------------------------------
> +
> +Required properties:
> +- compatible		: Either "aspeed,ast2400-sgpio" or "aspeed,ast2500-sgpio"
> +
> +- #gpio-cells 		: Should be two
> +			  - First cell is the GPIO line number
> +			  - Second cell is used to specify optional
> +			    parameters (unused)
> +
> +- reg			: Address and length of the register set for the device
> +- gpio-controller	: Marks the device node as a GPIO controller.
> +- interrupts		: Interrupt specifier (see interrupt bindings for
> +			  details)
> +- interrupt-controller	: Mark the GPIO controller as an 
> interrupt-controller

As this is a serial GPIO controller, a critical piece of configuration information is how many GPIOs we wish to serialise. This is done in multiples of 8, up to 80 pins.

The bindings need to describe the "ngpios" property from the generic GPIO bindings and how this affects the behaviour of the controller.

We also need to add the "bus-frequency" property here to control the rate of SGPMCK.

> +
> +Optional properties:
> +
> +- clocks                : A phandle to the clock to use for debounce 
> timings

We need this, but not for the reason specified, and it should be a required property. We need PCLK (the APB clock) to derive the SGPIO bus frequency. Despite what the datasheet blurb says, there's no debounce control for the SGPIO master (this is a copy/paste mistake from the description of the parallel GPIO master).

> +
> +The sgpio and interrupt properties are further described in their
> respective
> +bindings documentation:
> +
> +- Documentation/devicetree/bindings/sgpio/gpio.txt
> +- 
> +Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
> +
> +  Example:
> +	sgpio@1e780200 {
> +		#gpio-cells = <2>;
> +		compatible = "aspeed,ast2500-sgpio";
> +		gpio-controller;
> +		interrupts = <40>;
> +		reg = <0x1e780200 0x0100>;
> +		interrupt-controller;
> +	};

You'll need to fix up the example after making the changes mentioned above.

Andrew

> --
> 2.7.4
> 
>

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

end of thread, other threads:[~2019-07-12 20:18 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-03 20:01 [linux,dev-5.1 v1] dt-bindings: gpio: aspeed: Add SGPIO support Hongwei Zhang
2019-07-09 18:53 ` Rob Herring
2019-07-10  2:00   ` Andrew Jeffery
2019-07-10  2:16 ` Andrew Jeffery
2019-07-12 20:18   ` Hongwei Zhang

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).