/******************************************************************************
*  Filename:       hw_aon_batmon_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_BATMON_H__
#define __HW_AON_BATMON_H__

//*****************************************************************************
//
// This section defines the register offsets of
// AON_BATMON component
//
//*****************************************************************************
// Internal
#define AON_BATMON_O_CTL                                            0x00000000

// Internal
#define AON_BATMON_O_MEASCFG                                        0x00000004

// Internal
#define AON_BATMON_O_TEMPP0                                         0x0000000C

// Internal
#define AON_BATMON_O_TEMPP1                                         0x00000010

// Internal
#define AON_BATMON_O_TEMPP2                                         0x00000014

// Internal
#define AON_BATMON_O_BATMONP0                                       0x00000018

// Internal
#define AON_BATMON_O_BATMONP1                                       0x0000001C

// Internal
#define AON_BATMON_O_IOSTRP0                                        0x00000020

// Internal
#define AON_BATMON_O_FLASHPUMPP0                                    0x00000024

// Last Measured Battery Voltage
#define AON_BATMON_O_BAT                                            0x00000028

// Battery Update
#define AON_BATMON_O_BATUPD                                         0x0000002C

// Temperature
#define AON_BATMON_O_TEMP                                           0x00000030

// Temperature Update
#define AON_BATMON_O_TEMPUPD                                        0x00000034

//*****************************************************************************
//
// Register: AON_BATMON_O_CTL
//
//*****************************************************************************
// Field:     [1] CALC_EN
//
// Internal. Only to be used through TI provided API.
#define AON_BATMON_CTL_CALC_EN                                      0x00000002
#define AON_BATMON_CTL_CALC_EN_BITN                                          1
#define AON_BATMON_CTL_CALC_EN_M                                    0x00000002
#define AON_BATMON_CTL_CALC_EN_S                                             1

// Field:     [0] MEAS_EN
//
// Internal. Only to be used through TI provided API.
#define AON_BATMON_CTL_MEAS_EN                                      0x00000001
#define AON_BATMON_CTL_MEAS_EN_BITN                                          0
#define AON_BATMON_CTL_MEAS_EN_M                                    0x00000001
#define AON_BATMON_CTL_MEAS_EN_S                                             0

//*****************************************************************************
//
// Register: AON_BATMON_O_MEASCFG
//
//*****************************************************************************
// Field:   [1:0] PER
//
// Internal. Only to be used through TI provided API.
// ENUMs:
// 32CYC                    Internal. Only to be used through TI provided API.
// 16CYC                    Internal. Only to be used through TI provided API.
// 8CYC                     Internal. Only to be used through TI provided API.
// CONT                     Internal. Only to be used through TI provided API.
#define AON_BATMON_MEASCFG_PER_W                                             2
#define AON_BATMON_MEASCFG_PER_M                                    0x00000003
#define AON_BATMON_MEASCFG_PER_S                                             0
#define AON_BATMON_MEASCFG_PER_32CYC                                0x00000003
#define AON_BATMON_MEASCFG_PER_16CYC                                0x00000002
#define AON_BATMON_MEASCFG_PER_8CYC                                 0x00000001
#define AON_BATMON_MEASCFG_PER_CONT                                 0x00000000

//*****************************************************************************
//
// Register: AON_BATMON_O_TEMPP0
//
//*****************************************************************************
// Field:   [7:0] CFG
//
// Internal. Only to be used through TI provided API.
#define AON_BATMON_TEMPP0_CFG_W                                              8
#define AON_BATMON_TEMPP0_CFG_M                                     0x000000FF
#define AON_BATMON_TEMPP0_CFG_S                                              0

//*****************************************************************************
//
// Register: AON_BATMON_O_TEMPP1
//
//*****************************************************************************
// Field:   [5:0] CFG
//
// Internal. Only to be used through TI provided API.
#define AON_BATMON_TEMPP1_CFG_W                                              6
#define AON_BATMON_TEMPP1_CFG_M                                     0x0000003F
#define AON_BATMON_TEMPP1_CFG_S                                              0

//*****************************************************************************
//
// Register: AON_BATMON_O_TEMPP2
//
//*****************************************************************************
// Field:   [4:0] CFG
//
// Internal. Only to be used through TI provided API.
#define AON_BATMON_TEMPP2_CFG_W                                              5
#define AON_BATMON_TEMPP2_CFG_M                                     0x0000001F
#define AON_BATMON_TEMPP2_CFG_S                                              0

//*****************************************************************************
//
// Register: AON_BATMON_O_BATMONP0
//
//*****************************************************************************
// Field:   [5:0] CFG
//
// Internal. Only to be used through TI provided API.
#define AON_BATMON_BATMONP0_CFG_W                                            6
#define AON_BATMON_BATMONP0_CFG_M                                   0x0000003F
#define AON_BATMON_BATMONP0_CFG_S                                            0

//*****************************************************************************
//
// Register: AON_BATMON_O_BATMONP1
//
//*****************************************************************************
// Field:   [5:0] CFG
//
// Internal. Only to be used through TI provided API.
#define AON_BATMON_BATMONP1_CFG_W                                            6
#define AON_BATMON_BATMONP1_CFG_M                                   0x0000003F
#define AON_BATMON_BATMONP1_CFG_S                                            0

//*****************************************************************************
//
// Register: AON_BATMON_O_IOSTRP0
//
//*****************************************************************************
// Field:   [5:4] CFG2
//
// Internal. Only to be used through TI provided API.
#define AON_BATMON_IOSTRP0_CFG2_W                                            2
#define AON_BATMON_IOSTRP0_CFG2_M                                   0x00000030
#define AON_BATMON_IOSTRP0_CFG2_S                                            4

// Field:   [3:0] CFG1
//
// Internal. Only to be used through TI provided API.
#define AON_BATMON_IOSTRP0_CFG1_W                                            4
#define AON_BATMON_IOSTRP0_CFG1_M                                   0x0000000F
#define AON_BATMON_IOSTRP0_CFG1_S                                            0

//*****************************************************************************
//
// Register: AON_BATMON_O_FLASHPUMPP0
//
//*****************************************************************************
// Field:     [8] FALLB
//
// Internal. Only to be used through TI provided API.
#define AON_BATMON_FLASHPUMPP0_FALLB                                0x00000100
#define AON_BATMON_FLASHPUMPP0_FALLB_BITN                                    8
#define AON_BATMON_FLASHPUMPP0_FALLB_M                              0x00000100
#define AON_BATMON_FLASHPUMPP0_FALLB_S                                       8

// Field:   [7:6] HIGHLIM
//
// Internal. Only to be used through TI provided API.
#define AON_BATMON_FLASHPUMPP0_HIGHLIM_W                                     2
#define AON_BATMON_FLASHPUMPP0_HIGHLIM_M                            0x000000C0
#define AON_BATMON_FLASHPUMPP0_HIGHLIM_S                                     6

// Field:     [5] LOWLIM
//
// Internal. Only to be used through TI provided API.
#define AON_BATMON_FLASHPUMPP0_LOWLIM                               0x00000020
#define AON_BATMON_FLASHPUMPP0_LOWLIM_BITN                                   5
#define AON_BATMON_FLASHPUMPP0_LOWLIM_M                             0x00000020
#define AON_BATMON_FLASHPUMPP0_LOWLIM_S                                      5

// Field:     [4] OVR
//
// Internal. Only to be used through TI provided API.
#define AON_BATMON_FLASHPUMPP0_OVR                                  0x00000010
#define AON_BATMON_FLASHPUMPP0_OVR_BITN                                      4
#define AON_BATMON_FLASHPUMPP0_OVR_M                                0x00000010
#define AON_BATMON_FLASHPUMPP0_OVR_S                                         4

// Field:   [3:0] CFG
//
// Internal. Only to be used through TI provided API.
#define AON_BATMON_FLASHPUMPP0_CFG_W                                         4
#define AON_BATMON_FLASHPUMPP0_CFG_M                                0x0000000F
#define AON_BATMON_FLASHPUMPP0_CFG_S                                         0

//*****************************************************************************
//
// Register: AON_BATMON_O_BAT
//
//*****************************************************************************
// Field:  [10:8] INT
//
// Integer part:
//
// 0x0: 0V + fractional part
// ...
// 0x3: 3V + fractional part
// 0x4: 4V + fractional part
#define AON_BATMON_BAT_INT_W                                                 3
#define AON_BATMON_BAT_INT_M                                        0x00000700
#define AON_BATMON_BAT_INT_S                                                 8

// Field:   [7:0] FRAC
//
// Fractional part, standard binary fractional encoding.
//
// 0x00: .0V
// ...
// 0x20: 1/8 = .125V
// 0x40: 1/4 = .25V
// 0x80: 1/2 = .5V
// ...
// 0xA0: 1/2 + 1/8 = .625V
// ...
// 0xFF: Max
#define AON_BATMON_BAT_FRAC_W                                                8
#define AON_BATMON_BAT_FRAC_M                                       0x000000FF
#define AON_BATMON_BAT_FRAC_S                                                0

//*****************************************************************************
//
// Register: AON_BATMON_O_BATUPD
//
//*****************************************************************************
// Field:     [0] STAT
//
//
// 0: No update since last clear
// 1: New battery voltage is present.
//
// Write 1 to clear the status.
#define AON_BATMON_BATUPD_STAT                                      0x00000001
#define AON_BATMON_BATUPD_STAT_BITN                                          0
#define AON_BATMON_BATUPD_STAT_M                                    0x00000001
#define AON_BATMON_BATUPD_STAT_S                                             0

//*****************************************************************************
//
// Register: AON_BATMON_O_TEMP
//
//*****************************************************************************
// Field:  [16:8] INT
//
// Integer part (signed) of temperature value.
// Total value = INTEGER + FRACTIONAL
// 2's complement encoding
//
// 0x100: Min value
// 0x1D8: -40C
// 0x1FF: -1C
// 0x00: 0C
// 0x1B: 27C
// 0x55: 85C
// 0xFF: Max value
#define AON_BATMON_TEMP_INT_W                                                9
#define AON_BATMON_TEMP_INT_M                                       0x0001FF00
#define AON_BATMON_TEMP_INT_S                                                8

//*****************************************************************************
//
// Register: AON_BATMON_O_TEMPUPD
//
//*****************************************************************************
// Field:     [0] STAT
//
//
// 0: No update since last clear
// 1: New temperature is present.
//
// Write 1 to clear the status.
#define AON_BATMON_TEMPUPD_STAT                                     0x00000001
#define AON_BATMON_TEMPUPD_STAT_BITN                                         0
#define AON_BATMON_TEMPUPD_STAT_M                                   0x00000001
#define AON_BATMON_TEMPUPD_STAT_S                                            0


#endif // __AON_BATMON__
