Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1360075 > unrolled thread

[PATCH] regmap: fix documentation to match code

Started byArnd Bergmann <arnd@arndb.de>
First post2016-03-17 18:30 +0100
Last post2016-03-21 14:20 +0100
Articles 4 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] regmap: fix documentation to match code Arnd Bergmann <arnd@arndb.de> - 2016-03-17 18:30 +0100
    Re: [PATCH] regmap: fix documentation to match code Mark Brown <broonie@kernel.org> - 2016-03-17 18:50 +0100
    Applied "regmap: fix documentation to match code" to the regmap tree Mark Brown <broonie@kernel.org> - 2016-03-18 12:00 +0100
    Re: [PATCH] regmap: fix documentation to match code Rob Herring <robh@kernel.org> - 2016-03-21 14:20 +0100

#1360075 — [PATCH] regmap: fix documentation to match code

FromArnd Bergmann <arnd@arndb.de>
Date2016-03-17 18:30 +0100
Subject[PATCH] regmap: fix documentation to match code
Message-ID<rdJUe-1ST-17@gated-at.bofh.it>
The regmap binding talks about one thing, which is register
endianess, and it gets almost every aspect of it wrong.

This replaces the current text of the file with a version
that makes more sense and that matches what we implement
now.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: a06c488da0b0 ("regmap: Add explict native endian flag to DT bindings")
Fixes: 275876e208e2 ("regmap: Add the DT binding documentation for endianness")
---
Hi Mark,

I think this got lost when you fixed the code for 4.6, and the current
documentation still has the initial text you wrote back in January
that doesn't actually explain what happens. 

 .../devicetree/bindings/regmap/regmap.txt          | 59 +++++++---------------
 1 file changed, 19 insertions(+), 40 deletions(-)

diff --git a/Documentation/devicetree/bindings/regmap/regmap.txt b/Documentation/devicetree/bindings/regmap/regmap.txt
index e98a9652ccc8..0127be360fe8 100644
--- a/Documentation/devicetree/bindings/regmap/regmap.txt
+++ b/Documentation/devicetree/bindings/regmap/regmap.txt
@@ -1,50 +1,29 @@
-Device-Tree binding for regmap
-
-The endianness mode of CPU & Device scenarios:
-Index     Device     Endianness properties
----------------------------------------------------
-1         BE         'big-endian'
-2         LE         'little-endian'
-3	  Native     'native-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.
+Devicetree binding for regmap
 
 Optional properties:
-- {big,little,native}-endian: these are boolean properties, if absent
-  then the implementation will choose a default based on the device
-  being controlled.  These properties are for register values and all
-  the buffers only.  Native endian means that the CPU and device have
-  the same endianness.
 
-Examples:
-Scenario 1 : CPU in LE mode & device in LE mode.
-dev: dev@40031000 {
-	      compatible = "name";
-	      reg = <0x40031000 0x1000>;
-	      ...
-};
+   little-endian,
+   big-endian,
+   native-endian:	See common-properties.txt for a definition
 
-Scenario 2 : CPU in LE mode & device in BE mode.
-dev: dev@40031000 {
-	      compatible = "name";
-	      reg = <0x40031000 0x1000>;
-	      ...
-	      big-endian;
-};
+Note:
+Regmap defaults to little-endian register access on MMIO based
+devices, this is by far the most common setting. On CPU
+architectures that typically run big-endian operating systems
+(e.g. PowerPC), registers can be defined as big-endian and must
+be marked that way in the devicetree.
 
-Scenario 3 : CPU in BE mode & device in BE mode.
-dev: dev@40031000 {
-	      compatible = "name";
-	      reg = <0x40031000 0x1000>;
-	      ...
-};
+On SoCs that can be operated in both big-endian and little-endian
+modes, with a single hardware switch controlling both the endianess
+of the CPU and a byteswap for MMIO registers (e.g. many Broadcom MIPS
+chips), "native-endian" is used to allow using the same device tree
+blob in both cases.
 
-Scenario 4 : CPU in BE mode & device in LE mode.
+Examples:
+Scenario 1 : a register set in big-endian mode.
 dev: dev@40031000 {
-	      compatible = "name";
+	      compatible = "syscon";
 	      reg = <0x40031000 0x1000>;
+	      big-endian;
 	      ...
-	      little-endian;
 };
-- 
2.7.0

[toc] | [next] | [standalone]


#1360089

FromMark Brown <broonie@kernel.org>
Date2016-03-17 18:50 +0100
Message-ID<rdKdB-1Zz-21@gated-at.bofh.it>
In reply to#1360075

[Multipart message — attachments visible in raw view] — view raw

On Thu, Mar 17, 2016 at 06:23:40PM +0100, Arnd Bergmann wrote:

> I think this got lost when you fixed the code for 4.6, and the current
> documentation still has the initial text you wrote back in January
> that doesn't actually explain what happens. 

It didn't get lost, you never actually submitted the patch.  You did
paste something into a reply to a message but never sent anything with a
signoff.  I'm definitely not going to apply anything that doesn't get
sent with a signoff.

