diff mbox

[v3,1/2] fsl: Add binding for RCPM

Message ID 1443083354-37369-1-git-send-email-dongsheng.wang@freescale.com (mailing list archive)
State New, archived
Headers show

Commit Message

Dongsheng Wang Sept. 24, 2015, 8:29 a.m. UTC
From: Wang Dongsheng <dongsheng.wang@freescale.com>

RCPM is the Run Control and Power Management module performs all
device-level tasks associated with device run control and power
management.

Add this for freescale powerpc platform and layerscape platform.

Signed-off-by: Chenhui Zhao <chenhui.zhao@freescale.com>
Signed-off-by: Tang Yuantian <Yuantian.Tang@freescale.com>
Signed-off-by: Wang Dongsheng <dongsheng.wang@freescale.com>
---
*v3*
- Add "fsl,#rcpm-wakeup-cells" for rcpm node. The number of cells
  correspond rcpm-wakeup property.
- Modify rcpm-wakeup property description.

*v2*
- Remove P4080 example.
- Modify rcpm-wakeup property description.

Comments

Shawn Guo Sept. 24, 2015, 12:29 p.m. UTC | #1
On Thu, Sep 24, 2015 at 04:29:13PM +0800, Dongsheng Wang wrote:
> From: Wang Dongsheng <dongsheng.wang@freescale.com>
> 
> RCPM is the Run Control and Power Management module performs all
> device-level tasks associated with device run control and power
> management.
> 
> Add this for freescale powerpc platform and layerscape platform.
> 
> Signed-off-by: Chenhui Zhao <chenhui.zhao@freescale.com>
> Signed-off-by: Tang Yuantian <Yuantian.Tang@freescale.com>
> Signed-off-by: Wang Dongsheng <dongsheng.wang@freescale.com>
> ---
> *v3*
> - Add "fsl,#rcpm-wakeup-cells" for rcpm node. The number of cells
>   correspond rcpm-wakeup property.
> - Modify rcpm-wakeup property description.
> 
> *v2*
> - Remove P4080 example.
> - Modify rcpm-wakeup property description.
> 
> diff --git a/Documentation/devicetree/bindings/soc/fsl/rcpm.txt b/Documentation/devicetree/bindings/soc/fsl/rcpm.txt
> new file mode 100644
> index 0000000..52110ec
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/fsl/rcpm.txt
> @@ -0,0 +1,63 @@
> +* Run Control and Power Management
> +-------------------------------------------
> +The RCPM performs all device-level tasks associated with device run control
> +and power management.
> +
> +Required properites:
> +  - reg : Offset and length of the register set of RCPM block.
> +  - fsl,#rcpm-wakeup-cells : The number of cells in rcpm-wakeup property.
> +  - compatible : Sould contain a chip-specific RCPM block compatible string
> +	and (if applicable) may contain a chassis-version RCPM compatible
> +	string. Chip-specific strings are of the form "fsl,<chip>-rcpm",
> +	such as:
> +	* "fsl,p2041-rcpm"
> +	* "fsl,p3041-rcpm"
> +	* "fsl,p4080-rcpm"
> +	* "fsl,p5020-rcpm"
> +	* "fsl,p5040-rcpm"
> +	* "fsl,t4240-rcpm"
> +	* "fsl,b4420-rcpm"
> +	* "fsl,b4860-rcpm"
> +
> +	Chassis-version strings are of the form "fsl,qoriq-rcpm-<version>",
> +	such as:
> +	* "fsl,qoriq-rcpm-1.0": for chassis 1.0 rcpm
> +	* "fsl,qoriq-rcpm-2.0": for chassis 2.0 rcpm
> +	* "fsl,qoriq-rcpm-2.1": for chassis 2.1 rcpm
> +
> +All references to "1.0" and "2.0" refer to the QorIQ chassis version to
> +which the chip complies.
> +Chassis Version		Example Chips
> +---------------		-------------------------------
> +1.0				p4080, p5020, p5040, p2041, p3041
> +2.0				t4240, b4860, b4420
> +2.1				t1040, ls1021
> +
> +Example:
> +The RCPM node for T4240:
> +	rcpm: global-utilities@e2000 {
> +		compatible = "fsl,t4240-rcpm", "fsl,qoriq-rcpm-2.0";
> +		reg = <0xe2000 0x1000>;
> +		fsl,#rcpm-wakeup-cells = <2>;
> +	};
> +
> +* Freescale RCPM Wakeup Source Device Tree Bindings
> +-------------------------------------------
> +Required rcpm-wakeup property should be added to a device node if the device
> +can be used as a wakeup source.
> +
> +  - rcpm-wakeup: The value of the property consists of cells, the number of

