Skip to content

Commit

Permalink
davinci: enable forced transitions on PSC
Browse files Browse the repository at this point in the history
Some DaVinci modules like the SATA on DA850
need forced module state transitions.

Define a "force" flag which can be passed to
the PSC config function to enable it to make
forced transitions.

Forced transitions shouldn't normally be attempted,
unless the TRM explicitly specifies its usage.

ChangeLog:
v2:
Modified to take care of the fact that
davinci_psc_config() now takes the flags
directly.

Signed-off-by: Sekhar Nori <nsekhar@ti.com>
  • Loading branch information
Sekhar Nori committed Jul 8, 2011
1 parent a51ca38 commit aad70de
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 0 deletions.
1 change: 1 addition & 0 deletions arch/arm/mach-davinci/clock.h
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ struct clk {
#define CLK_PLL BIT(4) /* PLL-derived clock */
#define PRE_PLL BIT(5) /* source is before PLL mult/div */
#define PSC_SWRSTDISABLE BIT(6) /* Disable state is SwRstDisable */
#define PSC_FORCE BIT(7) /* Force module state transtition */

#define CLK(dev, con, ck) \
{ \
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-davinci/include/mach/psc.h
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,7 @@
#define PSC_STATE_ENABLE 3

#define MDSTAT_STATE_MASK 0x1f
#define MDCTL_FORCE BIT(31)

#ifndef __ASSEMBLER__

Expand Down
2 changes: 2 additions & 0 deletions arch/arm/mach-davinci/psc.c
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ void davinci_psc_config(unsigned int domain, unsigned int ctlr,
mdctl = __raw_readl(psc_base + MDCTL + 4 * id);
mdctl &= ~MDSTAT_STATE_MASK;
mdctl |= next_state;
if (flags & PSC_FORCE)
mdctl |= MDCTL_FORCE;
__raw_writel(mdctl, psc_base + MDCTL + 4 * id);

pdstat = __raw_readl(psc_base + PDSTAT);
Expand Down

0 comments on commit aad70de

Please sign in to comment.