public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] dt-bindings: timer: gpt: update binding doc
@ 2018-11-23  9:10 Anson Huang
  2018-12-11 21:35 ` Rob Herring
  0 siblings, 1 reply; 3+ messages in thread
From: Anson Huang @ 2018-11-23  9:10 UTC (permalink / raw)
  To: daniel.lezcano@linaro.org, tglx@linutronix.de, robh+dt@kernel.org,
	mark.rutland@arm.com, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org
  Cc: dl-linux-imx

The i.MX GPT timer driver binding doc is out of date,
the "interrupts", "clocks" and "clock-names" do NOT match
current GPT driver implementation, update it and use i.MX6SX
as example.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
---
 .../devicetree/bindings/timer/fsl,imxgpt.txt       | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/Documentation/devicetree/bindings/timer/fsl,imxgpt.txt b/Documentation/devicetree/bindings/timer/fsl,imxgpt.txt
index 9809b11..4e9fa16 100644
--- a/Documentation/devicetree/bindings/timer/fsl,imxgpt.txt
+++ b/Documentation/devicetree/bindings/timer/fsl,imxgpt.txt
@@ -2,17 +2,21 @@ Freescale i.MX General Purpose Timer (GPT)
 
 Required properties:
 
-- compatible : should be "fsl,<soc>-gpt"
-- reg : Specifies base physical address and size of the registers.
-- interrupts : A list of 4 interrupts; one per timer channel.
-- clocks : The clocks provided by the SoC to drive the timer.
+- compatible : should be "fsl,<soc>-gpt".
+- reg : specifies base physical address and size of the registers.
+- interrupts : should be the clock event device interrupt.
+- clocks : the clocks provided by the SoC to drive the timer, must contain
+           an entry for each entry in clock-names.
+- clock-names : must include an "per" or "osc_per" entry, and "ipg" entry
+                is optional according to SoC design.
 
 Example:
 
-gpt1: timer@10003000 {
-	compatible = "fsl,imx27-gpt", "fsl,imx1-gpt";
-	reg = <0x10003000 0x1000>;
-	interrupts = <26>;
-	clocks = <&clks 46>, <&clks 61>;
+gpt: gpt@2098000 {
+	compatible = "fsl,imx6sx-gpt", "fsl,imx31-gpt";
+	reg = <0x02098000 0x4000>;
+	interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
+	clocks = <&clks IMX6SX_CLK_GPT_BUS>,
+		 <&clks IMX6SX_CLK_GPT_3M>;
 	clock-names = "ipg", "per";
 };
-- 
2.7.4


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

* Re: [PATCH] dt-bindings: timer: gpt: update binding doc
  2018-11-23  9:10 [PATCH] dt-bindings: timer: gpt: update binding doc Anson Huang
@ 2018-12-11 21:35 ` Rob Herring
  2018-12-12  7:24   ` Anson Huang
  0 siblings, 1 reply; 3+ messages in thread
From: Rob Herring @ 2018-12-11 21:35 UTC (permalink / raw)
  To: Anson Huang
  Cc: daniel.lezcano@linaro.org, tglx@linutronix.de,
	mark.rutland@arm.com, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org, dl-linux-imx

On Fri, Nov 23, 2018 at 09:10:09AM +0000, Anson Huang wrote:
> The i.MX GPT timer driver binding doc is out of date,
> the "interrupts", "clocks" and "clock-names" do NOT match
> current GPT driver implementation, update it and use i.MX6SX
> as example.
> 
> Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
> ---
>  .../devicetree/bindings/timer/fsl,imxgpt.txt       | 22 +++++++++++++---------
>  1 file changed, 13 insertions(+), 9 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/timer/fsl,imxgpt.txt b/Documentation/devicetree/bindings/timer/fsl,imxgpt.txt
> index 9809b11..4e9fa16 100644
> --- a/Documentation/devicetree/bindings/timer/fsl,imxgpt.txt
> +++ b/Documentation/devicetree/bindings/timer/fsl,imxgpt.txt
> @@ -2,17 +2,21 @@ Freescale i.MX General Purpose Timer (GPT)
>  
>  Required properties:
>  
> -- compatible : should be "fsl,<soc>-gpt"
> -- reg : Specifies base physical address and size of the registers.
> -- interrupts : A list of 4 interrupts; one per timer channel.
> -- clocks : The clocks provided by the SoC to drive the timer.
> +- compatible : should be "fsl,<soc>-gpt".

This should enumerate valid <soc> values.

> +- reg : specifies base physical address and size of the registers.
> +- interrupts : should be the clock event device interrupt.
> +- clocks : the clocks provided by the SoC to drive the timer, must contain
> +           an entry for each entry in clock-names.
> +- clock-names : must include an "per" or "osc_per" entry, and "ipg" entry
> +                is optional according to SoC design.

Need to define the order. Ideally the optional clock should be last, but 
that's not what the example has.

>  
>  Example:
>  
> -gpt1: timer@10003000 {
> -	compatible = "fsl,imx27-gpt", "fsl,imx1-gpt";
> -	reg = <0x10003000 0x1000>;
> -	interrupts = <26>;
> -	clocks = <&clks 46>, <&clks 61>;
> +gpt: gpt@2098000 {

timer@...

> +	compatible = "fsl,imx6sx-gpt", "fsl,imx31-gpt";

You haven't documented "fsl,imx31-gpt" is a valid fallback. Is the old 
example not still valid for imx27?

> +	reg = <0x02098000 0x4000>;

Using a size > 4KB just wastes virtual space which is valuable on 32-bit 
systems with >= 1GB RAM.

> +	interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
> +	clocks = <&clks IMX6SX_CLK_GPT_BUS>,
> +		 <&clks IMX6SX_CLK_GPT_3M>;
>  	clock-names = "ipg", "per";
>  };
> -- 
> 2.7.4
> 

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

* RE: [PATCH] dt-bindings: timer: gpt: update binding doc
  2018-12-11 21:35 ` Rob Herring