Shouldn't this vendor specific property be prefixed with 'fsl,' as well?

> +	cells defined in "fsl,#rcpm-wakeup-cells". The first cell is a pointer
> +	to the rcpm node, the second cell is the bit mask that should be set
> +	in IPPDEXPCR0, and the third cell is for IPPDEXPCR1, and so on.

I guess that IPPDEXPCR0 and IPPDEXPCR1 need some documentation too, or a
pointer to hardware documents containing more detailed info about them.

Shawn

> +
> +Example:
> +	lpuart0: serial@2950000 {
> +		compatible = "fsl,ls1021a-lpuart";
> +		reg = <0x0 0x2950000 0x0 0x1000>;
> +		interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
> +		clocks = <&sysclk>;
> +		clock-names = "ipg";
> +		rcpm-wakeup = <&rcpm 0x0 0x40000000>;
> +		status = "disabled";
> +	};
> -- 
> 2.1.0.27.g96db324
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Scott Wood Sept. 24, 2015, 7:30 p.m. UTC | #2
On Thu, 2015-09-24 at 16:29 +0800, Dongsheng Wang wrote:
> +* Freescale RCPM Wakeup Source Device Tree Bindings
> +-------------------------------------------
> +Required rcpm-wakeup property should be added to a device node if the 
> device
> +can be used as a wakeup source.
> +
> +  - rcpm-wakeup: The value of the property consists of cells, the number of
> +     cells defined in "fsl,#rcpm-wakeup-cells". The first cell is a pointer
> +     to the rcpm node, the second cell is the bit mask that should be set
> +     in IPPDEXPCR0, and the third cell is for IPPDEXPCR1, and so on.

The phandle should not be included in the cell count.

-Scott
Dongsheng Wang Sept. 25, 2015, 2:24 a.m. UTC | #3
Hi Shawn,

Thanks for your review.

