summaryrefslogtreecommitdiff
path: root/arch/arm/mach-ns9xxx/include/mach/regs-sys-ns921x.h
blob: a8e4410806c6980d0e839bd611ef263e713c72ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
/*
 * arch/arm/mach-ns9xxx/include/mach/regs-sys-ns921x.h
 *
 * Copyright (C) 2007,2008 by Digi International Inc.
 * All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 as published by
 * the Free Software Foundation.
 */
#ifndef __ASM_ARCH_REGSSYSNS921X_H
#define __ASM_ARCH_REGSSYSNS921X_H

#include <mach/hardware.h>
#include <mach/regs-sys-common.h>

/* System Control Module */

/* Timer Master Control */
#define SYS_TMC		__REG(0xa0900024)
#define SYS_TMC_T9RSE		__REGBIT(21)
#define SYS_TMC_T9LSE		__REGBIT(20)
#define SYS_TMC_T9HSE		__REGBIT(19)
#define SYS_TMC_T8RSE		__REGBIT(18)
#define SYS_TMC_T8LSE		__REGBIT(17)
#define SYS_TMC_T8HSE		__REGBIT(16)
#define SYS_TMC_T7RSE		__REGBIT(15)
#define SYS_TMC_T7LSE		__REGBIT(14)
#define SYS_TMC_T7HSE		__REGBIT(13)
#define SYS_TMC_T6RSE		__REGBIT(12)
#define SYS_TMC_T6LSE		__REGBIT(11)
#define SYS_TMC_T6HSE		__REGBIT(10)
#define SYS_TMC_T9E		__REGBIT(9)
#define SYS_TMC_T8E		__REGBIT(8)
#define SYS_TMC_T7E		__REGBIT(7)
#define SYS_TMC_T6E		__REGBIT(6)
#define SYS_TMC_T5E		__REGBIT(5)
#define SYS_TMC_T4E		__REGBIT(4)
#define SYS_TMC_T3E		__REGBIT(3)
#define SYS_TMC_T2E		__REGBIT(2)
#define SYS_TMC_T1E		__REGBIT(1)
#define SYS_TMC_T0E		__REGBIT(0)

/* Timer x Reload Count and Compare register */
#define SYS_TRCC(x)	__REG2(0xa0900028, (x))

/* Timer x Read and Capture register */
#define SYS_TRC(x)	__REG2(0xa0900050, (x))

/* Interrupt Vector Address Register Level x */
#define SYS_IVA(x)	__REG2(0xa09000c4, (x))

/* Clock Configuration register */
#define SYS_CLOCK	__REG(0xa090017c)
#define SYS_CLOCK_CSC		__REGBITS(31, 29)
#define SYS_CLOCK_CSSEL		__REGBIT(25)
#define SYS_CLOCK_EXTDMA	__REGBIT(14)
#define SYS_CLOCK_RTC		__REGBIT(12)
#define SYS_CLOCK_I2C		__REGBIT(11)
#define SYS_CLOCK_AES		__REGBIT(9)
#define SYS_CLOCK_ADC		__REGBIT(8)
#define SYS_CLOCK_SPI		__REGBIT(5)
#define SYS_CLOCK_UARTx(i)	__REGBIT(1 + (i))
#define SYS_CLOCK_UARTD		SYS_CLOCK_UARTx(3)
#define SYS_CLOCK_UARTC		SYS_CLOCK_UARTx(2)
#define SYS_CLOCK_UARTB		SYS_CLOCK_UARTx(1)
#define SYS_CLOCK_UARTA		SYS_CLOCK_UARTx(0)
#define SYS_CLOCK_ETH		__REGBIT(0)

#define SYS_RESET	__REG(0xa0900180)

/* PLL Configuration register */
#define SYS_PLL		__REG(0xa0900188)
#define SYS_PLL_NF		__REGBITS(16, 8)
#define SYS_PLL_BP		__REGBIT(7)
#define SYS_PLL_OD		__REGBITS(6, 5)
#define SYS_PLL_NR		__REGBITS(4, 0)