@ 2018-12-12  7:24   ` Anson Huang
  0 siblings, 0 replies; 3+ messages in thread
From: Anson Huang @ 2018-12-12  7:24 UTC (permalink / raw)
  To: Rob Herring
  Cc: daniel.lezcano@linaro.org, tglx@linutronix.de,
	mark.rutland@arm.com, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org, dl-linux-imx

Hi, Rob

Best Regards!
Anson Huang

> -----Original Message-----
> From: Rob Herring [mailto:robh@kernel.org]
> Sent: 2018年12月12日 5:35
> To: Anson Huang <anson.huang@nxp.com>
> Cc: daniel.lezcano@linaro.org; tglx@linutronix.de; mark.rutland@arm.com;
> linux-kernel@vger.kernel.org; devicetree@vger.kernel.org; dl-linux-imx
> <linux-imx@nxp.com>
> Subject: Re: [PATCH] dt-bindings: timer: gpt: update binding doc
> 
> On Fri, Nov 23, 2018 at 09:10:09AM +0000, Anson Huang wrote:
> > The i.MX GPT timer driver binding doc is out of date, the
> > "interrupts", "clocks" and "clock-names" do NOT match current GPT
> > driver implementation, update it and use i.MX6SX as example.
> >
> > Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
> > ---
> >  .../devicetree/bindings/timer/fsl,imxgpt.txt       | 22
> +++++++++++++---------
> >  1 file changed, 13 insertions(+), 9 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/timer/fsl,imxgpt.txt
> > b/Documentation/devicetree/bindings/timer/fsl,imxgpt.txt
> > index 9809b11..4e9fa16 100644
> > --- a/Documentation/devicetree/bindings/timer/fsl,imxgpt.txt
> > +++ b/Documentation/devicetree/bindings/timer/fsl,imxgpt.txt
> > @@ -2,17 +2,21 @@ Freescale i.MX General Purpose Timer (GPT)
> >
> >  Required properties:
> >
> > -- compatible : should be "fsl,<soc>-gpt"
> > -- reg : Specifies base physical address and size of the registers.
> > -- interrupts : A list of 4 interrupts; one per timer channel.
> > -- clocks : The clocks provided by the SoC to drive the timer.
> > +- compatible : should be "fsl,<soc>-gpt".
> 
> This should enumerate valid <soc> values.

Agree, I list all the available compatible strings in GPT driver here in V2 patch.

> 
> > +- reg : specifies base physical address and size of the registers.
> > +- interrupts : should be the clock event device interrupt.
> > +- clocks : the clocks provided by the SoC to drive the timer, must contain
> > +           an entry for each entry in clock-names.
> > +- clock-names : must include an "per" or "osc_per" entry, and "ipg" entry
> > +                is optional according to SoC design.
> 
> Need to define the order. Ideally the optional clock should be last, but that's
> not what the example has.

Current GPT driver does NOT have the order requirement since it all gets clk by name, but
I think specifying the order is better, I update it in V2 patch.

> 
> >
> >  Example:
> >
> > -gpt1: timer@10003000 {
> > -	compatible = "fsl,imx27-gpt", "fsl,imx1-gpt";
> > -	reg = <0x10003000 0x1000>;
> > -	interrupts = <26>;
> > -	clocks = <&clks 46>, <&clks 61>;
> > +gpt: gpt@2098000 {
> 
> timer@...
> 
> > +	compatible = "fsl,imx6sx-gpt", "fsl,imx31-gpt";
> 
> You haven't documented "fsl,imx31-gpt" is a valid fallback. Is the old example
> not still valid for imx27?
> 
> > +	reg = <0x02098000 0x4000>;
> 
> Using a size > 4KB just wastes virtual space which is valuable on 32-bit systems
> with >= 1GB RAM.

I forgot that old example is still valid, so I will just use old example here, but the old
example of i.MX27 GPT already NOT match with latest i.MX27 dtsi GPT node, I update
it with latest GPT node in i.MX27 dtsi in V2 patch, please help review it, thanks.

Anson. 

> 
> > +	interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
> > +	clocks = <&clks IMX6SX_CLK_GPT_BUS>,
> > +		 <&clks IMX6SX_CLK_GPT_3M>;
> >  	clock-names = "ipg", "per";
> >  };
> > --
> > 2.7.4
> >

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

end of thread, other threads:[~2018-12-12  7:24 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-11-23  9:10 [PATCH] dt-bindings: timer: gpt: update binding doc Anson Huang
2018-12-11 21:35 ` Rob Herring
2018-12-12  7:24   ` Anson Huang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox