[PATCH v2] mmc: sunxi: Handle the 'New Timings'

STALE3668d

6 messages, 4 authors, 2016-08-23 · open the first message on its own page

[PATCH v2] mmc: sunxi: Handle the 'New Timings'

From: mark.rutland@arm.com (Mark Rutland)
Date: 2016-08-01 15:30:19

On Mon, Aug 01, 2016 at 03:10:29PM +0200, Jean-Francois Moine wrote:
Some MMC devices as mmc2 in the A83T or mmc1 and mmc2 in the H3 have
a 'New Timings' mode.
Set this capacity in the DT and use it when possible.
What exactly is this "New Timings" mode?

Why do we wnat to set it? Improved performance, power?

Is it *necessary* to use it?
quoted hunk
Signed-off-by: Jean-Francois Moine <redacted>
---
I don't know if this mode works or is needed at 25MHz.
---
 Documentation/devicetree/bindings/mmc/sunxi-mmc.txt |  1 +
 drivers/mmc/host/sunxi-mmc.c                        | 21 +++++++++++++++++++--
 2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/mmc/sunxi-mmc.txt b/Documentation/devicetree/bindings/mmc/sunxi-mmc.txt
index 4bf41d8..a541bf4 100644
--- a/Documentation/devicetree/bindings/mmc/sunxi-mmc.txt
+++ b/Documentation/devicetree/bindings/mmc/sunxi-mmc.txt
@@ -19,6 +19,7 @@ Optional properties:
  - reset-names : must contain "ahb"
  - for cd, bus-width and additional generic mmc parameters
    please refer to mmc.txt within this directory
+ - allwinner,new-timings: the controller may accept the "New Timings" mode
It's not at all clear to me what this means. This needs a better
description.

Which devices have this? Can we determine this based on compatible
string?

Mark.

[PATCH v2] mmc: sunxi: Handle the 'New Timings'

From: Jean-Francois Moine <hidden>
Date: 2016-08-01 16:26:03

On Mon, 1 Aug 2016 16:30:19 +0100
Mark Rutland [off-list ref] wrote:
On Mon, Aug 01, 2016 at 03:10:29PM +0200, Jean-Francois Moine wrote:
quoted
Some MMC devices as mmc2 in the A83T or mmc1 and mmc2 in the H3 have
a 'New Timings' mode.
Set this capacity in the DT and use it when possible.
What exactly is this "New Timings" mode?

Why do we wnat to set it? Improved performance, power?

Is it *necessary* to use it?
This mode is described at least in the Allwinner's documentation of the
A83T, A64 and H3.
From my tests, it is required to access the eMMC of the Banana Pi M3
(mmc2).
quoted
Signed-off-by: Jean-Francois Moine <redacted>
---
I don't know if this mode works or is needed at 25MHz.
---
 Documentation/devicetree/bindings/mmc/sunxi-mmc.txt |  1 +
 drivers/mmc/host/sunxi-mmc.c                        | 21 +++++++++++++++++++--
 2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/mmc/sunxi-mmc.txt b/Documentation/devicetree/bindings/mmc/sunxi-mmc.txt
index 4bf41d8..a541bf4 100644
--- a/Documentation/devicetree/bindings/mmc/sunxi-mmc.txt
+++ b/Documentation/devicetree/bindings/mmc/sunxi-mmc.txt
@@ -19,6 +19,7 @@ Optional properties:
  - reset-names : must contain "ahb"
  - for cd, bus-width and additional generic mmc parameters
    please refer to mmc.txt within this directory
+ - allwinner,new-timings: the controller may accept the "New Timings" mode
It's not at all clear to me what this means. This needs a better
description.

Which devices have this? Can we determine this based on compatible
string?
No, only some devices of the SoCs have this capability: the mmc2 of the
A83T, the smhc0 and smhc1 of the A64, and the mmc1 and mmc2 of the H3.

-- 
Ken ar c'henta?	|	      ** Breizh ha Linux atav! **
Jef		|		http://moinejf.free.fr/

[PATCH v2] mmc: sunxi: Handle the 'New Timings'

From: mark.rutland@arm.com (Mark Rutland)
Date: 2016-08-02 11:20:48

On Mon, Aug 01, 2016 at 06:26:03PM +0200, Jean-Francois Moine wrote:
On Mon, 1 Aug 2016 16:30:19 +0100
Mark Rutland [off-list ref] wrote:
quoted
On Mon, Aug 01, 2016 at 03:10:29PM +0200, Jean-Francois Moine wrote:
quoted
Some MMC devices as mmc2 in the A83T or mmc1 and mmc2 in the H3 have
a 'New Timings' mode.
Set this capacity in the DT and use it when possible.
What exactly is this "New Timings" mode?

Why do we wnat to set it? Improved performance, power?

Is it *necessary* to use it?
This mode is described at least in the Allwinner's documentation of the
A83T, A64 and H3.
Is this publicly available? If not, can the gist of it be described?
From my tests, it is required to access the eMMC of the Banana Pi M3
(mmc2).
Ok.
quoted
quoted
Signed-off-by: Jean-Francois Moine <redacted>
---
I don't know if this mode works or is needed at 25MHz.
---
 Documentation/devicetree/bindings/mmc/sunxi-mmc.txt |  1 +
 drivers/mmc/host/sunxi-mmc.c                        | 21 +++++++++++++++++++--
 2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/mmc/sunxi-mmc.txt b/Documentation/devicetree/bindings/mmc/sunxi-mmc.txt
