* Fixed svn:eol-style and svn:keywords properties
[fw/sdcc] / device / include / mcs51 / cc2510fx.h
1 /*-------------------------------------------------------------------------
2    Register Declarations for Chipcon CC2510Fx/CC2511Fx
3
4    Written By -  Jesus Calvino-Fraga / jesusc at ece.ubc.ca (August 2006)
5    (Based on CC2510Fx/CC2511Fx PRELIMINARY Data Sheet (Rev. 1.2) SWRS055A)
6
7    This library is free software; you can redistribute it and/or
8    modify it under the terms of the GNU Lesser General Public
9    License as published by the Free Software Foundation; either
10    version 2.1 of the License, or (at your option) any later version.
11
12    This library is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15    Lesser General Public License for more details.
16
17    You should have received a copy of the GNU Lesser General Public
18    License along with this library; if not, write to the Free Software
19    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
20
21    In other words, you are welcome to use, share and improve this program.
22    You are forbidden to forbid anyone else to use, share and improve
23    what you give them.   Help stamp out software-hoarding!
24 -------------------------------------------------------------------------*/
25
26 #ifndef REG_CC2510FX_H
27 #define REG_CC2510FX_H
28
29 #include <compiler.h>
30
31 // Interrupt Vectors
32 #define RFTXRX_VECTOR   0 // RF TX done / RX ready  
33 #define ADC_VECTOR      1 // ADC end of conversion  
34 #define URX0_VECTOR     2 // USART0 RX complete  
35 #define URX1_VECTOR     3 // USART1 RX complete (I2S RX complete)  
36 #define ENC_VECTOR      4 // AES encryption/decryption complete  
37 #define ST_VECTOR       5 // Sleep Timer compare 
38 #define P2INT_VECTOR    6 // Port 2 inputs (Also used for USB on CC2511Fx) 
39 #define UTX0_VECTOR     7 // USART0 TX complete 
40 #define DMA_VECTOR      8 // DMA transfer complete 
41 #define T1_VECTOR       9 // Timer 1 (16-bit) capture/Compare/overflow 
42 #define T2_VECTOR      10 // Timer 2 (MAC Timer) overflow 
43 #define T3_VECTOR      11 // Timer 3 (8-bit) capture/compare/overflow 
44 #define T4_VECTOR      12 // Timer 4 (8-bit) capture/compare/overflow 
45 #define P0INT_VECTOR   13 // Port 0 inputs (Note: USB Resume from suspend interrupt on P0_7 on CC2511Fx ) 
46 #define UTX1_VECTOR    14 // USART1 TX complete (I2S TX complete) 
47 #define P1INT_VECTOR   15 // Port 1 inputs 
48 #define RF_VECTOR      16 // RF general interrupts 
49 #define WDT_VECTOR     17 // Watchdog overflow in timer mode 
50
51 //Shared Interrupt Vectors (I2S and USB)
52 #define I2SRX_VECTOR    3 //I2S RX complete 
53 #define I2STX_VECTOR   14 //I2S TX complete 
54 #define USB_VECTOR      6 //USB Interrupt pending ( CC2511Fx ) 
55
56 // SFR Registers and BITs
57
58 SFR(P0,       0x80); // Port 0 
59    SBIT(P0_0,     0x80, 0); // Port 0 bit 0
60    SBIT(P0_1,     0x80, 1); // Port 0 bit 1
61    SBIT(P0_2,     0x80, 2); // Port 0 bit 2
62    SBIT(P0_3,     0x80, 3); // Port 0 bit 3
63    SBIT(P0_4,     0x80, 4); // Port 0 bit 4
64    SBIT(P0_5,     0x80, 5); // Port 0 bit 5
65    SBIT(P0_6,     0x80, 6); // Port 0 bit 6
66    SBIT(P0_7,     0x80, 7); // Port 0 bit 7
67 SFR(SP,       0x81); // Stack Pointer 
68 SFR(DPL0,     0x82); // Data Pointer 0 Low Byte
69 SFR(DPH0,     0x83); // Data Pointer 0 High Byte
70 SFR(DPL1,     0x84); // Data Pointer 1 Low Byte
71 SFR(DPH1,     0x85); // Data Pointer 1 High Byte
72 SFR(U0CSR,    0x86); // USART 0 Control and Status 
73 SFR(PCON,     0x87); // Power Mode Control 
74 SFR(TCON,     0x88); // Interrupt Flag 
75    SBIT(IT0,      0x88, 0); // reserved (must always be set to 1) 
76    SBIT(RFTXRXIF, 0x88, 1); // RF TX/RX FIFO Interrupt Flag 
77    SBIT(IT1,      0x88, 2); // reserved (must always be set to 1) 
78    SBIT(URX0IF,   0x88, 3); // USART0 RX Interrupt Flag 
79    SBIT(ADCIF,    0x88, 5); // ADC Interrupt Flag 
80    SBIT(URX1IF,   0x88, 7); // USART1 RX Interrupt Flag 
81    SBIT(I2SRXIF,  0x88, 7); // I2S RX interrupt flag (same loc as URX1IF) 
82 SFR(P0IFG,    0x89); // Port 0 Interrupt Status Flag 
83 SFR(P1IFG,    0x8A); // Port 1 Interrupt Status Flag 
84 SFR(P2IFG,    0x8B); // Port 2 Interrupt Status Flag
85 SFR(PICTL,    0x8C); // Port Interrupt Control
86 SFR(P1IEN,    0x8D); // Port 1 Interrupt Mask 
87 SFR(P0INP,    0x8F); // Port 0 Input Mode 
88 SFR(P1,       0x90); // Port 1 
89    SBIT(P1_0,     0x90, 0); // Port 1 bit 0
90    SBIT(P1_1,     0x90, 1); // Port 1 bit 1
91    SBIT(P1_2,     0x90, 2); // Port 1 bit 2
92    SBIT(P1_3,     0x90, 3); // Port 1 bit 3
93    SBIT(P1_4,     0x90, 4); // Port 1 bit 4
94    SBIT(P1_5,     0x90, 5); // Port 1 bit 5
95    SBIT(P1_6,     0x90, 6); // Port 1 bit 6
96    SBIT(P1_7,     0x90, 7); // Port 1 bit 7
97 SFR(RFIM,     0x91); // RF Interrupt Mask
98 SFR(DPS,      0x92); // Data Pointer Select 
99 SFR(MPAGE,    0x93); // Memory Page Select 
100 SFR(ENDIAN,   0x95); // USB Endianess Control (CC2511Fx) 
101 SFR(S0CON,    0x98); // Interrupt Flag 2
102    SBIT(ENCIF_0,  0x98, 0); // AES Interrupt Flag 0 
103    SBIT(ENCIF_1,  0x98, 1); // AES Interrupt Flag 1 
104 SFR(IEN2,     0x9A); // Interrupt Enable 2 Register
105 SFR(S1CON,    0x9B); // Interrupt Flag 3 
106 SFR(T2CT,     0x9C); // Timer 2 Count
107 SFR(T2PR,     0x9D); // Timer 2 Prescaler
108 SFR(T2CTL,    0x9E); // Timer 2 Control 
109 SFR(P2,       0xA0); // Port 2
110    SBIT(P2_0,     0xA0, 0); // Port 2 bit 0
111    SBIT(P2_1,     0xA0, 1); // Port 2 bit 1
112    SBIT(P2_2,     0xA0, 2); // Port 2 bit 2
113    SBIT(P2_3,     0xA0, 3); // Port 2 bit 3
114    SBIT(P2_4,     0xA0, 4); // Port 2 bit 4
115    SBIT(P2_5,     0xA0, 5); // Port 2 bit 5
116    SBIT(P2_6,     0xA0, 6); // Port 2 bit 6
117    SBIT(P2_7,     0xA0, 7); // Port 2 bit 7
118 SFR(WORIRQ,   0xA1); // Sleep Timer Interrupt Control
119 SFR(WORCTL,   0xA2); // Sleep Timer Control
120 SFR(WORCTRL,  0xA2); // Sleep Timer Control (typo in datasheet?)
121 SFR(WOREVT0,  0xA3); // Sleep Timer Event0 Timeout Low
122 SFR(WOREVT1,  0xA4); // Sleep Timer Event0 Timeout High 
123 SFR(WORTIME0, 0xA5); // Sleep Timer Low Byte 
124 SFR(WORTIME1, 0xA6); // Sleep Timer High Byte 
125 SFR(IEN0,     0xA8); // Interrupt Enable 0 Register
126    SBIT(RFTXRXIE, 0xA8, 0); // RF TX/RX done interrupt enable 
127    SBIT(ADCIE,    0xA8, 1); // ADC Interrupt Enable 
128    SBIT(URX0IE,   0xA8, 2); // USART0 RX Interrupt Enable 
129    SBIT(URX1IE,   0xA8, 3); // USART1 RX Interrupt Enable
130    SBIT(I2SRXIE,  0xA8, 3); // I2S RX interrupt enable (Same loc as URX1IE)
131    SBIT(ENCIE,    0xA8, 4); // AES Encryption/Decryption Interrupt Enable 
132    SBIT(STIE,     0xA8, 5); // Sleep Timer Interrupt Enable 
133    SBIT(EA,       0xA8, 7); // Global Interrupt Enable 
134 SFR(IP0,      0xA9); // Interrupt Priority 0
135 SFR(FWT,      0xAB); // Flash Write Timing
136 SFR(FADDRL,   0xAC); // Flash Address Low Byte 
137 SFR(FADDRH,   0xAD); // Flash Address High Byte 
138 SFR(FCTL,     0xAE); // Flash Control 
139 SFR(FWDATA,   0xAF); // Flash Write Data
140 SFR(ENCDI,    0xB1); // Encryption Input Data
141 SFR(ENCDO,    0xB2); // Encryption Output Data
142 SFR(ENCCS,    0xB3); // Encryption Control and Status 
143 SFR(ADCCON1,  0xB4); // ADC Control 1 
144 SFR(ADCCON2,  0xB5); // ADC Control 2 
145 SFR(ADCCON3,  0xB6); // ADC Control 3 
146 SFR(IEN1,     0xB8); // Interrupt Enable 1 Register
147    SBIT(DMAIE,    0xB8, 0); // DMA Transfer Interrupt Enable 
148    SBIT(T1IE,     0xB8, 1); // Timer 1 Interrupt Enable 
149    SBIT(T2IE,     0xB8, 2); // Timer 2 Interrupt Enable 
150    SBIT(T3IE,     0xB8, 3); // Timer 3 Interrupt Enable 
151    SBIT(T4IE,     0xB8, 4); // Timer 4 Interrupt Enable 
152    SBIT(P0IE,     0xB8, 5); // Port 0 Interrupt Enable 
153 SFR(IP1,      0xB9); // Interrupt Priority 1 
154 SFR(ADCL,     0xBA); // ADC Data Low
155 SFR(ADCH,     0xBB); // ADC Data High
156 SFR(RNDL,     0xBC); // Random Number Generator Data Low Byte 
157 SFR(RNDH,     0xBD); // Random Number Generator Data High Byte
158 SFR(SLEEP,    0xBE); // Sleep Mode Control 
159 SFR(IRCON,    0xC0); // Interrupt Flag 4 
160    SBIT(DMAIF,    0xC0, 0); // DMA Complete Interrupt Flag 
161    SBIT(T1IF,     0xC0, 1); // Timer 1 Interrupt Flag 
162    SBIT(T2IF,     0xC0, 2); // Timer 2 Interrupt Flag 
163    SBIT(T3IF,     0xC0, 3); // Timer 3 Interrupt Flag 
164    SBIT(T4IF,     0xC0, 4); // Timer 4 Interrupt Flag 
165    SBIT(P0IF,     0xC0, 5); // Port 0 Interrupt Flag 
166    SBIT(STIF,     0xC0, 7); // Sleep Timer Interrupt Flag 
167 SFR(U0DBUF,   0xC1); // USART 0 Receive/Transmit Data Buffer
168 SFR(U0BAUD,   0xC2); // USART 0 Baud Rate Control
169 SFR(U0UCR,    0xC4); // USART 0 UART Control 
170 SFR(U0GCR,    0xC5); // USART 0 Generic Control
171 SFR(CLKCON,   0xC6); // Clock Control
172 SFR(MEMCTR,   0xC7); // Memory Arbiter Control
173 SFR(WDCTL,    0xC9); // Watchdog Timer Control 
174 SFR(T3CNT,    0xCA); // Timer 3 Counter
175 SFR(T3CTL,    0xCB); // Timer 3 Control 
176 SFR(T3CCTL0,  0xCC); // Timer 3 Channel 0 Capture/Compare Control
177 SFR(T3CC0,    0xCD); // Timer 3 Channel 0 Capture/Compare Value 
178 SFR(T3CCTL1,  0xCE); // Timer 3 Channel 1 Capture/Compare Control 
179 SFR(T3CC1,    0xCF); // Timer 3 Channel 1 Capture/Compare Value
180 SFR(PSW,      0xD0); // Program Status Word
181    SBIT(P,        0xD0, 0); // Parity Flag 
182    SBIT(F1,       0xD0, 1); // User-Defined Flag
183    SBIT(OV,       0xD0, 2); // Overflow Flag 
184    SBIT(RS0,      0xD0, 3); // Register Bank Select 0 
185    SBIT(RS1,      0xD0, 4); // Register Bank Select 1 
186    SBIT(F0,       0xD0, 5); // User-Defined Flag
187    SBIT(AC,       0xD0, 6); // Auxiliary Carry Flag 
188    SBIT(CY,       0xD0, 7); // Carry Flag 
189 SFR(DMAIRQ,   0xD1); // DMA Interrupt Flag
190 SFR(DMA1CFGL, 0xD2); // DMA Channel 1-4 Configuration Address Low Byte
191 SFR(DMA1CFGH, 0xD3); // DMA Channel 1-4 Configuration Address High Byte
192 SFR(DMA0CFGL, 0xD4); // DMA Channel 0 Configuration Address Low Byte 
193 SFR(DMA0CFGH, 0xD5); // DMA Channel 0 Configuration Address High Byte 
194 SFR(DMAARM,   0xD6); // DMA Channel Arm 
195 SFR(DMAREQ,   0xD7); // DMA Channel Start Request and Status
196 SFR(TIMIF,    0xD8); // Timers 1/3/4 Interrupt Mask/Flag 
197    SBIT(T3OVFIF,  0xD8, 0); // Timer 3 overflow interrupt flag 0:no pending 1:pending
198    SBIT(T3CH0IF,  0xD8, 1); // Timer 3 channel 0 interrupt flag 0:no pending 1:pending
199    SBIT(T3CH1IF,  0xD8, 2); // Timer 3 channel 1 interrupt flag 0:no pending 1:pending
200    SBIT(T4OVFIF,  0xD8, 3); // Timer 4 overflow interrupt flag 0:no pending 1:pending
201    SBIT(T4CH0IF,  0xD8, 4); // Timer 4 channel 0 interrupt flag 0:no pending 1:pending
202    SBIT(T4CH1IF,  0xD8, 5); // Timer 4 channel 1 interrupt flag 0:no pending 1:pending
203    SBIT(OVFIM,    0xD8, 6); // Timer 1 overflow interrupt mask
204 SFR(RFD,      0xD9); // RF Data
205 SFR(T1CC0L,   0xDA); // Timer 1 Channel 0 Capture/Compare Value Low
206 SFR(T1CC0H,   0xDB); // Timer 1 Channel 0 Capture/Compare Value High 
207 SFR(T1CC1L,   0xDC); // Timer 1 Channel 1 Capture/Compare Value Low 
208 SFR(T1CC1H,   0xDD); // Timer 1 Channel 1 Capture/Compare Value High 
209 SFR(T1CC2L,   0xDE); // Timer 1 Channel 2 Capture/Compare Value Low
210 SFR(T1CC2H,   0xDF); // Timer 1 Channel 2 Capture/Compare Value High
211 SFR(ACC,      0xE0); // Accumulator
212    SBIT(ACC_0,    0xE0, 0); // Accumulator bit 0
213    SBIT(ACC_1,    0xE0, 1); // Accumulator bit 1
214    SBIT(ACC_2,    0xE0, 2); // Accumulator bit 2
215    SBIT(ACC_3,    0xE0, 3); // Accumulator bit 3
216    SBIT(ACC_4,    0xE0, 4); // Accumulator bit 4
217    SBIT(ACC_5,    0xE0, 5); // Accumulator bit 5
218    SBIT(ACC_6,    0xE0, 6); // Accumulator bit 6
219    SBIT(ACC_7,    0xE0, 7); // Accumulator bit 7
220 SFR(RFST,     0xE1); // RF Strobe Commands
221 SFR(T1CNTL,   0xE2); // Timer 1 Counter Low 
222 SFR(T1CNTH,   0xE3); // Timer 1 Counter High 
223 SFR(T1CTL,    0xE4); // Timer 1 Control and Status
224 SFR(T1CCTL0,  0xE5); // Timer 1 Channel 0 Capture/Compare Control
225 SFR(T1CCTL1,  0xE6); // Timer 1 Channel 1 Capture/Compare Control
226 SFR(T1CCTL2,  0xE7); // Timer 1 Channel 2 Capture/Compare Control
227 SFR(IRCON2,   0xE8); // Interrupt Flag 5 
228    SBIT(P2IF,     0xE8, 0); // Port 2 Interrupt Flag 
229    SBIT(USBIF,    0xE8, 0); // USB Interrupt Flag (same bit as P2IF)
230    SBIT(UTX0IF,   0xE8, 1); // USART0 TX Interrupt Flag 
231    SBIT(UTX1IF,   0xE8, 2); // USART1 TX Interrupt Flag 
232    SBIT(I2STXIF,  0xE8, 2); // I2S TX Interrupt Flag (same bit as UTX1FIF)
233    SBIT(P1IF,     0xE8, 3); // Port 1 Interrupt Flag 
234    SBIT(WDTIF,    0xE8, 4); // Watchdog Timer Interrupt Flag 
235 SFR(RFIF,     0xE9); // RF Interrupt Flags 
236 SFR(T4CNT,    0xEA); // Timer 4 Counter 
237 SFR(T4CTL,    0xEB); // Timer 4 Control 
238 SFR(T4CCTL0,  0xEC); // Timer 4 Channel 0 Capture/Compare Control 
239 SFR(T4CC0,    0xED); // Timer 4 Channel 0 Capture/Compare Value 
240 SFR(T4CCTL1,  0xEE); // Timer 4 Channel 1 Capture/Compare Control 
241 SFR(T4CC1,    0xEF); // Timer 4 Channel 1 Capture/Compare Value 
242 SFR(B,        0xF0); // B Register 
243    SBIT(B_0,      0xF0, 0); // Register B bit 0
244    SBIT(B_1,      0xF0, 1); // Register B bit 1
245    SBIT(B_2,      0xF0, 2); // Register B bit 2
246    SBIT(B_3,      0xF0, 3); // Register B bit 3
247    SBIT(B_4,      0xF0, 4); // Register B bit 4
248    SBIT(B_5,      0xF0, 5); // Register B bit 5
249    SBIT(B_6,      0xF0, 6); // Register B bit 6
250    SBIT(B_7,      0xF0, 7); // Register B bit 7
251 SFR(PERCFG,   0xF1); // Peripheral Control 
252 SFR(ADCCFG,   0xF2); // ADC Input Configuration
253 SFR(P0SEL,    0xF3); // Port 0 Function Select 
254 SFR(P1SEL,    0xF4); // Port 1 Function Select 
255 SFR(P2SEL,    0xF5); // Port 2 Function Select 
256 SFR(P1INP,    0xF6); // Port 1 Input Mode 
257 SFR(P2INP,    0xF7); // Port 2 Input Mode 
258 SFR(U1CSR,    0xF8); // USART 1 Control and Status
259    SBIT(ACTIVE,   0xF8, 0); // USART transmit/receive active status 0:idle 1:busy
260    SBIT(TX_BYTE,  0xF8, 1); // Transmit byte status 0:Byte not transmitted 1:Last byte transmitted
261    SBIT(RX_BYTE,  0xF8, 2); // Receive byte status 0:No byte received 1:Received byte ready
262    SBIT(ERR,      0xF8, 3); // UART parity error status 0:No error 1:parity error
263    SBIT(FE,       0xF8, 4); // UART framing error status 0:No error 1:incorrect stop bit level
264    SBIT(SLAVE,    0xF8, 5); // SPI master or slave mode select 0:master 1:slave
265    SBIT(RE,       0xF8, 6); // UART receiver enable 0:disabled 1:enabled
266    SBIT(MODE,     0xF8, 7); // USART mode select 0:SPI 1:UART
267 SFR(U1DBUF,   0xF9); // USART 1 Receive/Transmit Data Buffer 
268 SFR(U1BAUD,   0xFA); // USART 1 Baud Rate Control 
269 SFR(U1UCR,    0xFB); // USART 1 UART Control 
270 SFR(U1GCR,    0xFC); // USART 1 Generic Control
271 SFR(P0DIR,    0xFD); // Port 0 Direction 
272 SFR(P1DIR,    0xFE); // Port 1 Direction
273 SFR(P2DIR,    0xFF); // Port 2 Direction 
274
275 // From table 68: xdata RF registers
276
277 SFRX(SYNC1,      0xDF00); // Sync word, high byte 
278 SFRX(SYNC0,      0xDF01); // Sync word, low byte 
279 SFRX(PKTLEN,     0xDF02); // Packet length 
280 SFRX(PKTCTRL1,   0xDF03); // Packet automation control 
281 SFRX(PKTCTRL0,   0xDF04); // Packet automation control 
282 SFRX(ADDR,       0xDF05); // Device address 
283 SFRX(CHANNR,     0xDF06); // Channel number 
284 SFRX(FSCTRL1,    0xDF07); // Frequency synthesizer control 
285 SFRX(FSCTRL0,    0xDF08); // Frequency synthesizer control 
286 SFRX(FREQ2,      0xDF09); // Frequency control word, high byte 
287 SFRX(FREQ1,      0xDF0A); // Frequency control word, middle byte 
288 SFRX(FREQ0,      0xDF0B); // Frequency control word, low byte 
289 SFRX(MDMCFG4,    0xDF0C); // Modem configuration 
290 SFRX(MDMCFG3,    0xDF0D); // Modem configuration 
291 SFRX(MDMCFG2,    0xDF0E); // Modem configuration 
292 SFRX(MDMCFG1,    0xDF0F); // Modem configuration 
293 SFRX(MDMCFG0,    0xDF10); // Modem configuration 
294 SFRX(DEVIATN,    0xDF11); // Modem deviation setting 
295 SFRX(MCSM2,      0xDF12); // Main Radio Control State Machine configuration 
296 SFRX(MCSM1,      0xDF13); // Main Radio Control State Machine configuration 
297 SFRX(MCSM0,      0xDF14); // Main Radio Control State Machine configuration 
298 SFRX(FOCCFG,     0xDF15); // Frequency Offset Compensation configuration 
299 SFRX(BSCFG,      0xDF16); // Bit Synchronization configuration 
300 SFRX(AGCCTRL2,   0xDF17); // AGC control 
301 SFRX(AGCCTRL1,   0xDF18); // AGC control 
302 SFRX(AGCCTRL0,   0xDF19); // AGC control 
303 SFRX(FREND1,     0xDF1A); // Front end RX configuration 
304 SFRX(FREND0,     0xDF1B); // Front end TX configuration 
305 SFRX(FSCAL3,     0xDF1C); // Frequency synthesizer calibration 
306 SFRX(FSCAL2,     0xDF1D); // Frequency synthesizer calibration 
307 SFRX(FSCAL1,     0xDF1E); // Frequency synthesizer calibration 
308 SFRX(FSCAL0,     0xDF1F); // Frequency synthesizer calibration 
309 SFRX(PA_TABLE7,  0xDF27); // PA output power setting 
310 SFRX(PA_TABLE6,  0xDF28); // PA output power setting 
311 SFRX(PA_TABLE5,  0xDF29); // PA output power setting 
312 SFRX(PA_TABLE4,  0xDF2A); // PA output power setting 
313 SFRX(PA_TABLE3,  0xDF2B); // PA output power setting 
314 SFRX(PA_TABLE2,  0xDF2C); // PA output power setting 
315 SFRX(PA_TABLE1,  0xDF2D); // PA output power setting 
316 SFRX(PA_TABLE0,  0xDF2E); // PA output power setting 
317 SFRX(IOCFG2,     0xDF2F); // GDO2 output pin configuration 
318 SFRX(IOCFG1,     0xDF30); // GDO1 output pin configuration 
319 SFRX(IOCFG0,     0xDF31); // GDO0 output pin configuration 
320 SFRX(PARTNUM,    0xDF36); // Chip Identifier 
321 SFRX(VERSION,    0xDF37); // Configuration 
322 SFRX(FREQEST,    0xDF38); // Frequency Offset Estimate 
323 SFRX(LQI,        0xDF39); // Link Quality Indicator 
324 SFRX(RSSI,       0xDF3A); // Received Signal Strength Indication 
325 SFRX(MARCSTATE,  0xDF3B); // Main Radio Control State 
326 SFRX(PKTSTATUS,  0xDF3C); // Packet status 
327 SFRX(VCO_VC_DAC, 0xDF3D); // PLL calibration current 
328
329 // I2S Registers
330
331 SFRX(I2SCFG0,  0xDF40); // I2S Configuration Register 0 
332 SFRX(I2SCFG1,  0xDF41); // I2S Configuration Register 1 
333 SFRX(I2SDATL,  0xDF42); // I2S Data Low Byte 
334 SFRX(I2SDATH,  0xDF43); // I2S Data High Byte 
335 SFRX(I2SWCNT,  0xDF44); // I2S Word Count Register 
336 SFRX(I2SSTAT,  0xDF45); // I2S Status Register 
337 SFRX(I2SCLKF0, 0xDF46); // I2S Clock Configuration Register 0 
338 SFRX(I2SCLKF1, 0xDF47); // I2S Clock Configuration Register 1 
339 SFRX(I2SCLKF2, 0xDF48); // I2S Clock Configuration Register 2
340
341 // Common USB Registers
342
343 SFRX(USBADDR,  0xDE00); // Function Address
344 SFRX(USBPOW,   0xDE01); // Power/Control Register
345 SFRX(USBIIF,   0xDE02); // IN Endpoints and EP0 Interrupt Flags
346 SFRX(USBOIF,   0xDE04); // OUT Endpoints Interrupt Flags
347 SFRX(USBCIF,   0xDE06); // Common USB Interrupt Flags
348 SFRX(USBIIE,   0xDE07); // IN Endpoints and EP0 Interrupt Enable Mask
349 SFRX(USBOIE,   0xDE09); // Out Endpoints Interrupt Enable Mask
350 SFRX(USBCIE,   0xDE0B); // Common USB Interrupt Enable Mask
351 SFRX(USBFRML,  0xDE0C); // Current Frame Number (Low byte)
352 SFRX(USBFRMH,  0xDE0D); // Current Frame Number (High byte)
353 SFRX(USBINDEX, 0xDE0E); // Selects current endpoint.
354
355 // Indexed Endpoint Registers
356
357 SFRX(USBMAXI, 0xDE10); // Max. packet size for IN endpoint
358 SFRX(USBCS0,  0xDE11); // EP0 Control and Status (USBINDEX = 0)
359 SFRX(USBCSIL, 0xDE11); // IN EP{1-5} Control and Status Low
360 SFRX(USBCSIH, 0xDE12); // IN EP{1-5} Control and Status High
361 SFRX(USBMAXO, 0xDE13); // Max. packet size for OUT endpoint
362 SFRX(USBCSOL, 0xDE14); // OUT EP{1-5} Control and Status Low
363 SFRX(USBCSOH, 0xDE15); // OUT EP{1-5} Control and Status High
364 SFRX(USBCNT0, 0xDE16); // Number of received bytes in EP0 FIFO (USBINDEX = 0)
365 SFRX(USBCNTL, 0xDE16); // Number of bytes in OUT FIFO Low
366 SFRX(USBCNTH, 0xDE17); // Number of bytes in OUT FIFO High
367
368 // Endpoint FIFO Registers
369
370 SFRX(USBF0, 0xDE20); //  Endpoint 0 FIFO
371 SFRX(USBF1, 0xDE22); //  Endpoint 1 FIFO
372 SFRX(USBF2, 0xDE24); //  Endpoint 2 FIFO
373 SFRX(USBF3, 0xDE26); //  Endpoint 3 FIFO
374 SFRX(USBF4, 0xDE28); //  Endpoint 4 FIFO
375 SFRX(USBF5, 0xDE2A); //  Endpoint 5 FIFO
376
377 // SFRs also accesible through XDATA space
378
379 SFRX(X_U0CSR,    0xDF86); // USART 0 Control and Status
380 SFRX(X_P0IFG,    0xDF89); // Port 0 Interrupt Status Flag
381 SFRX(X_P1IFG,    0xDF8A); // Port 1 Interrupt Status Flag
382 SFRX(X_P2IFG,    0xDF8B); // Port 2 Interrupt Status Flag
383 SFRX(X_PICTL,    0xDF8C); // Port Pins Interrupt Mask and Edge
384 SFRX(X_P1IEN,    0xDF8D); // Port 1 Interrupt Mask
385 SFRX(X_P0INP,    0xDF8F); // Port 0 Input Mode
386 SFRX(X_RFIM,     0xDF91); // RF Interrupt Mask
387 SFRX(X_MPAGE,    0xDF93); // Memory Page Select 
388 SFRX(X_T2CT,     0xDF9C); // Timer 2 Control
389 SFRX(X_T2PR,     0xDF9D); // Timer 2 Prescaler
390 SFRX(X_T2CTL,    0xDF9E); // Timer 2 Control
391 SFRX(X_WORIRQ,   0xDFA1); // Timer Sleep Timer Interrupts
392 SFRX(X_WORCTL,   0xDFA2); // Sleep Timer Control 
393 SFRX(X_WOREVT0,  0xDFA3); // Timer Sleep Timer Event 0 Timeout Low Byte
394 SFRX(X_WOREVT1,  0xDFA4); // Timer Sleep Timer Event 0 Timeout High Byte
395 SFRX(X_WORTIME0, 0xDFA5); // Sleep Timer Value 0 
396 SFRX(X_WORTIME1, 0xDFA6); // Sleep Timer Value 1 
397 SFRX(X_FWT,      0xDFAB); // Flash Write Timing
398 SFRX(X_FADDRL,   0xDFAC); // Flash Address Low
399 SFRX(X_FADDRH,   0xDFAD); // Flash Address High
400 SFRX(X_FCTL,     0xDFAE); // Flash Control
401 SFRX(X_FWDATA,   0xDFAF); // Flash Write Data
402 SFRX(X_ENCDI,    0xDFB1); // Encryption/Decryption Input Data
403 SFRX(X_ENCDO,    0xDFB2); // Encryption/Decryption Output Data
404 SFRX(X_ENCCS,    0xDFB3); // Encryption/Decryption Control and Status
405 SFRX(X_ADCCON1,  0xDFB4); // ADC Control 1
406 SFRX(X_ADCCON2,  0xDFB5); // ADC Control 2
407 SFRX(X_ADCCON3,  0xDFB6); // ADC Control 3
408 SFRX(X_ADCL,     0xDFBA); // ADC Data Low
409 SFRX(X_ADCH,     0xDFBB); // ADC Data High
410 SFRX(X_RNDL,     0xDFBC); // Random Number Generator Data Low
411 SFRX(X_RNDH,     0xDFBD); // Random Number Generator Data High
412 SFRX(X_SLEEP,    0xDFBE); // Flash Write Timing
413 SFRX(X_U0DBUF,   0xDFC1); // USART 0 Receive/Transmit Data Buffer
414 SFRX(X_U0BAUD,   0xDFC2); // USART 0 Baud Rate Control
415 SFRX(X_U0UCR,    0xDFC4); // USART 0 UART Control
416 SFRX(X_U0GCR,    0xDFC5); // USART 0 Generic Control
417 SFRX(X_CLKCON,   0xDFC6); // Clock Control
418 SFRX(X_MEMCTR,   0xDFC7); // Memory System Control
419 SFRX(X_WDCTL,    0xDFC9); // Watchdog Timer Control
420 SFRX(X_T3CNT,    0xDFCA); // Timer 3 Counter
421 SFRX(X_T3CTL,    0xDFCB); // Timer 3 Control
422 SFRX(X_T3CCTL0,  0xDFCC); // Timer 3 Channel 0 Capture/Compare Control
423 SFRX(X_T3CC0,    0xDFCD); // Timer 3 Channel 0 Capture/Compare Value
424 SFRX(X_T3CCTL1,  0xDFCE); // Timer 3 Channel 1 Capture/Compare Control
425 SFRX(X_T3CC1,    0xDFCF); // Timer 3 Channel 1 Capture/Compare Value
426 SFRX(X_DMAIRQ,   0xDFD1); // DMA Interrupt Flag
427 SFRX(X_DMA1CFGL, 0xDFD2); // DMA Channel 1-4 Configuration Address Low Byte
428 SFRX(X_DMA1CFGH, 0xDFD3); // DMA Channel 1-4 Configuration Address High Byte
429 SFRX(X_DMA0CFGL, 0xDFD4); // DMA Channel 0 Configuration Address Low Byte
430 SFRX(X_DMA0CFGH, 0xDFD5); // DMA Channel 0 Configuration Address High Byte
431 SFRX(X_DMAARM,   0xDFD6); // DMA Channel Arm
432 SFRX(X_DMAREQ,   0xDFD7); // DMA Channel Start Request and Status
433 SFRX(X_TIMIF,    0xDFD8); // Timers 1/3/4 Joint Interrupt Mask/Flags
434 SFRX(X_RFD,      0xDFD9); // RF Data
435 SFRX(X_T1CC0L,   0xDFDA); // Timer 1 Channel 0 Capture/Compare Value Low
436 SFRX(X_T1CC0H,   0xDFDB); // Timer 1 Channel 0 Capture/Compare Value High
437 SFRX(X_T1CC1L,   0xDFDC); // Timer 1 Channel 1 Capture/Compare Value Low
438 SFRX(X_T1CC1H,   0xDFDD); // Timer 1 Channel 1 Capture/Compare Value High
439 SFRX(X_T1CC2L,   0xDFDE); // Timer 1 Channel 2 Capture/Compare Value Low
440 SFRX(X_T1CC2H,   0xDFDF); // Timer 1 Channel 2 Capture/Compare Value High
441 SFRX(X_RFST,     0xDFE1); // RF Strobe Commands
442 SFRX(X_T1CNTL,   0xDFE2); // Timer 1 Counter Low
443 SFRX(X_T1CNTH,   0xDFE3); // Timer 1 Counter High
444 SFRX(X_T1CTL,    0xDFE4); // Timer 1 Control and Status
445 SFRX(X_T1CCTL0,  0xDFE5); // Timer 1 Channel 0 Capture/Compare Control
446 SFRX(X_T1CCTL1,  0xDFE6); // Timer 1 Channel 1 Capture/Compare Control
447 SFRX(X_T1CCTL2,  0xDFE7); // Timer 1 Channel 2 Capture/Compare Control
448 SFRX(X_RFIF,     0xDFE9); // RF Interrupt flags
449 SFRX(X_T4CNT,    0xDFEA); // Timer 4 Counter
450 SFRX(X_T4CTL,    0xDFEB); // Timer 4 Control
451 SFRX(X_T4CCTL0,  0xDFEC); // Timer 4 Channel 0 Capture/Compare Control
452 SFRX(X_T4CC0,    0xDFED); // Timer 4 Channel 0 Capture/Compare Value
453 SFRX(X_T4CCTL1,  0xDFEE); // Timer 4 Channel 1 Capture/Compare Control
454 SFRX(X_T4CC1,    0xDFEF); // Timer 4 Channel 1 Capture/Compare Value
455 SFRX(X_PERCFG,   0xDFF1); // Peripheral I/O Control
456 SFRX(X_ADCCFG,   0xDFF2); // ADC Input Configuration
457 SFRX(X_P0SEL,    0xDFF3); // Port 0 Function Select
458 SFRX(X_P1SEL,    0xDFF4); // Port 1 Function Select
459 SFRX(X_P2SEL,    0xDFF5); // Port 2 Function Select
460 SFRX(X_P1INP,    0xDFF6); // Port 1 Input Mode
461 SFRX(X_P2INP,    0xDFF7); // Port 2 Input Mode
462 SFRX(X_U1CSR,    0xDFF8); // USART 1 Control and Status
463 SFRX(X_U1DBUF,   0xDFF9); // USART 1 Receive/Transmit Data Buffer
464 SFRX(X_U1BAUD,   0xDFFA); // USART 1 Baud Rate Control
465 SFRX(X_U1UCR,    0xDFFB); // USART 1 UART Control
466 SFRX(X_U1GCR,    0xDFFC); // USART 1 Generic Control
467 SFRX(X_P0DIR,    0xDFFD); // Port 0 Direction
468 SFRX(X_P1DIR,    0xDFFE); // Port 1 Direction
469 SFRX(X_P2DIR,    0xDFFF); // Port 2 Direction
470
471 #endif //REG_CC2510FX_H
472