diff mbox series

[2/2] dt-bindings: clock: Add bindings for the Clocking Wizard IP

Message ID 20180801081950.10497-2-boris.brezillon@bootlin.com (mailing list archive)
State New, archived
Headers show
Series [1/2] clk: Add a driver for the Xilinx Clocking Wizard block | expand

Commit Message

Boris Brezillon Aug. 1, 2018, 8:19 a.m. UTC
Document Xilinx Clocking Wizard bindings.

Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
 .../devicetree/bindings/clock/xlnx,clk-wizard.txt  | 28 ++++++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt

Comments

Michal Simek Aug. 1, 2018, 8:26 a.m. UTC | #1
Hi Boris,

On 1.8.2018 10:19, Boris Brezillon wrote:
> Document Xilinx Clocking Wizard bindings.
> 
> Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
> ---
>  .../devicetree/bindings/clock/xlnx,clk-wizard.txt  | 28 ++++++++++++++++++++++
>  1 file changed, 28 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt
> 
> diff --git a/Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt b/Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt
> new file mode 100644
> index 000000000000..1bf7a764f4a9
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt
> @@ -0,0 +1,28 @@
> +Device Tree Clock bindings for the "Clocking Wizard" IP provided by Xilinx
> +
> +This block can be used to generate up to 4 clock signals out of a single input
> +clock. It embeds a PLL to generate an intermediate clock which then feeds 4
> +clock dividers whose divider value can be adjusted based on the user needs.
> +
> +Required properties:
> + - #clock-cells: must be 1. The cell is encoding the id of the output clk
> +		 (from 0 to xlnx,clk-wizard-num-outputs - 1)
> + - compatible: must be "xlnx,clk-wizard-5.1"
> + - clocks: 2 clocks are required
> + - clock-names: should contain 2 clock names: "aclk" and "clkin".
> +		"aclk" is driving the register interface and "clk_in" is the
> +		input clock signal that is used by the PLL block
> + - xlnx,clk-wizard-num-outputs: this describe the number of output clocks
> +				(chosen at synthesization time)
> + - reg: registers used to configure the Clocking wizard block
> +
> +Example:
> +
> +	clkwizard: clkwizard@43c20000 {
> +		compatible = "xlnx,clk-wizard-5.1";
> +		reg = <0x43c20000 0x10000>;
> +		clocks = <&clkc 18>, <&clkc 18>;
> +		clock-names = "aclk", "clk_in1";
> +		#clock-cells = <1>;
> +		xlnx,clk-wizard-num-outputs = <2>;
> +	};
> 

First of all this should be 1/2.

The second is that this driver is already in staging area
(drivers/staging/clocking-wizard) for a while. That's why please use
this driver or send patches on the top of this.

I know we have been doing some changes in this driver recently but not
sure if they reach our tree or mainline.

Thanks,
Michal
Boris Brezillon Aug. 1, 2018, 8:34 a.m. UTC | #2
Hi Michal,

On Wed, 1 Aug 2018 10:26:11 +0200
Michal Simek <michal.simek@xilinx.com> wrote:

> Hi Boris,
> 
> On 1.8.2018 10:19, Boris Brezillon wrote:
> > Document Xilinx Clocking Wizard bindings.
> > 
> > Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
> > ---
> >  .../devicetree/bindings/clock/xlnx,clk-wizard.txt  | 28 ++++++++++++++++++++++
> >  1 file changed, 28 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt b/Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt
> > new file mode 100644
> > index 000000000000..1bf7a764f4a9
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt
> > @@ -0,0 +1,28 @@
> > +Device Tree Clock bindings for the "Clocking Wizard" IP provided by Xilinx
> > +
> > +This block can be used to generate up to 4 clock signals out of a single input
> > +clock. It embeds a PLL to generate an intermediate clock which then feeds 4
> > +clock dividers whose divider value can be adjusted based on the user needs.
> > +
> > +Required properties:
> > + - #clock-cells: must be 1. The cell is encoding the id of the output clk
> > +		 (from 0 to xlnx,clk-wizard-num-outputs - 1)
> > + - compatible: must be "xlnx,clk-wizard-5.1"
> > + - clocks: 2 clocks are required
> > + - clock-names: should contain 2 clock names: "aclk" and "clkin".
> > +		"aclk" is driving the register interface and "clk_in" is the
> > +		input clock signal that is used by the PLL block
> > + - xlnx,clk-wizard-num-outputs: this describe the number of output clocks
> > +				(chosen at synthesization time)
> > + - reg: registers used to configure the Clocking wizard block
> > +
> > +Example:
> > +
> > +	clkwizard: clkwizard@43c20000 {
> > +		compatible = "xlnx,clk-wizard-5.1";
> > +		reg = <0x43c20000 0x10000>;
> > +		clocks = <&clkc 18>, <&clkc 18>;
> > +		clock-names = "aclk", "clk_in1";
> > +		#clock-cells = <1>;
> > +		xlnx,clk-wizard-num-outputs = <2>;
> > +	};
> >   
> 
> First of all this should be 1/2.

Hm, okay. Didn't know the order was important.

