diff mbox

[PATCHv6,2/2] dt/bindings: Add the DT binding documentation for endianness

Message ID 1405398183-31345-3-git-send-email-Li.Xiubo@freescale.com
State Accepted, archived
Commit 275876e208e28abf4b96ec89030e482b1331ee75
Headers show

Commit Message

Xiubo Li July 15, 2014, 4:23 a.m. UTC
Device-Tree binding for device endianness
Index     Device     Endianness properties
---------------------------------------------------
1         BE         'big-endian'
2         LE         'little-endian'

For one device driver, which will run in different scenarios above
on different SoCs using the devicetree, we need one way to simplify
this.

Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com>
---
 .../devicetree/bindings/regmap/regmap.txt          | 47 ++++++++++++++++++++++
 1 file changed, 47 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/regmap/regmap.txt

Comments

Varka Bhadram July 15, 2014, 5:33 a.m. UTC | #1
On 07/15/2014 09:53 AM, Xiubo Li wrote:
> Device-Tree binding for device endianness
> Index     Device     Endianness properties
> ---------------------------------------------------
> 1         BE         'big-endian'
> 2         LE         'little-endian'
>
> For one device driver, which will run in different scenarios above
> on different SoCs using the devicetree, we need one way to simplify
> this.
>
> Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com>
> ---
>   .../devicetree/bindings/regmap/regmap.txt          | 47 ++++++++++++++++++++++
>   1 file changed, 47 insertions(+)
>   create mode 100644 Documentation/devicetree/bindings/regmap/regmap.txt
>
> diff --git a/Documentation/devicetree/bindings/regmap/regmap.txt b/Documentation/devicetree/bindings/regmap/regmap.txt
> new file mode 100644
> index 0000000..b494f8b
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regmap/regmap.txt
> @@ -0,0 +1,47 @@
> +Device-Tree binding for regmap
> +
> +The endianness mode of CPU & Device scenarios:
> +Index     Device     Endianness properties
> +---------------------------------------------------
> +1         BE         'big-endian'
> +2         LE         'little-endian'
> +
> +For one device driver, which will run in different scenarios above
> +on different SoCs using the devicetree, we need one way to simplify
> +this.
> +
> +Required properties:
> +- {big,little}-endian: these are boolean properties, if absent
> +  meaning that the CPU and the Device are in the same endianness mode,
> +  these properties are for register values and all the buffers only.
> +

It would be more readable if its like this:
Required properties:
- {big,little}-endian:	These are boolean properties, if absent meaning
			that the CPU and the Device are in the same
			endianness mode, these propperties are for
			values and all the buffers only.

> +Examples:
> +Scenario 1 : CPU in LE mode & device in LE mode.
> +dev: dev@40031000 {
> +	      compatible = "name";
> +	      reg = <0x40031000 0x1000>;
> +	      ...
> +};
> +
> +Scenario 2 : CPU in LE mode & device in BE mode.
> +dev: dev@40031000 {
> +	      compatible = "name";
> +	      reg = <0x40031000 0x1000>;
> +	      ...
> +	      big-endian;
> +};
> +
> +Scenario 3 : CPU in BE mode & device in BE mode.
> +dev: dev@40031000 {
> +	      compatible = "name";
> +	      reg = <0x40031000 0x1000>;
> +	      ...
> +};
> +
> +Scenario 4 : CPU in BE mode & device in LE mode.
> +dev: dev@40031000 {
> +	      compatible = "name";
> +	      reg = <0x40031000 0x1000>;
> +	      ...
> +	      little-endian;
> +};
Xiubo Li July 15, 2014, 5:36 a.m. UTC | #2
> > +For one device driver, which will run in different scenarios above
> > +on different SoCs using the devicetree, we need one way to simplify
> > +this.
> > +
> > +Required properties:
> > +- {big,little}-endian: these are boolean properties, if absent
> > +  meaning that the CPU and the Device are in the same endianness mode,
> > +  these properties are for register values and all the buffers only.
> > +
> 
> It would be more readable if its like this:
> Required properties:
> - {big,little}-endian:	These are boolean properties, if absent meaning
> 			that the CPU and the Device are in the same
> 			endianness mode, these propperties are for
> 			values and all the buffers only.
> 

Yes, it is.

See the next verison.

Thanks,

BRs
Xiubo



> > +Examples:
> > +Scenario 1 : CPU in LE mode & device in LE mode.
> > +dev: dev@40031000 {
> > +	      compatible = "name";
> > +	      reg = <0x40031000 0x1000>;
> > +	      ...
> > +};
> > +
> > +Scenario 2 : CPU in LE mode & device in BE mode.
> > +dev: dev@40031000 {
> > +	      compatible = "name";
> > +	      reg = <0x40031000 0x1000>;
> > +	      ...
> > +	      big-endian;
> > +};
> > +
> > +Scenario 3 : CPU in BE mode & device in BE mode.
> > +dev: dev@40031000 {
> > +	      compatible = "name";
> > +	      reg = <0x40031000 0x1000>;
> > +	      ...
> > +};
> > +
> > +Scenario 4 : CPU in BE mode & device in LE mode.
> > +dev: dev@40031000 {
> > +	      compatible = "name";
> > +	      reg = <0x40031000 0x1000>;
> > +	      ...
> > +	      little-endian;
> > +};
> 
> 
> --
> Regards,
> Varka Bhadram.

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Thierry Reding Aug. 20, 2014, 8:05 a.m. UTC | #3
On Tue, Jul 15, 2014 at 12:23:03PM +0800, Xiubo Li wrote:
> Device-Tree binding for device endianness
> Index     Device     Endianness properties
> ---------------------------------------------------
> 1         BE         'big-endian'
> 2         LE         'little-endian'
> 
> For one device driver, which will run in different scenarios above
> on different SoCs using the devicetree, we need one way to simplify
> this.
> 
> Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com>
> ---
>  .../devicetree/bindings/regmap/regmap.txt          | 47 ++++++++++++++++++++++
>  1 file changed, 47 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/regmap/regmap.txt

