/******************************************************************************
*  Filename:       hw_aon_rtc_h
*  Revised:        2016-03-14 09:20:59 +0100 (Mon, 14 Mar 2016)
*  Revision:       45924
*
* Copyright (c) 2015 - 2016, Texas Instruments Incorporated
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1) Redistributions of source code must retain the above copyright notice,
*    this list of conditions and the following disclaimer.
*
* 2) 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.
*
* 3) Neither the name of the ORGANIZATION 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 HOLDER 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_AON_RTC_H__
#define __HW_AON_RTC_H__

//*****************************************************************************
//
// This section defines the register offsets of
// AON_RTC component
//
//*****************************************************************************
// Control
#define AON_RTC_O_CTL                                               0x00000000

// Event Flags, RTC Status
#define AON_RTC_O_EVFLAGS                                           0x00000004

// Second Counter Value, Integer Part
#define AON_RTC_O_SEC                                               0x00000008

// Second Counter Value, Fractional Part
#define AON_RTC_O_SUBSEC                                            0x0000000C

// Subseconds Increment
#define AON_RTC_O_SUBSECINC                                         0x00000010

// Channel Configuration
#define AON_RTC_O_CHCTL                                             0x00000014

// Channel 0 Compare Value
#define AON_RTC_O_CH0CMP                                            0x00000018

// Channel 1 Compare Value
#define AON_RTC_O_CH1CMP                                            0x0000001C

// Channel 2 Compare Value
#define AON_RTC_O_CH2CMP                                            0x00000020

// Channel 2 Compare Value Auto-increment
#define AON_RTC_O_CH2CMPINC                                         0x00000024

// Channel 1 Capture Value
#define AON_RTC_O_CH1CAPT                                           0x00000028

// AON Synchronization
#define AON_RTC_O_SYNC                                              0x0000002C

//*****************************************************************************
//
// Register: AON_RTC_O_CTL
//
//*****************************************************************************
// Field: [18:16] COMB_EV_MASK
//
// Eventmask selecting which delayed events that form the combined event.
// ENUMs:
// CH2                      Use Channel 2 delayed event in combined event
// CH1                      Use Channel 1 delayed event in combined event
// CH0                      Use Channel 0 delayed event in combined event
// NONE                     No event is selected for combined event.
#define AON_RTC_CTL_COMB_EV_MASK_W                                           3
#define AON_RTC_CTL_COMB_EV_MASK_M                                  0x00070000
#define AON_RTC_CTL_COMB_EV_MASK_S                                          16
#define AON_RTC_CTL_COMB_EV_MASK_CH2                                0x00040000
#define AON_RTC_CTL_COMB_EV_MASK_CH1                                0x00020000
#define AON_RTC_CTL_COMB_EV_MASK_CH0                                0x00010000
#define AON_RTC_CTL_COMB_EV_MASK_NONE                               0x00000000

// Field:  [11:8] EV_DELAY
//
// Number of SCLK_LF clock cycles waited before generating delayed events.
// (Common setting for all RTC cannels)  the delayed event is delayed
// ENUMs:
// D144                     Delay by 144 clock cycles
// D128                     Delay by 128 clock cycles
// D112                     Delay by 112 clock cycles
// D96                      Delay by 96 clock cycles
// D80                      Delay by 80 clock cycles
// D64                      Delay by 64 clock cycles
// D48                      Delay by 48 clock cycles
// D32                      Delay by 32 clock cycles
// D16                      Delay by 16 clock cycles
// D8                       Delay by 8 clock cycles
// D4                       Delay by 4 clock cycles
// D2                       Delay by 2 clock cycles
// D1                       Delay by 1 clock cycles
// D0                       No delay on delayed event
#define AON_RTC_CTL_EV_DELAY_W                                               4
#define AON_RTC_CTL_EV_DELAY_M                                      0x00000F00
#define AON_RTC_CTL_EV_DELAY_S                                               8
#define AON_RTC_CTL_EV_DELAY_D144                                   0x00000D00
#define AON_RTC_CTL_EV_DELAY_D128                                   0x00000C00
#define AON_RTC_CTL_EV_DELAY_D112                                   0x00000B00
#define AON_RTC_CTL_EV_DELAY_D96                                    0x00000A00
#define AON_RTC_CTL_EV_DELAY_D80                                    0x00000900
#define AON_RTC_CTL_EV_DELAY_D64                                    0x00000800
#define AON_RTC_CTL_EV_DELAY_D48                                    0x00000700
#define AON_RTC_CTL_EV_DELAY_D32                                    0x00000600
#define AON_RTC_CTL_EV_DELAY_D16                                    0x00000500
#define AON_RTC_CTL_EV_DELAY_D8                                     0x00000400
#define AON_RTC_CTL_EV_DELAY_D4                                     0x00000300
#define AON_RTC_CTL_EV_DELAY_D2                                     0x00000200
#define AON_RTC_CTL_EV_DELAY_D1                                     0x00000100
#define AON_RTC_CTL_EV_DELAY_D0                                     0x00000000

// Field:     [7] RESET
//
// RTC Counter reset.
//
// Writing 1 to this bit will reset the RTC counter.
//
// This bit is cleared when reset takes effect
#define AON_RTC_CTL_RESET                                           0x00000080
#define AON_RTC_CTL_RESET_BITN                                               7
#define AON_RTC_CTL_RESET_M                                         0x00000080
#define AON_RTC_CTL_RESET_S                                                  7

// Field:     [2] RTC_4KHZ_EN
//
// RTC_4KHZ is a 4 KHz reference output, tapped from  SUBSEC.VALUE  bit 19
// which is used by AUX timer.
//
// 0: RTC_4KHZ signal is forced to 0
// 1: RTC_4KHZ is enabled ( provied that RTC is enabled EN)
#define AON_RTC_CTL_RTC_4KHZ_EN                                     0x00000004
#define AON_RTC_CTL_RTC_4KHZ_EN_BITN                                         2
#define AON_RTC_CTL_RTC_4KHZ_EN_M                                   0x00000004
#define AON_RTC_CTL_RTC_4KHZ_EN_S                                            2

// Field:     [1] RTC_UPD_EN
//
// RTC_UPD is a 16 KHz signal used to sync up the radio timer. The 16 Khz is
// SCLK_LF divided by 2
//
// 0: RTC_UPD signal is forced to 0
// 1: RTC_UPD signal is toggling @16 kHz
#define AON_RTC_CTL_RTC_UPD_EN                                      0x00000002
#define AON_RTC_CTL_RTC_UPD_EN_BITN                                          1
#define AON_RTC_CTL_RTC_UPD_EN_M                                    0x00000002
#define AON_RTC_CTL_RTC_UPD_EN_S                                             1

// Field:     [0] EN
//
// Enable RTC counter
//
// 0: Halted (frozen)
// 1: Running
#define AON_RTC_CTL_EN                                              0x00000001
#define AON_RTC_CTL_EN_BITN                                                  0
#define AON_RTC_CTL_EN_M                                            0x00000001
#define AON_RTC_CTL_EN_S                                                     0

//*****************************************************************************
//
// Register: AON_RTC_O_EVFLAGS
//
//*****************************************************************************
// Field:    [16] CH2
//
// Channel 2 event flag, set when CHCTL.CH2_EN = 1 and the RTC value matches or
// passes the CH2CMP value.
//
// An event will be scheduled to occur as soon as possible when writing to
// CH2CMP provided that the channel is enabled and the new value matches any
// time between next  RTC value and 1 second in the past
//
// Writing 1 clears this flag. Note that a new event can not occur on this
// channel in first 2 SCLK_LF cycles after a clearance.
//
// AUX_SCE can read the flag through AUX_WUC:WUEVFLAGS.AON_RTC_CH2 and clear it
// using AUX_WUC:WUEVCLR.AON_RTC_CH2.
#define AON_RTC_EVFLAGS_CH2                                         0x00010000
#define AON_RTC_EVFLAGS_CH2_BITN                                            16
#define AON_RTC_EVFLAGS_CH2_M                                       0x00010000
#define AON_RTC_EVFLAGS_CH2_S                                               16

// Field:     [8] CH1
//
// Channel 1 event flag, set when CHCTL.CH1_EN = 1 and one of the following:
// - CHCTL.CH1_CAPT_EN = 0 and the RTC value matches or passes the CH1CMP
// value.
// - CHCTL.CH1_CAPT_EN = 1 and capture occurs.
//
// An event will be scheduled to occur as soon as possible when writing to
// CH1CMP provided that the channel is enabled, in compare mode and the new
// value matches any time between next  RTC value and 1 second in the past.
//
// Writing 1 clears this flag. Note that a new event can not occur on this
// channel in first 2 SCLK_LF cycles after a clearance.
#define AON_RTC_EVFLAGS_CH1                                         0x00000100
#define AON_RTC_EVFLAGS_CH1_BITN                                             8
#define AON_RTC_EVFLAGS_CH1_M                                       0x00000100
#define AON_RTC_EVFLAGS_CH1_S                                                8

// Field:     [0] CH0
//
// Channel 0 event flag, set when CHCTL.CH0_EN = 1 and the RTC value matches or
// passes the CH0CMP value.
//
// An event will be scheduled to occur as soon as possible when writing to
// CH0CMP provided that the channels is enabled and the new value matches any
// time between next  RTC value and 1 second in the past.
//
// Writing 1 clears this flag. Note that a new event can not occur on this
// channel in first 2 SCLK_LF cycles after a clearance.
#define AON_RTC_EVFLAGS_CH0                                         0x00000001
#define AON_RTC_EVFLAGS_CH0_BITN                                             0
#define AON_RTC_EVFLAGS_CH0_M                                       0x00000001
#define AON_RTC_EVFLAGS_CH0_S                                                0

//*****************************************************************************
//
// Register: AON_RTC_O_SEC
//
//*****************************************************************************
// Field:  [31:0] VALUE
//
// Unsigned integer representing Real Time Clock in seconds.
//
// When reading this register the content of SUBSEC.VALUE is simultaneously
// latched. A consistent reading of the combined Real Time Clock can be
// obtained by first reading this register, then reading SUBSEC register.
#define AON_RTC_SEC_VALUE_W                                                 32
#define AON_RTC_SEC_VALUE_M                                         0xFFFFFFFF
#define AON_RTC_SEC_VALUE_S                                                  0

//*****************************************************************************
//
// Register: AON_RTC_O_SUBSEC
//
//*****************************************************************************
// Field:  [31:0] VALUE
//
// Unsigned integer representing Real Time Clock in fractions of a second
// (VALUE/2^32 seconds) at the time when SEC register was read.
//
// Examples :
// - 0x0000_0000 = 0.0 sec
// - 0x4000_0000 = 0.25 sec
// - 0x8000_0000 = 0.5 sec
// - 0xC000_0000 = 0.75 sec
#define AON_RTC_SUBSEC_VALUE_W                                              32
#define AON_RTC_SUBSEC_VALUE_M                                      0xFFFFFFFF
#define AON_RTC_SUBSEC_VALUE_S                                               0

//*****************************************************************************
//
// Register: AON_RTC_O_SUBSECINC
//
//*****************************************************************************
// Field:  [23:0] VALUEINC
//
// This value compensates for a SCLK_LF clock which has an offset from 32768
// Hz.
//
// The compensation value can be found as 2^38 / freq, where freq is SCLK_LF
// clock frequency in Hertz
//
// This value is added to SUBSEC.VALUE on every cycle, and carry of this is
// added to SEC.VALUE. To perform the addition, bits [23:6] are aligned with
// SUBSEC.VALUE bits [17:0]. The remaining bits [5:0] are accumulated in a
// hidden 6-bit register that generates a carry into the above mentioned
// addition on overflow.
// The default value corresponds to incrementing by precisely 1/32768 of a
// second.
//
// NOTE: This register is read only. Modification of the register value must be
// done using registers AUX_WUC:RTCSUBSECINC1 ,  AUX_WUC:RTCSUBSECINC0 and
// AUX_WUC:RTCSUBSECINCCTL
#define AON_RTC_SUBSECINC_VALUEINC_W                                        24
#define AON_RTC_SUBSECINC_VALUEINC_M                                0x00FFFFFF
#define AON_RTC_SUBSECINC_VALUEINC_S                                         0

//*****************************************************************************
//
// Register: AON_RTC_O_CHCTL
//
//*****************************************************************************
// Field:    [18] CH2_CONT_EN
//
// Set to enable continuous operation of Channel 2
#define AON_RTC_CHCTL_CH2_CONT_EN                                   0x00040000
#define AON_RTC_CHCTL_CH2_CONT_EN_BITN                                      18
#define AON_RTC_CHCTL_CH2_CONT_EN_M                                 0x00040000
#define AON_RTC_CHCTL_CH2_CONT_EN_S                                         18

// Field:    [16] CH2_EN
//
// RTC Channel 2 Enable
//
// 0: Disable RTC Channel 2
// 1: Enable RTC Channel 2
#define AON_RTC_CHCTL_CH2_EN                                        0x00010000
#define AON_RTC_CHCTL_CH2_EN_BITN                                           16
#define AON_RTC_CHCTL_CH2_EN_M                                      0x00010000
#define AON_RTC_CHCTL_CH2_EN_S                                              16

// Field:     [9] CH1_CAPT_EN
//
// Set Channel 1 mode
//
// 0: Compare mode (default)
// 1: Capture mode
#define AON_RTC_CHCTL_CH1_CAPT_EN                                   0x00000200
#define AON_RTC_CHCTL_CH1_CAPT_EN_BITN                                       9
#define AON_RTC_CHCTL_CH1_CAPT_EN_M                                 0x00000200
#define AON_RTC_CHCTL_CH1_CAPT_EN_S                                          9

// Field:     [8] CH1_EN
//
// RTC Channel 1 Enable
//
// 0: Disable RTC Channel 1
// 1: Enable RTC Channel 1
#define AON_RTC_CHCTL_CH1_EN                                        0x00000100
#define AON_RTC_CHCTL_CH1_EN_BITN                                            8
#define AON_RTC_CHCTL_CH1_EN_M                                      0x00000100
#define AON_RTC_CHCTL_CH1_EN_S                                               8

// Field:     [0] CH0_EN
//
// RTC Channel 0 Enable
//
// 0: Disable RTC Channel 0
// 1: Enable RTC Channel 0
#define AON_RTC_CHCTL_CH0_EN                                        0x00000001
#define AON_RTC_CHCTL_CH0_EN_BITN                                            0
#define AON_RTC_CHCTL_CH0_EN_M                                      0x00000001
#define AON_RTC_CHCTL_CH0_EN_S                                               0

//*****************************************************************************
//
// Register: AON_RTC_O_CH0CMP
//
//*****************************************************************************
// Field:  [31:0] VALUE
//
// RTC Channel 0 compare value.
//
// Bit 31 to 16 represents seconds and bits 15 to 0 represents subseconds of
// the compare value.
//
// The compare value is compared against SEC.VALUE (15:0) and SUBSEC.VALUE
// (31:16) values of the Real Time Clock register. A Cannel 0 event is
// generated when {SEC.VALUE(15:0),SUBSEC.VALUE (31:16)} is reaching or
// exciting the compare value.
//
// Writing to this register can trigger an immediate*) event in case the new
// compare value matches a Real Time Clock  value from 1 second in the past up
// till current Real Time Clock value.
//
// Example:
// To generate a compare  5.5 seconds RTC start,- set this value = 0x0005_8000
//
// *) It can take up to 2 SCLK_LF clock cycles before event occurs due to
// synchronization.
#define AON_RTC_CH0CMP_VALUE_W                                              32
#define AON_RTC_CH0CMP_VALUE_M                                      0xFFFFFFFF
#define AON_RTC_CH0CMP_VALUE_S                                               0

//*****************************************************************************
//
// Register: AON_RTC_O_CH1CMP
//
//*****************************************************************************
// Field:  [31:0] VALUE
//
// RTC Channel 1 compare value.
//
// Bit 31 to 16 represents seconds and bits 15 to 0 represents subseconds of
// the compare value.
//
// The compare value is compared against SEC.VALUE (15:0) and SUBSEC.VALUE
// (31:16) values of the Real Time Clock register. A Cannel 0 event is
// generated when {SEC.VALUE(15:0),SUBSEC.VALUE (31:16)} is reaching or
// exciting the compare value.
//
// Writing to this register can trigger an immediate*) event in case the new
// compare value matches a Real Time Clock  value from 1 second in the past up
// till current Real Time Clock value.
//
// Example:
// To generate a compare  5.5 seconds RTC start,- set this value = 0x0005_8000
//
// *) It can take up to 2 SCLK_LF clock cycles before event occurs due to
// synchronization.
#define AON_RTC_CH1CMP_VALUE_W                                              32
#define AON_RTC_CH1CMP_VALUE_M                                      0xFFFFFFFF
#define AON_RTC_CH1CMP_VALUE_S                                               0

//*****************************************************************************
//
// Register: AON_RTC_O_CH2CMP
//
//*****************************************************************************
// Field:  [31:0] VALUE
//
// RTC Channel 2 compare value.
//
// Bit 31 to 16 represents seconds and bits 15 to 0 represents subseconds of
// the compare value.
//
// The compare value is compared against SEC.VALUE (15:0) and SUBSEC.VALUE
// (31:16) values of the Real Time Clock register. A Cannel 0 event is
// generated when {SEC.VALUE(15:0),SUBSEC.VALUE (31:16)} is reaching or
// exciting the compare value.
//
// Writing to this register can trigger an immediate*) event in case the new
// compare value matches a Real Time Clock  value from 1 second in the past up
// till current Real Time Clock value.
//
// Example:
// To generate a compare  5.5 seconds RTC start,- set this value = 0x0005_8000
//
// *) It can take up to 2 SCLK_LF clock cycles before event occurs due to
// synchronization.
#define AON_RTC_CH2CMP_VALUE_W                                              32
#define AON_RTC_CH2CMP_VALUE_M                                      0xFFFFFFFF
#define AON_RTC_CH2CMP_VALUE_S                                               0

//*****************************************************************************
//
// Register: AON_RTC_O_CH2CMPINC
//
//*****************************************************************************
// Field:  [31:0] VALUE
//
// If CHCTL.CH2_CONT_EN is set, this value is added to CH2CMP.VALUE on every
// channel 2 compare event.
#define AON_RTC_CH2CMPINC_VALUE_W                                           32
#define AON_RTC_CH2CMPINC_VALUE_M                                   0xFFFFFFFF
#define AON_RTC_CH2CMPINC_VALUE_S                                            0

//*****************************************************************************
//
// Register: AON_RTC_O_CH1CAPT
//
//*****************************************************************************
// Field: [31:16] SEC
//
// Value of SEC.VALUE bits 15:0 at capture time.
#define AON_RTC_CH1CAPT_SEC_W                                               16
#define AON_RTC_CH1CAPT_SEC_M                                       0xFFFF0000
#define AON_RTC_CH1CAPT_SEC_S                                               16

// Field:  [15:0] SUBSEC
//
// Value of SUBSEC.VALUE bits 31:16 at capture time.
#define AON_RTC_CH1CAPT_SUBSEC_W                                            16
#define AON_RTC_CH1CAPT_SUBSEC_M                                    0x0000FFFF
#define AON_RTC_CH1CAPT_SUBSEC_S                                             0

//*****************************************************************************
//
// Register: AON_RTC_O_SYNC
//
//*****************************************************************************
// Field:     [0] WBUSY
//
// This register will always return 0,- however it will not return the value
// until there are no outstanding write requests between MCU and AON
//
// Note: Writing to this register prior to reading will force a wait until next
// SCLK_LF  edge. This is recommended for syncing read registers from AON when
// waking up from sleep
// Failure to do so may result in reading AON values from prior to going to
// sleep
#define AON_RTC_SYNC_WBUSY                                          0x00000001
#define AON_RTC_SYNC_WBUSY_BITN                                              0
#define AON_RTC_SYNC_WBUSY_M                                        0x00000001
#define AON_RTC_SYNC_WBUSY_S                                                 0


#endif // __AON_RTC__