> 
> The second is that this driver is already in staging area
> (drivers/staging/clocking-wizard) for a while. That's why please use
> this driver or send patches on the top of this.

Crap! I didn't look in staging. BTW, any reason this driver is in
staging?

> 
> I know we have been doing some changes in this driver recently but not
> sure if they reach our tree or mainline.

Okay. Can you point me to the patches touching this driver?

Thanks,

Boris
Boris Brezillon Aug. 1, 2018, 8:37 a.m. UTC | #3
On Wed, 1 Aug 2018 10:34:04 +0200
Boris Brezillon <boris.brezillon@bootlin.com> wrote:

> Hi Michal,
> 
> On Wed, 1 Aug 2018 10:26:11 +0200
> Michal Simek <michal.simek@xilinx.com> wrote:
> 
> > Hi Boris,
> > 
> > On 1.8.2018 10:19, Boris Brezillon wrote:  
> > > Document Xilinx Clocking Wizard bindings.
> > > 
> > > Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
> > > ---
> > >  .../devicetree/bindings/clock/xlnx,clk-wizard.txt  | 28 ++++++++++++++++++++++
> > >  1 file changed, 28 insertions(+)
> > >  create mode 100644 Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt
> > > 
> > > diff --git a/Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt b/Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt
> > > new file mode 100644
> > > index 000000000000..1bf7a764f4a9
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt
> > > @@ -0,0 +1,28 @@
> > > +Device Tree Clock bindings for the "Clocking Wizard" IP provided by Xilinx
> > > +
> > > +This block can be used to generate up to 4 clock signals out of a single input
> > > +clock. It embeds a PLL to generate an intermediate clock which then feeds 4
> > > +clock dividers whose divider value can be adjusted based on the user needs.
> > > +
> > > +Required properties:
> > > + - #clock-cells: must be 1. The cell is encoding the id of the output clk
> > > +		 (from 0 to xlnx,clk-wizard-num-outputs - 1)
> > > + - compatible: must be "xlnx,clk-wizard-5.1"
> > > + - clocks: 2 clocks are required
> > > + - clock-names: should contain 2 clock names: "aclk" and "clkin".
> > > +		"aclk" is driving the register interface and "clk_in" is the
> > > +		input clock signal that is used by the PLL block
> > > + - xlnx,clk-wizard-num-outputs: this describe the number of output clocks
> > > +				(chosen at synthesization time)
> > > + - reg: registers used to configure the Clocking wizard block
> > > +
> > > +Example:
> > > +
> > > +	clkwizard: clkwizard@43c20000 {
> > > +		compatible = "xlnx,clk-wizard-5.1";
> > > +		reg = <0x43c20000 0x10000>;
> > > +		clocks = <&clkc 18>, <&clkc 18>;
> > > +		clock-names = "aclk", "clk_in1";
> > > +		#clock-cells = <1>;
> > > +		xlnx,clk-wizard-num-outputs = <2>;
> > > +	};
> > >     
> > 
> > First of all this should be 1/2.  
> 
> Hm, okay. Didn't know the order was important.
> 
> > 
> > The second is that this driver is already in staging area
> > (drivers/staging/clocking-wizard) for a while. That's why please use
> > this driver or send patches on the top of this.  
> 
> Crap! I didn't look in staging. BTW, any reason this driver is in
> staging?

Nevermind, it's described in the TODO file. Looks like I'll need to add
clk-phase ops for my use case.
Michal Simek Aug. 1, 2018, 8:40 a.m. UTC | #4
On 1.8.2018 10:37, Boris Brezillon wrote:
> On Wed, 1 Aug 2018 10:34:04 +0200
> Boris Brezillon <boris.brezillon@bootlin.com> wrote:
> 
>> Hi Michal,
>>
>> On Wed, 1 Aug 2018 10:26:11 +0200
>> Michal Simek <michal.simek@xilinx.com> wrote:
>>
>>> Hi Boris,
>>>
>>> On 1.8.2018 10:19, Boris Brezillon wrote:  
>>>> Document Xilinx Clocking Wizard bindings.
>>>>
>>>> Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
>>>> ---
>>>>  .../devicetree/bindings/clock/xlnx,clk-wizard.txt  | 28 ++++++++++++++++++++++
>>>>  1 file changed, 28 insertions(+)
>>>>  create mode 100644 Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt b/Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt
>>>> new file mode 100644
>>>> index 000000000000..1bf7a764f4a9
>>>> --- /dev/null
>>>> +++ b/Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt
>>>> @@ -0,0 +1,28 @@
>>>> +Device Tree Clock bindings for the "Clocking Wizard" IP provided by Xilinx
>>>> +
>>>> +This block can be used to generate up to 4 clock signals out of a single input
>>>> +clock. It embeds a PLL to generate an intermediate clock which then feeds 4
>>>> +clock dividers whose divider value can be adjusted based on the user needs.
>>>> +
>>>> +Required properties:
>>>> + - #clock-cells: must be 1. The cell is encoding the id of the output clk
>>>> +		 (from 0 to xlnx,clk-wizard-num-outputs - 1)
>>>> + - compatible: must be "xlnx,clk-wizard-5.1"
>>>> + - clocks: 2 clocks are required
>>>> + - clock-names: should contain 2 clock names: "aclk" and "clkin".
>>>> +		"aclk" is driving the register interface and "clk_in" is the
>>>> +		input clock signal that is used by the PLL block
>>>> + - xlnx,clk-wizard-num-outputs: this describe the number of output clocks
>>>> +				(chosen at synthesization time)
>>>> + - reg: registers used to configure the Clocking wizard block
>>>> +
>>>> +Example:
>>>> +
>>>> +	clkwizard: clkwizard@43c20000 {
>>>> +		compatible = "xlnx,clk-wizard-5.1";
>>>> +		reg = <0x43c20000 0x10000>;
>>>> +		clocks = <&clkc 18>, <&clkc 18>;
>>>> +		clock-names = "aclk", "clk_in1";
>>>> +		#clock-cells = <1>;
>>>> +		xlnx,clk-wizard-num-outputs = <2>;
>>>> +	};
>>>>     
>>>
>>> First of all this should be 1/2.  
>>
>> Hm, okay. Didn't know the order was important.
>>
>>>
>>> The second is that this driver is already in staging area
>>> (drivers/staging/clocking-wizard) for a while. That's why please use
>>> this driver or send patches on the top of this.  
>>
>> Crap! I didn't look in staging. BTW, any reason this driver is in
>> staging?
> 
> Nevermind, it's described in the TODO file. Looks like I'll need to add
> clk-phase ops for my use case.

