diff options
| author | Jouni Hogander <jouni.hogander@nokia.com> | 2009-07-29 18:02:11 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-07-29 22:10:35 -0400 |
| commit | ddb22195cb3dc5175ba3aac5e957d0e34cd2ee73 (patch) | |
| tree | 0bd647e5ac5f56b4256685105b6d825b8f6993c2 | |
| parent | c42b110caeb128819104d057acdaa1ae564b7c8d (diff) | |
spi: omap2_mcspi supports wake events
Currently mcspi wake-ups are not enabled. This might cause cases where
OMAP is not waking up on mcspi events.
Signed-off-by: Jouni Hogander <jouni.hogander@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| -rw-r--r-- | drivers/spi/omap2_mcspi.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/spi/omap2_mcspi.c b/drivers/spi/omap2_mcspi.c index eee4b6e0af2c..2b64091b0f1f 100644 --- a/drivers/spi/omap2_mcspi.c +++ b/drivers/spi/omap2_mcspi.c | |||
| @@ -59,6 +59,8 @@ | |||
| 59 | 59 | ||
| 60 | /* per-register bitmasks: */ | 60 | /* per-register bitmasks: */ |
| 61 | 61 | ||
| 62 | #define OMAP2_MCSPI_SYSCONFIG_SMARTIDLE (2 << 3) | ||
| 63 | #define OMAP2_MCSPI_SYSCONFIG_ENAWAKEUP (1 << 2) | ||
| 62 | #define OMAP2_MCSPI_SYSCONFIG_AUTOIDLE (1 << 0) | 64 | #define OMAP2_MCSPI_SYSCONFIG_AUTOIDLE (1 << 0) |
| 63 | #define OMAP2_MCSPI_SYSCONFIG_SOFTRESET (1 << 1) | 65 | #define OMAP2_MCSPI_SYSCONFIG_SOFTRESET (1 << 1) |
| 64 | 66 | ||
| @@ -90,6 +92,7 @@ | |||
| 90 | 92 | ||
| 91 | #define OMAP2_MCSPI_CHCTRL_EN (1 << 0) | 93 | #define OMAP2_MCSPI_CHCTRL_EN (1 << 0) |
| 92 | 94 | ||
| 95 | #define OMAP2_MCSPI_WAKEUPENABLE_WKEN (1 << 0) | ||
| 93 | 96 | ||
| 94 | /* We have 2 DMA channels per CS, one for RX and one for TX */ | 97 | /* We have 2 DMA channels per CS, one for RX and one for TX */ |
| 95 | struct omap2_mcspi_dma { | 98 | struct omap2_mcspi_dma { |
| @@ -873,8 +876,12 @@ static int __init omap2_mcspi_reset(struct omap2_mcspi *mcspi) | |||
| 873 | } while (!(tmp & OMAP2_MCSPI_SYSSTATUS_RESETDONE)); | 876 | } while (!(tmp & OMAP2_MCSPI_SYSSTATUS_RESETDONE)); |
| 874 | 877 | ||
| 875 | mcspi_write_reg(master, OMAP2_MCSPI_SYSCONFIG, | 878 | mcspi_write_reg(master, OMAP2_MCSPI_SYSCONFIG, |
| 876 | /* (3 << 8) | (2 << 3) | */ | 879 | OMAP2_MCSPI_SYSCONFIG_AUTOIDLE | |
| 877 | OMAP2_MCSPI_SYSCONFIG_AUTOIDLE); | 880 | OMAP2_MCSPI_SYSCONFIG_ENAWAKEUP | |
| 881 | OMAP2_MCSPI_SYSCONFIG_SMARTIDLE); | ||
| 882 | |||
| 883 | mcspi_write_reg(master, OMAP2_MCSPI_WAKEUPENABLE, | ||
| 884 | OMAP2_MCSPI_WAKEUPENABLE_WKEN); | ||
| 878 | 885 | ||
| 879 | omap2_mcspi_set_master_mode(master); | 886 | omap2_mcspi_set_master_mode(master); |
| 880 | 887 | ||
