1/* 2 * ARM PrimeXsys System Controller SP810 header file 3 * 4 * Copyright (C) 2009 ST Microelectronics 5 * Viresh Kumar <viresh.linux@gmail.com> 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 53static 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