diff options
| author | Knut Wohlrab <knut.wohlrab@de.bosch.com> | 2012-09-25 07:21:57 -0400 |
|---|---|---|
| committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-09-28 09:05:08 -0400 |
| commit | c09b890b763df3ccd79a2c34c2f1abeb73179caf (patch) | |
| tree | 7fd59d180a85f6d3b5c9e150dc4f8669b78a2681 | |
| parent | ada7aec7eec0ca2d2a9d2208548813d5dda8108e (diff) | |
spi/imx: set the inactive state of the clock according to the clock polarity
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 <knut.wohlrab@de.bosch.com>
Signed-off-by: Dirk Behme <dirk.behme@de.bosch.com>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| -rw-r--r-- | 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 e834ff8c0188..d64655b70b59 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, | |||
| 197 | #define MX51_ECSPI_CONFIG_SCLKPOL(cs) (1 << ((cs) + 4)) | 197 | #define MX51_ECSPI_CONFIG_SCLKPOL(cs) (1 << ((cs) + 4)) |
| 198 | #define MX51_ECSPI_CONFIG_SBBCTRL(cs) (1 << ((cs) + 8)) | 198 | #define MX51_ECSPI_CONFIG_SBBCTRL(cs) (1 << ((cs) + 8)) |
| 199 | #define MX51_ECSPI_CONFIG_SSBPOL(cs) (1 << ((cs) + 12)) | 199 | #define MX51_ECSPI_CONFIG_SSBPOL(cs) (1 << ((cs) + 12)) |
| 200 | #define MX51_ECSPI_CONFIG_SCLKCTL(cs) (1 << ((cs) + 20)) | ||
| 200 | 201 | ||
| 201 | #define MX51_ECSPI_INT 0x10 | 202 | #define MX51_ECSPI_INT 0x10 |
| 202 | #define MX51_ECSPI_INT_TEEN (1 << 0) | 203 | #define MX51_ECSPI_INT_TEEN (1 << 0) |
| @@ -287,9 +288,10 @@ static int __maybe_unused mx51_ecspi_config(struct spi_imx_data *spi_imx, | |||
| 287 | if (config->mode & SPI_CPHA) | 288 | if (config->mode & SPI_CPHA) |
| 288 | cfg |= MX51_ECSPI_CONFIG_SCLKPHA(config->cs); | 289 | cfg |= MX51_ECSPI_CONFIG_SCLKPHA(config->cs); |
| 289 | 290 | ||
| 290 | if (config->mode & SPI_CPOL) | 291 | if (config->mode & SPI_CPOL) { |
| 291 | cfg |= MX51_ECSPI_CONFIG_SCLKPOL(config->cs); | 292 | cfg |= MX51_ECSPI_CONFIG_SCLKPOL(config->cs); |
| 292 | 293 | cfg |= MX51_ECSPI_CONFIG_SCLKCTL(config->cs); | |
| 294 | } | ||
| 293 | if (config->mode & SPI_CS_HIGH) | 295 | if (config->mode & SPI_CS_HIGH) |
| 294 | cfg |= MX51_ECSPI_CONFIG_SSBPOL(config->cs); | 296 | cfg |= MX51_ECSPI_CONFIG_SSBPOL(config->cs); |
| 295 | 297 | ||