> > From: Wang Dongsheng <dongsheng.wang@freescale.com>
> >
> > RCPM is the Run Control and Power Management module performs all
> > device-level tasks associated with device run control and power
> > management.
> >
> > Add this for freescale powerpc platform and layerscape platform.
> >
> > Signed-off-by: Chenhui Zhao <chenhui.zhao@freescale.com>
> > Signed-off-by: Tang Yuantian <Yuantian.Tang@freescale.com>
> > Signed-off-by: Wang Dongsheng <dongsheng.wang@freescale.com>
> > ---
> > *v3*
> > - Add "fsl,#rcpm-wakeup-cells" for rcpm node. The number of cells
> >   correspond rcpm-wakeup property.
> > - Modify rcpm-wakeup property description.
> >
> > *v2*
> > - Remove P4080 example.
> > - Modify rcpm-wakeup property description.
> >
> > diff --git a/Documentation/devicetree/bindings/soc/fsl/rcpm.txt
> > b/Documentation/devicetree/bindings/soc/fsl/rcpm.txt
> > new file mode 100644
> > index 0000000..52110ec
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/soc/fsl/rcpm.txt
> > @@ -0,0 +1,63 @@
> > +* Run Control and Power Management
> > +-------------------------------------------
> > +The RCPM performs all device-level tasks associated with device run
> > +control and power management.
> > +
> > +Required properites:
> > +  - reg : Offset and length of the register set of RCPM block.
> > +  - fsl,#rcpm-wakeup-cells : The number of cells in rcpm-wakeup property.
> > +  - compatible : Sould contain a chip-specific RCPM block compatible string
> > +	and (if applicable) may contain a chassis-version RCPM compatible
> > +	string. Chip-specific strings are of the form "fsl,<chip>-rcpm",
> > +	such as:
> > +	* "fsl,p2041-rcpm"
> > +	* "fsl,p3041-rcpm"
> > +	* "fsl,p4080-rcpm"
> > +	* "fsl,p5020-rcpm"
> > +	* "fsl,p5040-rcpm"
> > +	* "fsl,t4240-rcpm"
> > +	* "fsl,b4420-rcpm"
> > +	* "fsl,b4860-rcpm"
> > +
> > +	Chassis-version strings are of the form "fsl,qoriq-rcpm-<version>",
> > +	such as:
> > +	* "fsl,qoriq-rcpm-1.0": for chassis 1.0 rcpm
> > +	* "fsl,qoriq-rcpm-2.0": for chassis 2.0 rcpm
> > +	* "fsl,qoriq-rcpm-2.1": for chassis 2.1 rcpm
> > +
> > +All references to "1.0" and "2.0" refer to the QorIQ chassis version
> > +to which the chip complies.
> > +Chassis Version		Example Chips
> > +---------------		-------------------------------
> > +1.0				p4080, p5020, p5040, p2041, p3041
> > +2.0				t4240, b4860, b4420
> > +2.1				t1040, ls1021
> > +
> > +Example:
> > +The RCPM node for T4240:
> > +	rcpm: global-utilities@e2000 {
> > +		compatible = "fsl,t4240-rcpm", "fsl,qoriq-rcpm-2.0";
> > +		reg = <0xe2000 0x1000>;
> > +		fsl,#rcpm-wakeup-cells = <2>;
> > +	};
> > +
> > +* Freescale RCPM Wakeup Source Device Tree Bindings
> > +-------------------------------------------
> > +Required rcpm-wakeup property should be added to a device node if the
> > +device can be used as a wakeup source.
> > +
> > +  - rcpm-wakeup: The value of the property consists of cells, the
> > + number of
> 
> Shouldn't this vendor specific property be prefixed with 'fsl,' as well?
> 

Okay.

> > +	cells defined in "fsl,#rcpm-wakeup-cells". The first cell is a pointer
> > +	to the rcpm node, the second cell is the bit mask that should be set
> > +	in IPPDEXPCR0, and the third cell is for IPPDEXPCR1, and so on.
> 
> I guess that IPPDEXPCR0 and IPPDEXPCR1 need some documentation too, or a pointer
> to hardware documents containing more detailed info about them.
> 

Following the "rcpm-wakeup" documents put a "Note" to describe IPPDEXPCRx registers?

Regards,
-Dongsheng
Dongsheng Wang Sept. 25, 2015, 2:38 a.m. UTC | #4
> > +* Freescale RCPM Wakeup Source Device Tree Bindings
> > +-------------------------------------------
> > +Required rcpm-wakeup property should be added to a device node if the
> > device
> > +can be used as a wakeup source.
> > +
> > +  - rcpm-wakeup: The value of the property consists of cells, the number of
> > +     cells defined in "fsl,#rcpm-wakeup-cells". The first cell is a pointer
> > +     to the rcpm node, the second cell is the bit mask that should be set
> > +     in IPPDEXPCR0, and the third cell is for IPPDEXPCR1, and so on.
> 
> The phandle should not be included in the cell count.
> 

Yes, the first cell "&rcpm" should be in the cell count, right?

Regards,
-Dongsheng
Scott Wood Sept. 25, 2015, 2:43 a.m. UTC | #5
On Thu, 2015-09-24 at 21:38 -0500, Wang Dongsheng-B40534 wrote:
> > > +* Freescale RCPM Wakeup Source Device Tree Bindings
> > > +-------------------------------------------
> > > +Required rcpm-wakeup property should be added to a device node if the
> > > device
> > > +can be used as a wakeup source.
> > > +
> > > +  - rcpm-wakeup: The value of the property consists of cells, the 
> > > number of
> > > +     cells defined in "fsl,#rcpm-wakeup-cells". The first cell is a 
> > > pointer
> > > +     to the rcpm node, the second cell is the bit mask that should be 
> > > set
> > > +     in IPPDEXPCR0, and the third cell is for IPPDEXPCR1, and so on.
> > 
> > The phandle should not be included in the cell count.
> > 
> 
> Yes, the first cell "&rcpm" should be in the cell count, right?

