1 /*
2  * ARM PrimeXsys System Controller SP810 header file
3  *
4  * Copyright (C) 2009 ST Microelectronics
5  * Viresh Kumar <vireshk@kernel.org>
6  *
7  * This file is licensed under the terms of the GNU General Public
8  * License version 2. This program is licensed "as is" without any
9  * warranty of any kind, whether express or implied.
10  */
11 
12 #ifndef __AMBA_SP810_H
13 #define __AMBA_SP810_H
14 
15 #include <linux/io.h>
16 
17 /* sysctl registers offset */
18 #define SCCTRL			0x000
19 #define SCSYSSTAT		0x004
20 #define SCIMCTRL		0x008
21 #define SCIMSTAT		0x00C
22 #define SCXTALCTRL		0x010
23 #define SCPLLCTRL		0x014
24 #define SCPLLFCTRL		0x018
25 #define SCPERCTRL0		0x01C
26 #define SCPERCTRL1		0x020
27 #define SCPEREN			0x024
28 #define SCPERDIS		0x028
29 #define SCPERCLKEN		0x02C
30 #define SCPERSTAT		0x030
31 #define SCSYSID0		0xEE0
32 #define SCSYSID1		0xEE4
33 #define SCSYSID2		0xEE8
34 #define SCSYSID3		0xEEC
35 #define SCITCR			0xF00
36 #define SCITIR0			0xF04
37 #define SCITIR1			0xF08
38 #define SCITOR			0xF0C
39 #define SCCNTCTRL		0xF10
40 #define SCCNTDATA		0xF14
41 #define SCCNTSTEP		0xF18
42 #define SCPERIPHID0		0xFE0
43 #define SCPERIPHID1		0xFE4
44 #define SCPERIPHID2		0xFE8
45 #define SCPERIPHID3		0xFEC
46 #define SCPCELLID0		0xFF0
47 #define SCPCELLID1		0xFF4
48 #define SCPCELLID2		0xFF8
49 #define SCPCELLID3		0xFFC
50 
51 #define SCCTRL_TIMERENnSEL_SHIFT(n)	(15 + ((n) * 2))
52 
sysctl_soft_reset(void __iomem * base)53 static inline void sysctl_soft_reset(void __iomem *base)
54 {
55 	/* switch to slow mode */
56 	writel(0x2, base + SCCTRL);
57 
58 	/* writing any value to SCSYSSTAT reg will reset system */
59 	writel(0, base + SCSYSSTAT);
60 }
61 
62 #endif /* __AMBA_SP810_H */
63