sh: Add CPG save/restore code for sh7724 R-standby
Add sh7724 code to save and restore CPG state during R-standby. Only CPG registers IRDACLKCR and SPUCLKCR require software save and restore. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
98779ad822
commit
2ebe0ff7e6
|
@ -941,6 +941,9 @@ static struct {
|
||||||
/* RWDT */
|
/* RWDT */
|
||||||
unsigned short rwtcnt;
|
unsigned short rwtcnt;
|
||||||
unsigned short rwtcsr;
|
unsigned short rwtcsr;
|
||||||
|
/* CPG */
|
||||||
|
unsigned long irdaclk;
|
||||||
|
unsigned long spuclk;
|
||||||
} sh7724_rstandby_state;
|
} sh7724_rstandby_state;
|
||||||
|
|
||||||
static int sh7724_pre_sleep_notifier_call(struct notifier_block *nb,
|
static int sh7724_pre_sleep_notifier_call(struct notifier_block *nb,
|
||||||
|
@ -998,6 +1001,10 @@ static int sh7724_pre_sleep_notifier_call(struct notifier_block *nb,
|
||||||
sh7724_rstandby_state.rwtcsr |= 0xa500;
|
sh7724_rstandby_state.rwtcsr |= 0xa500;
|
||||||
__raw_writew(sh7724_rstandby_state.rwtcsr & 0x07, 0xa4520004);
|
__raw_writew(sh7724_rstandby_state.rwtcsr & 0x07, 0xa4520004);
|
||||||
|
|
||||||
|
/* CPG */
|
||||||
|
sh7724_rstandby_state.irdaclk = __raw_readl(0xa4150018); /* IRDACLKCR */
|
||||||
|
sh7724_rstandby_state.spuclk = __raw_readl(0xa415003c); /* SPUCLKCR */
|
||||||
|
|
||||||
return NOTIFY_DONE;
|
return NOTIFY_DONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1052,6 +1059,10 @@ static int sh7724_post_sleep_notifier_call(struct notifier_block *nb,
|
||||||
__raw_writew(sh7724_rstandby_state.rwtcnt, 0xa4520000); /* RWTCNT */
|
__raw_writew(sh7724_rstandby_state.rwtcnt, 0xa4520000); /* RWTCNT */
|
||||||
__raw_writew(sh7724_rstandby_state.rwtcsr, 0xa4520004); /* RWTCSR */
|
__raw_writew(sh7724_rstandby_state.rwtcsr, 0xa4520004); /* RWTCSR */
|
||||||
|
|
||||||
|
/* CPG */
|
||||||
|
__raw_writel(sh7724_rstandby_state.irdaclk, 0xa4150018); /* IRDACLKCR */
|
||||||
|
__raw_writel(sh7724_rstandby_state.spuclk, 0xa415003c); /* SPUCLKCR */
|
||||||
|
|
||||||
return NOTIFY_DONE;
|
return NOTIFY_DONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue