MAX32520 Peripheral Driver API
Peripheral Driver API for the MAX32520
i2c_regs.h
Go to the documentation of this file.
1
8/******************************************************************************
9 *
10 * Copyright (C) 2022-2023 Maxim Integrated Products, Inc. (now owned by
11 * Analog Devices, Inc.),
12 * Copyright (C) 2023-2024 Analog Devices, Inc.
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
28#ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_I2C_REGS_H_
29#define LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_I2C_REGS_H_
30
31/* **** Includes **** */
32#include <stdint.h>
33
34#ifdef __cplusplus
35extern "C" {
36#endif
37
38#if defined (__ICCARM__)
39 #pragma system_include
40#endif
41
42#if defined (__CC_ARM)
43 #pragma anon_unions
44#endif
46/*
47 If types are not defined elsewhere (CMSIS) define them here
48*/
49#ifndef __IO
50#define __IO volatile
51#endif
52#ifndef __I
53#define __I volatile const
54#endif
55#ifndef __O
56#define __O volatile
57#endif
58#ifndef __R
59#define __R volatile const
60#endif
62
63/* **** Definitions **** */
64
76typedef struct {
77 __IO uint32_t cn;
78 __IO uint32_t st;
79 __IO uint32_t int0;
80 __IO uint32_t inten0;
81 __IO uint32_t int1;
82 __IO uint32_t inten1;
83 __IO uint32_t fifo;
84 __IO uint32_t rxcfg;
85 __IO uint32_t rx;
86 __IO uint32_t txcfg;
87 __IO uint32_t tx;
88 __IO uint32_t data;
89 __IO uint32_t mcn;
90 __IO uint32_t ckl;
91 __IO uint32_t ckh;
92 __R uint32_t rsv_0x3c;
93 __IO uint32_t to;
94 __R uint32_t rsv_0x44;
95 __IO uint32_t dma;
96 __IO uint32_t sla;
98
99/* Register offsets for module I2C */
106#define MXC_R_I2C_CN ((uint32_t)0x00000000UL)
107#define MXC_R_I2C_ST ((uint32_t)0x00000004UL)
108#define MXC_R_I2C_INT0 ((uint32_t)0x00000008UL)
109#define MXC_R_I2C_INTEN0 ((uint32_t)0x0000000CUL)
110#define MXC_R_I2C_INT1 ((uint32_t)0x00000010UL)
111#define MXC_R_I2C_INTEN1 ((uint32_t)0x00000014UL)
112#define MXC_R_I2C_FIFO ((uint32_t)0x00000018UL)
113#define MXC_R_I2C_RXCFG ((uint32_t)0x0000001CUL)
114#define MXC_R_I2C_RX ((uint32_t)0x00000020UL)
115#define MXC_R_I2C_TXCFG ((uint32_t)0x00000024UL)
116#define MXC_R_I2C_TX ((uint32_t)0x00000028UL)
117#define MXC_R_I2C_DATA ((uint32_t)0x0000002CUL)
118#define MXC_R_I2C_MCN ((uint32_t)0x00000030UL)
119#define MXC_R_I2C_CKL ((uint32_t)0x00000034UL)
120#define MXC_R_I2C_CKH ((uint32_t)0x00000038UL)
121#define MXC_R_I2C_TO ((uint32_t)0x00000040UL)
122#define MXC_R_I2C_DMA ((uint32_t)0x00000048UL)
123#define MXC_R_I2C_SLA ((uint32_t)0x0000004CUL)
132#define MXC_F_I2C_CN_I2CEN_POS 0
133#define MXC_F_I2C_CN_I2CEN ((uint32_t)(0x1UL << MXC_F_I2C_CN_I2CEN_POS))
135#define MXC_F_I2C_CN_MST_POS 1
136#define MXC_F_I2C_CN_MST ((uint32_t)(0x1UL << MXC_F_I2C_CN_MST_POS))
138#define MXC_F_I2C_CN_GCEN_POS 2
139#define MXC_F_I2C_CN_GCEN ((uint32_t)(0x1UL << MXC_F_I2C_CN_GCEN_POS))
141#define MXC_F_I2C_CN_IRXM_POS 3
142#define MXC_F_I2C_CN_IRXM ((uint32_t)(0x1UL << MXC_F_I2C_CN_IRXM_POS))
144#define MXC_F_I2C_CN_ACK_POS 4
145#define MXC_F_I2C_CN_ACK ((uint32_t)(0x1UL << MXC_F_I2C_CN_ACK_POS))
147#define MXC_F_I2C_CN_SCLO_POS 6
148#define MXC_F_I2C_CN_SCLO ((uint32_t)(0x1UL << MXC_F_I2C_CN_SCLO_POS))
150#define MXC_F_I2C_CN_SDAO_POS 7
151#define MXC_F_I2C_CN_SDAO ((uint32_t)(0x1UL << MXC_F_I2C_CN_SDAO_POS))
153#define MXC_F_I2C_CN_SCL_POS 8
154#define MXC_F_I2C_CN_SCL ((uint32_t)(0x1UL << MXC_F_I2C_CN_SCL_POS))
156#define MXC_F_I2C_CN_SDA_POS 9
157#define MXC_F_I2C_CN_SDA ((uint32_t)(0x1UL << MXC_F_I2C_CN_SDA_POS))
159#define MXC_F_I2C_CN_SWOE_POS 10
160#define MXC_F_I2C_CN_SWOE ((uint32_t)(0x1UL << MXC_F_I2C_CN_SWOE_POS))
162#define MXC_F_I2C_CN_READ_POS 11
163#define MXC_F_I2C_CN_READ ((uint32_t)(0x1UL << MXC_F_I2C_CN_READ_POS))
165#define MXC_F_I2C_CN_SCLSTRD_POS 12
166#define MXC_F_I2C_CN_SCLSTRD ((uint32_t)(0x1UL << MXC_F_I2C_CN_SCLSTRD_POS))
168#define MXC_F_I2C_CN_SCLPPM_POS 13
169#define MXC_F_I2C_CN_SCLPPM ((uint32_t)(0x1UL << MXC_F_I2C_CN_SCLPPM_POS))
179#define MXC_F_I2C_ST_BUS_POS 0
180#define MXC_F_I2C_ST_BUS ((uint32_t)(0x1UL << MXC_F_I2C_ST_BUS_POS))
182#define MXC_F_I2C_ST_RXE_POS 1
183#define MXC_F_I2C_ST_RXE ((uint32_t)(0x1UL << MXC_F_I2C_ST_RXE_POS))
185#define MXC_F_I2C_ST_RXF_POS 2
186#define MXC_F_I2C_ST_RXF ((uint32_t)(0x1UL << MXC_F_I2C_ST_RXF_POS))
188#define MXC_F_I2C_ST_TXE_POS 3
189#define MXC_F_I2C_ST_TXE ((uint32_t)(0x1UL << MXC_F_I2C_ST_TXE_POS))
191#define MXC_F_I2C_ST_TXF_POS 4
192#define MXC_F_I2C_ST_TXF ((uint32_t)(0x1UL << MXC_F_I2C_ST_TXF_POS))
194#define MXC_F_I2C_ST_CKMD_POS 5
195#define MXC_F_I2C_ST_CKMD ((uint32_t)(0x1UL << MXC_F_I2C_ST_CKMD_POS))
197#define MXC_F_I2C_ST_ST_POS 8
198#define MXC_F_I2C_ST_ST ((uint32_t)(0xFUL << MXC_F_I2C_ST_ST_POS))
208#define MXC_F_I2C_INT0_DONEI_POS 0
209#define MXC_F_I2C_INT0_DONEI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_DONEI_POS))
211#define MXC_F_I2C_INT0_IRXMI_POS 1
212#define MXC_F_I2C_INT0_IRXMI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_IRXMI_POS))
214#define MXC_F_I2C_INT0_GCI_POS 2
215#define MXC_F_I2C_INT0_GCI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_GCI_POS))
217#define MXC_F_I2C_INT0_AMI_POS 3
218#define MXC_F_I2C_INT0_AMI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_AMI_POS))
220#define MXC_F_I2C_INT0_RXTHI_POS 4
221#define MXC_F_I2C_INT0_RXTHI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_RXTHI_POS))
223#define MXC_F_I2C_INT0_TXTHI_POS 5
224#define MXC_F_I2C_INT0_TXTHI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_TXTHI_POS))
226#define MXC_F_I2C_INT0_STOPI_POS 6
227#define MXC_F_I2C_INT0_STOPI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_STOPI_POS))
229#define MXC_F_I2C_INT0_ADRACKI_POS 7
230#define MXC_F_I2C_INT0_ADRACKI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_ADRACKI_POS))
232#define MXC_F_I2C_INT0_ARBERI_POS 8
233#define MXC_F_I2C_INT0_ARBERI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_ARBERI_POS))
235#define MXC_F_I2C_INT0_TOERI_POS 9
236#define MXC_F_I2C_INT0_TOERI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_TOERI_POS))
238#define MXC_F_I2C_INT0_ADRERI_POS 10
239#define MXC_F_I2C_INT0_ADRERI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_ADRERI_POS))
241#define MXC_F_I2C_INT0_DATERI_POS 11
242#define MXC_F_I2C_INT0_DATERI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_DATERI_POS))
244#define MXC_F_I2C_INT0_DNRERI_POS 12
245#define MXC_F_I2C_INT0_DNRERI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_DNRERI_POS))
247#define MXC_F_I2C_INT0_STRTERI_POS 13
248#define MXC_F_I2C_INT0_STRTERI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_STRTERI_POS))
250#define MXC_F_I2C_INT0_STOPERI_POS 14
251#define MXC_F_I2C_INT0_STOPERI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_STOPERI_POS))
253#define MXC_F_I2C_INT0_TXLOI_POS 15
254#define MXC_F_I2C_INT0_TXLOI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_TXLOI_POS))
256#define MXC_F_I2C_INT0_RDAMI_POS 22
257#define MXC_F_I2C_INT0_RDAMI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_RDAMI_POS))
259#define MXC_F_I2C_INT0_WRAMI_POS 23
260#define MXC_F_I2C_INT0_WRAMI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_WRAMI_POS))
270#define MXC_F_I2C_INTEN0_DONEIE_POS 0
271#define MXC_F_I2C_INTEN0_DONEIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_DONEIE_POS))
273#define MXC_F_I2C_INTEN0_IRXMIE_POS 1
274#define MXC_F_I2C_INTEN0_IRXMIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_IRXMIE_POS))
276#define MXC_F_I2C_INTEN0_GCIE_POS 2
277#define MXC_F_I2C_INTEN0_GCIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_GCIE_POS))
279#define MXC_F_I2C_INTEN0_AMIE_POS 3
280#define MXC_F_I2C_INTEN0_AMIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_AMIE_POS))
282#define MXC_F_I2C_INTEN0_RXTHIE_POS 4
283#define MXC_F_I2C_INTEN0_RXTHIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_RXTHIE_POS))
285#define MXC_F_I2C_INTEN0_TXTHIE_POS 5
286#define MXC_F_I2C_INTEN0_TXTHIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_TXTHIE_POS))
288#define MXC_F_I2C_INTEN0_STOPIE_POS 6
289#define MXC_F_I2C_INTEN0_STOPIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_STOPIE_POS))
291#define MXC_F_I2C_INTEN0_ADRACKIE_POS 7
292#define MXC_F_I2C_INTEN0_ADRACKIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_ADRACKIE_POS))
294#define MXC_F_I2C_INTEN0_ARBERIE_POS 8
295#define MXC_F_I2C_INTEN0_ARBERIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_ARBERIE_POS))
297#define MXC_F_I2C_INTEN0_TOERIE_POS 9
298#define MXC_F_I2C_INTEN0_TOERIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_TOERIE_POS))
300#define MXC_F_I2C_INTEN0_ADRERIE_POS 10
301#define MXC_F_I2C_INTEN0_ADRERIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_ADRERIE_POS))
303#define MXC_F_I2C_INTEN0_DATERIE_POS 11
304#define MXC_F_I2C_INTEN0_DATERIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_DATERIE_POS))
306#define MXC_F_I2C_INTEN0_DNRERIE_POS 12
307#define MXC_F_I2C_INTEN0_DNRERIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_DNRERIE_POS))
309#define MXC_F_I2C_INTEN0_STRTERIE_POS 13
310#define MXC_F_I2C_INTEN0_STRTERIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_STRTERIE_POS))
312#define MXC_F_I2C_INTEN0_STOPERIE_POS 14
313#define MXC_F_I2C_INTEN0_STOPERIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_STOPERIE_POS))
315#define MXC_F_I2C_INTEN0_TXLOIE_POS 15
316#define MXC_F_I2C_INTEN0_TXLOIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_TXLOIE_POS))
326#define MXC_F_I2C_INT1_RXOFI_POS 0
327#define MXC_F_I2C_INT1_RXOFI ((uint32_t)(0x1UL << MXC_F_I2C_INT1_RXOFI_POS))
329#define MXC_F_I2C_INT1_TXUFI_POS 1
330#define MXC_F_I2C_INT1_TXUFI ((uint32_t)(0x1UL << MXC_F_I2C_INT1_TXUFI_POS))
340#define MXC_F_I2C_INTEN1_RXOFIE_POS 0
341#define MXC_F_I2C_INTEN1_RXOFIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN1_RXOFIE_POS))
343#define MXC_F_I2C_INTEN1_TXUFIE_POS 1
344#define MXC_F_I2C_INTEN1_TXUFIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN1_TXUFIE_POS))
354#define MXC_F_I2C_FIFO_RXLEN_POS 0
355#define MXC_F_I2C_FIFO_RXLEN ((uint32_t)(0xFFUL << MXC_F_I2C_FIFO_RXLEN_POS))
357#define MXC_F_I2C_FIFO_TXLEN_POS 8
358#define MXC_F_I2C_FIFO_TXLEN ((uint32_t)(0xFFUL << MXC_F_I2C_FIFO_TXLEN_POS))
368#define MXC_F_I2C_RXCFG_DNR_POS 0
369#define MXC_F_I2C_RXCFG_DNR ((uint32_t)(0x1UL << MXC_F_I2C_RXCFG_DNR_POS))
371#define MXC_F_I2C_RXCFG_RXFSH_POS 7
372#define MXC_F_I2C_RXCFG_RXFSH ((uint32_t)(0x1UL << MXC_F_I2C_RXCFG_RXFSH_POS))
374#define MXC_F_I2C_RXCFG_RXTH_POS 8
375#define MXC_F_I2C_RXCFG_RXTH ((uint32_t)(0xFUL << MXC_F_I2C_RXCFG_RXTH_POS))
385#define MXC_F_I2C_RX_RXCNT_POS 0
386#define MXC_F_I2C_RX_RXCNT ((uint32_t)(0xFFUL << MXC_F_I2C_RX_RXCNT_POS))
388#define MXC_F_I2C_RX_RXFIFO_POS 8
389#define MXC_F_I2C_RX_RXFIFO ((uint32_t)(0xFUL << MXC_F_I2C_RX_RXFIFO_POS))
399#define MXC_F_I2C_TXCFG_TXPRELD_POS 0
400#define MXC_F_I2C_TXCFG_TXPRELD ((uint32_t)(0x1UL << MXC_F_I2C_TXCFG_TXPRELD_POS))
402#define MXC_F_I2C_TXCFG_TXRDYMMODE_POS 1
403#define MXC_F_I2C_TXCFG_TXRDYMMODE ((uint32_t)(0x1UL << MXC_F_I2C_TXCFG_TXRDYMMODE_POS))
405#define MXC_F_I2C_TXCFG_TXFSH_POS 7
406#define MXC_F_I2C_TXCFG_TXFSH ((uint32_t)(0x1UL << MXC_F_I2C_TXCFG_TXFSH_POS))
408#define MXC_F_I2C_TXCFG_TXTH_POS 8
409#define MXC_F_I2C_TXCFG_TXTH ((uint32_t)(0xFUL << MXC_F_I2C_TXCFG_TXTH_POS))
419#define MXC_F_I2C_TX_TXRDY_POS 0
420#define MXC_F_I2C_TX_TXRDY ((uint32_t)(0x1UL << MXC_F_I2C_TX_TXRDY_POS))
422#define MXC_F_I2C_TX_TXLAST_POS 1
423#define MXC_F_I2C_TX_TXLAST ((uint32_t)(0x1UL << MXC_F_I2C_TX_TXLAST_POS))
425#define MXC_F_I2C_TX_TXFIFO_POS 8
426#define MXC_F_I2C_TX_TXFIFO ((uint32_t)(0xFUL << MXC_F_I2C_TX_TXFIFO_POS))
436#define MXC_F_I2C_DATA_DATA_POS 0
437#define MXC_F_I2C_DATA_DATA ((uint32_t)(0xFFUL << MXC_F_I2C_DATA_DATA_POS))
447#define MXC_F_I2C_MCN_START_POS 0
448#define MXC_F_I2C_MCN_START ((uint32_t)(0x1UL << MXC_F_I2C_MCN_START_POS))
450#define MXC_F_I2C_MCN_RESTART_POS 1
451#define MXC_F_I2C_MCN_RESTART ((uint32_t)(0x1UL << MXC_F_I2C_MCN_RESTART_POS))
453#define MXC_F_I2C_MCN_STOP_POS 2
454#define MXC_F_I2C_MCN_STOP ((uint32_t)(0x1UL << MXC_F_I2C_MCN_STOP_POS))
456#define MXC_F_I2C_MCN_SEA_POS 7
457#define MXC_F_I2C_MCN_SEA ((uint32_t)(0x1UL << MXC_F_I2C_MCN_SEA_POS))
467#define MXC_F_I2C_CKL_CKL_POS 0
468#define MXC_F_I2C_CKL_CKL ((uint32_t)(0x1FFUL << MXC_F_I2C_CKL_CKL_POS))
478#define MXC_F_I2C_CKH_CKH_POS 0
479#define MXC_F_I2C_CKH_CKH ((uint32_t)(0x1FFUL << MXC_F_I2C_CKH_CKH_POS))
489#define MXC_F_I2C_TO_TO_POS 0
490#define MXC_F_I2C_TO_TO ((uint32_t)(0xFFFFUL << MXC_F_I2C_TO_TO_POS))
500#define MXC_F_I2C_DMA_TXEN_POS 0
501#define MXC_F_I2C_DMA_TXEN ((uint32_t)(0x1UL << MXC_F_I2C_DMA_TXEN_POS))
503#define MXC_F_I2C_DMA_RXEN_POS 1
504#define MXC_F_I2C_DMA_RXEN ((uint32_t)(0x1UL << MXC_F_I2C_DMA_RXEN_POS))
514#define MXC_F_I2C_SLA_SLA_POS 0
515#define MXC_F_I2C_SLA_SLA ((uint32_t)(0x3FFUL << MXC_F_I2C_SLA_SLA_POS))
516#define MXC_V_I2C_SLA_SLA_DIS ((uint32_t)0x0UL)
517#define MXC_S_I2C_SLA_SLA_DIS (MXC_V_I2C_SLA_SLA_DIS << MXC_F_I2C_SLA_SLA_POS)
518#define MXC_V_I2C_SLA_SLA_EN ((uint32_t)0x1UL)
519#define MXC_S_I2C_SLA_SLA_EN (MXC_V_I2C_SLA_SLA_EN << MXC_F_I2C_SLA_SLA_POS)
521#define MXC_F_I2C_SLA_EA_POS 15
522#define MXC_F_I2C_SLA_EA ((uint32_t)(0x1UL << MXC_F_I2C_SLA_EA_POS))
526#ifdef __cplusplus
527}
528#endif
529
530#endif // LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_I2C_REGS_H_
__IO uint32_t rxcfg
Definition: i2c_regs.h:84
__IO uint32_t data
Definition: i2c_regs.h:88
__IO uint32_t rx
Definition: i2c_regs.h:85
__IO uint32_t cn
Definition: i2c_regs.h:77
__IO uint32_t ckl
Definition: i2c_regs.h:90
__IO uint32_t inten0
Definition: i2c_regs.h:80
__IO uint32_t ckh
Definition: i2c_regs.h:91
__IO uint32_t sla
Definition: i2c_regs.h:96
__IO uint32_t int1
Definition: i2c_regs.h:81
__IO uint32_t txcfg
Definition: i2c_regs.h:86
__IO uint32_t mcn
Definition: i2c_regs.h:89
__IO uint32_t inten1
Definition: i2c_regs.h:82
__IO uint32_t dma
Definition: i2c_regs.h:95
__IO uint32_t fifo
Definition: i2c_regs.h:83
__IO uint32_t tx
Definition: i2c_regs.h:87
__IO uint32_t st
Definition: i2c_regs.h:78
__IO uint32_t int0
Definition: i2c_regs.h:79
__IO uint32_t to
Definition: i2c_regs.h:93
Definition: i2c_regs.h:76