2 * arch/arm/include/asm/hardware/sp810.h
4 * ARM PrimeXsys System Controller SP810 header file
6 * Copyright (C) 2009 ST Microelectronics
7 * Viresh Kumar <viresh.linux@gmail.com>
9 * This file is licensed under the terms of the GNU General Public
10 * License version 2. This program is licensed "as is" without any
11 * warranty of any kind, whether express or implied.
14 #ifndef __ASM_ARM_SP810_H
15 #define __ASM_ARM_SP810_H
19 /* sysctl registers offset */
21 #define SCSYSSTAT 0x004
22 #define SCIMCTRL 0x008
23 #define SCIMSTAT 0x00C
24 #define SCXTALCTRL 0x010
25 #define SCPLLCTRL 0x014
26 #define SCPLLFCTRL 0x018
27 #define SCPERCTRL0 0x01C
28 #define SCPERCTRL1 0x020
30 #define SCPERDIS 0x028
31 #define SCPERCLKEN 0x02C
32 #define SCPERSTAT 0x030
33 #define SCSYSID0 0xEE0
34 #define SCSYSID1 0xEE4
35 #define SCSYSID2 0xEE8
36 #define SCSYSID3 0xEEC
41 #define SCCNTCTRL 0xF10
42 #define SCCNTDATA 0xF14
43 #define SCCNTSTEP 0xF18
44 #define SCPERIPHID0 0xFE0
45 #define SCPERIPHID1 0xFE4
46 #define SCPERIPHID2 0xFE8
47 #define SCPERIPHID3 0xFEC
48 #define SCPCELLID0 0xFF0
49 #define SCPCELLID1 0xFF4
50 #define SCPCELLID2 0xFF8
51 #define SCPCELLID3 0xFFC
53 #define SCCTRL_TIMEREN0SEL_REFCLK (0 << 15)
54 #define SCCTRL_TIMEREN0SEL_TIMCLK (1 << 15)
56 #define SCCTRL_TIMEREN1SEL_REFCLK (0 << 17)
57 #define SCCTRL_TIMEREN1SEL_TIMCLK (1 << 17)
59 static inline void sysctl_soft_reset(void __iomem
*base
)
61 /* switch to slow mode */
62 writel(0x2, base
+ SCCTRL
);
64 /* writing any value to SCSYSSTAT reg will reset system */
65 writel(0, base
+ SCSYSSTAT
);
68 #endif /* __ASM_ARM_SP810_H */