1 /***************************************************************************//**
2 * \file cyip_lpcomp_v2.h
3 *
4 * \brief
5 * LPCOMP IP definitions
6 *
7 ********************************************************************************
8 * \copyright
9 * (c) (2016-2024), Cypress Semiconductor Corporation (an Infineon company) or
10 * an affiliate of Cypress Semiconductor Corporation.
11 *
12 * SPDX-License-Identifier: Apache-2.0
13 *
14 * Licensed under the Apache License, Version 2.0 (the "License");
15 * you may not use this file except in compliance with the License.
16 * You may obtain a copy of the License at
17 *
18 *     http://www.apache.org/licenses/LICENSE-2.0
19 *
20 * Unless required by applicable law or agreed to in writing, software
21 * distributed under the License is distributed on an "AS IS" BASIS,
22 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 * See the License for the specific language governing permissions and
24 * limitations under the License.
25 *******************************************************************************/
26 
27 #ifndef _CYIP_LPCOMP_V2_H_
28 #define _CYIP_LPCOMP_V2_H_
29 
30 #include "cyip_headers.h"
31 
32 /*******************************************************************************
33 *                                    LPCOMP
34 *******************************************************************************/
35 
36 #define LPCOMP_SECTION_SIZE                     0x00010000UL
37 
38 /**
39   * \brief Low Power Comparators (LPCOMP)
40   */
41 typedef struct {
42   __IOM uint32_t CONFIG;                        /*!< 0x00000000 LPCOMP Configuration Register */
43    __IM uint32_t STATUS;                        /*!< 0x00000004 LPCOMP Status Register */
44    __IM uint32_t RESERVED[2];
45   __IOM uint32_t INTR;                          /*!< 0x00000010 LPCOMP Interrupt request register */
46   __IOM uint32_t INTR_SET;                      /*!< 0x00000014 LPCOMP Interrupt set register */
47   __IOM uint32_t INTR_MASK;                     /*!< 0x00000018 LPCOMP Interrupt request mask */
48    __IM uint32_t INTR_MASKED;                   /*!< 0x0000001C LPCOMP Interrupt request masked */
49    __IM uint32_t RESERVED1[8];
50   __IOM uint32_t CMP0_CTRL;                     /*!< 0x00000040 Comparator 0 control Register */
51    __IM uint32_t RESERVED2[3];
52   __IOM uint32_t CMP0_SW;                       /*!< 0x00000050 Comparator 0 switch control */
53   __IOM uint32_t CMP0_SW_CLEAR;                 /*!< 0x00000054 Comparator 0 switch control clear */
54    __IM uint32_t RESERVED3[10];
55   __IOM uint32_t CMP1_CTRL;                     /*!< 0x00000080 Comparator 1 control Register */
56    __IM uint32_t RESERVED4[3];
57   __IOM uint32_t CMP1_SW;                       /*!< 0x00000090 Comparator 1 switch control */
58   __IOM uint32_t CMP1_SW_CLEAR;                 /*!< 0x00000094 Comparator 1 switch control clear */
59 } LPCOMP_Type;                                  /*!< Size = 152 (0x98) */
60 
61 
62 /* LPCOMP.CONFIG */
63 #define LPCOMP_CONFIG_LPREF_EN_Pos              30UL
64 #define LPCOMP_CONFIG_LPREF_EN_Msk              0x40000000UL
65 #define LPCOMP_CONFIG_ENABLED_Pos               31UL
66 #define LPCOMP_CONFIG_ENABLED_Msk               0x80000000UL
67 /* LPCOMP.STATUS */
68 #define LPCOMP_STATUS_OUT0_Pos                  0UL
69 #define LPCOMP_STATUS_OUT0_Msk                  0x1UL
70 #define LPCOMP_STATUS_OUT1_Pos                  16UL
71 #define LPCOMP_STATUS_OUT1_Msk                  0x10000UL
72 /* LPCOMP.INTR */
73 #define LPCOMP_INTR_COMP0_Pos                   0UL
74 #define LPCOMP_INTR_COMP0_Msk                   0x1UL
75 #define LPCOMP_INTR_COMP1_Pos                   1UL
76 #define LPCOMP_INTR_COMP1_Msk                   0x2UL
77 /* LPCOMP.INTR_SET */
78 #define LPCOMP_INTR_SET_COMP0_Pos               0UL
79 #define LPCOMP_INTR_SET_COMP0_Msk               0x1UL
80 #define LPCOMP_INTR_SET_COMP1_Pos               1UL
81 #define LPCOMP_INTR_SET_COMP1_Msk               0x2UL
82 /* LPCOMP.INTR_MASK */
83 #define LPCOMP_INTR_MASK_COMP0_MASK_Pos         0UL
84 #define LPCOMP_INTR_MASK_COMP0_MASK_Msk         0x1UL
85 #define LPCOMP_INTR_MASK_COMP1_MASK_Pos         1UL
86 #define LPCOMP_INTR_MASK_COMP1_MASK_Msk         0x2UL
87 /* LPCOMP.INTR_MASKED */
88 #define LPCOMP_INTR_MASKED_COMP0_MASKED_Pos     0UL
89 #define LPCOMP_INTR_MASKED_COMP0_MASKED_Msk     0x1UL
90 #define LPCOMP_INTR_MASKED_COMP1_MASKED_Pos     1UL
91 #define LPCOMP_INTR_MASKED_COMP1_MASKED_Msk     0x2UL
92 /* LPCOMP.CMP0_CTRL */
93 #define LPCOMP_CMP0_CTRL_MODE0_Pos              0UL
94 #define LPCOMP_CMP0_CTRL_MODE0_Msk              0x3UL
95 #define LPCOMP_CMP0_CTRL_HYST0_Pos              5UL
96 #define LPCOMP_CMP0_CTRL_HYST0_Msk              0x20UL
97 #define LPCOMP_CMP0_CTRL_INTTYPE0_Pos           6UL
98 #define LPCOMP_CMP0_CTRL_INTTYPE0_Msk           0xC0UL
99 #define LPCOMP_CMP0_CTRL_DSI_BYPASS0_Pos        10UL
100 #define LPCOMP_CMP0_CTRL_DSI_BYPASS0_Msk        0x400UL
101 #define LPCOMP_CMP0_CTRL_DSI_LEVEL0_Pos         11UL
102 #define LPCOMP_CMP0_CTRL_DSI_LEVEL0_Msk         0x800UL
103 /* LPCOMP.CMP0_SW */
104 #define LPCOMP_CMP0_SW_CMP0_IP0_Pos             0UL
105 #define LPCOMP_CMP0_SW_CMP0_IP0_Msk             0x1UL
106 #define LPCOMP_CMP0_SW_CMP0_AP0_Pos             1UL
107 #define LPCOMP_CMP0_SW_CMP0_AP0_Msk             0x2UL
108 #define LPCOMP_CMP0_SW_CMP0_BP0_Pos             2UL
109 #define LPCOMP_CMP0_SW_CMP0_BP0_Msk             0x4UL
110 #define LPCOMP_CMP0_SW_CMP0_IN0_Pos             4UL
111 #define LPCOMP_CMP0_SW_CMP0_IN0_Msk             0x10UL
112 #define LPCOMP_CMP0_SW_CMP0_AN0_Pos             5UL
113 #define LPCOMP_CMP0_SW_CMP0_AN0_Msk             0x20UL
114 #define LPCOMP_CMP0_SW_CMP0_BN0_Pos             6UL
115 #define LPCOMP_CMP0_SW_CMP0_BN0_Msk             0x40UL
116 #define LPCOMP_CMP0_SW_CMP0_VN0_Pos             7UL
117 #define LPCOMP_CMP0_SW_CMP0_VN0_Msk             0x80UL
118 /* LPCOMP.CMP0_SW_CLEAR */
119 #define LPCOMP_CMP0_SW_CLEAR_CMP0_IP0_Pos       0UL
120 #define LPCOMP_CMP0_SW_CLEAR_CMP0_IP0_Msk       0x1UL
121 #define LPCOMP_CMP0_SW_CLEAR_CMP0_AP0_Pos       1UL
122 #define LPCOMP_CMP0_SW_CLEAR_CMP0_AP0_Msk       0x2UL
123 #define LPCOMP_CMP0_SW_CLEAR_CMP0_BP0_Pos       2UL
124 #define LPCOMP_CMP0_SW_CLEAR_CMP0_BP0_Msk       0x4UL
125 #define LPCOMP_CMP0_SW_CLEAR_CMP0_IN0_Pos       4UL
126 #define LPCOMP_CMP0_SW_CLEAR_CMP0_IN0_Msk       0x10UL
127 #define LPCOMP_CMP0_SW_CLEAR_CMP0_AN0_Pos       5UL
128 #define LPCOMP_CMP0_SW_CLEAR_CMP0_AN0_Msk       0x20UL
129 #define LPCOMP_CMP0_SW_CLEAR_CMP0_BN0_Pos       6UL
130 #define LPCOMP_CMP0_SW_CLEAR_CMP0_BN0_Msk       0x40UL
131 #define LPCOMP_CMP0_SW_CLEAR_CMP0_VN0_Pos       7UL
132 #define LPCOMP_CMP0_SW_CLEAR_CMP0_VN0_Msk       0x80UL
133 /* LPCOMP.CMP1_CTRL */
134 #define LPCOMP_CMP1_CTRL_MODE1_Pos              0UL
135 #define LPCOMP_CMP1_CTRL_MODE1_Msk              0x3UL
136 #define LPCOMP_CMP1_CTRL_HYST1_Pos              5UL
137 #define LPCOMP_CMP1_CTRL_HYST1_Msk              0x20UL
138 #define LPCOMP_CMP1_CTRL_INTTYPE1_Pos           6UL
139 #define LPCOMP_CMP1_CTRL_INTTYPE1_Msk           0xC0UL
140 #define LPCOMP_CMP1_CTRL_DSI_BYPASS1_Pos        10UL
141 #define LPCOMP_CMP1_CTRL_DSI_BYPASS1_Msk        0x400UL
142 #define LPCOMP_CMP1_CTRL_DSI_LEVEL1_Pos         11UL
143 #define LPCOMP_CMP1_CTRL_DSI_LEVEL1_Msk         0x800UL
144 /* LPCOMP.CMP1_SW */
145 #define LPCOMP_CMP1_SW_CMP1_IP1_Pos             0UL
146 #define LPCOMP_CMP1_SW_CMP1_IP1_Msk             0x1UL
147 #define LPCOMP_CMP1_SW_CMP1_AP1_Pos             1UL
148 #define LPCOMP_CMP1_SW_CMP1_AP1_Msk             0x2UL
149 #define LPCOMP_CMP1_SW_CMP1_BP1_Pos             2UL
150 #define LPCOMP_CMP1_SW_CMP1_BP1_Msk             0x4UL
151 #define LPCOMP_CMP1_SW_CMP1_IN1_Pos             4UL
152 #define LPCOMP_CMP1_SW_CMP1_IN1_Msk             0x10UL
153 #define LPCOMP_CMP1_SW_CMP1_AN1_Pos             5UL
154 #define LPCOMP_CMP1_SW_CMP1_AN1_Msk             0x20UL
155 #define LPCOMP_CMP1_SW_CMP1_BN1_Pos             6UL
156 #define LPCOMP_CMP1_SW_CMP1_BN1_Msk             0x40UL
157 #define LPCOMP_CMP1_SW_CMP1_VN1_Pos             7UL
158 #define LPCOMP_CMP1_SW_CMP1_VN1_Msk             0x80UL
159 /* LPCOMP.CMP1_SW_CLEAR */
160 #define LPCOMP_CMP1_SW_CLEAR_CMP1_IP1_Pos       0UL
161 #define LPCOMP_CMP1_SW_CLEAR_CMP1_IP1_Msk       0x1UL
162 #define LPCOMP_CMP1_SW_CLEAR_CMP1_AP1_Pos       1UL
163 #define LPCOMP_CMP1_SW_CLEAR_CMP1_AP1_Msk       0x2UL
164 #define LPCOMP_CMP1_SW_CLEAR_CMP1_BP1_Pos       2UL
165 #define LPCOMP_CMP1_SW_CLEAR_CMP1_BP1_Msk       0x4UL
166 #define LPCOMP_CMP1_SW_CLEAR_CMP1_IN1_Pos       4UL
167 #define LPCOMP_CMP1_SW_CLEAR_CMP1_IN1_Msk       0x10UL
168 #define LPCOMP_CMP1_SW_CLEAR_CMP1_AN1_Pos       5UL
169 #define LPCOMP_CMP1_SW_CLEAR_CMP1_AN1_Msk       0x20UL
170 #define LPCOMP_CMP1_SW_CLEAR_CMP1_BN1_Pos       6UL
171 #define LPCOMP_CMP1_SW_CLEAR_CMP1_BN1_Msk       0x40UL
172 #define LPCOMP_CMP1_SW_CLEAR_CMP1_VN1_Pos       7UL
173 #define LPCOMP_CMP1_SW_CLEAR_CMP1_VN1_Msk       0x80UL
174 
175 
176 #endif /* _CYIP_LPCOMP_V2_H_ */
177 
178 
179 /* [] END OF FILE */
180