Please check https://github.com/Xilinx/linux-xlnx
and IIRC the use case which is not supported and should be is that
clocking-wizard itself can be configured to fixed configuration without
register access. But it is questionable if this can be done by current
fixed-factor-clock or not.
But maybe there was something else too.

Thanks,
Michal
Shubhrajyoti Datta Aug. 11, 2018, 10:48 a.m. UTC | #5
Hi  Boris,


On Wed, Aug 1, 2018 at 1:49 PM, Boris Brezillon
<boris.brezillon@bootlin.com> wrote:
> Document Xilinx Clocking Wizard bindings.
>

Thanks for the patches.
Are you planning to post another version patching the staging?
Boris Brezillon Aug. 11, 2018, 1:41 p.m. UTC | #6
Hi Shubhrajyoti,

On Sat, 11 Aug 2018 16:18:54 +0530
Shubhrajyoti Datta <shubhrajyoti.datta@gmail.com> wrote:

> Hi  Boris,
> 
> 
> On Wed, Aug 1, 2018 at 1:49 PM, Boris Brezillon
> <boris.brezillon@bootlin.com> wrote:
> > Document Xilinx Clocking Wizard bindings.
> >  
> 
> Thanks for the patches.
> Are you planning to post another version patching the staging?

Yes, but that won't happen before a few weeks, so, if you can't wait,
feel free to port my changes to the existing driver. Would be good to
also address the aspect that initially prevented this driver from being
merged in the clk subsystem, so that we can finally move it there.

Regards,

Boris
Rob Herring (Arm) Aug. 14, 2018, 4:16 p.m. UTC | #7
On Wed, Aug 01, 2018 at 10:19:50AM +0200, Boris Brezillon wrote:
> Document Xilinx Clocking Wizard bindings.
> 
> Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
> ---
>  .../devicetree/bindings/clock/xlnx,clk-wizard.txt  | 28 ++++++++++++++++++++++
>  1 file changed, 28 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt

Reviewed-by: Rob Herring <robh@kernel.org>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt b/Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt
new file mode 100644
index 000000000000..1bf7a764f4a9
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/xlnx,clk-wizard.txt
@@ -0,0 +1,28 @@ 
+Device Tree Clock bindings for the "Clocking Wizard" IP provided by Xilinx
+
+This block can be used to generate up to 4 clock signals out of a single input
+clock. It embeds a PLL to generate an intermediate clock which then feeds 4
+clock dividers whose divider value can be adjusted based on the user needs.
+
+Required properties:
+ - #clock-cells: must be 1. The cell is encoding the id of the output clk
+		 (from 0 to xlnx,clk-wizard-num-outputs - 1)
+ - compatible: must be "xlnx,clk-wizard-5.1"
+ - clocks: 2 clocks are required
+ - clock-names: should contain 2 clock names: "aclk" and "clkin".
+		"aclk" is driving the register interface and "clk_in" is the
+		input clock signal that is used by the PLL block
+ - xlnx,clk-wizard-num-outputs: this describe the number of output clocks
+				(chosen at synthesization time)
+ - reg: registers used to configure the Clocking wizard block
+
+Example:
+
+	clkwizard: clkwizard@43c20000 {
+		compatible = "xlnx,clk-wizard-5.1";
+		reg = <0x43c20000 0x10000>;
+		clocks = <&clkc 18>, <&clkc 18>;
+		clock-names = "aclk", "clk_in1";
+		#clock-cells = <1>;
+		xlnx,clk-wizard-num-outputs = <2>;
+	};