[toc] | [prev] | [next] | [standalone]


#1360523 — Applied "regmap: fix documentation to match code" to the regmap tree

FromMark Brown <broonie@kernel.org>
Date2016-03-18 12:00 +0100
SubjectApplied "regmap: fix documentation to match code" to the regmap tree
Message-ID<re0im-4tH-17@gated-at.bofh.it>
In reply to#1360075
The patch

   regmap: fix documentation to match code

has been applied to the regmap tree at

   git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap.git 

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.  

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

From 2596e07a3ed5a5f4d8b89be316c2b704d6f5dc5f Mon Sep 17 00:00:00 2001
From: Arnd Bergmann <arnd@arndb.de>
Date: Thu, 17 Mar 2016 18:23:40 +0100
Subject: [PATCH] regmap: fix documentation to match code

The regmap binding talks about one thing, which is register
endianess, and it gets almost every aspect of it wrong.

This replaces the current text of the file with a version
that makes more sense and that matches what we implement
now.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: a06c488da0b0 ("regmap: Add explict native endian flag to DT bindings")
Fixes: 275876e208e2 ("regmap: Add the DT binding documentation for endianness")
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 .../devicetree/bindings/regmap/regmap.txt          | 59 +++++++---------------
 1 file changed, 19 insertions(+), 40 deletions(-)

diff --git a/Documentation/devicetree/bindings/regmap/regmap.txt b/Documentation/devicetree/bindings/regmap/regmap.txt
index e98a9652ccc8..0127be360fe8 100644
--- a/Documentation/devicetree/bindings/regmap/regmap.txt
+++ b/Documentation/devicetree/bindings/regmap/regmap.txt
@@ -1,50 +1,29 @@
-Device-Tree binding for regmap
-
-The endianness mode of CPU & Device scenarios:
-Index     Device     Endianness properties
----------------------------------------------------
-1         BE         'big-endian'
-2         LE         'little-endian'
-3	  Native     'native-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.
+Devicetree binding for regmap
 
 Optional properties:
-- {big,little,native}-endian: these are boolean properties, if absent
-  then the implementation will choose a default based on the device
-  being controlled.  These properties are for register values and all
-  the buffers only.  Native endian means that the CPU and device have
-  the same endianness.
 
-Examples:
-Scenario 1 : CPU in LE mode & device in LE mode.
-dev: dev@40031000 {
-	      compatible = "name";
-	      reg = <0x40031000 0x1000>;
-	      ...
-};
+   little-endian,
+   big-endian,
+   native-endian:	See common-properties.txt for a definition
 
-Scenario 2 : CPU in LE mode & device in BE mode.
-dev: dev@40031000 {
-	      compatible = "name";
-	      reg = <0x40031000 0x1000>;
-	      ...
-	      big-endian;
-};
+Note:
+Regmap defaults to little-endian register access on MMIO based
+devices, this is by far the most common setting. On CPU
+architectures that typically run big-endian operating systems
+(e.g. PowerPC), registers can be defined as big-endian and must
+be marked that way in the devicetree.
 
-Scenario 3 : CPU in BE mode & device in BE mode.
-dev: dev@40031000 {
-	      compatible = "name";
-	      reg = <0x40031000 0x1000>;
-	      ...
-};
+On SoCs that can be operated in both big-endian and little-endian
+modes, with a single hardware switch controlling both the endianess
+of the CPU and a byteswap for MMIO registers (e.g. many Broadcom MIPS
+chips), "native-endian" is used to allow using the same device tree
+blob in both cases.
 
-Scenario 4 : CPU in BE mode & device in LE mode.
+Examples:
+Scenario 1 : a register set in big-endian mode.
 dev: dev@40031000 {
-	      compatible = "name";
+	      compatible = "syscon";
 	      reg = <0x40031000 0x1000>;
+	      big-endian;
 	      ...
-	      little-endian;
 };
-- 
2.7.0

[toc] | [prev] | [next] | [standalone]


#1361817

FromRob Herring <robh@kernel.org>
Date2016-03-21 14:20 +0100
Message-ID<rf7Ut-6aS-13@gated-at.bofh.it>
In reply to#1360075
On Thu, Mar 17, 2016 at 06:23:40PM +0100, Arnd Bergmann wrote:
> The regmap binding talks about one thing, which is register
> endianess, and it gets almost every aspect of it wrong.
> 
> This replaces the current text of the file with a version
> that makes more sense and that matches what we implement
> now.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Fixes: a06c488da0b0 ("regmap: Add explict native endian flag to DT bindings")
> Fixes: 275876e208e2 ("regmap: Add the DT binding documentation for endianness")

[...]

> +Note:
> +Regmap defaults to little-endian register access on MMIO based
> +devices, this is by far the most common setting. On CPU

This seems a bit Linux specific to me, but I guess if we are defining 
the binding to be this way it is fine.

Acked-by: Rob Herring <robh@kernel.org>

> +architectures that typically run big-endian operating systems
> +(e.g. PowerPC), registers can be defined as big-endian and must
> +be marked that way in the devicetree.

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web