xref: /openbmc/linux/include/linux/amba/sp810.h (revision e5451c8f8330e03ad3cfa16048b4daf961af434f)
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