index 4bf41d8..a541bf4 100644
--- a/Documentation/devicetree/bindings/mmc/sunxi-mmc.txt
+++ b/Documentation/devicetree/bindings/mmc/sunxi-mmc.txt
@@ -19,6 +19,7 @@ Optional properties:
  - reset-names : must contain "ahb"
  - for cd, bus-width and additional generic mmc parameters
    please refer to mmc.txt within this directory
+ - allwinner,new-timings: the controller may accept the "New Timings" mode
It's not at all clear to me what this means. This needs a better
description.

Which devices have this? Can we determine this based on compatible
string?
No, only some devices of the SoCs have this capability: the mmc2 of the
A83T, the smhc0 and smhc1 of the A64, and the mmc1 and mmc2 of the H3.
Ok.

Thanks,
Mark.

[PATCH v2] mmc: sunxi: Handle the 'New Timings'

From: Jean-Francois Moine <hidden>
Date: 2016-08-02 11:43:01

On Tue, 2 Aug 2016 12:20:48 +0100
Mark Rutland [off-list ref] wrote:
quoted
This mode is described at least in the Allwinner's documentation of the
A83T, A64 and H3.
Is this publicly available? If not, can the gist of it be described?
The links are in the kernel Documentation/arm/sunxi/README

-- 
Ken ar c'henta?	|	      ** Breizh ha Linux atav! **
Jef		|		http://moinejf.free.fr/

[PATCH v2] mmc: sunxi: Handle the 'New Timings'

From: Icenowy Zheng <hidden>
Date: 2016-08-02 11:55:44


02.08.2016, 19:48, "Jean-Francois Moine" [off-list ref]:
On Tue, 2 Aug 2016 12:20:48 +0100
Mark Rutland [off-list ref] wrote:
quoted
?> This mode is described at least in the Allwinner's documentation of the
?> A83T, A64 and H3.

?Is this publicly available? If not, can the gist of it be described?
The links are in the kernel Documentation/arm/sunxi/README
All the SoCs you mentioned here have no data sheet link in the file.
I may submit a patch to fix this.
--
Ken ar c'henta? | ** Breizh ha Linux atav! **
Jef | http://moinejf.free.fr/

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

[PATCH v2] mmc: sunxi: Handle the 'New Timings'

From: Maxime Ripard <hidden>
Date: 2016-08-23 09:17:19

Hi Mark,

On Mon, Aug 01, 2016 at 04:30:19PM +0100, Mark Rutland wrote:
On Mon, Aug 01, 2016 at 03:10:29PM +0200, Jean-Francois Moine wrote:
quoted
Some MMC devices as mmc2 in the A83T or mmc1 and mmc2 in the H3 have
a 'New Timings' mode.
Set this capacity in the DT and use it when possible.
What exactly is this "New Timings" mode?

Why do we wnat to set it? Improved performance, power?
Allwinner calls it under a rather generic name: "new mode" (which is
of course the opposite of the old mode).

In the old mode, the rate and phase controls were all handled by the
functional clock feeding the MMC controller.

In the new mode, the MMC controller itself is able to do some sort of
auto-calibration to adjust the rate and phase of the clock output on
the MMC bus.
Is it *necessary* to use it?
Yes. Allwinner recommends to use it to enhance the compatibility with
MMC cards, and they say that it also improves the performances, even
though no one really checked. The main point for us at the moment is
that some eMMCs at least require the new mode to operate properly.
quoted
Signed-off-by: Jean-Francois Moine <redacted>
---
I don't know if this mode works or is needed at 25MHz.
---
 Documentation/devicetree/bindings/mmc/sunxi-mmc.txt |  1 +
 drivers/mmc/host/sunxi-mmc.c                        | 21 +++++++++++++++++++--
 2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/mmc/sunxi-mmc.txt b/Documentation/devicetree/bindings/mmc/sunxi-mmc.txt
index 4bf41d8..a541bf4 100644
--- a/Documentation/devicetree/bindings/mmc/sunxi-mmc.txt
+++ b/Documentation/devicetree/bindings/mmc/sunxi-mmc.txt
@@ -19,6 +19,7 @@ Optional properties:
  - reset-names : must contain "ahb"
  - for cd, bus-width and additional generic mmc parameters
    please refer to mmc.txt within this directory
+ - allwinner,new-timings: the controller may accept the "New Timings" mode
It's not at all clear to me what this means. This needs a better
description.

Which devices have this? Can we determine this based on compatible
string?
On some SoCs, yes, on some, no.

The older SoCs (everything up to A80) only have the old mode, so the
compatible works there. The newer SoCs (H3, A64) support the new mode
on all their MMC controllers, so the compatible works too. However, in
the SoC Jean-Francois is currently working on, the A83T, the new mode
is only found in one (over three) controller.

So I really think we need a property to express this, at least in the
A83T case.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160823/43972904/attachment.sig>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help