mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
df37e69b90
Currently the cc2538 is based on from-scratch adaption which is not feature complete and thus lacks defines etc. Introducing the official vendor header will ease future extension and adaptions of the CPU and its features.
265 lines
14 KiB
C
Executable File
265 lines
14 KiB
C
Executable File
/******************************************************************************
|
|
* Filename: hw_smwdthrosc.h
|
|
* Revised: $Date: 2013-04-30 17:13:44 +0200 (Tue, 30 Apr 2013) $
|
|
* Revision: $Revision: 9943 $
|
|
*
|
|
* Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
|
|
*
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
*
|
|
* Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
*
|
|
* Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
*
|
|
* Neither the name of Texas Instruments Incorporated nor the names of
|
|
* its contributors may be used to endorse or promote products derived
|
|
* from this software without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*
|
|
******************************************************************************/
|
|
|
|
#ifndef __HW_SMWDTHROSC_H__
|
|
#define __HW_SMWDTHROSC_H__
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the SMWDTHROSC register offsets.
|
|
//
|
|
//*****************************************************************************
|
|
#define SMWDTHROSC_WDCTL 0x400D5000 // Watchdog Timer Control
|
|
#define SMWDTHROSC_ST0 0x400D5040 // Sleep Timer 0 count and compare
|
|
#define SMWDTHROSC_ST1 0x400D5044 // Sleep Timer 1 count and compare
|
|
#define SMWDTHROSC_ST2 0x400D5048 // Sleep Timer 2 count and compare
|
|
#define SMWDTHROSC_ST3 0x400D504C // Sleep Timer 3 count and compare
|
|
#define SMWDTHROSC_STLOAD 0x400D5050 // Sleep Timer load status
|
|
#define SMWDTHROSC_STCC 0x400D5054 // Sleep Timer Capture control
|
|
#define SMWDTHROSC_STCS 0x400D5058 // Sleep Timer Capture status
|
|
#define SMWDTHROSC_STCV0 0x400D505C // Sleep Timer Capture value byte
|
|
// 0
|
|
#define SMWDTHROSC_STCV1 0x400D5060 // Sleep Timer Capture value byte
|
|
// 1
|
|
#define SMWDTHROSC_STCV2 0x400D5064 // Sleep Timer Capture value byte
|
|
// 2
|
|
#define SMWDTHROSC_STCV3 0x400D5068 // Sleep Timer Capture value byte
|
|
// 3
|
|
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the
|
|
// SMWDTHROSC_WDCTL register.
|
|
//
|
|
//*****************************************************************************
|
|
#define SMWDTHROSC_WDCTL_CLR_M 0x000000F0 // Clear timer When 0xA followed
|
|
// by 0x5 is written to these bits,
|
|
// the timer is loaded with 0x0000.
|
|
// Note that 0x5 must be written
|
|
// within one watchdog clock period
|
|
// Twdt after 0xA was written for
|
|
// the clearing to take effect
|
|
// (ensured). If 0x5 is written
|
|
// between Twdt and 2Twdt after 0xA
|
|
// was written, the clearing may
|
|
// take effect, but there is no
|
|
// guarantee. If 0x5 is written >
|
|
// 2Twdt after 0xA was written, the
|
|
// timer will not be cleared. If a
|
|
// value other than 0x5 is written
|
|
// after 0xA has been written, the
|
|
// clear sequence is aborted. If
|
|
// 0xA is written, this starts a
|
|
// new clear sequence. Writing to
|
|
// these bits when EN = 0 has no
|
|
// effect.
|
|
#define SMWDTHROSC_WDCTL_CLR_S 4
|
|
#define SMWDTHROSC_WDCTL_EN 0x00000008 // Enable timer When 1 is written
|
|
// to this bit the timer is enabled
|
|
// and starts incrementing. The
|
|
// interval setting specified by
|
|
// INT[1:0] is used. Writing 0 to
|
|
// this bit have no effect.
|
|
#define SMWDTHROSC_WDCTL_EN_M 0x00000008
|
|
#define SMWDTHROSC_WDCTL_EN_S 3
|
|
#define SMWDTHROSC_WDCTL_INT_M 0x00000003 // Timer interval select These
|
|
// bits select the timer interval
|
|
// as follows: 00: Twdt x 32768 01:
|
|
// Twdt x 8192 10: Twdt x 512 11:
|
|
// Twdt x 64 Writing these bits
|
|
// when EN = 1 has no effect.
|
|
#define SMWDTHROSC_WDCTL_INT_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the
|
|
// SMWDTHROSC_ST0 register.
|
|
//
|
|
//*****************************************************************************
|
|
#define SMWDTHROSC_ST0_ST0_M 0x000000FF // Sleep Timer count and compare
|
|
// value. When read, this register
|
|
// returns the low bits [7:0] of
|
|
// the Sleep Timer count. When
|
|
// writing this register sets the
|
|
// low bits [7:0] of the compare
|
|
// value.
|
|
#define SMWDTHROSC_ST0_ST0_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the
|
|
// SMWDTHROSC_ST1 register.
|
|
//
|
|
//*****************************************************************************
|
|
#define SMWDTHROSC_ST1_ST1_M 0x000000FF // Sleep Timer count and compare
|
|
// value When read, this register
|
|
// returns the middle bits [15:8]
|
|
// of the Sleep Timer count. When
|
|
// writing this register sets the
|
|
// middle bits [15:8] of the
|
|
// compare value. The value read is
|
|
// latched at the time of reading
|
|
// register ST0. The value written
|
|
// is latched when ST0 is written.
|
|
#define SMWDTHROSC_ST1_ST1_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the
|
|
// SMWDTHROSC_ST2 register.
|
|
//
|
|
//*****************************************************************************
|
|
#define SMWDTHROSC_ST2_ST2_M 0x000000FF // Sleep Timer count and compare
|
|
// value When read, this register
|
|
// returns the high bits [23:16] of
|
|
// the Sleep Timer count. When
|
|
// writing this register sets the
|
|
// high bits [23:16] of the compare
|
|
// value. The value read is latched
|
|
// at the time of reading register
|
|
// ST0. The value written is
|
|
// latched when ST0 is written.
|
|
#define SMWDTHROSC_ST2_ST2_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the
|
|
// SMWDTHROSC_ST3 register.
|
|
//
|
|
//*****************************************************************************
|
|
#define SMWDTHROSC_ST3_ST3_M 0x000000FF // Sleep Timer count and compare
|
|
// value When read, this register
|
|
// returns the high bits [31:24] of
|
|
// the Sleep Timer count. When
|
|
// writing this register sets the
|
|
// high bits [31:24] of the compare
|
|
// value. The value read is latched
|
|
// at the time of reading register
|
|
// ST0. The value written is
|
|
// latched when ST0 is written.
|
|
#define SMWDTHROSC_ST3_ST3_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the
|
|
// SMWDTHROSC_STLOAD register.
|
|
//
|
|
//*****************************************************************************
|
|
#define SMWDTHROSC_STLOAD_STLOAD \
|
|
0x00000001 // Status signal for when STx
|
|
// registers have been uploaded to
|
|
// 32-kHz counter. 1: Load is
|
|
// complete 0: Load is busy and STx
|
|
// regs are blocked for writing
|
|
|
|
#define SMWDTHROSC_STLOAD_STLOAD_M \
|
|
0x00000001
|
|
#define SMWDTHROSC_STLOAD_STLOAD_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the
|
|
// SMWDTHROSC_STCC register.
|
|
//
|
|
//*****************************************************************************
|
|
#define SMWDTHROSC_STCC_PORT_M 0x00000038 // Port select Valid settings are
|
|
// 0-3, all others inhibit any
|
|
// capture from occurring 000: Port
|
|
// A selected 001: Port B selected
|
|
// 010: Port C selected 011: Port D
|
|
// selected
|
|
#define SMWDTHROSC_STCC_PORT_S 3
|
|
#define SMWDTHROSC_STCC_PIN_M 0x00000007 // Pin select Valid settings are
|
|
// 1-7 when either port A, B, C, or
|
|
// D is selected.
|
|
#define SMWDTHROSC_STCC_PIN_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the
|
|
// SMWDTHROSC_STCS register.
|
|
//
|
|
//*****************************************************************************
|
|
#define SMWDTHROSC_STCS_VALID 0x00000001 // Capture valid flag Set to 1
|
|
// when capture value in STCV has
|
|
// been updated Clear explicitly to
|
|
// allow new capture
|
|
#define SMWDTHROSC_STCS_VALID_M 0x00000001
|
|
#define SMWDTHROSC_STCS_VALID_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the
|
|
// SMWDTHROSC_STCV0 register.
|
|
//
|
|
//*****************************************************************************
|
|
#define SMWDTHROSC_STCV0_STCV0_M \
|
|
0x000000FF // Bits [7:0] of Sleep Timer
|
|
// capture value
|
|
|
|
#define SMWDTHROSC_STCV0_STCV0_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the
|
|
// SMWDTHROSC_STCV1 register.
|
|
//
|
|
//*****************************************************************************
|
|
#define SMWDTHROSC_STCV1_STCV1_M \
|
|
0x000000FF // Bits [15:8] of Sleep Timer
|
|
// capture value
|
|
|
|
#define SMWDTHROSC_STCV1_STCV1_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the
|
|
// SMWDTHROSC_STCV2 register.
|
|
//
|
|
//*****************************************************************************
|
|
#define SMWDTHROSC_STCV2_STCV2_M \
|
|
0x000000FF // Bits [23:16] of Sleep Timer
|
|
// capture value
|
|
|
|
#define SMWDTHROSC_STCV2_STCV2_S 0
|
|
//*****************************************************************************
|
|
//
|
|
// The following are defines for the bit fields in the
|
|
// SMWDTHROSC_STCV3 register.
|
|
//
|
|
//*****************************************************************************
|
|
#define SMWDTHROSC_STCV3_STCV3_M \
|
|
0x000000FF // Bits [32:24] of Sleep Timer
|
|
// capture value
|
|
|
|
#define SMWDTHROSC_STCV3_STCV3_S 0
|
|
|
|
|
|
#endif // __HW_SMWDTHROSC_H__
|
|
|