VSF Documented
vsf_dw_apb_i2c_reg.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Copyright(C)2009-2022 by VSF Team *
3 * *
4 * Licensed under the Apache License, Version 2.0 (the "License"); *
5 * you may not use this file except in compliance with the License. *
6 * You may obtain a copy of the License at *
7 * *
8 * http://www.apache.org/licenses/LICENSE-2.0 *
9 * *
10 * Unless required by applicable law or agreed to in writing, software *
11 * distributed under the License is distributed on an "AS IS" BASIS, *
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13 * See the License for the specific language governing permissions and *
14 * limitations under the License. *
15 * *
16 ****************************************************************************/
17
18#ifndef __VSF_DW_APB_I2C_REG_H__
19#define __VSF_DW_APB_I2C_REG_H__
20
21/*============================ INCLUDES ======================================*/
22
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
34/*============================ MACROS ========================================*/
35
36/* Define structure member permissions : read only/write only/read write */
37#ifndef __IM
38# define __IM const
39#endif
40#ifndef __OM
41# define __OM
42#endif
43#ifndef __IOM
44# define __IOM
45#endif
46
47/*============================ MACROFIED FUNCTIONS ===========================*/
48
49#ifndef VSF_DEF_REG
50# define VSF_DEF_REG(__NAME, __TOTAL_SIZE, ...) \
51 union { \
52 struct { \
53 __VA_ARGS__ \
54 }; \
55 reg##__TOTAL_SIZE##_t VALUE; \
56 } __NAME
57#endif
58
59/*============================ TYPES =========================================*/
60
61// refer to: https://www.intel.com/content/www/us/en/programmable/hps/stratix-10/index.html#uvh1505405814792.html
62typedef struct vsf_dw_apb_i2c_reg_t {
63 VSF_DEF_REG(IC_CON, 32,
64 __IOM reg32_t MASTER_MODE : 1;
65 __IOM reg32_t SPEED : 2;
66 __IOM reg32_t IC_10BITADDR_SLAVE : 1;
67 __IOM reg32_t IC_10BITADDR_MASTER : 1;
68 __IOM reg32_t IC_RESTART_EN : 1;
69 __IOM reg32_t IC_SLAVE_DISABLE : 1;
70 __IOM reg32_t STOP_DET_IFADDRESSED : 1;
71 __IOM reg32_t TX_EMPTY_CTRL : 1;
72 __IOM reg32_t RX_FIFO_FULL_HLD_CTRL : 1;
73 __IM reg32_t STOP_DET_IF_MASTER_ACTIVE : 1;
74 );
75 VSF_DEF_REG(IC_TAR, 32,
76 __IOM reg32_t IC_TAR : 10;
77 __IOM reg32_t GC_OR_START : 1;
78 __IOM reg32_t SPECIAL : 1;
79 __IOM reg32_t IC_10BITADDR_MASTER : 1;
80 );
81 VSF_DEF_REG(IC_SAR, 32,
82 __IOM reg32_t IC_SAR : 10;
83 );
84 VSF_DEF_REG(IC_HS_MADDR, 32,
85 __IOM reg32_t HS_MADDR : 3;
86 );
87 VSF_DEF_REG(IC_DATA_CMD, 32,
88 __IOM reg32_t DAT : 8;
89 __OM reg32_t CMD : 1;
90 __OM reg32_t STOP : 1;
91 __OM reg32_t RESTART : 1;
92 __IM reg32_t FIRST_DATA_BYTE : 1;
93 );
94 VSF_DEF_REG(IC_SS_SCL_HCNT, 32,
95 __IOM reg32_t IC_SS_SCL_HCNT : 16;
96 );
97 VSF_DEF_REG(IC_SS_SCL_LCNT, 32,
98 __IOM reg32_t IC_SS_SCL_LCNT : 16;
99 );
100 VSF_DEF_REG(IC_FS_SCL_HCNT, 32,
101 __IOM reg32_t IC_FS_SCL_HCNT : 16;
102 );
103 VSF_DEF_REG(IC_FS_SCL_LCNT, 32,
104 __IOM reg32_t IC_FS_SCL_LCNT : 16;
105 );
106 VSF_DEF_REG(IC_HS_SCL_HCNT, 32,
107 __IOM reg32_t IC_HS_SCL_HCNT : 16;
108 );
109 VSF_DEF_REG(IC_HS_SCL_LCNT, 32,
110 __IOM reg32_t IC_HS_SCL_LCNT : 16;
111 );
112 VSF_DEF_REG(IC_INTR_STAT, 32,
113 __IM reg32_t R_RX_UNDER : 1;
114 __IM reg32_t R_RX_OVER : 1;
115 __IM reg32_t R_RX_FULL : 1;
116 __IM reg32_t R_TX_OVER : 1;
117 __IM reg32_t R_TX_EMPTY : 1;
118 __IM reg32_t R_RD_REQ : 1;
119 __IM reg32_t R_TX_ABRT : 1;
120 __IM reg32_t R_RX_DONE : 1;
121 __IM reg32_t R_ACTIVITY : 1;
122 __IM reg32_t R_STOP_DET : 1;
123 __IM reg32_t R_START_DET : 1;
124 __IM reg32_t R_GEN_CALL : 1;
125 __IM reg32_t R_RESTART_DET : 1;
126 __IM reg32_t R_MASTER_ON_HOLD : 1;
127 );
128 VSF_DEF_REG(IC_INTR_MASK, 32,
129 __IOM reg32_t M_RX_UNDER : 1;
130 __IOM reg32_t M_RX_OVER : 1;
131 __IOM reg32_t M_RX_FULL : 1;
132 __IOM reg32_t M_TX_OVER : 1;
133 __IOM reg32_t M_TX_EMPTY : 1;
134 __IOM reg32_t M_RD_REQ : 1;
135 __IOM reg32_t M_TX_ABRT : 1;
136 __IOM reg32_t M_RX_DONE : 1;
137 __IOM reg32_t M_ACTIVITY : 1;
138 __IOM reg32_t M_STOP_DET : 1;
139 __IOM reg32_t M_START_DET : 1;
140 __IOM reg32_t M_GEN_CALL : 1;
141 __IOM reg32_t M_RESTART_DET : 1;
142 __IOM reg32_t M_MASTER_ON_HOLD : 1;
143 );
144 VSF_DEF_REG(IC_RAW_INTR_STAT, 32,
145 __IM reg32_t RX_UNDER : 1;
146 __IM reg32_t RX_OVER : 1;
147 __IM reg32_t RX_FULL : 1;
148 __IM reg32_t TX_OVER : 1;
149 __IM reg32_t TX_EMPTY : 1;
150 __IM reg32_t RD_REQ : 1;
151 __IM reg32_t TX_ABRT : 1;
152 __IM reg32_t RX_DONE : 1;
153 __IM reg32_t ACTIVITY : 1;
154 __IM reg32_t STOP_DET : 1;
155 __IM reg32_t START_DET : 1;
156 __IM reg32_t GEN_CALL : 1;
157 __IM reg32_t RESTART_DET : 1;
158 __IOM reg32_t MASTER_ON_HOLD : 1;
159 );
160 VSF_DEF_REG(IC_RX_TL, 32,
161 __IOM reg32_t RX_TL : 8;
162 );
163 VSF_DEF_REG(IC_TX_TL, 32,
164 __IOM reg32_t TX_TL : 8;
165 );
166 VSF_DEF_REG(IC_CLR_INTR, 32,
167 __IM reg32_t CLR_INTR : 1;
168 );
169 VSF_DEF_REG(IC_CLR_RX_UNDER, 32,
170 __IM reg32_t CLR_RX_UNDER : 1;
171 );
172 VSF_DEF_REG(IC_CLR_RX_OVER, 32,
173 __IM reg32_t CLR_RX_OVER : 1;
174 );
175 VSF_DEF_REG(IC_CLR_TX_OVER, 32,
176 __IM reg32_t CLR_TX_OVER : 1;
177 );
178 VSF_DEF_REG(IC_CLR_RD_REQ, 32,
179 __IM reg32_t CLR_RD_REQ : 1;
180 );
181 VSF_DEF_REG(IC_CLR_TX_ABRT, 32,
182 __IM reg32_t CLR_TX_ABRT : 1;
183 );
184 VSF_DEF_REG(IC_CLR_RX_DONE, 32,
185 __IM reg32_t CLR_RX_DONE : 1;
186 );
187 VSF_DEF_REG(IC_CLR_ACTIVITY, 32,
188 __IM reg32_t CLR_ACTIVITY : 1;
189 );
190 VSF_DEF_REG(IC_CLR_STOP_DET, 32,
191 __IM reg32_t CLR_STOP_DET : 1;
192 );
193 VSF_DEF_REG(IC_CLR_START_DET, 32,
194 __IM reg32_t CLR_START_DET : 1;
195 );
196 VSF_DEF_REG(IC_CLR_GEN_CALL, 32,
197 __IM reg32_t CLR_GEN_CALL : 1;
198 );
199 VSF_DEF_REG(IC_ENABLE, 32,
200 __IOM reg32_t ENABLE : 1;
201 __IOM reg32_t ABORT : 1;
202 __IOM reg32_t TX_CMD_BLOCK : 1;
203 );
204 VSF_DEF_REG(IC_STATUS, 32,
205 __IM reg32_t IC_STATUS_ACTIVITY : 1;
206 __IM reg32_t TFNF : 1;
207 __IM reg32_t TFE : 1;
208 __IM reg32_t RFNE : 1;
209 __IM reg32_t RFF : 1;
210 __IM reg32_t MST_AVTIVITY : 1;
211 __IM reg32_t SLV_ACTIVITY : 1;
212 );
213 VSF_DEF_REG(IC_TXFLR, 32,
214 __IM reg32_t TXFLR : 7;
215 );
216 VSF_DEF_REG(IC_RXFLR, 32,
217 __IM reg32_t RXFLR : 7;
218 );
219 VSF_DEF_REG(IC_SDA_HOLD, 32,
220 __IOM reg32_t IC_SDA_TX_HOLD : 16;
221 __IOM reg32_t IC_SDA_RX_HOLD : 8;
222 );
223 VSF_DEF_REG(IC_TX_ABRT_SOURCE, 32,
224 __IM reg32_t ABRT_7B_ADDR_NOACK : 1;
225 __IM reg32_t ABRT_10ADDR1_NOACK : 1;
226 __IM reg32_t ABRT_10ADDR2_NOACK : 1;
227 __IM reg32_t ABRT_TXDATA_NOACK : 1;
228 __IM reg32_t ABRT_GCALL_NOACK : 1;
229 __IM reg32_t ABRT_GCALL_READ : 1;
230 __IM reg32_t ABRT_HS_ACKDET : 1;
231 __IM reg32_t ABRT_SBYTE_ACKDET : 1;
232 __IM reg32_t ABRT_HS_NORSTRT : 1;
233 __IM reg32_t ABRT_SBYTE_NORSTRT : 1;
234 __IM reg32_t ABRT_10B_RD_NORSTRT : 1;
235 __IM reg32_t ABRT_MASTER_DIS : 1;
236 __IM reg32_t ARB_LOST : 1;
237 __IM reg32_t ABRT_SLVFLUSH_TXFIFO : 1;
238 __IM reg32_t ABRT_SLV_ARBLOST : 1;
239 __IM reg32_t ABRT_SLVRD_INTX : 1;
240 __IM reg32_t ABRT_USER_ABRT : 1;
241 __IM reg32_t : 6;
242 __IM reg32_t ABRT_TX_FLUSH_CNT : 9;
243 );
244 VSF_DEF_REG(IC_SLV_DATA_NACK_ONLY, 32,
245 __IOM reg32_t NACK : 1;
246 );
247 VSF_DEF_REG(IC_DMA_CR, 32,
248 __IOM reg32_t RDMAE : 1;
249 __IOM reg32_t TDMAE : 1;
250 );
251 VSF_DEF_REG(IC_DMA_TDLR, 32,
252 __IOM reg32_t DMATDL : 6;
253 );
254 VSF_DEF_REG(IC_DMA_RDLR, 32,
255 __IOM reg32_t DMARDL : 6;
256 );
257 VSF_DEF_REG(IC_SDA_SETUP, 32,
258 __IOM reg32_t SDA_SETUP : 8;
259 );
260 VSF_DEF_REG(IC_ACK_GENERAL_CALL, 32,
261 __IOM reg32_t ACK_GEN_CALL : 1;
262 );
263 VSF_DEF_REG(IC_ENABLE_STATUS, 32,
264 __IM reg32_t IC_EN : 1;
265 __IM reg32_t SLV_DISABLED_WHILE_BUSY : 1;
266 __IM reg32_t SLV_RX_DATA_LOST : 1;
267 );
268 VSF_DEF_REG(IC_FS_SPKLEN, 32,
269 __IOM reg32_t IC_FS_SPKLEN : 8;
270 );
271 VSF_DEF_REG(IC_HS_SPKLEN, 32,
272 __IOM reg32_t IC_HS_SPKLEN : 8;
273 );
274 VSF_DEF_REG(IC_CLR_RESTART_DET, 32,
275 __IM reg32_t CLR_RESTART_DET : 1;
276 );
277 REG_RSVD_U32N(18)
278 VSF_DEF_REG(IC_COMP_PARAM_1, 32,
279 __IM reg32_t APB_DATA_WIDTH : 2;
280 __IM reg32_t MAX_SPEED_MODE : 2;
281 __IM reg32_t HC_COUNT_VALUES : 1;
282 __IM reg32_t INTR_IO : 1;
283 __IM reg32_t HAS_DMA : 1;
284 __IM reg32_t ADD_ENCODED_PARAMS : 1;
285 __IM reg32_t RX_BUFFER_DEPTH : 8;
286 __IM reg32_t TX_BUFFER_DEPTH : 8;
287 );
288 VSF_DEF_REG(IC_COMP_VERSION, 32,
289 __IM reg32_t IC_COMP_VERSION : 32;
290 );
291 VSF_DEF_REG(IC_COMP_TYPE, 32,
292 __IM reg32_t IC_COMP_TYPE : 32;
293 );
295
296
297#ifdef __cplusplus
298}
299#endif
300
301#endif
302
303/* EOF */
#define TFE
Definition GLCD_V2M-MPS2.c:52
volatile uint32_t reg32_t
Definition i_io_systick.h:120
#define REG_RSVD_U32N(__N)
Definition i_io_systick.h:142
@ ENABLE
Definition sthal.h:57
Definition vsf_dw_apb_i2c_reg.h:62
VSF_DEF_REG(IC_FS_SCL_LCNT, 32, __IOM reg32_t IC_FS_SCL_LCNT :16;)
VSF_DEF_REG(IC_CLR_START_DET, 32, __IM reg32_t CLR_START_DET :1;)
VSF_DEF_REG(IC_ENABLE_STATUS, 32, __IM reg32_t IC_EN :1;__IM reg32_t SLV_DISABLED_WHILE_BUSY :1;__IM reg32_t SLV_RX_DATA_LOST :1;)
VSF_DEF_REG(IC_CON, 32, __IOM reg32_t MASTER_MODE :1;__IOM reg32_t SPEED :2;__IOM reg32_t IC_10BITADDR_SLAVE :1;__IOM reg32_t IC_10BITADDR_MASTER :1;__IOM reg32_t IC_RESTART_EN :1;__IOM reg32_t IC_SLAVE_DISABLE :1;__IOM reg32_t STOP_DET_IFADDRESSED :1;__IOM reg32_t TX_EMPTY_CTRL :1;__IOM reg32_t RX_FIFO_FULL_HLD_CTRL :1;__IM reg32_t STOP_DET_IF_MASTER_ACTIVE :1;)
VSF_DEF_REG(IC_RX_TL, 32, __IOM reg32_t RX_TL :8;)
VSF_DEF_REG(IC_DMA_TDLR, 32, __IOM reg32_t DMATDL :6;)
VSF_DEF_REG(IC_ACK_GENERAL_CALL, 32, __IOM reg32_t ACK_GEN_CALL :1;)
VSF_DEF_REG(IC_CLR_RESTART_DET, 32, __IM reg32_t CLR_RESTART_DET :1;)
VSF_DEF_REG(IC_FS_SCL_HCNT, 32, __IOM reg32_t IC_FS_SCL_HCNT :16;)
VSF_DEF_REG(IC_TX_ABRT_SOURCE, 32, __IM reg32_t ABRT_7B_ADDR_NOACK :1;__IM reg32_t ABRT_10ADDR1_NOACK :1;__IM reg32_t ABRT_10ADDR2_NOACK :1;__IM reg32_t ABRT_TXDATA_NOACK :1;__IM reg32_t ABRT_GCALL_NOACK :1;__IM reg32_t ABRT_GCALL_READ :1;__IM reg32_t ABRT_HS_ACKDET :1;__IM reg32_t ABRT_SBYTE_ACKDET :1;__IM reg32_t ABRT_HS_NORSTRT :1;__IM reg32_t ABRT_SBYTE_NORSTRT :1;__IM reg32_t ABRT_10B_RD_NORSTRT :1;__IM reg32_t ABRT_MASTER_DIS :1;__IM reg32_t ARB_LOST :1;__IM reg32_t ABRT_SLVFLUSH_TXFIFO :1;__IM reg32_t ABRT_SLV_ARBLOST :1;__IM reg32_t ABRT_SLVRD_INTX :1;__IM reg32_t ABRT_USER_ABRT :1;__IM reg32_t :6;__IM reg32_t ABRT_TX_FLUSH_CNT :9;)
VSF_DEF_REG(IC_SS_SCL_HCNT, 32, __IOM reg32_t IC_SS_SCL_HCNT :16;)
VSF_DEF_REG(IC_CLR_INTR, 32, __IM reg32_t CLR_INTR :1;)
VSF_DEF_REG(IC_TX_TL, 32, __IOM reg32_t TX_TL :8;)
VSF_DEF_REG(IC_RXFLR, 32, __IM reg32_t RXFLR :7;)
VSF_DEF_REG(IC_CLR_RD_REQ, 32, __IM reg32_t CLR_RD_REQ :1;)
VSF_DEF_REG(IC_CLR_TX_OVER, 32, __IM reg32_t CLR_TX_OVER :1;)
VSF_DEF_REG(IC_TXFLR, 32, __IM reg32_t TXFLR :7;)
VSF_DEF_REG(IC_DMA_CR, 32, __IOM reg32_t RDMAE :1;__IOM reg32_t TDMAE :1;)
VSF_DEF_REG(IC_ENABLE, 32, __IOM reg32_t ENABLE :1;__IOM reg32_t ABORT :1;__IOM reg32_t TX_CMD_BLOCK :1;)
VSF_DEF_REG(IC_RAW_INTR_STAT, 32, __IM reg32_t RX_UNDER :1;__IM reg32_t RX_OVER :1;__IM reg32_t RX_FULL :1;__IM reg32_t TX_OVER :1;__IM reg32_t TX_EMPTY :1;__IM reg32_t RD_REQ :1;__IM reg32_t TX_ABRT :1;__IM reg32_t RX_DONE :1;__IM reg32_t ACTIVITY :1;__IM reg32_t STOP_DET :1;__IM reg32_t START_DET :1;__IM reg32_t GEN_CALL :1;__IM reg32_t RESTART_DET :1;__IOM reg32_t MASTER_ON_HOLD :1;)
VSF_DEF_REG(IC_CLR_RX_DONE, 32, __IM reg32_t CLR_RX_DONE :1;)
VSF_DEF_REG(IC_DATA_CMD, 32, __IOM reg32_t DAT :8;__OM reg32_t CMD :1;__OM reg32_t STOP :1;__OM reg32_t RESTART :1;__IM reg32_t FIRST_DATA_BYTE :1;)
VSF_DEF_REG(IC_DMA_RDLR, 32, __IOM reg32_t DMARDL :6;)
VSF_DEF_REG(IC_HS_SCL_LCNT, 32, __IOM reg32_t IC_HS_SCL_LCNT :16;)
VSF_DEF_REG(IC_CLR_TX_ABRT, 32, __IM reg32_t CLR_TX_ABRT :1;)
VSF_DEF_REG(IC_STATUS, 32, __IM reg32_t IC_STATUS_ACTIVITY :1;__IM reg32_t TFNF :1;__IM reg32_t TFE :1;__IM reg32_t RFNE :1;__IM reg32_t RFF :1;__IM reg32_t MST_AVTIVITY :1;__IM reg32_t SLV_ACTIVITY :1;)
VSF_DEF_REG(IC_CLR_ACTIVITY, 32, __IM reg32_t CLR_ACTIVITY :1;)
VSF_DEF_REG(IC_INTR_STAT, 32, __IM reg32_t R_RX_UNDER :1;__IM reg32_t R_RX_OVER :1;__IM reg32_t R_RX_FULL :1;__IM reg32_t R_TX_OVER :1;__IM reg32_t R_TX_EMPTY :1;__IM reg32_t R_RD_REQ :1;__IM reg32_t R_TX_ABRT :1;__IM reg32_t R_RX_DONE :1;__IM reg32_t R_ACTIVITY :1;__IM reg32_t R_STOP_DET :1;__IM reg32_t R_START_DET :1;__IM reg32_t R_GEN_CALL :1;__IM reg32_t R_RESTART_DET :1;__IM reg32_t R_MASTER_ON_HOLD :1;)
VSF_DEF_REG(IC_SS_SCL_LCNT, 32, __IOM reg32_t IC_SS_SCL_LCNT :16;)
VSF_DEF_REG(IC_CLR_GEN_CALL, 32, __IM reg32_t CLR_GEN_CALL :1;)
VSF_DEF_REG(IC_HS_MADDR, 32, __IOM reg32_t HS_MADDR :3;)
VSF_DEF_REG(IC_HS_SCL_HCNT, 32, __IOM reg32_t IC_HS_SCL_HCNT :16;)
VSF_DEF_REG(IC_CLR_RX_UNDER, 32, __IM reg32_t CLR_RX_UNDER :1;)
VSF_DEF_REG(IC_INTR_MASK, 32, __IOM reg32_t M_RX_UNDER :1;__IOM reg32_t M_RX_OVER :1;__IOM reg32_t M_RX_FULL :1;__IOM reg32_t M_TX_OVER :1;__IOM reg32_t M_TX_EMPTY :1;__IOM reg32_t M_RD_REQ :1;__IOM reg32_t M_TX_ABRT :1;__IOM reg32_t M_RX_DONE :1;__IOM reg32_t M_ACTIVITY :1;__IOM reg32_t M_STOP_DET :1;__IOM reg32_t M_START_DET :1;__IOM reg32_t M_GEN_CALL :1;__IOM reg32_t M_RESTART_DET :1;__IOM reg32_t M_MASTER_ON_HOLD :1;)
VSF_DEF_REG(IC_CLR_STOP_DET, 32, __IM reg32_t CLR_STOP_DET :1;)
VSF_DEF_REG(IC_TAR, 32, __IOM reg32_t IC_TAR :10;__IOM reg32_t GC_OR_START :1;__IOM reg32_t SPECIAL :1;__IOM reg32_t IC_10BITADDR_MASTER :1;)
VSF_DEF_REG(IC_FS_SPKLEN, 32, __IOM reg32_t IC_FS_SPKLEN :8;)
VSF_DEF_REG(IC_SAR, 32, __IOM reg32_t IC_SAR :10;)
VSF_DEF_REG(IC_SDA_SETUP, 32, __IOM reg32_t SDA_SETUP :8;)
VSF_DEF_REG(IC_CLR_RX_OVER, 32, __IM reg32_t CLR_RX_OVER :1;)
VSF_DEF_REG(IC_SLV_DATA_NACK_ONLY, 32, __IOM reg32_t NACK :1;)
VSF_DEF_REG(IC_SDA_HOLD, 32, __IOM reg32_t IC_SDA_TX_HOLD :16;__IOM reg32_t IC_SDA_RX_HOLD :8;)
VSF_DEF_REG(IC_HS_SPKLEN, 32, __IOM reg32_t IC_HS_SPKLEN :8;)
#define ABORT
Definition telnet.h:36
#define __OM
Definition vsf_dw_apb_i2c_reg.h:41
#define VSF_DEF_REG(__NAME, __TOTAL_SIZE,...)
Definition vsf_dw_apb_i2c_reg.h:50
#define __IM
Definition vsf_dw_apb_i2c_reg.h:38
#define __IOM
Definition vsf_dw_apb_i2c_reg.h:44