/* Timer x Control register */
#define SYS_TC(x)	__REG2(0xa0900190, (x))
#define SYS_TCx_RELMODE		__REGBIT(18)
#define SYS_TCx_RELMODE_FULL		__REGVAL(SYS_TCx_RELMODE, 0)
#define SYS_TCx_RELMODE_HALF		__REGVAL(SYS_TCx_RELMODE, 1)
#define SYS_TCx_MODE2		__REGBITS(17, 16)
#define SYS_TCx_MODE2_00		__REGVAL(SYS_TCx_MODE2, 0)
#define SYS_TCx_MODE2_01		__REGVAL(SYS_TCx_MODE2, 1)
#define SYS_TCx_MODE2_10		__REGVAL(SYS_TCx_MODE2, 2)
#define SYS_TCx_MODE2_11		__REGVAL(SYS_TCx_MODE2, 3)
#define SYS_TCx_TE		__REGBIT(15)
#define SYS_TCx_TE_DIS			__REGVAL(SYS_TCx_TE, 0)
#define SYS_TCx_TE_EN			__REGVAL(SYS_TCx_TE, 1)
#define SYS_TCx_CAPCOMP		__REGBITS(14,12)
#define SYS_TCx_CAPCOMP_000		__REGVAL(SYS_TCx_CAPCOMP, 0)
#define SYS_TCx_DEBUG	       __REGBIT(11)
#define SYS_TCx_DEBUG_CONT		__REGVAL(SYS_TCx_DEBUG, 0)
#define SYS_TCx_DEBUG_STOP		__REGVAL(SYS_TCx_DEBUG, 1)
#define SYS_TCx_INTCLR		__REGBIT(10)
#define SYS_TCx_TCS		__REGBITS(9, 6)
#define SYS_TCx_TCS_2AHB		__REGVAL(SYS_TCx_TCS, 0)
#define SYS_TCx_TCS_AHB			__REGVAL(SYS_TCx_TCS, 1)
#define SYS_TCx_MODE		__REGBITS(5, 4)
#define SYS_TCx_MODE_INTERNAL		__REGVAL(SYS_TCx_MODE, 0)
#define SYS_TCx_MODE_CONCA		__REGVAL(SYS_TCx_MODE, 3)
#define SYS_TCx_INTSEL		__REGBIT(3)
#define SYS_TCx_INTSEL_DIS		__REGVAL(SYS_TCx_INTSEL, 0)
#define SYS_TCx_INTSEL_EN		__REGVAL(SYS_TCx_INTSEL, 1)
#define SYS_TCx_UPDOWN		__REGBIT(2)
#define SYS_TCx_UPDOWN_UP		__REGVAL(SYS_TCx_UPDOWN, 0)
#define SYS_TCx_UPDOWN_DOWN		__REGVAL(SYS_TCx_UPDOWN, 1)
#define SYS_TCx_BITTIMER	__REGBIT(1)
#define SYS_TCx_BITTIMER_16		__REGVAL(SYS_TCx_BITTIMER, 0)
#define SYS_TCx_BITTIMER_32		__REGVAL(SYS_TCx_BITTIMER, 1)
#define SYS_TCx_RELENBL			__REGBIT(0)
#define SYS_TCx_RELENBL_DIS		__REGVAL(SYS_TCx_RELENBL, 0)
#define SYS_TCx_RELENBL_EN		__REGVAL(SYS_TCx_RELENBL, 1)

/* Timer Registers */
#define SYS_THR(x)	__REG2(0xa0900078, (x))		/* Timer 6-9 High Registers */
#define SYS_TLR(x)	__REG2(0xa0900088, (x))		/* Timer 6-9 Low Registers */
#define SYS_THLSR(x)	__REG2(0xa0900098, (x))		/* Timer 6-9 High Low Step Register */
#define SYS_TRELSR(x)	__REG2(0xa09000a8, (x))		/* Timer 6-9 Reload Step Register */
#define SYS_TRELCCR(x)	__REG2(0xa0900028, (x))		/* Timer 0-9 Reload Count and Compare Register */
#define SYS_TRCR(x)	__REG2(0xa0900050, (x))		/* Timer 0-9 Read and Capture Register */

/* */
#define SYS_RTCMC	__REG(0xa0900224)
#define SYS_RTCMC_SS		__REGBIT(4)
#define SYS_RTCMC_RIS		__REGBIT(3)
#define SYS_RTCMC_MIS		__REGBIT(2)
#define SYS_RTCMC_MODE		__REGBIT(1)
#define SYS_RTCMC_MODE_STANDBY		__REGVAL(SYS_RTCMC_MODE, 0)
#define SYS_RTCMC_MODE_NORMAL		__REGVAL(SYS_RTCMC_MODE, 1)
#define SYS_RTCMC_RIC		__REGBIT(0)

/* */
#define SYS_POWER	__REG(0xa0900228)
#define SYS_POWER_SLFRFSH	__REGBIT(21)
#define SYS_POWER_INTCLR	__REGBIT(20)
#define SYS_POWER_EXTIRQx(i)	__REGBIT(16 + (i))
#define SYS_POWER_EXTIRQ3	SYS_POWER_EXTIRQx(3)
#define SYS_POWER_EXTIRQ2	SYS_POWER_EXTIRQx(2)
#define SYS_POWER_EXTIRQ1	SYS_POWER_EXTIRQx(1)
#define SYS_POWER_EXTIRQ0	SYS_POWER_EXTIRQx(0)
#define SYS_POWER_RTC		SYS_CLOCK_RTC
#define SYS_POWER_I2C		SYS_CLOCK_I2C
#define SYS_POWER_SPI		SYS_CLOCK_SPI
#define SYS_POWER_UARTx(i)	SYS_CLOCK_UARTx(i)
#define SYS_POWER_UARTD		SYS_POWER_UARTx(3)
#define SYS_POWER_UARTC		SYS_POWER_UARTx(2)
#define SYS_POWER_UARTB		SYS_POWER_UARTx(1)
#define SYS_POWER_UARTA		SYS_POWER_UARTx(0)
#define SYS_POWER_ETH		SYS_CLOCK_ETH

#endif /* ifndef __ASM_ARCH_REGSSYSNS921X_H */