Pull ec into release branch
[linux-2.6] / include / asm-arm / arch-ns9xxx / regs-sys.h
1 /*
2  * include/asm-arm/arch-ns9xxx/regs-sys.h
3  *
4  * Copyright (C) 2006 by Digi International Inc.
5  * All rights reserved.
6  *
7  * This program is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License version 2 as published by
9  * the Free Software Foundation.
10  */
11 #ifndef __ASM_ARCH_REGSSYS_H
12 #define __ASM_ARCH_REGSSYS_H
13
14 #include <asm/hardware.h>
15
16 /* System Control Module */
17
18 /* AHB Arbiter Gen Configuration */
19 #define SYS_AHBAGENCONF __REG(0xa0900000)
20
21 /* BRC */
22 #define SYS_BRC(x)      __REG2(0xa0900004, (x))
23
24 /* Timer x Reload Count register */
25 #define SYS_TRC(x)      __REG2(0xa0900044, (x))
26
27 /* Timer x Read register */
28 #define SYS_TR(x)       __REG2(0xa0900084, (x))
29
30 /* Interrupt Vector Address Register Level x */
31 #define SYS_IVA(x)      __REG2(0xa09000c4, (x))
32
33 /* Interrupt Configuration registers */
34 #define SYS_IC(x)       __REG2(0xa0900144, (x))
35
36 /* ISRADDR */
37 #define SYS_ISRADDR     __REG(0xa0900164)
38
39 /* Interrupt Status Active */
40 #define SYS_ISA         __REG(0xa0900168)
41
42 /* Interrupt Status Raw */
43 #define SYS_ISR         __REG(0xa090016c)
44
45 /* Timer Interrupt Status register */
46 #define SYS_TIS         __REG(0xa0900170)
47
48 /* PLL Configuration register */
49 #define SYS_PLL         __REG(0xa0900188)
50
51 /* PLL Configuration register: PLL SW change */
52 #define SYS_PLL_SWC             __REGBIT(15)
53 #define SYS_PLL_SWC_NO                  __REGVAL(SYS_PLL_SWC, 0)
54 #define SYS_PLL_SWC_YES                 __REGVAL(SYS_PLL_SWC, 1)
55
56 /* Timer x Control register */
57 #define SYS_TC(x)       __REG2(0xa0900190, (x))
58
59 /* Timer x Control register: Timer enable */
60 #define SYS_TCx_TEN             __REGBIT(15)
61 #define SYS_TCx_TEN_DIS                 __REGVAL(SYS_TCx_TEN, 1)
62 #define SYS_TCx_TEN_EN                  __REGVAL(SYS_TCx_TEN, 1)
63
64 /* Timer x Control register: CPU debug mode */
65 #define SYS_TCx_TDBG            __REGBIT(10)
66 #define SYS_TCx_TDBG_CONT               __REGVAL(SYS_TCx_TDBG, 0)
67 #define SYS_TCx_TDBG_STOP               __REGVAL(SYS_TCx_TDBG, 1)
68
69 /* Timer x Control register: Interrupt clear */
70 #define SYS_TCx_INTC            __REGBIT(9)
71 #define SYS_TCx_INTC_UNSET              __REGVAL(SYS_TCx_INTC, 0)
72 #define SYS_TCx_INTC_SET                __REGVAL(SYS_TCx_INTC, 1)
73
74 /* Timer x Control register: Timer clock select */
75 #define SYS_TCx_TLCS            __REGBITS(8, 6)
76 #define SYS_TCx_TLCS_CPU                __REGVAL(SYS_TCx_TLCS, 0)       /* CPU clock */
77 #define SYS_TCx_TLCS_DIV2               __REGVAL(SYS_TCx_TLCS, 1)       /* CPU clock / 2 */
78 #define SYS_TCx_TLCS_DIV4               __REGVAL(SYS_TCx_TLCS, 2)       /* CPU clock / 4 */
79 #define SYS_TCx_TLCS_DIV8               __REGVAL(SYS_TCx_TLCS, 3)       /* CPU clock / 8 */
80 #define SYS_TCx_TLCS_DIV16              __REGVAL(SYS_TCx_TLCS, 4)       /* CPU clock / 16 */
81 #define SYS_TCx_TLCS_DIV32              __REGVAL(SYS_TCx_TLCS, 5)       /* CPU clock / 32 */
82 #define SYS_TCx_TLCS_DIV64              __REGVAL(SYS_TCx_TLCS, 6)       /* CPU clock / 64 */
83 #define SYS_TCx_TLCS_EXT                __REGVAL(SYS_TCx_TLCS, 7)
84
85 /* Timer x Control register: Timer mode */
86 #define SYS_TCx_TM              __REGBITS(5, 4)
87 #define SYS_TCx_TM_IEE                  __REGVAL(SYS_TCx_TM, 0)         /* Internal timer or external event */
88 #define SYS_TCx_TM_ELL                  __REGVAL(SYS_TCx_TM, 1)         /* External low-level, gated timer */
89 #define SYS_TCx_TM_EHL                  __REGVAL(SYS_TCx_TM, 2)         /* External high-level, gated timer */
90 #define SYS_TCx_TM_CONCAT               __REGVAL(SYS_TCx_TM, 3)         /* Concatenate the lower timer. */
91
92 /* Timer x Control register: Interrupt select */
93 #define SYS_TCx_INTS            __REGBIT(3)
94 #define SYS_TCx_INTS_DIS                __REGVAL(SYS_TCx_INTS, 0)
95 #define SYS_TCx_INTS_EN                 __REGVAL(SYS_TCx_INTS, 1)
96
97 /* Timer x Control register: Up/down select */
98 #define SYS_TCx_UDS             __REGBIT(2)
99 #define SYS_TCx_UDS_UP                  __REGVAL(SYS_TCx_UDS, 0)
100 #define SYS_TCx_UDS_DOWN                __REGVAL(SYS_TCx_UDS, 1)
101
102 /* Timer x Control register: 32- or 16-bit timer */
103 #define SYS_TCx_TSZ             __REGBIT(1)
104 #define SYS_TCx_TSZ_16                  __REGVAL(SYS_TCx_TSZ, 0)
105 #define SYS_TCx_TSZ_32                  __REGVAL(SYS_TCx_TSZ, 1)
106
107 /* Timer x Control register: Reload enable */
108 #define SYS_TCx_REN             __REGBIT(0)
109 #define SYS_TCx_REN_DIS                 __REGVAL(SYS_TCx_REN, 0)
110 #define SYS_TCx_REN_EN                  __REGVAL(SYS_TCx_REN, 1)
111
112 /* System Memory Chip Select x Dynamic Memory Base */
113 #define SYS_SMCSDMB(x)  __REG2(0xa09001d0, (x) << 1)
114
115 /* System Memory Chip Select x Dynamic Memory Mask */
116 #define SYS_SMCSDMM(x)  __REG2(0xa09001d4, (x) << 1)
117
118 /* System Memory Chip Select x Static Memory Base */
119 #define SYS_SMCSSMB(x)  __REG2(0xa09001f0, (x) << 1)
120
121 /* System Memory Chip Select x Static Memory Base: Chip select x base */
122 #define SYS_SMCSSMB_CSxB        __REGBITS(31, 12)
123
124 /* System Memory Chip Select x Static Memory Mask */
125 #define SYS_SMCSSMM(x)  __REG2(0xa09001f4, (x) << 1)
126
127 /* System Memory Chip Select x Static Memory Mask: Chip select x mask */
128 #define SYS_SMCSSMM_CSxM        __REGBITS(31, 12)
129
130 /* System Memory Chip Select x Static Memory Mask: Chip select x enable */
131 #define SYS_SMCSSMM_CSEx        __REGBIT(0)
132 #define SYS_SMCSSMM_CSEx_DIS            __REGVAL(SYS_SMCSSMM_CSEx, 0)
133 #define SYS_SMCSSMM_CSEx_EN             __REGVAL(SYS_SMCSSMM_CSEx, 1)
134
135 /* General purpose, user-defined ID register */
136 #define SYS_GENID       __REG(0xa0900210)
137
138 /* External Interrupt x Control register */
139 #define SYS_EIC(x)      __REG2(0xa0900214, (x))
140
141 /* External Interrupt x Control register: Status */
142 #define SYS_EIC_STS             __REGBIT(3)
143
144 /* External Interrupt x Control register: Clear */
145 #define SYS_EIC_CLR             __REGBIT(2)
146
147 /* External Interrupt x Control register: Polarity */
148 #define SYS_EIC_PLTY            __REGBIT(1)
149 #define SYS_EIC_PLTY_AH                 __REGVAL(SYS_EIC_PLTY, 0)
150 #define SYS_EIC_PLTY_AL                 __REGVAL(SYS_EIC_PLTY, 1)
151
152 /* External Interrupt x Control register: Level edge */
153 #define SYS_EIC_LVEDG           __REGBIT(0)
154 #define SYS_EIC_LVEDG_LEVEL             __REGVAL(SYS_EIC_LVEDG, 0)
155 #define SYS_EIC_LVEDG_EDGE              __REGVAL(SYS_EIC_LVEDG, 1)
156
157 #endif /* ifndef __ASM_ARCH_REGSSYS_H */