summaryrefslogtreecommitdiff
path: root/include/arch/rm46l8lp/halcogen/reg_eqep.h
blob: 39342c63cfbc4789bea13b6c4cc78623cf08593b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
/** @file reg_eqep.h
*   @brief EQEP Register Layer Header File
*   @date 11-Dec-2018
*   @version 04.07.01
*   
*   This file contains:
*   - Definitions
*   - Types
*   - Interface Prototypes
*   .
*   which are relevant for the EQEP driver.
*/

/* 
* Copyright (C) 2009-2018 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_EQEP_H__
#define __REG_EQEP_H__

#include "sys_common.h"


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

/* Eqep Register Frame Definition */
/** @struct eqepBASE
*   @brief EQEP Register Frame Definition
*
*   This type is used to access the EQEP Registers.
*/
/** @typedef eqepBASE_t
*   @brief EQEP Register Frame Type Definition
*
*   This type is used to access the EQEP Registers.
*/
#if ((__little_endian__ == 1) || (__LITTLE_ENDIAN__ == 1)) 

typedef volatile struct eqepBASE
{
  uint32      QPOSCNT;       /*< 0x0000 eQEP Position Counter*/
  uint32      QPOSINIT;      /*< 0x0004 eQEP Initialization Position Count*/
  uint32      QPOSMAX;       /*< 0x0008 eQEP Maximum Position Count*/
  uint32      QPOSCMP;       /*< 0x000C eQEP Position Compare*/
  uint32      QPOSILAT;      /*< 0x0010 eQEP Index Position Latch*/
  uint32      QPOSSLAT;      /*< 0x0014 eQEP Strobe Position Latch*/
  uint32      QPOSLAT;       /*< 0x0018 eQEP Position Latch*/
  uint32      QUTMR;         /*< 0x001C eQEP Unit Timer*/
  uint32      QUPRD;         /*< 0x0020 eQEP Unit Period*/
  uint16		QWDTMR;		   /*< 0x0024 eQEP Watchdog Timer*/
  uint16		QWDPRD;		   /*< 0x0026 eQEP Watchdog Period*/
  uint16		QDECCTL;	   /*< 0x0028 eQEP Decoder Control*/
  uint16		QEPCTL;		   /*< 0x002A eQEP Control*/
  uint16		QCAPCTL;	   /*< 0x002C eQEP Capture Control*/
  uint16		QPOSCTL;	   /*< 0x002E eQEP Position Compare Control*/
  uint16		QEINT;		   /*< 0x0030 eQEP Interrupt Enable Register*/
  uint16		QFLG;		   /*< 0x0032 eQEP Interrupt Flag Register*/
  uint16		QCLR;		   /*< 0x0034 eQEP Interrupt Clear Register*/
  uint16		QFRC;		   /*< 0x0036 eQEP Interrupt Force Register*/
  uint16		QEPSTS;		   /*< 0x0038 eQEP Status Register*/
  uint16		QCTMR;		   /*< 0x003A eQEP Capture Timer*/
  uint16		QCPRD;		   /*< 0x003C eQEP Capture Period*/
  uint16		QCTMRLAT;	   /*< 0x003E eQEP Capture Timer Latch*/
  uint16		QCPRDLAT;	   /*< 0x0040 eQEP Capture Period Latch*/
  uint16		rsvd_1;	       /*< 0x0042 Reserved*/
} eqepBASE_t;

#else

typedef volatile struct eqepBASE
{
  uint32      QPOSCNT;       /*< 0x0000 eQEP Position Counter*/
  uint32      QPOSINIT;      /*< 0x0004 eQEP Initialization Position Count*/
  uint32      QPOSMAX;       /*< 0x0008 eQEP Maximum Position Count*/
  uint32      QPOSCMP;       /*< 0x000C eQEP Position Compare*/
  uint32      QPOSILAT;      /*< 0x0010 eQEP Index Position Latch*/
  uint32      QPOSSLAT;      /*< 0x0014 eQEP Strobe Position Latch*/
  uint32      QPOSLAT;       /*< 0x0018 eQEP Position Latch*/
  uint32      QUTMR;         /*< 0x001C eQEP Unit Timer*/
  uint32      QUPRD;         /*< 0x0020 eQEP Unit Period*/
  uint16		QWDPRD;		   /*< 0x0026 eQEP Watchdog Period*/
  uint16		QWDTMR;		   /*< 0x0024 eQEP Watchdog Timer*/
  uint16		QEPCTL;		   /*< 0x002A eQEP Control*/
  uint16		QDECCTL;	   /*< 0x0028 eQEP Decoder Control*/
  uint16		QPOSCTL;	   /*< 0x002E eQEP Position Compare Control*/
  uint16		QCAPCTL;	   /*< 0x002C eQEP Capture Control*/
  uint16		QFLG;		   /*< 0x0032 eQEP Interrupt Flag Register*/
  uint16		QEINT;		   /*< 0x0030 eQEP Interrupt Enable Register*/
  uint16		QFRC;		   /*< 0x0036 eQEP Interrupt Force Register*/
  uint16		QCLR;		   /*< 0x0034 eQEP Interrupt Clear Register*/
  uint16		QCTMR;		   /*< 0x003A eQEP Capture Timer*/
  uint16		QEPSTS;		   /*< 0x0038 eQEP Status Register*/
  uint16		QCTMRLAT;	   /*< 0x003E eQEP Capture Timer Latch*/
  uint16		QCPRD;		   /*< 0x003C eQEP Capture Period*/
  uint16		rsvd_1;	       /*< 0x0042 Reserved*/
  uint16		QCPRDLAT;	   /*< 0x0040 eQEP Capture Period Latch*/
} eqepBASE_t;

#endif

/** @def eqepREG1
*   @brief eQEP1 Register Frame Pointer
*
*   This pointer is used by the eQEP driver to access the eQEP1 registers.
*/
#define eqepREG1 ((eqepBASE_t *)0xFCF79900U)

/** @def eqepREG2
*   @brief eQEP2 Register Frame Pointer
*
*   This pointer is used by the eQEP driver to access the eQEP2 registers.
*/
#define eqepREG2 ((eqepBASE_t *)0xFCF79A00U)

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


#endif