/** @file HL_reg_ecap.h
*   @brief ECAP Register Layer Header File
*   @date 07-July-2017
*   @version 04.07.00
*   
*   This file contains:
*   - Definitions
*   - Types
*   - Interface Prototypes
*   .
*   which are relevant for the ECAP driver.
*/

/* 
* Copyright (C) 2009-2016 Texas Instruments Incorporated - 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 __REG_ECAP_H__
#define __REG_ECAP_H__

#include "HL_sys_common.h"



/* USER CODE BEGIN (0) */
/* USER CODE END */

/* Ecap Register Frame Definition */
/** @struct ecapBASE
*   @brief ECAP Register Frame Definition
*
*   This type is used to access the ECAP Registers.
*/
/** @typedef ecapBASE_t
*   @brief ECAP Register Frame Type Definition
*
*   This type is used to access the ECAP Registers.
*/
#if ((__little_endian__ == 1) || (__LITTLE_ENDIAN__ == 1)) 

typedef volatile struct ecapBASE
 {

   uint32 TSCTR;     /**<  0x0000 Time stamp counter Register*/
   uint32 CTRPHS;    /**<  0x0004 Counter phase Register*/ 
   uint32 CAP1;      /**<  0x0008 Capture 1 Register*/
   uint32 CAP2;      /**<  0x000C Capture 2 Register*/
   uint32 CAP3;      /**<  0x0010 Capture 3 Register*/
   uint32 CAP4;      /**<  0x0014 Capture 4 Register*/
   uint16 rsvd1[8U]; /**<  0x0018 Reserved*/
   uint16 ECCTL1;    /**<  0x0028 Capture Control Reg 1 Register*/
   uint16 ECCTL2;    /**<  0x002A Capture Control Reg 2 Register*/
   uint16 ECEINT;    /**<  0x002C Interrupt enable Register*/
   uint16 ECFLG;     /**<  0x002E Interrupt flags Register*/ 
   uint16 ECCLR;     /**<  0x0030 Interrupt clear Register*/
   uint16 ECFRC;     /**<  0x0032 Interrupt force Register*/
   uint16 rsvd2[6U]; /**<  0x0034 Reserved*/

}ecapBASE_t;

#else

typedef volatile struct ecapBASE
 {

   uint32 TSCTR;     /**<  0x0000 Time stamp counter Register*/
   uint32 CTRPHS;    /**<  0x0004 Counter phase Register*/ 
   uint32 CAP1;      /**<  0x0008 Capture 1 Register*/
   uint32 CAP2;      /**<  0x000C Capture 2 Register*/
   uint32 CAP3;      /**<  0x0010 Capture 3 Register*/
   uint32 CAP4;      /**<  0x0014 Capture 4 Register*/
   uint16 rsvd1[8U]; /**<  0x0018 Reserved*/
   uint16 ECCTL2;    /**<  0x002A Capture Control Reg 2 Register*/
   uint16 ECCTL1;    /**<  0x0028 Capture Control Reg 1 Register*/
   uint16 ECFLG;     /**<  0x002E Interrupt flags Register*/ 
   uint16 ECEINT;    /**<  0x002C Interrupt enable Register*/
   uint16 ECFRC;     /**<  0x0032 Interrupt force Register*/
   uint16 ECCLR;     /**<  0x0030 Interrupt clear Register*/
   uint16 rsvd2[6U]; /**<  0x0034 Reserved*/

}ecapBASE_t;

#endif
/** @def ecapREG1
*   @brief ECAP1 Register Frame Pointer
*
*   This pointer is used by the ECAP driver to access the ECAP1 registers.
*/
#define ecapREG1 ((ecapBASE_t *)0xFCF79300U)

/** @def ecapREG2
*   @brief ECAP2 Register Frame Pointer
*
*   This pointer is used by the ECAP driver to access the ECAP2 registers.
*/
#define ecapREG2 ((ecapBASE_t *)0xFCF79400U)

/** @def ecapREG3
*   @brief ECAP3 Register Frame Pointer
*
*   This pointer is used by the ECAP driver to access the ECAP3 registers.
*/
#define ecapREG3 ((ecapBASE_t *)0xFCF79500U)

/** @def ecapREG4
*   @brief ECAP4 Register Frame Pointer
*
*   This pointer is used by the ECAP driver to access the ECAP4 registers.
*/
#define ecapREG4 ((ecapBASE_t *)0xFCF79600U)

/** @def ecapREG5
*   @brief ECAP5 Register Frame Pointer
*
*   This pointer is used by the ECAP driver to access the ECAP5 registers.
*/
#define ecapREG5 ((ecapBASE_t *)0xFCF79700U)

/** @def ecapREG6
*   @brief ECAP6 Register Frame Pointer
*
*   This pointer is used by the ECAP driver to access the ECAP6 registers.
*/
#define ecapREG6 ((ecapBASE_t *)0xFCF79800U)

/* USER CODE BEGIN (1) */
/* USER CODE END */


#endif
