Thread (11 messages) 11 messages, 6 authors, 2012-09-25
STALE5008d

[PATCH] spi/imx: set the inactive state of the clock according to the clock polarity

From: Dirk Behme <hidden>
Date: 2012-09-22 06:10:48
Also in: linux-spi

On 21.09.2012 09:54, Uwe Kleine-K?nig wrote:
On Fri, Sep 21, 2012 at 09:36:51AM +0200, Dirk Behme wrote:
quoted
On 31.08.2012 04:35, Shawn Guo wrote:
quoted
Copy Uwe ...
Copy our kernel mailing list ...
quoted
Ping ;)

Any opinions on this?
Assuming it fixes access to a device I'm ok with your patch, but I don't
really feel responsible for the driver (i.e. me not acking shouldn't
have a negative influence on getting the patch in).
Ok, thanks.

I'm not so familiar with the SPI world: Who would be the best person 
to ack this, and in case it's ok finally apply it, then?

Thanks

Dirk
quoted
quoted
On Fri, Aug 31, 2012 at 10:55:11AM +0200, Dirk Behme wrote:
quoted
From: Knut Wohlrab<redacted>

There are SPI devices which need a SPI clock with active low polarity and
high inactive state.

Add the setting of the inactive state ECSPIx_CONFIGREG:SCLK CTL
according to the clock polarity ECSPIx_CONFIGREG:SCLK POL:

DT without "spi-cpol" = 0 = clock active high polarity = inactive state low
DT with    "spi-cpol" = 1 = clock active low  polarity = inactive state high

Signed-off-by: Knut Wohlrab<redacted>
If you forward a patch you must add your S-o-b.
quoted
quoted
quoted
---

Question: Are there real world examples for a need of an individual setting of
clock polarity/inactive state?
I'm less concerned about that.  We can always patch the driver when
the real world example occurs?
yes.

Thanks
Uwe
quoted
quoted
quoted
drivers/spi/spi-imx.c |    6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c
index e834ff8..d64655b 100644
--- a/drivers/spi/spi-imx.c
+++ b/drivers/spi/spi-imx.c
@@ -197,6 +197,7 @@ static unsigned int spi_imx_clkdiv_2(unsigned int fin,
#define MX51_ECSPI_CONFIG_SCLKPOL(cs)	(1<<  ((cs) +  4))
#define MX51_ECSPI_CONFIG_SBBCTRL(cs)	(1<<  ((cs) +  8))
#define MX51_ECSPI_CONFIG_SSBPOL(cs)	(1<<  ((cs) + 12))
+#define MX51_ECSPI_CONFIG_SCLKCTL(cs)	(1<<  ((cs) + 20))
#define MX51_ECSPI_INT		0x10
#define MX51_ECSPI_INT_TEEN		(1<<   0)
@@ -287,9 +288,10 @@ static int __maybe_unused mx51_ecspi_config(struct spi_imx_data *spi_imx,
	if (config->mode&  SPI_CPHA)
		cfg |= MX51_ECSPI_CONFIG_SCLKPHA(config->cs);
-	if (config->mode&  SPI_CPOL)
+	if (config->mode&  SPI_CPOL) {
		cfg |= MX51_ECSPI_CONFIG_SCLKPOL(config->cs);
-
+		cfg |= MX51_ECSPI_CONFIG_SCLKCTL(config->cs);
+	}
	if (config->mode&  SPI_CS_HIGH)
		cfg |= MX51_ECSPI_CONFIG_SSBPOL(config->cs);
--
1.7.0.4
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help