No.  None of the other #foo-cells work that way.

-Scott
Dongsheng Wang Sept. 25, 2015, 2:51 a.m. UTC | #6
> On Thu, 2015-09-24 at 21:38 -0500, Wang Dongsheng-B40534 wrote:
> > > > +* Freescale RCPM Wakeup Source Device Tree Bindings
> > > > +-------------------------------------------
> > > > +Required rcpm-wakeup property should be added to a device node if the
> > > > device
> > > > +can be used as a wakeup source.
> > > > +
> > > > +  - rcpm-wakeup: The value of the property consists of cells, the
> > > > number of
> > > > +     cells defined in "fsl,#rcpm-wakeup-cells". The first cell is a
> > > > pointer
> > > > +     to the rcpm node, the second cell is the bit mask that should be
> > > > set
> > > > +     in IPPDEXPCR0, and the third cell is for IPPDEXPCR1, and so on.
> > >
> > > The phandle should not be included in the cell count.
> > >
> >
> > Yes, the first cell "&rcpm" should be in the cell count, right?
> 
> No.  None of the other #foo-cells work that way.
> 

Sorry a type wrong. I means the first cell "&rcpm" should *NOT* be in the cell count.

Regards,
-Dongsheng
Stuart Yoder Oct. 1, 2015, 5:05 p.m. UTC | #7
> +++ b/Documentation/devicetree/bindings/soc/fsl/rcpm.txt
> @@ -0,0 +1,63 @@
> +* Run Control and Power Management
> +-------------------------------------------
> +The RCPM performs all device-level tasks associated with device run control
> +and power management.
> +
> +Required properites:
> +  - reg : Offset and length of the register set of RCPM block.

s/RCPM block/the RCPM block/

> +  - fsl,#rcpm-wakeup-cells : The number of cells in rcpm-wakeup property.

s/rcpm-wakeup-property/the rcpm-wakeup-property/

> +  - compatible : Sould contain a chip-specific RCPM block compatible string

s/Sould/Should

"Should" means it is recommended, but does not mean "must".  Is it really optional?

> +       and (if applicable) may contain a chassis-version RCPM compatible
> +       string. Chip-specific strings are of the form "fsl,<chip>-rcpm",
> +       such as:
> +       * "fsl,p2041-rcpm"
> +       * "fsl,p3041-rcpm"
> +       * "fsl,p4080-rcpm"
> +       * "fsl,p5020-rcpm"
> +       * "fsl,p5040-rcpm"
> +       * "fsl,t4240-rcpm"
> +       * "fsl,b4420-rcpm"
> +       * "fsl,b4860-rcpm"

2 or 3 examples is enough.

> +       Chassis-version strings are of the form "fsl,qoriq-rcpm-<version>",
> +       such as:
> +       * "fsl,qoriq-rcpm-1.0": for chassis 1.0 rcpm
> +       * "fsl,qoriq-rcpm-2.0": for chassis 2.0 rcpm
> +       * "fsl,qoriq-rcpm-2.1": for chassis 2.1 rcpm
> +
> +All references to "1.0" and "2.0" refer to the QorIQ chassis version to
> +which the chip complies.
> +Chassis Version                Example Chips
> +---------------                -------------------------------
> +1.0                            p4080, p5020, p5040, p2041, p3041
> +2.0                            t4240, b4860, b4420
> +2.1                            t1040, ls1021

Not sure this binding is the place to maintain a table of chassis
versions to SoCs.

