summaryrefslogtreecommitdiff
path: root/chip/max32660/icc_regs.h
blob: 5f40e4203db57edb5c2934b56ebf0c2ecefce086 (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
/* Copyright 2019 The Chromium OS Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

/* MAX32660 Registers, Bit Masks and Bit Positions for the ICC */

#ifndef _ICC_REGS_H_
#define _ICC_REGS_H_

/* **** Includes **** */
#include <stdint.h>

/*
    If types are not defined elsewhere (CMSIS) define them here
*/
#ifndef __IO
#define __IO volatile
#endif
#ifndef __I
#define __I volatile const
#endif
#ifndef __O
#define __O volatile
#endif
#ifndef __R
#define __R volatile const
#endif

/**
 * Structure type to access the ICC Registers.
 */
typedef struct {
	__I uint32_t cache_id; /**< <tt>\b 0x0000:<\tt> ICC CACHE_ID Register */
	__I uint32_t memcfg;   /**< <tt>\b 0x0004:<\tt> ICC MEMCFG Register */
	__R uint32_t rsv_0x8_0xff[62];
	__IO uint32_t
		cache_ctrl; /**< <tt>\b 0x0100:<\tt> ICC CACHE_CTRL Register */
	__R uint32_t rsv_0x104_0x6ff[383];
	__IO uint32_t
		invalidate; /**< <tt>\b 0x0700:<\tt> ICC INVALIDATE Register */
} mxc_icc_regs_t;

/**
 * ICC Peripheral Register Offsets from the ICC Base Peripheral
 * Address.
 */
#define MXC_R_ICC_CACHE_ID                                                     \
	((uint32_t)0x00000000UL) /**< Offset from ICC Base Address: <tt>       \
				    0x0x000 */
#define MXC_R_ICC_MEMCFG                                                       \
	((uint32_t)0x00000004UL) /**< Offset from ICC Base Address: <tt>       \
				    0x0x004 */
#define MXC_R_ICC_CACHE_CTRL                                                   \
	((uint32_t)0x00000100UL) /**< Offset from ICC Base Address: <tt>       \
				    0x0x100 */
#define MXC_R_ICC_INVALIDATE                                                   \
	((uint32_t)0x00000700UL) /**< Offset from ICC Base Address: <tt>       \
				    0x0x700 */

/**
 * Cache ID Register.
 */
#define MXC_F_ICC_CACHE_ID_RELNUM_POS 0 /**< CACHE_ID_RELNUM Position */
#define MXC_F_ICC_CACHE_ID_RELNUM                                              \
	((uint32_t)(                                                           \
		0x3FUL << MXC_F_ICC_CACHE_ID_RELNUM_POS)) /**< CACHE_ID_RELNUM \
							     Mask */

#define MXC_F_ICC_CACHE_ID_PARTNUM_POS 6 /**< CACHE_ID_PARTNUM Position */
#define MXC_F_ICC_CACHE_ID_PARTNUM                                             \
	((uint32_t)(0xFUL                                                      \
		    << MXC_F_ICC_CACHE_ID_PARTNUM_POS)) /**< CACHE_ID_PARTNUM  \
							   Mask */

#define MXC_F_ICC_CACHE_ID_CCHID_POS 10 /**< CACHE_ID_CCHID Position */
#define MXC_F_ICC_CACHE_ID_CCHID                                               \
	((uint32_t)(                                                           \
		0x3FUL                                                         \
		<< MXC_F_ICC_CACHE_ID_CCHID_POS)) /**< CACHE_ID_CCHID Mask */

/**
 * Memory Configuration Register.
 */
#define MXC_F_ICC_MEMCFG_CCHSZ_POS 0 /**< MEMCFG_CCHSZ Position */
#define MXC_F_ICC_MEMCFG_CCHSZ                                                 \
	((uint32_t)(0xFFFFUL                                                   \
		    << MXC_F_ICC_MEMCFG_CCHSZ_POS)) /**< MEMCFG_CCHSZ Mask */

#define MXC_F_ICC_MEMCFG_MEMSZ_POS 16 /**< MEMCFG_MEMSZ Position */
#define MXC_F_ICC_MEMCFG_MEMSZ                                                 \
	((uint32_t)(0xFFFFUL                                                   \
		    << MXC_F_ICC_MEMCFG_MEMSZ_POS)) /**< MEMCFG_MEMSZ Mask */

/**
 * Cache Control and Status Register.
 */
#define MXC_F_ICC_CACHE_CTRL_CACHE_EN_POS                                      \
	0 /**< CACHE_CTRL_CACHE_EN Position                                    \
	   */
#define MXC_F_ICC_CACHE_CTRL_CACHE_EN                                          \
	((uint32_t)(                                                           \
		0x1UL                                                          \
		<< MXC_F_ICC_CACHE_CTRL_CACHE_EN_POS)) /**<                    \
							  CACHE_CTRL_CACHE_EN  \
							  Mask */
#define MXC_V_ICC_CACHE_CTRL_CACHE_EN_DIS                                      \
	((uint32_t)0x0UL) /**< CACHE_CTRL_CACHE_EN_DIS Value */
#define MXC_S_ICC_CACHE_CTRL_CACHE_EN_DIS                                      \
	(MXC_V_ICC_CACHE_CTRL_CACHE_EN_DIS                                     \
	 << MXC_F_ICC_CACHE_CTRL_CACHE_EN_POS) /**< CACHE_CTRL_CACHE_EN_DIS    \
						  Setting */
#define MXC_V_ICC_CACHE_CTRL_CACHE_EN_EN                                       \
	((uint32_t)0x1UL) /**< CACHE_CTRL_CACHE_EN_EN Value */
#define MXC_S_ICC_CACHE_CTRL_CACHE_EN_EN                                       \
	(MXC_V_ICC_CACHE_CTRL_CACHE_EN_EN                                      \
	 << MXC_F_ICC_CACHE_CTRL_CACHE_EN_POS) /**< CACHE_CTRL_CACHE_EN_EN     \
						  Setting */

#define MXC_F_ICC_CACHE_CTRL_CACHE_RDY_POS                                     \
	16 /**< CACHE_CTRL_CACHE_RDY Position */
#define MXC_F_ICC_CACHE_CTRL_CACHE_RDY                                          \
	((uint32_t)(                                                            \
		0x1UL                                                           \
		<< MXC_F_ICC_CACHE_CTRL_CACHE_RDY_POS)) /**<                    \
							   CACHE_CTRL_CACHE_RDY \
							   Mask */
#define MXC_V_ICC_CACHE_CTRL_CACHE_RDY_NOTREADY                                \
	((uint32_t)0x0UL) /**< CACHE_CTRL_CACHE_RDY_NOTREADY Value */
#define MXC_S_ICC_CACHE_CTRL_CACHE_RDY_NOTREADY                                  \
	(MXC_V_ICC_CACHE_CTRL_CACHE_RDY_NOTREADY                                 \
	 << MXC_F_ICC_CACHE_CTRL_CACHE_RDY_POS) /**<                             \
						   CACHE_CTRL_CACHE_RDY_NOTREADY \
						   Setting */
#define MXC_V_ICC_CACHE_CTRL_CACHE_RDY_READY                                   \
	((uint32_t)0x1UL) /**< CACHE_CTRL_CACHE_RDY_READY Value */
#define MXC_S_ICC_CACHE_CTRL_CACHE_RDY_READY                                   \
	(MXC_V_ICC_CACHE_CTRL_CACHE_RDY_READY                                  \
	 << MXC_F_ICC_CACHE_CTRL_CACHE_RDY_POS) /**<                           \
						   CACHE_CTRL_CACHE_RDY_READY  \
						   Setting */

#endif /* _ICC_REGS_H_ */