Sorry for jumping in so late. I think this binding documentation needs
to be moved somewhere else. regmap is a Linux kernel specific
implementation detail and therefore has no place in device tree binding
descriptions. Furthermore the endianness properties described herein do
apply to drivers that don't use regmap.

Perhaps we need some top-level file that describes generic properties
such as this?

Thierry
Xiubo Li Aug. 20, 2014, 9:14 a.m. UTC | #4
> Subject: Re: [PATCHv6 2/2] dt/bindings: Add the DT binding documentation for
> endianness
> 
> On Tue, Jul 15, 2014 at 12:23:03PM +0800, Xiubo Li wrote:
> > Device-Tree binding for device endianness
> > Index     Device     Endianness properties
> > ---------------------------------------------------
> > 1         BE         'big-endian'
> > 2         LE         'little-endian'
> >
> > For one device driver, which will run in different scenarios above
> > on different SoCs using the devicetree, we need one way to simplify
> > this.
> >
> > Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com>
> > ---
> >  .../devicetree/bindings/regmap/regmap.txt          | 47
> ++++++++++++++++++++++
> >  1 file changed, 47 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/regmap/regmap.txt
> 
> Sorry for jumping in so late. I think this binding documentation needs
> to be moved somewhere else. regmap is a Linux kernel specific
> implementation detail and therefore has no place in device tree binding
> descriptions. Furthermore the endianness properties described herein do
> apply to drivers that don't use regmap.
> 
> Perhaps we need some top-level file that describes generic properties
> such as this?
> 
> Thierry

Yes, I do agree.
And there are many devices that have the endian issue without using the
Regmap in our LS* SoCs.

And I also think one generic binding description of this will be much
better.

Where should we place it? In Documentation/devicetree/bindings/, or...?


Thanks,

BRs
Xiubo


--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Thierry Reding Aug. 20, 2014, 9:43 a.m. UTC | #5
On Wed, Aug 20, 2014 at 09:14:02AM +0000, Li.Xiubo@freescale.com wrote:
> > Subject: Re: [PATCHv6 2/2] dt/bindings: Add the DT binding documentation for
> > endianness
> > 
> > On Tue, Jul 15, 2014 at 12:23:03PM +0800, Xiubo Li wrote:
> > > Device-Tree binding for device endianness
> > > Index     Device     Endianness properties
> > > ---------------------------------------------------
> > > 1         BE         'big-endian'
> > > 2         LE         'little-endian'
> > >
> > > For one device driver, which will run in different scenarios above
> > > on different SoCs using the devicetree, we need one way to simplify
> > > this.
> > >
> > > Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com>
> > > ---
> > >  .../devicetree/bindings/regmap/regmap.txt          | 47
> > ++++++++++++++++++++++
> > >  1 file changed, 47 insertions(+)
> > >  create mode 100644 Documentation/devicetree/bindings/regmap/regmap.txt
> > 
> > Sorry for jumping in so late. I think this binding documentation needs
> > to be moved somewhere else. regmap is a Linux kernel specific
> > implementation detail and therefore has no place in device tree binding
> > descriptions. Furthermore the endianness properties described herein do
> > apply to drivers that don't use regmap.
> > 
> > Perhaps we need some top-level file that describes generic properties
> > such as this?
> > 
> > Thierry
> 
> Yes, I do agree.
> And there are many devices that have the endian issue without using the
> Regmap in our LS* SoCs.
> 
> And I also think one generic binding description of this will be much
> better.
> 
> Where should we place it? In Documentation/devicetree/bindings/, or...?

Documentation/devicetree/bindings/standard-properties.txt perhaps?

Thierry
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/regmap/regmap.txt b/Documentation/devicetree/bindings/regmap/regmap.txt
new file mode 100644
index 0000000..b494f8b
--- /dev/null
+++ b/Documentation/devicetree/bindings/regmap/regmap.txt
@@ -0,0 +1,47 @@ 
+Device-Tree binding for regmap
+
+The endianness mode of CPU & Device scenarios:
+Index     Device     Endianness properties
+---------------------------------------------------
+1         BE         'big-endian'
+2         LE         'little-endian'
+
+For one device driver, which will run in different scenarios above
+on different SoCs using the devicetree, we need one way to simplify
+this.
+
+Required properties:
+- {big,little}-endian: these are boolean properties, if absent
+  meaning that the CPU and the Device are in the same endianness mode,
+  these properties are for register values and all the buffers only.
+
+Examples:
+Scenario 1 : CPU in LE mode & device in LE mode.
+dev: dev@40031000 {
+	      compatible = "name";
+	      reg = <0x40031000 0x1000>;
+	      ...
+};
+
+Scenario 2 : CPU in LE mode & device in BE mode.
+dev: dev@40031000 {
+	      compatible = "name";
+	      reg = <0x40031000 0x1000>;
+	      ...
+	      big-endian;
+};
+
+Scenario 3 : CPU in BE mode & device in BE mode.
+dev: dev@40031000 {
+	      compatible = "name";
+	      reg = <0x40031000 0x1000>;
+	      ...
+};
+
+Scenario 4 : CPU in BE mode & device in LE mode.
+dev: dev@40031000 {
+	      compatible = "name";
+	      reg = <0x40031000 0x1000>;
+	      ...
+	      little-endian;
+};