Thanks,
Stuart
Scott Wood Oct. 1, 2015, 5:07 p.m. UTC | #8
On Thu, 2015-10-01 at 12:05 -0500, Yoder Stuart-B08248 wrote:
> > +++ b/Documentation/devicetree/bindings/soc/fsl/rcpm.txt
> > @@ -0,0 +1,63 @@
> > +* Run Control and Power Management
> > +-------------------------------------------
> > +The RCPM performs all device-level tasks associated with device run 
> > control
> > +and power management.
> > +
> > +Required properites:
> > +  - reg : Offset and length of the register set of RCPM block.
> 
> s/RCPM block/the RCPM block/
> 
> > +  - fsl,#rcpm-wakeup-cells : The number of cells in rcpm-wakeup property.
> 
> s/rcpm-wakeup-property/the rcpm-wakeup-property/
> 
> > +  - compatible : Sould contain a chip-specific RCPM block compatible 
> > string
> 
> s/Sould/Should
> 
> "Should" means it is recommended, but does not mean "must".  Is it really 
> optional?
> 
> > +       and (if applicable) may contain a chassis-version RCPM compatible
> > +       string. Chip-specific strings are of the form "fsl,<chip>-rcpm",
> > +       such as:
> > +       * "fsl,p2041-rcpm"
> > +       * "fsl,p3041-rcpm"
> > +       * "fsl,p4080-rcpm"
> > +       * "fsl,p5020-rcpm"
> > +       * "fsl,p5040-rcpm"
> > +       * "fsl,t4240-rcpm"
> > +       * "fsl,b4420-rcpm"
> > +       * "fsl,b4860-rcpm"
> 
> 2 or 3 examples is enough.
> 
> > +       Chassis-version strings are of the form "fsl,qoriq-rcpm-
> > <version>",
> > +       such as:
> > +       * "fsl,qoriq-rcpm-1.0": for chassis 1.0 rcpm
> > +       * "fsl,qoriq-rcpm-2.0": for chassis 2.0 rcpm
> > +       * "fsl,qoriq-rcpm-2.1": for chassis 2.1 rcpm
> > +
> > +All references to "1.0" and "2.0" refer to the QorIQ chassis version to
> > +which the chip complies.
> > +Chassis Version                Example Chips
> > +---------------                -------------------------------
> > +1.0                            p4080, p5020, p5040, p2041, p3041
> > +2.0                            t4240, b4860, b4420
> > +2.1                            t1040, ls1021
> 
> Not sure this binding is the place to maintain a table of chassis
> versions to SoCs.

This is something I've been encouraging, given that the block versions are 
not publicly documented.  It lets people find a manual that describes the 
advertised programming interface.

-Scott
Dongsheng Wang Oct. 8, 2015, 2:32 a.m. UTC | #9
> > +++ b/Documentation/devicetree/bindings/soc/fsl/rcpm.txt
> > @@ -0,0 +1,63 @@
> > +* Run Control and Power Management
> > +-------------------------------------------
> > +The RCPM performs all device-level tasks associated with device run
> > +control and power management.
> > +
> > +Required properites:
> > +  - reg : Offset and length of the register set of RCPM block.
> 
> s/RCPM block/the RCPM block/
> 
> > +  - fsl,#rcpm-wakeup-cells : The number of cells in rcpm-wakeup property.
> 
> s/rcpm-wakeup-property/the rcpm-wakeup-property/
> 
> > +  - compatible : Sould contain a chip-specific RCPM block compatible
> > + string
> 
> s/Sould/Should
> 
> "Should" means it is recommended, but does not mean "must".  Is it really
> optional?
> 

Thanks for your patient explain, change to "must".

Regards,
-Dongsheng

