aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-shmobile/clock-sh7372.c
diff options
context:
space:
mode:
authorMagnus Damm <damm@opensource.se>2011-05-17 06:39:22 -0400
committerPaul Mundt <lethal@linux-sh.org>2011-05-23 23:28:56 -0400
commit6776fba7e272ab236c789d58f290495d42684fe3 (patch)
tree4e5f5a785bd7fee939b06343efd2aaab79147d35 /arch/arm/mach-shmobile/clock-sh7372.c
parenta63666c146f85a5ddcc3b2443d7c5888490e66b2 (diff)
ARM: mach-shmobile: Disable sh7372 RT side MSTP bits
Update the sh7372 clock code to set the RT side set of MSTP bits to a fixed disabled state. The sh7372 SoC contains two sets of MSTP bits, one for the ARM (SYS) side, and one for the SH4AL-DSP (RT) side. The actual clock associated with the MSTP bit will only be stopped when both sides have set the MSTP bit to disabled mode. Some MSTP bits are enabled by default after hardware reset, so this patch adjusts the code to disable all MSTP bits associated with the RT side to allow the SYS side to have full control. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/arm/mach-shmobile/clock-sh7372.c')
-rw-r--r--arch/arm/mach-shmobile/clock-sh7372.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/clock-sh7372.c b/arch/arm/mach-shmobile/clock-sh7372.c
index fbca92cc530a..95b814aac556 100644
--- a/arch/arm/mach-shmobile/clock-sh7372.c
+++ b/arch/arm/mach-shmobile/clock-sh7372.c
@@ -44,6 +44,11 @@
44#define DSI1PCKCR 0xe6150098 44#define DSI1PCKCR 0xe6150098
45#define PLLC01CR 0xe6150028 45#define PLLC01CR 0xe6150028
46#define PLLC2CR 0xe615002c 46#define PLLC2CR 0xe615002c
47#define RMSTPCR0 0xe6150110
48#define RMSTPCR1 0xe6150114
49#define RMSTPCR2 0xe6150118
50#define RMSTPCR3 0xe615011c
51#define RMSTPCR4 0xe6150120
47#define SMSTPCR0 0xe6150130 52#define SMSTPCR0 0xe6150130
48#define SMSTPCR1 0xe6150134 53#define SMSTPCR1 0xe6150134
49#define SMSTPCR2 0xe6150138 54#define SMSTPCR2 0xe6150138
@@ -654,6 +659,13 @@ void __init sh7372_clock_init(void)
654{ 659{
655 int k, ret = 0; 660 int k, ret = 0;
656 661
662 /* make sure MSTP bits on the RT/SH4AL-DSP side are off */
663 __raw_writel(0xe4ef8087, RMSTPCR0);
664 __raw_writel(0xffffffff, RMSTPCR1);
665 __raw_writel(0x37c7f7ff, RMSTPCR2);
666 __raw_writel(0xffffffff, RMSTPCR3);
667 __raw_writel(0xffe0fffd, RMSTPCR4);
668
657 for (k = 0; !ret && (k < ARRAY_SIZE(main_clks)); k++) 669 for (k = 0; !ret && (k < ARRAY_SIZE(main_clks)); k++)
658 ret = clk_register(main_clks[k]); 670 ret = clk_register(main_clks[k]);
659 671