RTEMS  5.1
ep7312.h
Go to the documentation of this file.
1 
7 /*
8  * Cirrus EP7312 register declarations
9  *
10  * Copyright (c) 2002 by Charlie Steader <charlies@poliac.com>
11  *
12  * Copyright (c) 2002 by Jay Monkman <jtm@smoothsmoothie.com>
13  *
14  * The license and distribution terms for this file may be
15  * found in the file LICENSE in this distribution or at
16  * http://www.rtems.org/license/LICENSE.
17  *
18  *
19  * Notes: The PLL registers (pll_ro and pll_wo) are either read only
20  * or write only. The data sheet says not to write the read
21  * only one or read the write only one. I'm not sure what will
22  * happen if you do.
23 */
24 #ifndef __EP7312_H__
25 #define __EP7312_H__
26 
27 #define EP7312_REG_BASE 0x80000000
28 
36 #define EP7312_PADR ((volatile uint8_t*)(EP7312_REG_BASE + 0x0000))
37 #define EP7312_PBDR ((volatile uint8_t*)(EP7312_REG_BASE + 0x0001))
38 #define EP7312_PDDR ((volatile uint8_t*)(EP7312_REG_BASE + 0x0003))
39 #define EP7312_PADDR ((volatile uint8_t*)(EP7312_REG_BASE + 0x0040))
40 #define EP7312_PBDDR ((volatile uint8_t*)(EP7312_REG_BASE + 0x0041))
41 #define EP7312_PDDDR ((volatile uint8_t*)(EP7312_REG_BASE + 0x0043))
42 #define EP7312_PEDR ((volatile uint8_t*)(EP7312_REG_BASE + 0x0080))
43 #define EP7312_PEDDR ((volatile uint8_t*)(EP7312_REG_BASE + 0x00C0))
44 #define EP7312_SYSCON1 ((volatile uint32_t*)(EP7312_REG_BASE + 0x0100))
45 #define EP7312_SYSFLG1 ((volatile uint32_t*)(EP7312_REG_BASE + 0x0140))
46 #define EP7312_MEMCFG1 ((volatile uint32_t*)(EP7312_REG_BASE + 0x0180))
47 #define EP7312_MEMCFG2 ((volatile uint32_t*)(EP7312_REG_BASE + 0x01C0))
48 #define EP7312_INTSR1 ((volatile uint32_t*)(EP7312_REG_BASE + 0x0240))
49 #define EP7312_INTMR1 ((volatile uint32_t*)(EP7312_REG_BASE + 0x0280))
50 #define EP7312_LCDCON ((volatile uint32_t*)(EP7312_REG_BASE + 0x02C0))
51 #define EP7312_TC1D ((volatile uint32_t*)(EP7312_REG_BASE + 0x0300))
52 #define EP7312_TC2D ((volatile uint32_t*)(EP7312_REG_BASE + 0x0340))
53 #define EP7312_RTCDR ((volatile uint32_t*)(EP7312_REG_BASE + 0x0380))
54 #define EP7312_RTCMR ((volatile uint32_t*)(EP7312_REG_BASE + 0x03C0))
55 #define EP7312_PMPCON ((volatile uint32_t*)(EP7312_REG_BASE + 0x0400))
56 #define EP7312_CODR ((volatile uint8_t*)(EP7312_REG_BASE + 0x0440))
57 #define EP7312_UARTDR1 ((volatile uint32_t*)(EP7312_REG_BASE + 0x0480))
58 #define EP7312_UARTCR1 ((volatile uint32_t*)(EP7312_REG_BASE + 0x04C0))
59 #define EP7312_SYNCIO ((volatile uint32_t*)(EP7312_REG_BASE + 0x0500))
60 #define EP7312_PALLSW ((volatile uint32_t*)(EP7312_REG_BASE + 0x0540))
61 #define EP7312_PALMSW ((volatile uint32_t*)(EP7312_REG_BASE + 0x0580))
62 #define EP7312_STFCLR ((volatile uint32_t*)(EP7312_REG_BASE + 0x05C0))
63 #define EP7312_BLEOI ((volatile uint32_t*)(EP7312_REG_BASE + 0x0600))
64 #define EP7312_MCEOI ((volatile uint32_t*)(EP7312_REG_BASE + 0x0640))
65 #define EP7312_TEOI ((volatile uint32_t*)(EP7312_REG_BASE + 0x0680))
66 #define EP7312_TC1EOI ((volatile uint32_t*)(EP7312_REG_BASE + 0x06C0))
67 #define EP7312_TC2EOI ((volatile uint32_t*)(EP7312_REG_BASE + 0x0700))
68 #define EP7312_RTCEOI ((volatile uint32_t*)(EP7312_REG_BASE + 0x0740))
69 #define EP7312_UMSEOI ((volatile uint32_t*)(EP7312_REG_BASE + 0x0780))
70 #define EP7312_COEOI ((volatile uint32_t*)(EP7312_REG_BASE + 0x07C0))
71 #define EP7312_HALT ((volatile uint32_t*)(EP7312_REG_BASE + 0x0800))
72 #define EP7312_STDBY ((volatile uint32_t*)(EP7312_REG_BASE + 0x0840))
73 #define EP7312_FBADDR ((volatile uint8_t*)(EP7312_REG_BASE + 0x1000))
74 #define EP7312_SYSCON2 ((volatile uint32_t*)(EP7312_REG_BASE + 0x1100))
75 #define EP7312_SYSFLG2 ((volatile uint32_t*)(EP7312_REG_BASE + 0x1140))
76 #define EP7312_INTSR2 ((volatile uint32_t*)(EP7312_REG_BASE + 0x1240))
77 #define EP7312_INTMR2 ((volatile uint32_t*)(EP7312_REG_BASE + 0x1280))
78 #define EP7312_UARTDR2 ((volatile uint32_t*)(EP7312_REG_BASE + 0x1480))
79 #define EP7312_UARTCR2 ((volatile uint32_t*)(EP7312_REG_BASE + 0x14C0))
80 #define EP7312_SS2DR ((volatile uint32_t*)(EP7312_REG_BASE + 0x1500))
81 #define EP7312_SRXEOF ((volatile uint32_t*)(EP7312_REG_BASE + 0x1600))
82 #define EP7312_SS2POP ((volatile uint32_t*)(EP7312_REG_BASE + 0x16C0))
83 #define EP7312_KBDEOI ((volatile uint32_t*)(EP7312_REG_BASE + 0x1700))
84 #define EP7312_DAIR ((volatile uint32_t*)(EP7312_REG_BASE + 0x2000))
85 #define EP7312_DAIDR0 ((volatile uint32_t*)(EP7312_REG_BASE + 0x2040))
86 #define EP7312_DAIDR1 ((volatile uint32_t*)(EP7312_REG_BASE + 0x2080))
87 #define EP7312_DAIDR2 ((volatile uint32_t*)(EP7312_REG_BASE + 0x20C0))
88 #define EP7312_DAISR ((volatile uint32_t*)(EP7312_REG_BASE + 0x2100))
89 #define EP7312_SYSCON3 ((volatile uint32_t*)(EP7312_REG_BASE + 0x2200))
90 #define EP7312_INTSR3 ((volatile uint32_t*)(EP7312_REG_BASE + 0x2240))
91 #define EP7312_INTMR3 ((volatile uint8_t*)(EP7312_REG_BASE + 0x2280))
92 #define EP7312_LEDFLSH ((volatile uint8_t*)(EP7312_REG_BASE + 0x22C0))
93 #define EP7312_SDCONF ((volatile uint32_t*)(EP7312_REG_BASE + 0x2300))
94 #define EP7312_SDRFPR ((volatile uint32_t*)(EP7312_REG_BASE + 0x2340))
95 #define EP7312_UNIQID ((volatile uint32_t*)(EP7312_REG_BASE + 0x2440))
96 #define EP7312_DAI64Fs ((volatile uint32_t*)(EP7312_REG_BASE + 0x2600))
97 #define EP7312_PLLW ((volatile uint8_t*)(EP7312_REG_BASE + 0x2610))
98 #define EP7312_PLLR ((volatile uint8_t*)(EP7312_REG_BASE + 0xA5A8))
99 #define EP7312_RANDID0 ((volatile uint32_t*)(EP7312_REG_BASE + 0x2700))
100 #define EP7312_RANDID1 ((volatile uint32_t*)(EP7312_REG_BASE + 0x2704))
101 #define EP7312_RANDID2 ((volatile uint32_t*)(EP7312_REG_BASE + 0x2708))
102 #define EP7312_RANDID3 ((volatile uint32_t*)(EP7312_REG_BASE + 0x270C))
103 
104 /* serial port bits */
105 
111 #define EP7312_UART_WRDLEN5 0x00000000
112 #define EP7312_UART_WRDLEN6 0x00020000
113 #define EP7312_UART_WRDLEN7 0x00040000
114 #define EP7312_UART_WRDLEN8 0x00060000
115 #define EP7312_UART_FIFOEN 0x00010000
116 #define EP7312_UART_XSTOP 0x00008000
117 #define EP7312_UART_EVENPRT 0x00004000
118 #define EP7312_UART_PRTEN 0x00002000
119 #define EP7312_UART_BREAK 0x00001000
120 
128 #define EP7312_UART_UTXINT1 0x00002000
129 #define EP7312_UART_URXINT1 0x00001000
130 
138 #define EP7312_UART_FRMERR 0x00000100
139 #define EP7312_UART_PARERR 0x00000200
140 #define EP7312_UART_OVERR 0x00000400
141 
149 #define EP7312_UART_UBUSY1 0x00000800
150 #define EP7312_UART_URXFE1 0x00400000
151 #define EP7312_UART_UTXFF1 0x00800000
152 
155 /* system configuration bits */
156 
162 #define EP7312_SYSCON1_UART1EN 0x00000100
163 #define EP7312_SYSCON1_TC1_PRESCALE 0x00000010
164 #define EP7312_SYSCON1_TC1_512KHZ 0x00000020
165 #define EP7312_SYSCON1_TC2_PRESCALE 0x00000040
166 #define EP7312_SYSCON1_TC2_512KHZ 0x00000080
167 
175 #define EP7312_INTR1_EXTFIQ 0x00000001
176 #define EP7312_INTR1_BLINT 0x00000002
177 #define EP7312_INTR1_WEINT 0x00000004
178 #define EP7312_INTR1_MCINT 0x00000008
179 #define EP7312_INTR1_CSINT 0x00000010
180 #define EP7312_INTR1_EINT1 0x00000020
181 #define EP7312_INTR1_EINT2 0x00000040
182 #define EP7312_INTR1_EINT3 0x00000080
183 #define EP7312_INTR1_TC1OI 0x00000100
184 #define EP7312_INTR1_TC2OI 0x00000200
185 #define EP7312_INTR1_RTCMI 0x00000400
186 #define EP7312_INTR1_TINT 0x00000800
187 #define EP7312_INTR1_URXINT1 0x00001000
188 #define EP7312_INTR1_UTXINT1 0x00002000
189 #define EP7312_INTR1_UMSINT 0x00004000
190 #define EP7312_INTR1_SSEOTI 0x00008000
191 
199 #define EP7312_INTR2_KBDINT 0x00000001
200 #define EP7312_INTR2_SS2RX 0x00000002
201 #define EP7312_INTR2_SS2TX 0x00000004
202 #define EP7312_INTR2_URXINT2 0x00001000
203 #define EP7312_INTR2_UTXINT2 0x00002000
204 
212 #define EP7312_INTR2_DAIINT 0x00000001
213 
218 #endif /* __EP7312_H__ */