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(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