* [PATCH v2 1/2] sdhci-of-arasan: Modify arasan sdhci documentation about broken-cd and non-removable properties.
@ 2016-08-25 23:01 ` Zach Brown
0 siblings, 0 replies; 14+ messages in thread
From: Zach Brown @ 2016-08-25 23:01 UTC (permalink / raw)
To: adrian.hunter
Cc: robh+dt, ulf.hansson, mark.rutland, linux-mmc, devicetree,
linux-kernel, michal.simek, soren.brinkmann, linux-arm-kernel,
zach.brown
The sdhci controller on xilinx zynq devices will not function unless
the CD bit is provided. http://www.xilinx.com/support/answers/61064.html
In cases where it is impossible to provide the CD bit in hardware,
setting the controller to test mode and then setting inserted to true
will get the controller to function without the CD bit.
Additionally in some situations it will make sense to use the
"broken-cd" and "non-removable" property together.
i.e the sd device is non-removable so polling doesn't make sense, but
the CD is broken and the controller will need to be in test mode to
function.
This patch modifies the documentation to reflect those differences
from the standard behaviours.
Signed-off-by: Zach Brown <zach.brown@ni.com>
---
v2:
* improved commit messages
* removed fake-cd device property
* removed fake-cd quirk
* use broken-cd device property
* documented new usage of broken-cd
Documentation/devicetree/bindings/mmc/arasan,sdhci.txt | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
index 3404afa..b41c448 100644
--- a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
+++ b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
@@ -37,6 +37,14 @@ Optional Properties:
in place we will export a clock representing the Card Clock. This clock
is expected to be consumed by our PHY. You must also specify
+Card detection:
+The arasan controller does not work
+when the CD bit is not supplied unless in test mode.
+- broken-cd: The CD bit is not supplied and the controller will
+ need to be set to test mode to function.
+- non-removable: like normal, except it can now be partnered with
+ broken-cd, which will turn off polling, but keep test mode on.
+
Example:
sdhci@e0100000 {
compatible = "arasan,sdhci-8.9a";
@@ -72,4 +80,4 @@ Example:
phy-names = "phy_arasan";
#clock-cells = <0>;
status = "disabled";
- };
+ } ;
--
2.7.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 1/2] sdhci-of-arasan: Modify arasan sdhci documentation about broken-cd and non-removable properties.
@ 2016-08-25 23:01 ` Zach Brown
0 siblings, 0 replies; 14+ messages in thread
From: Zach Brown @ 2016-08-25 23:01 UTC (permalink / raw)
To: linux-arm-kernel
The sdhci controller on xilinx zynq devices will not function unless
the CD bit is provided. http://www.xilinx.com/support/answers/61064.html
In cases where it is impossible to provide the CD bit in hardware,
setting the controller to test mode and then setting inserted to true
will get the controller to function without the CD bit.
Additionally in some situations it will make sense to use the
"broken-cd" and "non-removable" property together.
i.e the sd device is non-removable so polling doesn't make sense, but
the CD is broken and the controller will need to be in test mode to
function.
This patch modifies the documentation to reflect those differences
from the standard behaviours.
Signed-off-by: Zach Brown <zach.brown@ni.com>
---
v2:
* improved commit messages
* removed fake-cd device property
* removed fake-cd quirk
* use broken-cd device property
* documented new usage of broken-cd
Documentation/devicetree/bindings/mmc/arasan,sdhci.txt | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
index 3404afa..b41c448 100644
--- a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
+++ b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
@@ -37,6 +37,14 @@ Optional Properties:
in place we will export a clock representing the Card Clock. This clock
is expected to be consumed by our PHY. You must also specify
+Card detection:
+The arasan controller does not work
+when the CD bit is not supplied unless in test mode.
+- broken-cd: The CD bit is not supplied and the controller will
+ need to be set to test mode to function.
+- non-removable: like normal, except it can now be partnered with
+ broken-cd, which will turn off polling, but keep test mode on.
+
Example:
sdhci at e0100000 {
compatible = "arasan,sdhci-8.9a";
@@ -72,4 +80,4 @@ Example:
phy-names = "phy_arasan";
#clock-cells = <0>;
status = "disabled";
- };
+ } ;
--
2.7.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 2/2] sdhci-of-arasan: Set controller to test mode when Card Detection is broken.
@ 2016-08-25 23:01 ` Zach Brown
0 siblings, 0 replies; 14+ messages in thread
From: Zach Brown @ 2016-08-25 23:01 UTC (permalink / raw)
To: adrian.hunter
Cc: robh+dt, ulf.hansson, mark.rutland, linux-mmc, devicetree,
linux-kernel, michal.simek, soren.brinkmann, linux-arm-kernel,
zach.brown
The sdhci controller on xilinx zynq devices will not function unless
the CD bit is provided. http://www.xilinx.com/support/answers/61064.html
In cases where it is impossible to provide the CD bit in hardware,
setting the controller to test mode and then setting inserted to true
will get the controller to function without the CD bit.
When the device has the property broken-cd the driver changes the
controller to test mode and sets test inserted to true to make the
controller function.
Signed-off-by: Zach Brown <zach.brown@ni.com>
---
drivers/mmc/host/sdhci-of-arasan.c | 17 ++++++++++++++++-
drivers/mmc/host/sdhci.h | 2 ++
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c
index e0f193f..3798a3b 100644
--- a/drivers/mmc/host/sdhci-of-arasan.c
+++ b/drivers/mmc/host/sdhci-of-arasan.c
@@ -26,6 +26,7 @@
#include <linux/phy/phy.h>
#include <linux/regmap.h>
#include "sdhci-pltfm.h"
+#include <linux/of.h>
#define SDHCI_ARASAN_CLK_CTRL_OFFSET 0x2c
#define SDHCI_ARASAN_VENDOR_REGISTER 0x78
@@ -203,12 +204,26 @@ static void sdhci_arasan_hs400_enhanced_strobe(struct mmc_host *mmc,
writel(vendor, host->ioaddr + SDHCI_ARASAN_VENDOR_REGISTER);
}
+void sdhci_arasan_reset(struct sdhci_host *host, u8 mask)
+{
+ u8 ctrl;
+
+ sdhci_reset(host, mask);
+
+ if (host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) {
+ ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
+ ctrl |= SDHCI_CTRL_CDTEST_INS |
+ SDHCI_CTRL_CDTEST_EN;
+ sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
+ }
+}
+
static struct sdhci_ops sdhci_arasan_ops = {
.set_clock = sdhci_arasan_set_clock,
.get_max_clock = sdhci_pltfm_clk_get_max_clock,
.get_timeout_clock = sdhci_arasan_get_timeout_clock,
.set_bus_width = sdhci_set_bus_width,
- .reset = sdhci_reset,
+ .reset = sdhci_arasan_reset,
.set_uhs_signaling = sdhci_set_uhs_signaling,
};
diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
index 0411c9f..8d92d6e9 100644
--- a/drivers/mmc/host/sdhci.h
+++ b/drivers/mmc/host/sdhci.h
@@ -84,6 +84,8 @@
#define SDHCI_CTRL_ADMA32 0x10
#define SDHCI_CTRL_ADMA64 0x18
#define SDHCI_CTRL_8BITBUS 0x20
+#define SDHCI_CTRL_CDTEST_INS 0x40
+#define SDHCI_CTRL_CDTEST_EN 0x80
#define SDHCI_POWER_CONTROL 0x29
#define SDHCI_POWER_ON 0x01
--
2.7.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 2/2] sdhci-of-arasan: Set controller to test mode when Card Detection is broken.
@ 2016-08-25 23:01 ` Zach Brown
0 siblings, 0 replies; 14+ messages in thread
From: Zach Brown @ 2016-08-25 23:01 UTC (permalink / raw)
To: adrian.hunter-ral2JQCrhuEAvxtiuMwx3w
Cc: robh+dt-DgEjT+Ai2ygdnm+yROfE0A,
ulf.hansson-QSEj5FYQhm4dnm+yROfE0A, mark.rutland-5wv7dgnIgG8,
linux-mmc-u79uwXL29TY76Z2rM5mHXA,
devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
michal.simek-gjFFaj9aHVfQT0dZR+AlfA,
soren.brinkmann-gjFFaj9aHVfQT0dZR+AlfA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
zach.brown-acOepvfBmUk
The sdhci controller on xilinx zynq devices will not function unless
the CD bit is provided. http://www.xilinx.com/support/answers/61064.html
In cases where it is impossible to provide the CD bit in hardware,
setting the controller to test mode and then setting inserted to true
will get the controller to function without the CD bit.
When the device has the property broken-cd the driver changes the
controller to test mode and sets test inserted to true to make the
controller function.
Signed-off-by: Zach Brown <zach.brown-acOepvfBmUk@public.gmane.org>
---
drivers/mmc/host/sdhci-of-arasan.c | 17 ++++++++++++++++-
drivers/mmc/host/sdhci.h | 2 ++
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c
index e0f193f..3798a3b 100644
--- a/drivers/mmc/host/sdhci-of-arasan.c
+++ b/drivers/mmc/host/sdhci-of-arasan.c
@@ -26,6 +26,7 @@
#include <linux/phy/phy.h>
#include <linux/regmap.h>
#include "sdhci-pltfm.h"
+#include <linux/of.h>
#define SDHCI_ARASAN_CLK_CTRL_OFFSET 0x2c
#define SDHCI_ARASAN_VENDOR_REGISTER 0x78
@@ -203,12 +204,26 @@ static void sdhci_arasan_hs400_enhanced_strobe(struct mmc_host *mmc,
writel(vendor, host->ioaddr + SDHCI_ARASAN_VENDOR_REGISTER);
}
+void sdhci_arasan_reset(struct sdhci_host *host, u8 mask)
+{
+ u8 ctrl;
+
+ sdhci_reset(host, mask);
+
+ if (host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) {
+ ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
+ ctrl |= SDHCI_CTRL_CDTEST_INS |
+ SDHCI_CTRL_CDTEST_EN;
+ sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
+ }
+}
+
static struct sdhci_ops sdhci_arasan_ops = {
.set_clock = sdhci_arasan_set_clock,
.get_max_clock = sdhci_pltfm_clk_get_max_clock,
.get_timeout_clock = sdhci_arasan_get_timeout_clock,
.set_bus_width = sdhci_set_bus_width,
- .reset = sdhci_reset,
+ .reset = sdhci_arasan_reset,
.set_uhs_signaling = sdhci_set_uhs_signaling,
};
diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
index 0411c9f..8d92d6e9 100644
--- a/drivers/mmc/host/sdhci.h
+++ b/drivers/mmc/host/sdhci.h
@@ -84,6 +84,8 @@
#define SDHCI_CTRL_ADMA32 0x10
#define SDHCI_CTRL_ADMA64 0x18
#define SDHCI_CTRL_8BITBUS 0x20
+#define SDHCI_CTRL_CDTEST_INS 0x40
+#define SDHCI_CTRL_CDTEST_EN 0x80
#define SDHCI_POWER_CONTROL 0x29
#define SDHCI_POWER_ON 0x01
--
2.7.4
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 2/2] sdhci-of-arasan: Set controller to test mode when Card Detection is broken.
@ 2016-08-25 23:01 ` Zach Brown
0 siblings, 0 replies; 14+ messages in thread
From: Zach Brown @ 2016-08-25 23:01 UTC (permalink / raw)
To: linux-arm-kernel
The sdhci controller on xilinx zynq devices will not function unless
the CD bit is provided. http://www.xilinx.com/support/answers/61064.html
In cases where it is impossible to provide the CD bit in hardware,
setting the controller to test mode and then setting inserted to true
will get the controller to function without the CD bit.
When the device has the property broken-cd the driver changes the
controller to test mode and sets test inserted to true to make the
controller function.
Signed-off-by: Zach Brown <zach.brown@ni.com>
---
drivers/mmc/host/sdhci-of-arasan.c | 17 ++++++++++++++++-
drivers/mmc/host/sdhci.h | 2 ++
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c
index e0f193f..3798a3b 100644
--- a/drivers/mmc/host/sdhci-of-arasan.c
+++ b/drivers/mmc/host/sdhci-of-arasan.c
@@ -26,6 +26,7 @@
#include <linux/phy/phy.h>
#include <linux/regmap.h>
#include "sdhci-pltfm.h"
+#include <linux/of.h>
#define SDHCI_ARASAN_CLK_CTRL_OFFSET 0x2c
#define SDHCI_ARASAN_VENDOR_REGISTER 0x78
@@ -203,12 +204,26 @@ static void sdhci_arasan_hs400_enhanced_strobe(struct mmc_host *mmc,
writel(vendor, host->ioaddr + SDHCI_ARASAN_VENDOR_REGISTER);
}
+void sdhci_arasan_reset(struct sdhci_host *host, u8 mask)
+{
+ u8 ctrl;
+
+ sdhci_reset(host, mask);
+
+ if (host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) {
+ ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
+ ctrl |= SDHCI_CTRL_CDTEST_INS |
+ SDHCI_CTRL_CDTEST_EN;
+ sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
+ }
+}
+
static struct sdhci_ops sdhci_arasan_ops = {
.set_clock = sdhci_arasan_set_clock,
.get_max_clock = sdhci_pltfm_clk_get_max_clock,
.get_timeout_clock = sdhci_arasan_get_timeout_clock,
.set_bus_width = sdhci_set_bus_width,
- .reset = sdhci_reset,
+ .reset = sdhci_arasan_reset,
.set_uhs_signaling = sdhci_set_uhs_signaling,
};
diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
index 0411c9f..8d92d6e9 100644
--- a/drivers/mmc/host/sdhci.h
+++ b/drivers/mmc/host/sdhci.h
@@ -84,6 +84,8 @@
#define SDHCI_CTRL_ADMA32 0x10
#define SDHCI_CTRL_ADMA64 0x18
#define SDHCI_CTRL_8BITBUS 0x20
+#define SDHCI_CTRL_CDTEST_INS 0x40
+#define SDHCI_CTRL_CDTEST_EN 0x80
#define SDHCI_POWER_CONTROL 0x29
#define SDHCI_POWER_ON 0x01
--
2.7.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v2 1/2] sdhci-of-arasan: Modify arasan sdhci documentation about broken-cd and non-removable properties.
2016-08-25 23:01 ` Zach Brown
(?)
@ 2016-08-26 7:19 ` Michal Simek
-1 siblings, 0 replies; 14+ messages in thread
From: Michal Simek @ 2016-08-26 7:19 UTC (permalink / raw)
To: Zach Brown, adrian.hunter
Cc: robh+dt, ulf.hansson, mark.rutland, linux-mmc, devicetree,
linux-kernel, michal.simek, soren.brinkmann, linux-arm-kernel
On 26.8.2016 01:01, Zach Brown wrote:
> The sdhci controller on xilinx zynq devices will not function unless
> the CD bit is provided. http://www.xilinx.com/support/answers/61064.html
> In cases where it is impossible to provide the CD bit in hardware,
> setting the controller to test mode and then setting inserted to true
> will get the controller to function without the CD bit.
>
> Additionally in some situations it will make sense to use the
> "broken-cd" and "non-removable" property together.
> i.e the sd device is non-removable so polling doesn't make sense, but
> the CD is broken and the controller will need to be in test mode to
> function.
>
> This patch modifies the documentation to reflect those differences
> from the standard behaviours.
>
> Signed-off-by: Zach Brown <zach.brown@ni.com>
> ---
> v2:
> * improved commit messages
> * removed fake-cd device property
> * removed fake-cd quirk
> * use broken-cd device property
> * documented new usage of broken-cd
>
> Documentation/devicetree/bindings/mmc/arasan,sdhci.txt | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> index 3404afa..b41c448 100644
> --- a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> +++ b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> @@ -37,6 +37,14 @@ Optional Properties:
> in place we will export a clock representing the Card Clock. This clock
> is expected to be consumed by our PHY. You must also specify
>
> +Card detection:
> +The arasan controller does not work
> +when the CD bit is not supplied unless in test mode.
> +- broken-cd: The CD bit is not supplied and the controller will
> + need to be set to test mode to function.
> +- non-removable: like normal, except it can now be partnered with
> + broken-cd, which will turn off polling, but keep test mode on.
> +
> Example:
> sdhci@e0100000 {
> compatible = "arasan,sdhci-8.9a";
> @@ -72,4 +80,4 @@ Example:
> phy-names = "phy_arasan";
> #clock-cells = <0>;
> status = "disabled";
> - };
> + } ;
Probably you don't need this change.
M
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 1/2] sdhci-of-arasan: Modify arasan sdhci documentation about broken-cd and non-removable properties.
@ 2016-08-26 7:19 ` Michal Simek
0 siblings, 0 replies; 14+ messages in thread
From: Michal Simek @ 2016-08-26 7:19 UTC (permalink / raw)
To: Zach Brown, adrian.hunter
Cc: mark.rutland, devicetree, ulf.hansson, linux-mmc, linux-kernel,
michal.simek, robh+dt, linux-arm-kernel, soren.brinkmann
On 26.8.2016 01:01, Zach Brown wrote:
> The sdhci controller on xilinx zynq devices will not function unless
> the CD bit is provided. http://www.xilinx.com/support/answers/61064.html
> In cases where it is impossible to provide the CD bit in hardware,
> setting the controller to test mode and then setting inserted to true
> will get the controller to function without the CD bit.
>
> Additionally in some situations it will make sense to use the
> "broken-cd" and "non-removable" property together.
> i.e the sd device is non-removable so polling doesn't make sense, but
> the CD is broken and the controller will need to be in test mode to
> function.
>
> This patch modifies the documentation to reflect those differences
> from the standard behaviours.
>
> Signed-off-by: Zach Brown <zach.brown@ni.com>
> ---
> v2:
> * improved commit messages
> * removed fake-cd device property
> * removed fake-cd quirk
> * use broken-cd device property
> * documented new usage of broken-cd
>
> Documentation/devicetree/bindings/mmc/arasan,sdhci.txt | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> index 3404afa..b41c448 100644
> --- a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> +++ b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> @@ -37,6 +37,14 @@ Optional Properties:
> in place we will export a clock representing the Card Clock. This clock
> is expected to be consumed by our PHY. You must also specify
>
> +Card detection:
> +The arasan controller does not work
> +when the CD bit is not supplied unless in test mode.
> +- broken-cd: The CD bit is not supplied and the controller will
> + need to be set to test mode to function.
> +- non-removable: like normal, except it can now be partnered with
> + broken-cd, which will turn off polling, but keep test mode on.
> +
> Example:
> sdhci@e0100000 {
> compatible = "arasan,sdhci-8.9a";
> @@ -72,4 +80,4 @@ Example:
> phy-names = "phy_arasan";
> #clock-cells = <0>;
> status = "disabled";
> - };
> + } ;
Probably you don't need this change.
M
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2 1/2] sdhci-of-arasan: Modify arasan sdhci documentation about broken-cd and non-removable properties.
@ 2016-08-26 7:19 ` Michal Simek
0 siblings, 0 replies; 14+ messages in thread
From: Michal Simek @ 2016-08-26 7:19 UTC (permalink / raw)
To: linux-arm-kernel
On 26.8.2016 01:01, Zach Brown wrote:
> The sdhci controller on xilinx zynq devices will not function unless
> the CD bit is provided. http://www.xilinx.com/support/answers/61064.html
> In cases where it is impossible to provide the CD bit in hardware,
> setting the controller to test mode and then setting inserted to true
> will get the controller to function without the CD bit.
>
> Additionally in some situations it will make sense to use the
> "broken-cd" and "non-removable" property together.
> i.e the sd device is non-removable so polling doesn't make sense, but
> the CD is broken and the controller will need to be in test mode to
> function.
>
> This patch modifies the documentation to reflect those differences
> from the standard behaviours.
>
> Signed-off-by: Zach Brown <zach.brown@ni.com>
> ---
> v2:
> * improved commit messages
> * removed fake-cd device property
> * removed fake-cd quirk
> * use broken-cd device property
> * documented new usage of broken-cd
>
> Documentation/devicetree/bindings/mmc/arasan,sdhci.txt | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> index 3404afa..b41c448 100644
> --- a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> +++ b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> @@ -37,6 +37,14 @@ Optional Properties:
> in place we will export a clock representing the Card Clock. This clock
> is expected to be consumed by our PHY. You must also specify
>
> +Card detection:
> +The arasan controller does not work
> +when the CD bit is not supplied unless in test mode.
> +- broken-cd: The CD bit is not supplied and the controller will
> + need to be set to test mode to function.
> +- non-removable: like normal, except it can now be partnered with
> + broken-cd, which will turn off polling, but keep test mode on.
> +
> Example:
> sdhci at e0100000 {
> compatible = "arasan,sdhci-8.9a";
> @@ -72,4 +80,4 @@ Example:
> phy-names = "phy_arasan";
> #clock-cells = <0>;
> status = "disabled";
> - };
> + } ;
Probably you don't need this change.
M
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 2/2] sdhci-of-arasan: Set controller to test mode when Card Detection is broken.
2016-08-25 23:01 ` Zach Brown
(?)
@ 2016-08-26 8:42 ` Mike Looijmans
-1 siblings, 0 replies; 14+ messages in thread
From: Mike Looijmans @ 2016-08-26 8:42 UTC (permalink / raw)
To: Zach Brown, adrian.hunter
Cc: mark.rutland, devicetree, ulf.hansson, linux-mmc, linux-kernel,
michal.simek, robh+dt, linux-arm-kernel, soren.brinkmann
On 26-08-16 01:01, Zach Brown wrote:
> The sdhci controller on xilinx zynq devices will not function unless
> the CD bit is provided. http://www.xilinx.com/support/answers/61064.html
> In cases where it is impossible to provide the CD bit in hardware,
> setting the controller to test mode and then setting inserted to true
> will get the controller to function without the CD bit.
>
> When the device has the property broken-cd the driver changes the
> controller to test mode and sets test inserted to true to make the
> controller function.
>
> Signed-off-by: Zach Brown <zach.brown@ni.com>
> ---
> drivers/mmc/host/sdhci-of-arasan.c | 17 ++++++++++++++++-
> drivers/mmc/host/sdhci.h | 2 ++
> 2 files changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c
> index e0f193f..3798a3b 100644
> --- a/drivers/mmc/host/sdhci-of-arasan.c
> +++ b/drivers/mmc/host/sdhci-of-arasan.c
> @@ -26,6 +26,7 @@
> #include <linux/phy/phy.h>
> #include <linux/regmap.h>
> #include "sdhci-pltfm.h"
> +#include <linux/of.h>
Not needed.
> #define SDHCI_ARASAN_CLK_CTRL_OFFSET 0x2c
> #define SDHCI_ARASAN_VENDOR_REGISTER 0x78
> @@ -203,12 +204,26 @@ static void sdhci_arasan_hs400_enhanced_strobe(struct mmc_host *mmc,
> writel(vendor, host->ioaddr + SDHCI_ARASAN_VENDOR_REGISTER);
> }
>
> +void sdhci_arasan_reset(struct sdhci_host *host, u8 mask)
> +{
> + u8 ctrl;
> +
> + sdhci_reset(host, mask);
> +
> + if (host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) {
> + ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
> + ctrl |= SDHCI_CTRL_CDTEST_INS |
> + SDHCI_CTRL_CDTEST_EN;
> + sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
> + }
> +}
> +
> static struct sdhci_ops sdhci_arasan_ops = {
> .set_clock = sdhci_arasan_set_clock,
> .get_max_clock = sdhci_pltfm_clk_get_max_clock,
> .get_timeout_clock = sdhci_arasan_get_timeout_clock,
> .set_bus_width = sdhci_set_bus_width,
> - .reset = sdhci_reset,
> + .reset = sdhci_arasan_reset,
> .set_uhs_signaling = sdhci_set_uhs_signaling,
> };
>
> diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
> index 0411c9f..8d92d6e9 100644
> --- a/drivers/mmc/host/sdhci.h
> +++ b/drivers/mmc/host/sdhci.h
> @@ -84,6 +84,8 @@
> #define SDHCI_CTRL_ADMA32 0x10
> #define SDHCI_CTRL_ADMA64 0x18
> #define SDHCI_CTRL_8BITBUS 0x20
> +#define SDHCI_CTRL_CDTEST_INS 0x40
> +#define SDHCI_CTRL_CDTEST_EN 0x80
>
> #define SDHCI_POWER_CONTROL 0x29
> #define SDHCI_POWER_ON 0x01
Looks okay, tested it and appears to work just as well as a tie-off in logic.
Tested-by: mike.looijmans@topic.nl
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 2/2] sdhci-of-arasan: Set controller to test mode when Card Detection is broken.
@ 2016-08-26 8:42 ` Mike Looijmans
0 siblings, 0 replies; 14+ messages in thread
From: Mike Looijmans @ 2016-08-26 8:42 UTC (permalink / raw)
To: Zach Brown, adrian.hunter
Cc: mark.rutland, devicetree, ulf.hansson, linux-mmc, linux-kernel,
michal.simek, robh+dt, soren.brinkmann, linux-arm-kernel
On 26-08-16 01:01, Zach Brown wrote:
> The sdhci controller on xilinx zynq devices will not function unless
> the CD bit is provided. http://www.xilinx.com/support/answers/61064.html
> In cases where it is impossible to provide the CD bit in hardware,
> setting the controller to test mode and then setting inserted to true
> will get the controller to function without the CD bit.
>
> When the device has the property broken-cd the driver changes the
> controller to test mode and sets test inserted to true to make the
> controller function.
>
> Signed-off-by: Zach Brown <zach.brown@ni.com>
> ---
> drivers/mmc/host/sdhci-of-arasan.c | 17 ++++++++++++++++-
> drivers/mmc/host/sdhci.h | 2 ++
> 2 files changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c
> index e0f193f..3798a3b 100644
> --- a/drivers/mmc/host/sdhci-of-arasan.c
> +++ b/drivers/mmc/host/sdhci-of-arasan.c
> @@ -26,6 +26,7 @@
> #include <linux/phy/phy.h>
> #include <linux/regmap.h>
> #include "sdhci-pltfm.h"
> +#include <linux/of.h>
Not needed.
> #define SDHCI_ARASAN_CLK_CTRL_OFFSET 0x2c
> #define SDHCI_ARASAN_VENDOR_REGISTER 0x78
> @@ -203,12 +204,26 @@ static void sdhci_arasan_hs400_enhanced_strobe(struct mmc_host *mmc,
> writel(vendor, host->ioaddr + SDHCI_ARASAN_VENDOR_REGISTER);
> }
>
> +void sdhci_arasan_reset(struct sdhci_host *host, u8 mask)
> +{
> + u8 ctrl;
> +
> + sdhci_reset(host, mask);
> +
> + if (host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) {
> + ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
> + ctrl |= SDHCI_CTRL_CDTEST_INS |
> + SDHCI_CTRL_CDTEST_EN;
> + sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
> + }
> +}
> +
> static struct sdhci_ops sdhci_arasan_ops = {
> .set_clock = sdhci_arasan_set_clock,
> .get_max_clock = sdhci_pltfm_clk_get_max_clock,
> .get_timeout_clock = sdhci_arasan_get_timeout_clock,
> .set_bus_width = sdhci_set_bus_width,
> - .reset = sdhci_reset,
> + .reset = sdhci_arasan_reset,
> .set_uhs_signaling = sdhci_set_uhs_signaling,
> };
>
> diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
> index 0411c9f..8d92d6e9 100644
> --- a/drivers/mmc/host/sdhci.h
> +++ b/drivers/mmc/host/sdhci.h
> @@ -84,6 +84,8 @@
> #define SDHCI_CTRL_ADMA32 0x10
> #define SDHCI_CTRL_ADMA64 0x18
> #define SDHCI_CTRL_8BITBUS 0x20
> +#define SDHCI_CTRL_CDTEST_INS 0x40
> +#define SDHCI_CTRL_CDTEST_EN 0x80
>
> #define SDHCI_POWER_CONTROL 0x29
> #define SDHCI_POWER_ON 0x01
Looks okay, tested it and appears to work just as well as a tie-off in logic.
Tested-by: mike.looijmans@topic.nl
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2 2/2] sdhci-of-arasan: Set controller to test mode when Card Detection is broken.
@ 2016-08-26 8:42 ` Mike Looijmans
0 siblings, 0 replies; 14+ messages in thread
From: Mike Looijmans @ 2016-08-26 8:42 UTC (permalink / raw)
To: linux-arm-kernel
On 26-08-16 01:01, Zach Brown wrote:
> The sdhci controller on xilinx zynq devices will not function unless
> the CD bit is provided. http://www.xilinx.com/support/answers/61064.html
> In cases where it is impossible to provide the CD bit in hardware,
> setting the controller to test mode and then setting inserted to true
> will get the controller to function without the CD bit.
>
> When the device has the property broken-cd the driver changes the
> controller to test mode and sets test inserted to true to make the
> controller function.
>
> Signed-off-by: Zach Brown <zach.brown@ni.com>
> ---
> drivers/mmc/host/sdhci-of-arasan.c | 17 ++++++++++++++++-
> drivers/mmc/host/sdhci.h | 2 ++
> 2 files changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c
> index e0f193f..3798a3b 100644
> --- a/drivers/mmc/host/sdhci-of-arasan.c
> +++ b/drivers/mmc/host/sdhci-of-arasan.c
> @@ -26,6 +26,7 @@
> #include <linux/phy/phy.h>
> #include <linux/regmap.h>
> #include "sdhci-pltfm.h"
> +#include <linux/of.h>
Not needed.
> #define SDHCI_ARASAN_CLK_CTRL_OFFSET 0x2c
> #define SDHCI_ARASAN_VENDOR_REGISTER 0x78
> @@ -203,12 +204,26 @@ static void sdhci_arasan_hs400_enhanced_strobe(struct mmc_host *mmc,
> writel(vendor, host->ioaddr + SDHCI_ARASAN_VENDOR_REGISTER);
> }
>
> +void sdhci_arasan_reset(struct sdhci_host *host, u8 mask)
> +{
> + u8 ctrl;
> +
> + sdhci_reset(host, mask);
> +
> + if (host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) {
> + ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
> + ctrl |= SDHCI_CTRL_CDTEST_INS |
> + SDHCI_CTRL_CDTEST_EN;
> + sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
> + }
> +}
> +
> static struct sdhci_ops sdhci_arasan_ops = {
> .set_clock = sdhci_arasan_set_clock,
> .get_max_clock = sdhci_pltfm_clk_get_max_clock,
> .get_timeout_clock = sdhci_arasan_get_timeout_clock,
> .set_bus_width = sdhci_set_bus_width,
> - .reset = sdhci_reset,
> + .reset = sdhci_arasan_reset,
> .set_uhs_signaling = sdhci_set_uhs_signaling,
> };
>
> diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
> index 0411c9f..8d92d6e9 100644
> --- a/drivers/mmc/host/sdhci.h
> +++ b/drivers/mmc/host/sdhci.h
> @@ -84,6 +84,8 @@
> #define SDHCI_CTRL_ADMA32 0x10
> #define SDHCI_CTRL_ADMA64 0x18
> #define SDHCI_CTRL_8BITBUS 0x20
> +#define SDHCI_CTRL_CDTEST_INS 0x40
> +#define SDHCI_CTRL_CDTEST_EN 0x80
>
> #define SDHCI_POWER_CONTROL 0x29
> #define SDHCI_POWER_ON 0x01
Looks okay, tested it and appears to work just as well as a tie-off in logic.
Tested-by: mike.looijmans at topic.nl
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 2/2] sdhci-of-arasan: Set controller to test mode when Card Detection is broken.
@ 2016-08-26 9:50 ` Shawn Lin
0 siblings, 0 replies; 14+ messages in thread
From: Shawn Lin @ 2016-08-26 9:50 UTC (permalink / raw)
To: Mike Looijmans, Zach Brown, adrian.hunter
Cc: shawn.lin, mark.rutland, devicetree, ulf.hansson, linux-mmc,
linux-kernel, michal.simek, robh+dt, linux-arm-kernel,
soren.brinkmann
On 2016/8/26 16:42, Mike Looijmans wrote:
> On 26-08-16 01:01, Zach Brown wrote:
>> The sdhci controller on xilinx zynq devices will not function unless
>> the CD bit is provided. http://www.xilinx.com/support/answers/61064.html
>> In cases where it is impossible to provide the CD bit in hardware,
>> setting the controller to test mode and then setting inserted to true
>> will get the controller to function without the CD bit.
>>
>> When the device has the property broken-cd the driver changes the
>> controller to test mode and sets test inserted to true to make the
>> controller function.
>>
>> Signed-off-by: Zach Brown <zach.brown@ni.com>
>> ---
>> drivers/mmc/host/sdhci-of-arasan.c | 17 ++++++++++++++++-
>> drivers/mmc/host/sdhci.h | 2 ++
>> 2 files changed, 18 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/mmc/host/sdhci-of-arasan.c
>> b/drivers/mmc/host/sdhci-of-arasan.c
>> index e0f193f..3798a3b 100644
>> --- a/drivers/mmc/host/sdhci-of-arasan.c
>> +++ b/drivers/mmc/host/sdhci-of-arasan.c
>> @@ -26,6 +26,7 @@
>> #include <linux/phy/phy.h>
>> #include <linux/regmap.h>
>> #include "sdhci-pltfm.h"
>> +#include <linux/of.h>
>
> Not needed.
>
>> #define SDHCI_ARASAN_CLK_CTRL_OFFSET 0x2c
>> #define SDHCI_ARASAN_VENDOR_REGISTER 0x78
>> @@ -203,12 +204,26 @@ static void
>> sdhci_arasan_hs400_enhanced_strobe(struct mmc_host *mmc,
>> writel(vendor, host->ioaddr + SDHCI_ARASAN_VENDOR_REGISTER);
>> }
>>
>> +void sdhci_arasan_reset(struct sdhci_host *host, u8 mask)
>> +{
>> + u8 ctrl;
>> +
>> + sdhci_reset(host, mask);
>> +
>> + if (host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) {
>> + ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
>> + ctrl |= SDHCI_CTRL_CDTEST_INS |
>> + SDHCI_CTRL_CDTEST_EN;
>> + sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
>> + }
>> +}
Although I don't have a "broken-cd" arasan controller,
but are you suring that all the broken-cd arasan controller
need to set these bit either? It seems your case is vendor specific?:)
>> +
>> static struct sdhci_ops sdhci_arasan_ops = {
>> .set_clock = sdhci_arasan_set_clock,
>> .get_max_clock = sdhci_pltfm_clk_get_max_clock,
>> .get_timeout_clock = sdhci_arasan_get_timeout_clock,
>> .set_bus_width = sdhci_set_bus_width,
>> - .reset = sdhci_reset,
>> + .reset = sdhci_arasan_reset,
>> .set_uhs_signaling = sdhci_set_uhs_signaling,
>> };
>>
>> diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
>> index 0411c9f..8d92d6e9 100644
>> --- a/drivers/mmc/host/sdhci.h
>> +++ b/drivers/mmc/host/sdhci.h
>> @@ -84,6 +84,8 @@
>> #define SDHCI_CTRL_ADMA32 0x10
>> #define SDHCI_CTRL_ADMA64 0x18
>> #define SDHCI_CTRL_8BITBUS 0x20
>> +#define SDHCI_CTRL_CDTEST_INS 0x40
>> +#define SDHCI_CTRL_CDTEST_EN 0x80
>>
>> #define SDHCI_POWER_CONTROL 0x29
>> #define SDHCI_POWER_ON 0x01
>
> Looks okay, tested it and appears to work just as well as a tie-off in
> logic.
>
> Tested-by: mike.looijmans@topic.nl
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
Best Regards
Shawn Lin
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 2/2] sdhci-of-arasan: Set controller to test mode when Card Detection is broken.
@ 2016-08-26 9:50 ` Shawn Lin
0 siblings, 0 replies; 14+ messages in thread
From: Shawn Lin @ 2016-08-26 9:50 UTC (permalink / raw)
To: Mike Looijmans, Zach Brown, adrian.hunter-ral2JQCrhuEAvxtiuMwx3w
Cc: shawn.lin-TNX95d0MmH7DzftRWevZcw, mark.rutland-5wv7dgnIgG8,
devicetree-u79uwXL29TY76Z2rM5mHXA,
ulf.hansson-QSEj5FYQhm4dnm+yROfE0A,
linux-mmc-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
michal.simek-gjFFaj9aHVfQT0dZR+AlfA,
robh+dt-DgEjT+Ai2ygdnm+yROfE0A,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
soren.brinkmann-gjFFaj9aHVfQT0dZR+AlfA
On 2016/8/26 16:42, Mike Looijmans wrote:
> On 26-08-16 01:01, Zach Brown wrote:
>> The sdhci controller on xilinx zynq devices will not function unless
>> the CD bit is provided. http://www.xilinx.com/support/answers/61064.html
>> In cases where it is impossible to provide the CD bit in hardware,
>> setting the controller to test mode and then setting inserted to true
>> will get the controller to function without the CD bit.
>>
>> When the device has the property broken-cd the driver changes the
>> controller to test mode and sets test inserted to true to make the
>> controller function.
>>
>> Signed-off-by: Zach Brown <zach.brown-acOepvfBmUk@public.gmane.org>
>> ---
>> drivers/mmc/host/sdhci-of-arasan.c | 17 ++++++++++++++++-
>> drivers/mmc/host/sdhci.h | 2 ++
>> 2 files changed, 18 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/mmc/host/sdhci-of-arasan.c
>> b/drivers/mmc/host/sdhci-of-arasan.c
>> index e0f193f..3798a3b 100644
>> --- a/drivers/mmc/host/sdhci-of-arasan.c
>> +++ b/drivers/mmc/host/sdhci-of-arasan.c
>> @@ -26,6 +26,7 @@
>> #include <linux/phy/phy.h>
>> #include <linux/regmap.h>
>> #include "sdhci-pltfm.h"
>> +#include <linux/of.h>
>
> Not needed.
>
>> #define SDHCI_ARASAN_CLK_CTRL_OFFSET 0x2c
>> #define SDHCI_ARASAN_VENDOR_REGISTER 0x78
>> @@ -203,12 +204,26 @@ static void
>> sdhci_arasan_hs400_enhanced_strobe(struct mmc_host *mmc,
>> writel(vendor, host->ioaddr + SDHCI_ARASAN_VENDOR_REGISTER);
>> }
>>
>> +void sdhci_arasan_reset(struct sdhci_host *host, u8 mask)
>> +{
>> + u8 ctrl;
>> +
>> + sdhci_reset(host, mask);
>> +
>> + if (host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) {
>> + ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
>> + ctrl |= SDHCI_CTRL_CDTEST_INS |
>> + SDHCI_CTRL_CDTEST_EN;
>> + sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
>> + }
>> +}
Although I don't have a "broken-cd" arasan controller,
but are you suring that all the broken-cd arasan controller
need to set these bit either? It seems your case is vendor specific?:)
>> +
>> static struct sdhci_ops sdhci_arasan_ops = {
>> .set_clock = sdhci_arasan_set_clock,
>> .get_max_clock = sdhci_pltfm_clk_get_max_clock,
>> .get_timeout_clock = sdhci_arasan_get_timeout_clock,
>> .set_bus_width = sdhci_set_bus_width,
>> - .reset = sdhci_reset,
>> + .reset = sdhci_arasan_reset,
>> .set_uhs_signaling = sdhci_set_uhs_signaling,
>> };
>>
>> diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
>> index 0411c9f..8d92d6e9 100644
>> --- a/drivers/mmc/host/sdhci.h
>> +++ b/drivers/mmc/host/sdhci.h
>> @@ -84,6 +84,8 @@
>> #define SDHCI_CTRL_ADMA32 0x10
>> #define SDHCI_CTRL_ADMA64 0x18
>> #define SDHCI_CTRL_8BITBUS 0x20
>> +#define SDHCI_CTRL_CDTEST_INS 0x40
>> +#define SDHCI_CTRL_CDTEST_EN 0x80
>>
>> #define SDHCI_POWER_CONTROL 0x29
>> #define SDHCI_POWER_ON 0x01
>
> Looks okay, tested it and appears to work just as well as a tie-off in
> logic.
>
> Tested-by: mike.looijmans-Oq418RWZeHk@public.gmane.org
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
Best Regards
Shawn Lin
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2 2/2] sdhci-of-arasan: Set controller to test mode when Card Detection is broken.
@ 2016-08-26 9:50 ` Shawn Lin
0 siblings, 0 replies; 14+ messages in thread
From: Shawn Lin @ 2016-08-26 9:50 UTC (permalink / raw)
To: linux-arm-kernel
On 2016/8/26 16:42, Mike Looijmans wrote:
> On 26-08-16 01:01, Zach Brown wrote:
>> The sdhci controller on xilinx zynq devices will not function unless
>> the CD bit is provided. http://www.xilinx.com/support/answers/61064.html
>> In cases where it is impossible to provide the CD bit in hardware,
>> setting the controller to test mode and then setting inserted to true
>> will get the controller to function without the CD bit.
>>
>> When the device has the property broken-cd the driver changes the
>> controller to test mode and sets test inserted to true to make the
>> controller function.
>>
>> Signed-off-by: Zach Brown <zach.brown@ni.com>
>> ---
>> drivers/mmc/host/sdhci-of-arasan.c | 17 ++++++++++++++++-
>> drivers/mmc/host/sdhci.h | 2 ++
>> 2 files changed, 18 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/mmc/host/sdhci-of-arasan.c
>> b/drivers/mmc/host/sdhci-of-arasan.c
>> index e0f193f..3798a3b 100644
>> --- a/drivers/mmc/host/sdhci-of-arasan.c
>> +++ b/drivers/mmc/host/sdhci-of-arasan.c
>> @@ -26,6 +26,7 @@
>> #include <linux/phy/phy.h>
>> #include <linux/regmap.h>
>> #include "sdhci-pltfm.h"
>> +#include <linux/of.h>
>
> Not needed.
>
>> #define SDHCI_ARASAN_CLK_CTRL_OFFSET 0x2c
>> #define SDHCI_ARASAN_VENDOR_REGISTER 0x78
>> @@ -203,12 +204,26 @@ static void
>> sdhci_arasan_hs400_enhanced_strobe(struct mmc_host *mmc,
>> writel(vendor, host->ioaddr + SDHCI_ARASAN_VENDOR_REGISTER);
>> }
>>
>> +void sdhci_arasan_reset(struct sdhci_host *host, u8 mask)
>> +{
>> + u8 ctrl;
>> +
>> + sdhci_reset(host, mask);
>> +
>> + if (host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) {
>> + ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
>> + ctrl |= SDHCI_CTRL_CDTEST_INS |
>> + SDHCI_CTRL_CDTEST_EN;
>> + sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
>> + }
>> +}
Although I don't have a "broken-cd" arasan controller,
but are you suring that all the broken-cd arasan controller
need to set these bit either? It seems your case is vendor specific?:)
>> +
>> static struct sdhci_ops sdhci_arasan_ops = {
>> .set_clock = sdhci_arasan_set_clock,
>> .get_max_clock = sdhci_pltfm_clk_get_max_clock,
>> .get_timeout_clock = sdhci_arasan_get_timeout_clock,
>> .set_bus_width = sdhci_set_bus_width,
>> - .reset = sdhci_reset,
>> + .reset = sdhci_arasan_reset,
>> .set_uhs_signaling = sdhci_set_uhs_signaling,
>> };
>>
>> diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
>> index 0411c9f..8d92d6e9 100644
>> --- a/drivers/mmc/host/sdhci.h
>> +++ b/drivers/mmc/host/sdhci.h
>> @@ -84,6 +84,8 @@
>> #define SDHCI_CTRL_ADMA32 0x10
>> #define SDHCI_CTRL_ADMA64 0x18
>> #define SDHCI_CTRL_8BITBUS 0x20
>> +#define SDHCI_CTRL_CDTEST_INS 0x40
>> +#define SDHCI_CTRL_CDTEST_EN 0x80
>>
>> #define SDHCI_POWER_CONTROL 0x29
>> #define SDHCI_POWER_ON 0x01
>
> Looks okay, tested it and appears to work just as well as a tie-off in
> logic.
>
> Tested-by: mike.looijmans at topic.nl
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
Best Regards
Shawn Lin
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2016-08-26 9:51 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-25 23:01 [PATCH v2 1/2] sdhci-of-arasan: Modify arasan sdhci documentation about broken-cd and non-removable properties Zach Brown
2016-08-25 23:01 ` Zach Brown
2016-08-25 23:01 ` [PATCH v2 2/2] sdhci-of-arasan: Set controller to test mode when Card Detection is broken Zach Brown
2016-08-25 23:01 ` Zach Brown
2016-08-25 23:01 ` Zach Brown
2016-08-26 8:42 ` Mike Looijmans
2016-08-26 8:42 ` Mike Looijmans
2016-08-26 8:42 ` Mike Looijmans
2016-08-26 9:50 ` Shawn Lin
2016-08-26 9:50 ` Shawn Lin
2016-08-26 9:50 ` Shawn Lin
2016-08-26 7:19 ` [PATCH v2 1/2] sdhci-of-arasan: Modify arasan sdhci documentation about broken-cd and non-removable properties Michal Simek
2016-08-26 7:19 ` Michal Simek
2016-08-26 7:19 ` Michal Simek
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.