> > +       and (if applicable) may contain a chassis-version RCPM compatible
> > +       string. Chip-specific strings are of the form "fsl,<chip>-rcpm",
> > +       such as:
> > +       * "fsl,p2041-rcpm"
> > +       * "fsl,p3041-rcpm"
> > +       * "fsl,p4080-rcpm"
> > +       * "fsl,p5020-rcpm"
> > +       * "fsl,p5040-rcpm"
> > +       * "fsl,t4240-rcpm"
> > +       * "fsl,b4420-rcpm"
> > +       * "fsl,b4860-rcpm"
> 
> 2 or 3 examples is enough.
> 
> > +       Chassis-version strings are of the form "fsl,qoriq-rcpm-<version>",
> > +       such as:
> > +       * "fsl,qoriq-rcpm-1.0": for chassis 1.0 rcpm
> > +       * "fsl,qoriq-rcpm-2.0": for chassis 2.0 rcpm
> > +       * "fsl,qoriq-rcpm-2.1": for chassis 2.1 rcpm
> > +
> > +All references to "1.0" and "2.0" refer to the QorIQ chassis version
> > +to which the chip complies.
> > +Chassis Version                Example Chips
> > +---------------                -------------------------------
> > +1.0                            p4080, p5020, p5040, p2041, p3041
> > +2.0                            t4240, b4860, b4420
> > +2.1                            t1040, ls1021
> 
> Not sure this binding is the place to maintain a table of chassis versions to
> SoCs.
> 
> Thanks,
> Stuart
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/soc/fsl/rcpm.txt b/Documentation/devicetree/bindings/soc/fsl/rcpm.txt
new file mode 100644
index 0000000..52110ec
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/fsl/rcpm.txt
@@ -0,0 +1,63 @@ 
+* Run Control and Power Management
+-------------------------------------------
+The RCPM performs all device-level tasks associated with device run control
+and power management.
+
+Required properites:
+  - reg : Offset and length of the register set of RCPM block.
+  - fsl,#rcpm-wakeup-cells : The number of cells in rcpm-wakeup property.
+  - compatible : Sould contain a chip-specific RCPM block compatible string
+	and (if applicable) may contain a chassis-version RCPM compatible
+	string. Chip-specific strings are of the form "fsl,<chip>-rcpm",
+	such as:
+	* "fsl,p2041-rcpm"
+	* "fsl,p3041-rcpm"
+	* "fsl,p4080-rcpm"
+	* "fsl,p5020-rcpm"
+	* "fsl,p5040-rcpm"
+	* "fsl,t4240-rcpm"
+	* "fsl,b4420-rcpm"
+	* "fsl,b4860-rcpm"
+
+	Chassis-version strings are of the form "fsl,qoriq-rcpm-<version>",
+	such as:
+	* "fsl,qoriq-rcpm-1.0": for chassis 1.0 rcpm
+	* "fsl,qoriq-rcpm-2.0": for chassis 2.0 rcpm
+	* "fsl,qoriq-rcpm-2.1": for chassis 2.1 rcpm
+
+All references to "1.0" and "2.0" refer to the QorIQ chassis version to
+which the chip complies.
+Chassis Version		Example Chips
+---------------		-------------------------------
+1.0				p4080, p5020, p5040, p2041, p3041
+2.0				t4240, b4860, b4420
+2.1				t1040, ls1021
+
+Example:
+The RCPM node for T4240:
+	rcpm: global-utilities@e2000 {
+		compatible = "fsl,t4240-rcpm", "fsl,qoriq-rcpm-2.0";
+		reg = <0xe2000 0x1000>;
+		fsl,#rcpm-wakeup-cells = <2>;
+	};
+
+* Freescale RCPM Wakeup Source Device Tree Bindings
+-------------------------------------------
+Required rcpm-wakeup property should be added to a device node if the device
+can be used as a wakeup source.
+
+  - rcpm-wakeup: The value of the property consists of cells, the number of
+	cells defined in "fsl,#rcpm-wakeup-cells". The first cell is a pointer
+	to the rcpm node, the second cell is the bit mask that should be set
+	in IPPDEXPCR0, and the third cell is for IPPDEXPCR1, and so on.
+
+Example:
+	lpuart0: serial@2950000 {
+		compatible = "fsl,ls1021a-lpuart";
+		reg = <0x0 0x2950000 0x0 0x1000>;
+		interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&sysclk>;
+		clock-names = "ipg";
+		rcpm-wakeup = <&rcpm 0x0 0x40000000>;
+		status = "disabled";
+	};