Contiki 2.6

cc253x.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2011, George Oikonomou - <oikonomou@users.sourceforge.net>
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  * 1. Redistributions of source code must retain the above copyright
00009  *    notice, this list of conditions and the following disclaimer.
00010  * 2. Redistributions in binary form must reproduce the above copyright
00011  *    notice, this list of conditions and the following disclaimer in the
00012  *    documentation and/or other materials provided with the distribution.
00013  * 3. Neither the name of the Institute nor the names of its contributors
00014  *    may be used to endorse or promote products derived from this software
00015  *    without specific prior written permission.
00016  *
00017  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
00018  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00019  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00020  * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
00021  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00022  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
00023  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
00024  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00025  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
00026  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
00027  * SUCH DAMAGE.
00028  *
00029  * This file is part of the Contiki operating system.
00030  */
00031 
00032 /**
00033  * \file
00034  *   Definitions for TI/Chipcon cc2530, cc2531 and cc2533 SFR registers.
00035  *
00036  *   Based on information in:
00037  *   "CC253x System-on-Chip Solution for 2.4-GHz IEEE 802.15.4 and ZigBee®
00038  *    Applications"
00039  *   Literature Number: SWRU191B. April 2009–Revised September 2010
00040  *
00041  * \author
00042  *         George Oikonomou - <oikonomou@users.sourceforge.net>
00043  */
00044 
00045 #ifndef __CC253X_H__
00046 #define __CC253X_H__
00047 
00048 /*---------------------------------------------------------------------------*/
00049 /* Compiler Abstraction */
00050 #include <compiler.h>
00051 /*---------------------------------------------------------------------------
00052  * Interrupt Vectors
00053  * (Table 2.5, page 40)
00054  *---------------------------------------------------------------------------*/
00055 #define RFERR_VECTOR     0  /* RF TXFIFO underflow and RXFIFO overflow. */
00056 #define ADC_VECTOR       1  /* ADC end of conversion */
00057 #define URX0_VECTOR      2  /* USART 0 RX complete */
00058 #define URX1_VECTOR      3  /* USART 1 RX complete */
00059 #define ENC_VECTOR       4  /* AES encryption/decryption complete */
00060 #define ST_VECTOR        5  /* Sleep Timer compare */
00061 #define P2INT_VECTOR     6  /* Port 2 inputs/USB/I2C */
00062 #define UTX0_VECTOR      7  /* USART 0 TX complete */
00063 #define DMA_VECTOR       8  /* DMA transfer complete */
00064 #define T1_VECTOR        9  /* Timer 1 (16-bit) capture/compare/overflow */
00065 #define T2_VECTOR       10  /* Timer 2 (MAC Timer) */
00066 #define T3_VECTOR       11  /* Timer 3 (8-bit) compare/overflow */
00067 #define T4_VECTOR       12  /* Timer 4 (8-bit) compare/overflow */
00068 #define P0INT_VECTOR    13  /* Port 0 inputs */
00069 #define UTX1_VECTOR     14  /* USART1 TX complete */
00070 #define P1INT_VECTOR    15  /* Port 1 inputs */
00071 #define RF_VECTOR       16  /* RF general interrupts */
00072 #define WDT_VECTOR      17  /* Watchdog overflow in timer mode */
00073 /*---------------------------------------------------------------------------
00074  * Special Function Registers and BITs
00075  * (Table 2.1, page 27)
00076  *---------------------------------------------------------------------------*/
00077 /* 8051 Internals */
00078 SFR(P0,        0x80); /* Port 0 */
00079   SBIT(P0_7,     0x80, 7); /* Port 0 bit 7 */
00080   SBIT(P0_6,     0x80, 6); /* Port 0 bit 6 */
00081   SBIT(P0_5,     0x80, 5); /* Port 0 bit 5 */
00082   SBIT(P0_4,     0x80, 4); /* Port 0 bit 4 */
00083   SBIT(P0_3,     0x80, 3); /* Port 0 bit 3 */
00084   SBIT(P0_2,     0x80, 2); /* Port 0 bit 2 */
00085   SBIT(P0_1,     0x80, 1); /* Port 0 bit 1 */
00086   SBIT(P0_0,     0x80, 0); /* Port 0 bit 0 */
00087 SFR(SP,        0x81); /* Stack pointer */
00088 SFR(DPL0,      0x82); /* Data pointer 0 low byte */
00089 SFR(DPH0,      0x83); /* Data pointer 0 high byte */
00090 SFR(DPL1,      0x84); /* Data pointer 1 low byte */
00091 SFR(DPH1,      0x85); /* Data pointer 1 high byte */
00092 SFR(PCON,      0x87); /* Power mode control */
00093 SFR(TCON,      0x88); /* Interrupt flags */
00094   SBIT(URX1IF,   0x88, 7); /* USART1 RX interrupt flag */
00095   SBIT(ADCIF,    0x88, 5); /* ADC interrupt flag */
00096   SBIT(URX0IF,   0x88, 3); /* USART0 RX interrupt flag */
00097   SBIT(IT1,      0x88, 2); /* Reserved. Must always be set to 1 */
00098   SBIT(RFERRIF,  0x88, 1); /* RF TXFIFO/RXFIFO interrupt flag */
00099   SBIT(IT0,      0x88, 0); /* Reserved. Must always be set to 1 */
00100 SFR(P1,        0x90); /* Port 1 */
00101   SBIT(P1_7,     0x90, 7); /* Port 1 bit 7 */
00102   SBIT(P1_6,     0x90, 6); /* Port 1 bit 6 */
00103   SBIT(P1_5,     0x90, 5); /* Port 1 bit 5 */
00104   SBIT(P1_4,     0x90, 4); /* Port 1 bit 4 */
00105   SBIT(P1_3,     0x90, 3); /* Port 1 bit 3 */
00106   SBIT(P1_2,     0x90, 2); /* Port 1 bit 2 */
00107   SBIT(P1_1,     0x90, 1); /* Port 1 bit 1 */
00108   SBIT(P1_0,     0x90, 0); /* Port 1 bit 0 */
00109 SFR(DPS,       0x92); /* Data pointer select */
00110 SFR(S0CON,     0x98); /* Interrupt flags 2 */
00111   SBIT(ENCIF_1,  0x98, 1); /* AES Interrupt flag 1 */
00112   SBIT(ENCIF_0,  0x98, 0); /* AES Interrupt flag 0 */
00113 SFR(IEN2,      0x9A); /* Interrupt enable 2 */
00114 SFR(S1CON,     0x9B); /* Interrupt flags 3 */
00115 SFR(P2,        0xA0); /* Port 2 */
00116   SBIT(P2_7,     0xA0, 7); /* Port 2 bit 7 */
00117   SBIT(P2_6,     0xA0, 6); /* Port 2 bit 6 */
00118   SBIT(P2_5,     0xA0, 5); /* Port 2 bit 5 */
00119   SBIT(P2_4,     0xA0, 4); /* Port 2 bit 4 */
00120   SBIT(P2_3,     0xA0, 3); /* Port 2 bit 3 */
00121   SBIT(P2_2,     0xA0, 2); /* Port 2 bit 2 */
00122   SBIT(P2_1,     0xA0, 1); /* Port 2 bit 1 */
00123   SBIT(P2_0,     0xA0, 0); /* Port 2 bit 0 */
00124 SFR(IEN0,      0xA8); /* Interrupt enable 0 */
00125   SBIT(EA,       0xA8, 7); /* All interrupts - enable/disable */
00126   SBIT(STIE,     0xA8, 5); /* Sleep Timer interrupt enable */
00127   SBIT(ENCIE,    0xA8, 4); /* AES encryption/decryption interrupt enable */
00128   SBIT(URX1IE,   0xA8, 3); /* USART1 RX interrupt enable */
00129   SBIT(URX0IE,   0xA8, 2); /* USART0 RX interrupt enable */
00130   SBIT(ADCIE,    0xA8, 1); /* ADC interrupt enable */
00131   SBIT(RFERRIE,  0xA8, 0); /* RF TXFIFO/RXFIFO interrupt enable */
00132 SFR(IP0,       0xA9); /* Interrupt priority 0 */
00133 SFR(IEN1,      0xB8); /* Interrupt enable 1 */
00134   SBIT(P0IE,     0xB8, 5); /* Port 0 interrupt enable */
00135   SBIT(T4IE,     0xB8, 4); /* Timer 4 interrupt enable */
00136   SBIT(T3IE,     0xB8, 3); /* Timer 3 interrupt enable */
00137   SBIT(T2IE,     0xB8, 2); /* Timer 2 interrupt enable */
00138   SBIT(T1IE,     0xB8, 1); /* Timer 1 interrupt enable */
00139   SBIT(DMAIE,    0xB8, 0); /* DMA Transfer interrupt enable */
00140 SFR(IP1,       0xB9); /* Interrupt priority 1 */
00141 SFR(IRCON,     0xC0); /* Interrupt flags 4 */
00142   SBIT(STIF,     0xC0, 7); /* Sleep Timer interrupt flag */
00143   SBIT(P0IF,     0xC0, 5); /* Port 0 interrupt flag */
00144   SBIT(T4IF,     0xC0, 4); /* Timer 4 interrupt flag */
00145   SBIT(T3IF,     0xC0, 3); /* Timer 3 interrupt flag */
00146   SBIT(T2IF,     0xC0, 2); /* Timer 2 interrupt flag */
00147   SBIT(T1IF,     0xC0, 1); /* Timer 1 interrupt flag */
00148   SBIT(DMAIF,    0xC0, 0); /* DMA-complete interrupt flag */
00149 SFR(PSW,       0xD0); /* Program status word */
00150   SBIT(CY,       0xD0, 7); /* Carry flag */
00151   SBIT(AC,       0xD0, 6); /* Auxiliary carry flag */
00152   SBIT(F0,       0xD0, 5); /* User-defined flag 1, bit addressable */
00153   SBIT(RS1,      0xD0, 4); /* Register bank select, bit 1 */
00154   SBIT(RS0,      0xD0, 3); /* Register bank select, bit 0 */
00155   SBIT(OV,       0xD0, 2); /* Overflow flag */
00156   SBIT(F1,       0xD0, 1); /* User-defined flag 0, bit addressable */
00157   SBIT(P,        0xD0, 0); /* Parity flag */
00158 SFR(ACC,       0xE0); /* Accumulator */
00159   SBIT(ACC_7,    0xE0, 7); /* Accumulator bit 7 */
00160   SBIT(ACC_6,    0xE0, 6); /* Accumulator bit 6 */
00161   SBIT(ACC_5,    0xE0, 5); /* Accumulator bit 5 */
00162   SBIT(ACC_4,    0xE0, 4); /* Accumulator bit 4 */
00163   SBIT(ACC_3,    0xE0, 3); /* Accumulator bit 3 */
00164   SBIT(ACC_2,    0xE0, 2); /* Accumulator bit 2 */
00165   SBIT(ACC_1,    0xE0, 1); /* Accumulator bit 1 */
00166   SBIT(ACC_0,    0xE0, 0); /* Accumulator bit 0 */
00167 SFR(IRCON2,    0xE8); /* Interrupt flags 5 */
00168   SBIT(WDTIF,    0xE8, 4); /* Watchdog Timer interrupt flag */
00169   SBIT(P1IF,     0xE8, 3); /* Port 1 Interrupt flag */
00170   SBIT(UTX1IF,   0xE8, 2); /* USART1 TX interrupt flag */
00171   SBIT(UTX0IF,   0xE8, 1); /* USART0 TX interrupt flag */
00172   SBIT(P2IF,     0xE8, 0); /* Port 2 interrupt flag */
00173 SFR(B,         0xF0); /* B Register */
00174   SBIT(B_7,      0xF0, 7); /* Register B bit 7 */
00175   SBIT(B_6,      0xF0, 6); /* Register B bit 6 */
00176   SBIT(B_5,      0xF0, 5); /* Register B bit 5 */
00177   SBIT(B_4,      0xF0, 4); /* Register B bit 4 */
00178   SBIT(B_3,      0xF0, 3); /* Register B bit 3 */
00179   SBIT(B_2,      0xF0, 2); /* Register B bit 2 */
00180   SBIT(B_1,      0xF0, 1); /* Register B bit 1 */
00181   SBIT(B_0,      0xF0, 0); /* Register B bit 0 */
00182 
00183 /* ADC */
00184 SFR(ADCCON1,   0xB4); /* ADC control 1 */
00185 SFR(ADCCON2,   0xB5); /* ADC control 2 */
00186 SFR(ADCCON3,   0xB6); /* ADC control 3 */
00187 SFR(ADCL,      0xBA); /* ADC data low */
00188 SFR(ADCH,      0xBB); /* ADC data high */
00189 SFR(RNDL,      0xBC); /* Random number generator data low */
00190 SFR(RNDH,      0xBD); /* Random number generator data high */
00191 
00192 /* AES Coprocessor */
00193 SFR(ENCDI,     0xB1); /* Encryption/decryption input data */
00194 SFR(ENCDO,     0xB2); /* Encryption/decryption output data */
00195 SFR(ENCCS,     0xB3); /* Encryption/decryption control and status */
00196 
00197 /* DMA Controller */
00198 SFR(DMAIRQ,    0xD1); /* DMA interrupt flag */
00199 SFR(DMA1CFGL,  0xD2); /* DMA channel 1–4 configuration address low */
00200 SFR(DMA1CFGH,  0xD3); /* DMA channel 1–4 configuration address high */
00201 SFR(DMA0CFGL,  0xD4); /* DMA channel 0 configuration address low */
00202 SFR(DMA0CFGH,  0xD5); /* DMA channel 0 configuration address high */
00203 SFR(DMAARM,    0xD6); /* DMA channel armed */
00204 SFR(DMAREQ,    0xD7); /* DMA channel start request and status */
00205 
00206 /* I/O */
00207 SFR(P0IFG,     0x89); /* Port 0 interrupt status flag */
00208 SFR(P1IFG,     0x8A); /* Port 1 interrupt status flag */
00209 SFR(P2IFG,     0x8B); /* Port 2 interrupt status flag */
00210 SFR(PICTL,     0x8C); /* Port pins interrupt mask and edge */
00211 SFR(P0IEN,     0xAB); /* Port 0 interrupt mask */
00212 SFR(P1IEN,     0x8D); /* Port 1 interrupt mask */
00213 SFR(P2IEN,     0xAC); /* Port 2 interrupt mask */
00214 SFR(P0INP,     0x8F); /* Port 0 input Mode */
00215 SFR(PERCFG,    0xF1); /* Peripheral I/O control */
00216 SFR(APCFG,     0xF2); /* Analog peripheral I/O configuration */
00217 SFR(P0SEL,     0xF3); /* Port 0 function select */
00218 SFR(P1SEL,     0xF4); /* Port 1 function select */
00219 SFR(P2SEL,     0xF5); /* Port 2 function select */
00220 SFR(P1INP,     0xF6); /* Port 1 input mode */
00221 SFR(P2INP,     0xF7); /* Port 2 input mode */
00222 SFR(P0DIR,     0xFD); /* Port 0 direction */
00223 SFR(P1DIR,     0xFE); /* Port 1 direction */
00224 SFR(P2DIR,     0xFF); /* Port 2 direction */
00225 SFR(PMUX,      0xAE); /* Power-down signal mux */
00226 
00227 /* Memory */
00228 SFR(MPAGE,     0x93); /* Memory page select */
00229 SFR(_XPAGE,    0x93); /* Memory page select - SDCC name */
00230 SFR(MEMCTR,    0xC7); /* Memory system control */
00231 SFR(FMAP,      0x9F); /* Flash-memory bank mapping */
00232 SFR(PSBANK,    0x9F); /* Flash-memory bank mapping - SDCC name */
00233 
00234 /* RF */
00235 SFR(RFIRQF1,   0x91); /* RF interrupt flags MSB */
00236 SFR(RFD,       0xD9); /* RF data */
00237 SFR(RFST,      0xE1); /* RF command strobe */
00238 SFR(RFIRQF0,   0xE9); /* RF interrupt flags LSB */
00239 SFR(RFERRF,    0xBF); /* RF error interrupt flags */
00240 
00241 /* Sleep Timer */
00242 SFR(ST0,       0x95); /* Sleep Timer 0 */
00243 SFR(ST1,       0x96); /* Sleep Timer 1 */
00244 SFR(ST2,       0x97); /* Sleep Timer 2 */
00245 SFR(STLOAD,    0xAD); /* Sleep-timer load status */
00246 SFR(SLEEPCMD,  0xBE); /* Sleep-mode control command */
00247 SFR(SLEEPSTA,  0x9D); /* Sleep-mode control status */
00248 
00249 /* Power Management and Clocks */
00250 SFR(CLKCONCMD, 0xC6); /* Clock control command */
00251 SFR(CLKCONSTA, 0x9E); /* Clock control status */
00252 
00253 /* Timer 1 */
00254 SFR(T1CC0L,    0xDA); /* Timer 1 channel 0 capture/compare value low */
00255 SFR(T1CC0H,    0xDB); /* Timer 1 channel 0 capture/compare value high */
00256 SFR(T1CC1L,    0xDC); /* Timer 1 channel 1 capture/compare value low */
00257 SFR(T1CC1H,    0xDD); /* Timer 1 channel 1 capture/compare value high */
00258 SFR(T1CC2L,    0xDE); /* Timer 1 channel 2 capture/compare value low */
00259 SFR(T1CC2H,    0xDF); /* Timer 1 channel 2 capture/compare value high */
00260 SFR(T1CNTL,    0xE2); /* Timer 1 counter low */
00261 SFR(T1CNTH,    0xE3); /* Timer 1 counter high */
00262 SFR(T1CTL,     0xE4); /* Timer 1 control and status */
00263 SFR(T1CCTL0,   0xE5); /* Timer 1 channel 0 capture/compare control */
00264 SFR(T1CCTL1,   0xE6); /* Timer 1 channel 1 capture/compare control */
00265 SFR(T1CCTL2,   0xE7); /* Timer 1 channel 2 capture/compare control */
00266 SFR(T1STAT,    0xAF); /* Timer 1 status */
00267 
00268 /* Timer 2 (MAC Timer) */
00269 SFR(T2CTRL,    0x94); /* Timer 2 control */
00270 SFR(T2EVTCFG,  0x9C); /* Timer 2 event configuration */
00271 SFR(T2IRQF,    0xA1); /* Timer 2 interrupt flags */
00272 SFR(T2M0,      0xA2); /* Timer 2 multiplexed register 0 */
00273 SFR(T2M1,      0xA3); /* Timer 2 multiplexed register 1 */
00274 SFR(T2MOVF0,   0xA4); /* Timer 2 multiplexed overflow register 0 */
00275 SFR(T2MOVF1,   0xA5); /* Timer 2 multiplexed overflow register 1 */
00276 SFR(T2MOVF2,   0xA6); /* Timer 2 multiplexed overflow register 2 */
00277 SFR(T2IRQM,    0xA7); /* Timer 2 interrupt mask */
00278 SFR(T2MSEL,    0xC3); /* Timer 2 multiplex select */
00279 
00280 /* Timer 3 */
00281 SFR(T3CNT,     0xCA); /* Timer 3 counter */
00282 SFR(T3CTL,     0xCB); /* Timer 3 control */
00283 SFR(T3CCTL0,   0xCC); /* Timer 3 channel 0 compare control */
00284 SFR(T3CC0,     0xCD); /* Timer 3 channel 0 compare value */
00285 SFR(T3CCTL1,   0xCE); /* Timer 3 channel 1 compare control */
00286 SFR(T3CC1,     0xCF); /* Timer 3 channel 1 compare value */
00287 
00288 /* Timer 4 */
00289 SFR(T4CNT,     0xEA); /* Timer 4 counter */
00290 SFR(T4CTL,     0xEB); /* Timer 4 control */
00291 SFR(T4CCTL0,   0xEC); /* Timer 4 channel 0 compare control */
00292 SFR(T4CC0,     0xED); /* Timer 4 channel 0 compare value */
00293 SFR(T4CCTL1,   0xEE); /* Timer 4 channel 1 compare control */
00294 SFR(T4CC1,     0xEF); /* Timer 4 channel 1 compare value */
00295 
00296 /* Timer 1, 3, 4 join Interrupts */
00297 SFR(TIMIF,     0xD8); /* Timers 1/3/4 joint interrupt mask/flags */
00298   SBIT(OVFIM,    0xD8, 6); /* Timer 1 overflow interrupt mask */
00299   SBIT(T4CH1IF,  0xD8, 5); /* Timer 4 channel 1 interrupt flag */
00300   SBIT(T4CH0IF,  0xD8, 4); /* Timer 4 channel 0 interrupt flag */
00301   SBIT(T4OVFIF,  0xD8, 3); /* Timer 4 overflow interrupt flag */
00302   SBIT(T3CH1IF,  0xD8, 2); /* Timer 3 channel 1 interrupt flag */
00303   SBIT(T3CH0IF,  0xD8, 1); /* Timer 3 channel 0 interrupt flag */
00304   SBIT(T3OVFIF,  0xD8, 0); /* Timer 3 overflow interrupt flag */
00305 
00306 /* USART 0 */
00307 SFR(U0CSR,     0x86); /* USART 0 control and status */
00308 SFR(U0DBUF,    0xC1); /* USART 0 receive/transmit data buffer */
00309 SFR(U0BAUD,    0xC2); /* USART 0 baud-rate control */
00310 SFR(U0UCR,     0xC4); /* USART 0 UART control */
00311 SFR(U0GCR,     0xC5); /* USART 0 generic control */
00312 
00313 /* USART 1 */
00314 SFR(U1CSR,     0xF8); /* USART 1 control and status */
00315   SBIT(MODE,     0xF8, 7); /* USART mode select */
00316   SBIT(RE,       0xF8, 6); /* UART receiver enable */
00317   SBIT(SLAVE,    0xF8, 5); /* SPI master- or slave mode select */
00318   SBIT(FE,       0xF8, 4); /* UART framing error status */
00319   SBIT(ERR,      0xF8, 3); /* UART parity error status */
00320   SBIT(RX_BYTE,  0xF8, 2); /* Receive byte status */
00321   SBIT(TX_BYTE,  0xF8, 1); /* Transmit byte status */
00322   SBIT(ACTIVE,   0xF8, 0); /* USART transmit/receive active status */
00323 SFR(U1DBUF,    0xF9); /* USART 1 receive/transmit data buffer */
00324 SFR(U1BAUD,    0xFA); /* USART 1 baud-rate control */
00325 SFR(U1UCR,     0xFB); /* USART 1 UART control */
00326 SFR(U1GCR,     0xFC); /* USART 1 Generic control */
00327 
00328 /* Watchdog Timer */
00329 SFR(WDCTL,     0xC9); /* Watchdog Timer Control */
00330 /*---------------------------------------------------------------------------
00331  * XREG Registers (0x6000–0x63FF), excluding RF and USB registers
00332  * (Table 2.2, page 31)
00333  *---------------------------------------------------------------------------*/
00334 SFRX(MONMUX ,    0x61A6); /* Operational amplifier mode control (cc2530/31) */
00335 SFRX(OPAMPMC,    0x61A6); /* Battery monitor MUX (cc2533) */
00336 /* I2C registers - cc2533 only */
00337 SFRX(I2CCFG,     0x6230); /* I2C control */
00338 SFRX(I2CSTAT,    0x6231); /* I2C status */
00339 SFRX(I2CDATA,    0x6232); /* I2C data */
00340 SFRX(I2CADDR,    0x6233); /* I2C own slave address */
00341 SFRX(I2CWC,      0x6234); /* Wrapper Control */
00342 SFRX(I2CIO,      0x6235); /* GPIO */
00343 /* End I2C registers */
00344 SFRX(OBSSEL0,    0x6243); /* Observation output control - register 0 */
00345 SFRX(OBSSEL1,    0x6244); /* Observation output control - register 1 */
00346 SFRX(OBSSEL2,    0x6245); /* Observation output control - register 2 */
00347 SFRX(OBSSEL3,    0x6246); /* Observation output control - register 3 */
00348 SFRX(OBSSEL4,    0x6247); /* Observation output control - register 4 */
00349 SFRX(OBSSEL5,    0x6248); /* Observation output control - register 5 */
00350 SFRX(CHVER,      0x6249); /* Chip version */
00351 SFRX(CHIPID,     0x624A); /* Chip identification */
00352 
00353 /* TR0 below is renamed to TESTREG0 to avoid namespace conflicts with the
00354  * bit-addressable TCON.TR0 on the default 8051. See SDCC bug 3513300 */
00355 SFRX(TESTREG0,   0x624B); /* Test register 0 */
00356 
00357 SFRX(DBGDATA,    0x6260); /* Debug interface write data */
00358 SFRX(SRCRC,      0x6262); /* Sleep reset CRC */
00359 SFRX(BATTMON,    0x6264); /* Battery monitor */
00360 SFRX(IVCTRL,     0x6265); /* Analog control register */
00361 SFRX(FCTL,       0x6270); /* Flash control */
00362 SFRX(FADDRL,     0x6271); /* Flash address low */
00363 SFRX(FADDRH,     0x6272); /* Flash address high */
00364 SFRX(FWDATA,     0x6273); /* Flash write data */
00365 SFRX(CHIPINFO0,  0x6276); /* Chip information byte 0 */
00366 SFRX(CHIPINFO1,  0x6277); /* Chip information byte 1 */
00367 SFRX(IRCTL,      0x6281); /* Timer 1 IR generation control */
00368 SFRX(CLD,        0x6290); /* Clock-loss detection */
00369 SFRX(XX_T1CCTL0, 0x62A0); /* Timer 1 channel 0 capture/compare control (additional XREG mapping of SFR) */
00370 SFRX(XX_T1CCTL1, 0x62A1); /* Timer 1 channel 1 capture/compare control (additional XREG mapping of SFR register) */
00371 SFRX(XX_T1CCTL2, 0x62A2); /* Timer 1 channel 2 capture/compare control (additional XREG mapping of SFR register) */
00372 SFRX(T1CCTL3,    0x62A3); /* Timer 1 channel 3 capture/compare control */
00373 SFRX(T1CCTL4,    0x62A4); /* Timer 1 channel 4 capture/compare control */
00374 SFRX(XX_T1CC0L,  0x62A6); /* Timer 1 channel 0 capture/compare value low (additional XREG mapping of SFR register) */
00375 SFRX(XX_T1CC0H,  0x62A7); /* Timer 1 channel 0 capture/compare value high (additional XREG mapping of SFR register) */
00376 SFRX(XX_T1CC1L,  0x62A8); /* Timer 1 channel 1 capture/compare value low (additional XREG mapping of SFR register) */
00377 SFRX(XX_T1CC1H,  0x62A9); /* Timer 1 channel 1 capture/compare value high (additional XREG mapping of SFR register) */
00378 SFRX(XX_T1CC2L,  0x62AA); /* Timer 1 channel 2 capture/compare value low (additional XREG mapping of SFR register) */
00379 SFRX(XX_T1CC2H,  0x62AB); /* Timer 1 channel 2 capture/compare value high (additional XREG mapping of SFR register) */
00380 SFRX(T1CC3L,     0x62AC); /* Timer 1 channel 3 capture/compare value low */
00381 SFRX(T1CC3H,     0x62AD); /* Timer 1 channel 3 capture/compare value high */
00382 SFRX(T1CC4L,     0x62AE); /* Timer 1 channel 4 capture/compare value low */
00383 SFRX(T1CC4H,     0x62AF); /* Timer 1 channel 4 capture/compare value high */
00384 SFRX(STCC,       0x62B0); /* Sleep Timer capture control */
00385 SFRX(STCS,       0x62B1); /* Sleep Timer capture status */
00386 SFRX(STCV0,      0x62B2); /* Sleep Timer capture value byte 0 */
00387 SFRX(STCV1,      0x62B3); /* Sleep Timer capture value byte 1 */
00388 SFRX(STCV2,      0x62B4); /* Sleep Timer capture value byte 2 */
00389 SFRX(OPAMPC,     0x62C0); /* Operational amplifier control */
00390 SFRX(OPAMPS,     0x62C1); /* Operational amplifier status */
00391 SFRX(CMPCTL,     0x62D0); /* Analog comparator control and status */
00392 /*---------------------------------------------------------------------------
00393  * Radio Registers
00394  * (Sec. 23, page 211)
00395  *---------------------------------------------------------------------------*/
00396 SFRX(RFCORE_RAM,      0x6000); /* RF Core Memory Map (0x6000 to 0x0617F) */
00397 SFRX(RXFIFO,          0x6000); /* TXFIFO Direct Access (0x6000 to 0x607F) */
00398 SFRX(TXFIFO,          0x6080); /* TXFIFO Direct Access (0x6080 to 0x60FF) */
00399 
00400 SFRX(SRC_ADDR_TABLE,  0x6100); /* Source Address Table Start */
00401 
00402 /* Source Address Matching Result */
00403 SFRX(SRCRESMASK0,     0x6160); /* Extended address matching */
00404 SFRX(SRCRESMASK1,     0x6161); /* Short address matching */
00405 SFRX(SRCRESMASK2,     0x6162); /* Source address match - 24-bit mask */
00406 SFRX(SRCRESINDEX,     0x6163); /* Bit index of least-significant 1 in SRCRESMASK */
00407 
00408 /* Source Address Matching Control */
00409 SFRX(SRCEXTPENDEN0,   0x6164); /* Ext. Address bit-mask 0 (LSB) */
00410 SFRX(SRCEXTPENDEN1,   0x6165); /* Ext. Address bit-mask 1 */
00411 SFRX(SRCEXTPENDEN2,   0x6166); /* Ext. Address bit-mask 2 (MSB) */
00412 SFRX(SRCSHORTPENDEN0, 0x6167); /* Short Address bit-mask 0 (LSB) */
00413 SFRX(SRCSHORTPENDEN1, 0x6168); /* Short Address bit-mask 1 */
00414 SFRX(SRCSHORTPENDEN2, 0x6169); /* Short Address bit-mask 2 (MSB) */
00415 
00416 /* Local Address Information (used during destination address filtering) */
00417 SFRX(EXT_ADDR0,       0x616A); /* IEEE extended address 0 */
00418 SFRX(EXT_ADDR1,       0x616B); /* IEEE extended address 1 */
00419 SFRX(EXT_ADDR2,       0x616C); /* IEEE extended address 2 */
00420 SFRX(EXT_ADDR3,       0x616D); /* IEEE extended address 3 */
00421 SFRX(EXT_ADDR4,       0x616E); /* IEEE extended address 4 */
00422 SFRX(EXT_ADDR5,       0x616F); /* IEEE extended address 5 */
00423 SFRX(EXT_ADDR6,       0x6170); /* IEEE extended address 6 */
00424 SFRX(EXT_ADDR7,       0x6171); /* IEEE extended address 7 */
00425 SFRX(PAN_ID0,         0x6172); /* PAN ID 0 */
00426 SFRX(PAN_ID1,         0x6173); /* PAN ID 1 */
00427 SFRX(SHORT_ADDR0,     0x6174); /* Short Address 0 */
00428 SFRX(SHORT_ADDR1,     0x6175); /* Short Address 1 */
00429 
00430 SFRX(FRMFILT0,        0x6180); /* Frame Filtering 0 */
00431 SFRX(FRMFILT1,        0x6181); /* Frame Filtering 1 */
00432 SFRX(SRCMATCH,        0x6182); /* Source Address Matching and Pending Bits */
00433 SFRX(SRCSHORTEN0,     0x6183); /* Short Address Matching 0 */
00434 SFRX(SRCSHORTEN1,     0x6184); /* Short Address Matching 1 */
00435 SFRX(SRCSHORTEN2,     0x6185); /* Short Address Matching 2 */
00436 SFRX(SRCEXTEN0,       0x6186); /* Extended Address Matching 0 */
00437 SFRX(SRCEXTEN1,       0x6187); /* Extended Address Matching 1 */
00438 SFRX(SRCEXTEN2,       0x6188); /* Extended Address Matching 2 */
00439 SFRX(FRMCTRL0,        0x6189); /* Frame Handling */
00440 SFRX(FRMCTRL1,        0x618A); /* Frame Handling */
00441 SFRX(RXENABLE,        0x618B); /* RX Enabling */
00442 SFRX(RXMASKSET,       0x618C); /* RX Enabling */
00443 SFRX(RXMASKCLR,       0x618D); /* RX Disabling */
00444 SFRX(FREQTUNE,        0x618E); /* Crystal Oscillator Frequency Tuning */
00445 SFRX(FREQCTRL,        0x618F); /* RF Frequency Control */
00446 SFRX(TXPOWER,         0x6190); /* Controls the Output Power */
00447 SFRX(TXCTRL,          0x6191); /* Controls the TX Settings */
00448 SFRX(FSMSTAT0,        0x6192); /* Radio Status Register */
00449 SFRX(FSMSTAT1,        0x6193); /* Radio Status Register */
00450 SFRX(FIFOPCTRL,       0x6194); /* FIFOP Threshold */
00451 SFRX(FSMCTRL,         0x6195); /* FSM Options */
00452 SFRX(CCACTRL0,        0x6196); /* CCA Threshold */
00453 SFRX(CCACTRL1,        0x6197); /* Other CCA Options */
00454 SFRX(RSSI,            0x6198); /* RSSI Status Register */
00455 SFRX(RSSISTAT,        0x6199); /* RSSI Valid Status Register */
00456 SFRX(RXFIRST,         0x619A); /* First Byte in RXFIFO */
00457 SFRX(RXFIFOCNT,       0x619B); /* Number of Bytes in RXFIFO */
00458 SFRX(TXFIFOCNT,       0x619C); /* Number of Bytes in TXFIFO */
00459 SFRX(RXFIRST_PTR,     0x619D); /* RXFIFO Pointer */
00460 SFRX(RXLAST_PTR,      0x619E); /* RXFIFO Pointer */
00461 SFRX(RXP1_PTR,        0x619F); /* RXFIFO Pointer */
00462 SFRX(TXFIRST_PTR,     0x61A1); /* TXFIFO Pointer */
00463 SFRX(TXLAST_PTR,      0x61A2); /* TXFIFO Pointer */
00464 SFRX(RFIRQM0,         0x61A3); /* RF Interrupt Masks 0 */
00465 SFRX(RFIRQM1,         0x61A4); /* RF Interrupt Masks 1 */
00466 SFRX(RFERRM,          0x61A5); /* RF Error Interrupt Mask */
00467 SFRX(RFRND,           0x61A7); /* Random Data */
00468 SFRX(MDMCTRL0,        0x61A8); /* Controls Modem 0 */
00469 SFRX(MDMCTRL1,        0x61A9); /* Controls Modem 1 */
00470 SFRX(FREQEST,         0x61AA); /* Estimated RF Frequency Offset */
00471 SFRX(RXCTRL,          0x61AB); /* Tune Receive Section */
00472 SFRX(FSCTRL,          0x61AC); /* Tune Frequency Synthesizer */
00473 SFRX(FSCAL0,          0x61AD); /* Tune Frequency Calibration 0 */
00474 SFRX(FSCAL1,          0x61AE); /* Tune Frequency Calibration 1 */
00475 SFRX(FSCAL2,          0x61AF); /* Tune Frequency Calibration 2 */
00476 SFRX(FSCAL3,          0x61B0); /* Tune Frequency Calibration 3 */
00477 SFRX(AGCCTRL0,        0x61B1); /* AGC Dynamic Range Control */
00478 SFRX(AGCCTRL1,        0x61B2); /* AGC Reference Level */
00479 SFRX(AGCCTRL2,        0x61B3); /* AGC Gain Override */
00480 SFRX(AGCCTRL3,        0x61B4); /* AGC Control */
00481 SFRX(ADCTEST0,        0x61B5); /* ADC Tuning 0 */
00482 SFRX(ADCTEST1,        0x61B6); /* ADC Tuning 1 */
00483 SFRX(ADCTEST2,        0x61B7); /* ADC Tuning 2 */
00484 SFRX(MDMTEST0,        0x61B8); /* Test Register for Modem 0 */
00485 SFRX(MDMTEST1,        0x61B9); /* Test Register for Modem 1 */
00486 SFRX(DACTEST0,        0x61BA); /* DAC Override Value */
00487 SFRX(DACTEST1,        0x61BB); /* DAC Override Value */
00488 SFRX(DACTEST2,        0x61BC); /* DAC Test Setting */
00489 SFRX(ATEST,           0x61BD); /* Analog Test Control */
00490 SFRX(PTEST0,          0x61BE); /* Override Power-Down Register 0 */
00491 SFRX(PTEST1,          0x61BF); /* Override Power-Down Register 1 */
00492 SFRX(TXFILTCFG,       0x61FA); /*  TX Filter Configuration */
00493 SFRX(RFC_OBS_CTRL0,   0x61EB); /* RF Observation Mux Control 0 */
00494 SFRX(RFC_OBS_CTRL1,   0x61EC); /* RF Observation Mux Control 1 */
00495 SFRX(RFC_OBS_CTRL2,   0x61ED); /* RF Observation Mux Control 2 */
00496 
00497 /* Command Strobe/CSMA-CA Processor Registers */
00498 SFRX(CSPPROG0,        0x61C0); /* CSP Program Memory, Byte 0 */
00499 SFRX(CSPPROG1,        0x61C1); /* CSP Program Memory, Byte 1 */
00500 SFRX(CSPPROG2,        0x61C2); /* CSP Program Memory, Byte 2 */
00501 SFRX(CSPPROG3,        0x61C3); /* CSP Program Memory, Byte 3 */
00502 SFRX(CSPPROG4,        0x61C4); /* CSP Program Memory, Byte 4 */
00503 SFRX(CSPPROG5,        0x61C5); /* CSP Program Memory, Byte 5 */
00504 SFRX(CSPPROG6,        0x61C6); /* CSP Program Memory, Byte 6 */
00505 SFRX(CSPPROG7,        0x61C7); /* CSP Program Memory, Byte 7 */
00506 SFRX(CSPPROG8,        0x61C8); /* CSP Program Memory, Byte 8 */
00507 SFRX(CSPPROG9,        0x61C9); /* CSP Program Memory, Byte 9 */
00508 SFRX(CSPPROG10,       0x61CA); /* CSP Program Memory, Byte 10 */
00509 SFRX(CSPPROG11,       0x61CB); /* CSP Program Memory, Byte 11 */
00510 SFRX(CSPPROG12,       0x61CC); /* CSP Program Memory, Byte 12 */
00511 SFRX(CSPPROG13,       0x61CD); /* CSP Program Memory, Byte 13 */
00512 SFRX(CSPPROG14,       0x61CE); /* CSP Program Memory, Byte 14 */
00513 SFRX(CSPPROG15,       0x61CF); /* CSP Program Memory, Byte 15 */
00514 SFRX(CSPPROG16,       0x61D0); /* CSP Program Memory, Byte 16 */
00515 SFRX(CSPPROG17,       0x61D1); /* CSP Program Memory, Byte 17 */
00516 SFRX(CSPPROG18,       0x61D2); /* CSP Program Memory, Byte 18 */
00517 SFRX(CSPPROG19,       0x61D3); /* CSP Program Memory, Byte 19 */
00518 SFRX(CSPPROG20,       0x61D4); /* CSP Program Memory, Byte 20 */
00519 SFRX(CSPPROG21,       0x61D5); /* CSP Program Memory, Byte 21 */
00520 SFRX(CSPPROG22,       0x61D6); /* CSP Program Memory, Byte 22 */
00521 SFRX(CSPPROG23,       0x61D7); /* CSP Program Memory, Byte 23 */
00522 SFRX(CSPCTRL,         0x61E0); /* CSP Control Bit */
00523 SFRX(CSPSTAT,         0x61E1); /* CSP Status Register */
00524 SFRX(CSPX,            0x61E2); /* CSP X Register */
00525 SFRX(CSPY,            0x61E3); /* CSP Y Register */
00526 SFRX(CSPZ,            0x61E4); /* CSP Z Register */
00527 SFRX(CSPT,            0x61E5); /* CSP T Register */
00528 /*---------------------------------------------------------------------------
00529  * cc2531 USB Registers
00530  * (Sec. 21.12, page 196)
00531  *---------------------------------------------------------------------------*/
00532 SFRX(USBADDR,  0x6200); /* Function Address */
00533 SFRX(USBPOW,   0x6201); /* Power/Control Register */
00534 SFRX(USBIIF,   0x6202); /* IN Endpoints and EP0 Interrupt Flags */
00535 SFRX(USBOIF,   0x6204); /* OUT-Endpoint Interrupt Flags */
00536 SFRX(USBCIF,   0x6206); /* Common USB Interrupt Flags */
00537 SFRX(USBIIE,   0x6207); /* IN Endpoints and EP0 Interrupt-Enable Mask */
00538 SFRX(USBOIE,   0x6209); /* Out Endpoints Interrupt Enable Mask */
00539 SFRX(USBCIE,   0x620B); /* Common USB Interrupt-Enable Mask */
00540 SFRX(USBFRML,  0x620C); /* Current Frame Number (Low Byte) */
00541 SFRX(USBFRMH,  0x620D); /* Current Frame Number (High Byte) */
00542 SFRX(USBINDEX, 0x620E); /* Current-Endpoint Index Register */
00543 SFRX(USBCTRL,  0x620F); /* USB Control Register */
00544 SFRX(USBMAXI,  0x6210); /* Max. Packet Size for IN Endpoint{1–5} */
00545 SFRX(USBCS0,   0x6211); /* EP0 Control and Status (USBINDEX = 0) */
00546 SFRX(USBCSIL,  0x6211); /* IN EP{1–5} Control and Status, Low */
00547 SFRX(USBCSIH,  0x6212); /* IN EP{1–5} Control and Status, High */
00548 SFRX(USBMAXO,  0x6213); /* Max. Packet Size for OUT EP{1–5} */
00549 SFRX(USBCSOL,  0x6214); /* OUT EP{1–5} Control and Status, Low */
00550 SFRX(USBCSOH,  0x6215); /* OUT EP{1–5} Control and Status, High */
00551 SFRX(USBCNT0,  0x6216); /* Number of Received Bytes in EP0 FIFO (USBINDEX = 0) */
00552 SFRX(USBCNTL,  0x6216); /* Number of Bytes in EP{1–5} OUT FIFO, Low */
00553 SFRX(USBCNTH,  0x6217); /* Number of Bytes in EP{1–5} OUT FIFO, High */
00554 SFRX(USBF0,    0x6220); /* Endpoint-0 FIFO */
00555 SFRX(USBF1,    0x6222); /* Endpoint-1 FIFO */
00556 SFRX(USBF2,    0x6224); /* Endpoint-2 FIFO */
00557 SFRX(USBF3,    0x6226); /* Endpoint-3 FIFO */
00558 SFRX(USBF4,    0x6228); /* Endpoint-4 FIFO */
00559 SFRX(USBF5,    0x622A); /* Endpoint-5 FIFO */
00560 /*---------------------------------------------------------------------------
00561  * SFR Access via XDATA (0x7080 - 0x70FF)
00562  *---------------------------------------------------------------------------*/
00563 SFRX(X_P0,        0x7080); /* Port 0 - Read Only */
00564 SFRX(X_U0CSR,     0x7086); /* USART 0 control and status */
00565 SFRX(X_P0IFG,     0x7089); /* Port 0 interrupt status flag */
00566 SFRX(X_P1IFG,     0x708A); /* Port 1 interrupt status flag */
00567 SFRX(X_P2IFG,     0x708B); /* Port 2 interrupt status flag */
00568 SFRX(X_PICTL,     0x708C); /* Port pins interrupt mask and edge */
00569 SFRX(X_P1IEN,     0x708D); /* Port 1 interrupt mask */
00570 SFRX(X_P0INP,     0x708F); /* Port 0 input Mode */
00571 SFRX(X_P1,        0x7090); /* Port 1 - Read Only */
00572 SFRX(X_RFIRQF1,   0x7091); /* RF interrupt flags MSB */
00573 SFRX(X_MPAGE,     0x7093); /* Memory page select */
00574 SFRX(X__XPAGE,    0x7093); /* Memory page select - SDCC name */
00575 SFRX(X_T2CTRL,    0x7094); /* Timer 2 control */
00576 SFRX(X_ST0,       0x7095); /* Sleep Timer 0 */
00577 SFRX(X_ST1,       0x7096); /* Sleep Timer 1 */
00578 SFRX(X_ST2,       0x7097); /* Sleep Timer 2 */
00579 SFRX(X_T2EVTCFG,  0x709C); /* Timer 2 event configuration */
00580 SFRX(X_SLEEPSTA,  0x709D); /* Sleep-mode control status */
00581 SFRX(X_CLKCONSTA, 0x709E); /* Clock control status */
00582 SFRX(X_FMAP,      0x709F); /* Flash-memory bank mapping */
00583 SFRX(X_PSBANK,    0x709F); /* Flash-memory bank mapping - SDCC name */
00584 SFRX(X_P2,        0x70A0); /* Port 2 - Read Only */
00585 SFRX(X_T2IRQF,    0x70A1); /* Timer 2 interrupt flags */
00586 SFRX(X_T2M0,      0x70A2); /* Timer 2 multiplexed register 0 */
00587 SFRX(X_T2M1,      0x70A3); /* Timer 2 multiplexed register 1 */
00588 SFRX(X_T2MOVF0,   0x70A4); /* Timer 2 multiplexed overflow register 0 */
00589 SFRX(X_T2MOVF1,   0x70A5); /* Timer 2 multiplexed overflow register 1 */
00590 SFRX(X_T2MOVF2,   0x70A6); /* Timer 2 multiplexed overflow register 2 */
00591 SFRX(X_T2IRQM,    0x70A7); /* Timer 2 interrupt mask */
00592 SFRX(X_P0IEN,     0x70AB); /* Port 0 interrupt mask */
00593 SFRX(X_P2IEN,     0x70AC); /* Port 2 interrupt mask */
00594 SFRX(X_STLOAD,    0x70AD); /* Sleep-timer load status */
00595 SFRX(X_PMUX,      0x70AE); /* Power-down signal mux */
00596 SFRX(X_T1STAT,    0x70AF); /* Timer 1 status */
00597 SFRX(X_ENCDI,     0x70B1); /* Encryption/decryption input data */
00598 SFRX(X_ENCDO,     0x70B2); /* Encryption/decryption output data */
00599 SFRX(X_ENCCS,     0x70B3); /* Encryption/decryption control and status */
00600 SFRX(X_ADCCON1,   0x70B4); /* ADC control 1 */
00601 SFRX(X_ADCCON2,   0x70B5); /* ADC control 2 */
00602 SFRX(X_ADCCON3,   0x70B6); /* ADC control 3 */
00603 SFRX(X_ADCL,      0x70BA); /* ADC data low */
00604 SFRX(X_ADCH,      0x70BB); /* ADC data high */
00605 SFRX(X_RNDL,      0x70BC); /* Random number generator data low */
00606 SFRX(X_RNDH,      0x70BD); /* Random number generator data high */
00607 SFRX(X_SLEEPCMD,  0x70BE); /* Sleep-mode control command */
00608 SFRX(X_RFERRF,    0x70BF); /* RF error interrupt flags */
00609 SFRX(X_U0DBUF,    0x70C1); /* USART 0 receive/transmit data buffer */
00610 SFRX(X_U0BAUD,    0x70C2); /* USART 0 baud-rate control */
00611 SFRX(X_T2MSEL,    0x70C3); /* Timer 2 multiplex select */
00612 SFRX(X_U0UCR,     0x70C4); /* USART 0 UART control */
00613 SFRX(X_U0GCR,     0x70C5); /* USART 0 generic control */
00614 SFRX(X_CLKCONCMD, 0x70C6); /* Clock control command */
00615 SFRX(X_MEMCTR,    0x70C7); /* Memory system control */
00616 SFRX(X_WDCTL,     0x70C9); /* Watchdog Timer Control */
00617 SFRX(X_T3CNT,     0x70CA); /* Timer 3 counter */
00618 SFRX(X_T3CTL,     0x70CB); /* Timer 3 control */
00619 SFRX(X_T3CCTL0,   0x70CC); /* Timer 3 channel 0 compare control */
00620 SFRX(X_T3CC0,     0x70CD); /* Timer 3 channel 0 compare value */
00621 SFRX(X_T3CCTL1,   0x70CE); /* Timer 3 channel 1 compare control */
00622 SFRX(X_T3CC1,     0x70CF); /* Timer 3 channel 1 compare value */
00623 SFRX(X_DMAIRQ,    0x70D1); /* DMA interrupt flag */
00624 SFRX(X_DMA1CFGL,  0x70D2); /* DMA channel 1–4 configuration address low */
00625 SFRX(X_DMA1CFGH,  0x70D3); /* DMA channel 1–4 configuration address high */
00626 SFRX(X_DMA0CFGL,  0x70D4); /* DMA channel 0 configuration address low */
00627 SFRX(X_DMA0CFGH,  0x70D5); /* DMA channel 0 configuration address high */
00628 SFRX(X_DMAARM,    0x70D6); /* DMA channel armed */
00629 SFRX(X_DMAREQ,    0x70D7); /* DMA channel start request and status */
00630 SFRX(X_TIMIF,     0x70D8); /* Timers 1/3/4 joint interrupt mask/flags */
00631 SFRX(X_RFD,       0x70D9); /* RF data */
00632 SFRX(X_T1CC0L,    0x70DA); /* Timer 1 channel 0 capture/compare value low */
00633 SFRX(X_T1CC0H,    0x70DB); /* Timer 1 channel 0 capture/compare value high */
00634 SFRX(X_T1CC1L,    0x70DC); /* Timer 1 channel 1 capture/compare value low */
00635 SFRX(X_T1CC1H,    0x70DD); /* Timer 1 channel 1 capture/compare value high */
00636 SFRX(X_T1CC2L,    0x70DE); /* Timer 1 channel 2 capture/compare value low */
00637 SFRX(X_T1CC2H,    0x70DF); /* Timer 1 channel 2 capture/compare value high */
00638 SFRX(X_RFST,      0x70E1); /* RF command strobe */
00639 SFRX(X_T1CNTL,    0x70E2); /* Timer 1 counter low */
00640 SFRX(X_T1CNTH,    0x70E3); /* Timer 1 counter high */
00641 SFRX(X_T1CTL,     0x70E4); /* Timer 1 control and status */
00642 SFRX(X_T1CCTL0,   0x70E5); /* Timer 1 channel 0 capture/compare control */
00643 SFRX(X_T1CCTL1,   0x70E6); /* Timer 1 channel 1 capture/compare control */
00644 SFRX(X_T1CCTL2,   0x70E7); /* Timer 1 channel 2 capture/compare control */
00645 SFRX(X_RFIRQF0,   0x70E9); /* RF interrupt flags LSB */
00646 SFRX(X_T4CNT,     0x70EA); /* Timer 4 counter */
00647 SFRX(X_T4CTL,     0x70EB); /* Timer 4 control */
00648 SFRX(X_T4CCTL0,   0x70EC); /* Timer 4 channel 0 compare control */
00649 SFRX(X_T4CC0,     0x70ED); /* Timer 4 channel 0 compare value */
00650 SFRX(X_T4CCTL1,   0x70EE); /* Timer 4 channel 1 compare control */
00651 SFRX(X_T4CC1,     0x70EF); /* Timer 4 channel 1 compare value */
00652 SFRX(X_PERCFG,    0x70F1); /* Peripheral I/O control */
00653 SFRX(X_APCFG,     0x70F2); /* Analog peripheral I/O configuration */
00654 SFRX(X_P0SEL,     0x70F3); /* Port 0 function select */
00655 SFRX(X_P1SEL,     0x70F4); /* Port 1 function select */
00656 SFRX(X_P2SEL,     0x70F5); /* Port 2 function select */
00657 SFRX(X_P1INP,     0x70F6); /* Port 1 input mode */
00658 SFRX(X_P2INP,     0x70F7); /* Port 2 input mode */
00659 SFRX(X_U1CSR,     0x70F8); /* USART 1 control and status */
00660 SFRX(X_U1DBUF,    0x70F9); /* USART 1 receive/transmit data buffer */
00661 SFRX(X_U1BAUD,    0x70FA); /* USART 1 baud-rate control */
00662 SFRX(X_U1UCR,     0x70FB); /* USART 1 UART control */
00663 SFRX(X_U1GCR,     0x70FC); /* USART 1 Generic control */
00664 SFRX(X_P0DIR,     0x70FD); /* Port 0 direction */
00665 SFRX(X_P1DIR,     0x70FE); /* Port 1 direction */
00666 SFRX(X_P2DIR,     0x70FF); /* Port 2 direction */
00667 /*---------------------------------------------------------------------------
00668  * Information Page (Read Only)
00669  *---------------------------------------------------------------------------*/
00670 SFRX(X_INFOPAGE,  0x7800); /* Start of Information Page */
00671 SFRX(X_IEEE_ADDR, 0x780C); /* Start of unique IEEE Address */
00672 
00673 #endif /* __CC253X_H__ */