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 | |
53 | static inline void sysctl_soft_reset(void __iomem *base) |
54 | { |
55 | /* switch to slow mode */ |
56 | writel(val: 0x2, addr: base + SCCTRL); |
57 | |
58 | /* writing any value to SCSYSSTAT reg will reset system */ |
59 | writel(val: 0, addr: base + SCSYSSTAT); |
60 | } |
61 | |
62 | #endif /* __AMBA_SP810_H */ |
63 | |