Message ID | 1405398183-31345-3-git-send-email-Li.Xiubo@freescale.com |
---|---|
State | Accepted, archived |
Commit | 275876e208e28abf4b96ec89030e482b1331ee75 |
Headers | show |
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; > +};
> > +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
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
> 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
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 --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; +};
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