Skip to content

Commit

Permalink
spi: omap2_mcspi supports wake events
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jouni Hogander authored and Linus Torvalds committed Jul 30, 2009
1 parent c42b110 commit ddb2219
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions drivers/spi/omap2_mcspi.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@

/* per-register bitmasks: */

#define OMAP2_MCSPI_SYSCONFIG_SMARTIDLE (2 << 3)
#define OMAP2_MCSPI_SYSCONFIG_ENAWAKEUP (1 << 2)
#define OMAP2_MCSPI_SYSCONFIG_AUTOIDLE (1 << 0)
#define OMAP2_MCSPI_SYSCONFIG_SOFTRESET (1 << 1)

Expand Down Expand Up @@ -90,6 +92,7 @@

#define OMAP2_MCSPI_CHCTRL_EN (1 << 0)

#define OMAP2_MCSPI_WAKEUPENABLE_WKEN (1 << 0)

/* We have 2 DMA channels per CS, one for RX and one for TX */
struct omap2_mcspi_dma {
Expand Down Expand Up @@ -873,8 +876,12 @@ static int __init omap2_mcspi_reset(struct omap2_mcspi *mcspi)
} while (!(tmp & OMAP2_MCSPI_SYSSTATUS_RESETDONE));

mcspi_write_reg(master, OMAP2_MCSPI_SYSCONFIG,
/* (3 << 8) | (2 << 3) | */
OMAP2_MCSPI_SYSCONFIG_AUTOIDLE);
OMAP2_MCSPI_SYSCONFIG_AUTOIDLE |
OMAP2_MCSPI_SYSCONFIG_ENAWAKEUP |
OMAP2_MCSPI_SYSCONFIG_SMARTIDLE);

mcspi_write_reg(master, OMAP2_MCSPI_WAKEUPENABLE,
OMAP2_MCSPI_WAKEUPENABLE_WKEN);

omap2_mcspi_set_master_mode(master);

Expand Down

0 comments on commit ddb2219

Please sign in to comment.