1 /** 2 * @file skbd_reva_regs.h 3 * @brief Registers, Bit Masks and Bit Positions for the SKBD_REVA Peripheral Module. 4 */ 5 6 /****************************************************************************** 7 * 8 * Copyright (C) 2022-2023 Maxim Integrated Products, Inc. (now owned by 9 * Analog Devices, Inc.), 10 * Copyright (C) 2023-2024 Analog Devices, Inc. 11 * 12 * Licensed under the Apache License, Version 2.0 (the "License"); 13 * you may not use this file except in compliance with the License. 14 * You may obtain a copy of the License at 15 * 16 * http://www.apache.org/licenses/LICENSE-2.0 17 * 18 * Unless required by applicable law or agreed to in writing, software 19 * distributed under the License is distributed on an "AS IS" BASIS, 20 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 * See the License for the specific language governing permissions and 22 * limitations under the License. 23 * 24 ******************************************************************************/ 25 26 #ifndef _SKBD_REVA_REGS_H_ 27 #define _SKBD_REVA_REGS_H_ 28 29 /* **** Includes **** */ 30 #include <stdint.h> 31 32 #ifdef __cplusplus 33 extern "C" { 34 #endif 35 36 #if defined (__ICCARM__) 37 #pragma system_include 38 #endif 39 40 #if defined (__CC_ARM) 41 #pragma anon_unions 42 #endif 43 /// @cond 44 /* 45 If types are not defined elsewhere (CMSIS) define them here 46 */ 47 #ifndef __IO 48 #define __IO volatile 49 #endif 50 #ifndef __I 51 #define __I volatile const 52 #endif 53 #ifndef __O 54 #define __O volatile 55 #endif 56 #ifndef __R 57 #define __R volatile const 58 #endif 59 /// @endcond 60 61 /* **** Definitions **** */ 62 63 /** 64 * @ingroup skbd_reva 65 * @defgroup skbd_reva_registers SKBD_REVA_Registers 66 * @brief Registers, Bit Masks and Bit Positions for the SKBD_REVA Peripheral Module. 67 * @details Secure Keyboard 68 */ 69 70 /** 71 * @ingroup skbd_reva_registers 72 * Structure type to access the SKBD_REVA Registers. 73 */ 74 typedef struct { 75 __IO uint32_t ctrl0; /**< <tt>\b 0x00:</tt> SKBD_REVA CTRL0 Register */ 76 __IO uint32_t ctrl1; /**< <tt>\b 0x04:</tt> SKBD_REVA CTRL1 Register */ 77 __I uint32_t sr; /**< <tt>\b 0x08:</tt> SKBD_REVA SR Register */ 78 __IO uint32_t ier; /**< <tt>\b 0x0C:</tt> SKBD_REVA IER Register */ 79 __IO uint32_t isr; /**< <tt>\b 0x10:</tt> SKBD_REVA ISR Register */ 80 __I uint32_t evt[4]; /**< <tt>\b 0x14:</tt> SKBD_REVA EVT Register */ 81 } mxc_skbd_reva_regs_t; 82 83 /* Register offsets for module SKBD_REVA */ 84 /** 85 * @ingroup skbd_reva_registers 86 * @defgroup SKBD_REVA_Register_Offsets Register Offsets 87 * @brief SKBD_REVA Peripheral Register Offsets from the SKBD_REVA Base Peripheral Address. 88 * @{ 89 */ 90 #define MXC_R_SKBD_REVA_CTRL0 ((uint32_t)0x00000000UL) /**< Offset from SKBD_REVA Base Address: <tt> 0x0000</tt> */ 91 #define MXC_R_SKBD_REVA_CTRL1 ((uint32_t)0x00000004UL) /**< Offset from SKBD_REVA Base Address: <tt> 0x0004</tt> */ 92 #define MXC_R_SKBD_REVA_SR ((uint32_t)0x00000008UL) /**< Offset from SKBD_REVA Base Address: <tt> 0x0008</tt> */ 93 #define MXC_R_SKBD_REVA_IER ((uint32_t)0x0000000CUL) /**< Offset from SKBD_REVA Base Address: <tt> 0x000C</tt> */ 94 #define MXC_R_SKBD_REVA_ISR ((uint32_t)0x00000010UL) /**< Offset from SKBD_REVA Base Address: <tt> 0x0010</tt> */ 95 #define MXC_R_SKBD_REVA_EVT ((uint32_t)0x00000014UL) /**< Offset from SKBD_REVA Base Address: <tt> 0x0014</tt> */ 96 /**@} end of group skbd_reva_registers */ 97 98 /** 99 * @ingroup skbd_reva_registers 100 * @defgroup SKBD_REVA_CTRL0 SKBD_REVA_CTRL0 101 * @brief Input Output Select Bits. Each bit of IOSEL selects the pin direction for the 102 * corresponding KBDIO pin. If IOSEL[0] = 1, KBDIO0 is an output. 103 * @{ 104 */ 105 #define MXC_F_SKBD_REVA_CTRL0_KBDIO_0_POS 0 /**< CTRL0_KBDIO_0 Position */ 106 #define MXC_F_SKBD_REVA_CTRL0_KBDIO_0 ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_CTRL0_KBDIO_0_POS)) /**< CTRL0_KBDIO_0 Mask */ 107 108 #define MXC_F_SKBD_REVA_CTRL0_KBDIO_1_POS 1 /**< CTRL0_KBDIO_1 Position */ 109 #define MXC_F_SKBD_REVA_CTRL0_KBDIO_1 ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_CTRL0_KBDIO_1_POS)) /**< CTRL0_KBDIO_1 Mask */ 110 111 #define MXC_F_SKBD_REVA_CTRL0_KBDIO_2_POS 2 /**< CTRL0_KBDIO_2 Position */ 112 #define MXC_F_SKBD_REVA_CTRL0_KBDIO_2 ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_CTRL0_KBDIO_2_POS)) /**< CTRL0_KBDIO_2 Mask */ 113 114 #define MXC_F_SKBD_REVA_CTRL0_KBDIO_3_POS 3 /**< CTRL0_KBDIO_3 Position */ 115 #define MXC_F_SKBD_REVA_CTRL0_KBDIO_3 ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_CTRL0_KBDIO_3_POS)) /**< CTRL0_KBDIO_3 Mask */ 116 117 #define MXC_F_SKBD_REVA_CTRL0_KBDIO_4_POS 4 /**< CTRL0_KBDIO_4 Position */ 118 #define MXC_F_SKBD_REVA_CTRL0_KBDIO_4 ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_CTRL0_KBDIO_4_POS)) /**< CTRL0_KBDIO_4 Mask */ 119 120 #define MXC_F_SKBD_REVA_CTRL0_KBDIO_5_POS 5 /**< CTRL0_KBDIO_5 Position */ 121 #define MXC_F_SKBD_REVA_CTRL0_KBDIO_5 ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_CTRL0_KBDIO_5_POS)) /**< CTRL0_KBDIO_5 Mask */ 122 123 #define MXC_F_SKBD_REVA_CTRL0_KBDIO_6_POS 6 /**< CTRL0_KBDIO_6 Position */ 124 #define MXC_F_SKBD_REVA_CTRL0_KBDIO_6 ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_CTRL0_KBDIO_6_POS)) /**< CTRL0_KBDIO_6 Mask */ 125 126 #define MXC_F_SKBD_REVA_CTRL0_KBDIO_7_POS 7 /**< CTRL0_KBDIO_7 Position */ 127 #define MXC_F_SKBD_REVA_CTRL0_KBDIO_7 ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_CTRL0_KBDIO_7_POS)) /**< CTRL0_KBDIO_7 Mask */ 128 129 #define MXC_F_SKBD_REVA_CTRL0_KBDIO_8_POS 8 /**< CTRL0_KBDIO_8 Position */ 130 #define MXC_F_SKBD_REVA_CTRL0_KBDIO_8 ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_CTRL0_KBDIO_8_POS)) /**< CTRL0_KBDIO_8 Mask */ 131 132 #define MXC_F_SKBD_REVA_CTRL0_KBDIO_9_POS 9 /**< CTRL0_KBDIO_9 Position */ 133 #define MXC_F_SKBD_REVA_CTRL0_KBDIO_9 ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_CTRL0_KBDIO_9_POS)) /**< CTRL0_KBDIO_9 Mask */ 134 135 /**@} end of group SKBD_REVA_CTRL0_Register */ 136 137 /** 138 * @ingroup skbd_reva_registers 139 * @defgroup SKBD_REVA_CTRL1 SKBD_REVA_CTRL1 140 * @brief Control Register 1 141 * @{ 142 */ 143 #define MXC_F_SKBD_REVA_CTRL1_AUTOEN_POS 0 /**< CTRL1_AUTOEN Position */ 144 #define MXC_F_SKBD_REVA_CTRL1_AUTOEN ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_CTRL1_AUTOEN_POS)) /**< CTRL1_AUTOEN Mask */ 145 146 #define MXC_F_SKBD_REVA_CTRL1_CLEAR_POS 1 /**< CTRL1_CLEAR Position */ 147 #define MXC_F_SKBD_REVA_CTRL1_CLEAR ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_CTRL1_CLEAR_POS)) /**< CTRL1_CLEAR Mask */ 148 149 #define MXC_F_SKBD_REVA_CTRL1_OUTNB_POS 8 /**< CTRL1_OUTNB Position */ 150 #define MXC_F_SKBD_REVA_CTRL1_OUTNB ((uint32_t)(0x7UL << MXC_F_SKBD_REVA_CTRL1_OUTNB_POS)) /**< CTRL1_OUTNB Mask */ 151 152 #define MXC_F_SKBD_REVA_CTRL1_DBTM_POS 13 /**< CTRL1_DBTM Position */ 153 #define MXC_F_SKBD_REVA_CTRL1_DBTM ((uint32_t)(0x7UL << MXC_F_SKBD_REVA_CTRL1_DBTM_POS)) /**< CTRL1_DBTM Mask */ 154 #define MXC_V_SKBD_REVA_CTRL1_DBTM_TIME4MS ((uint32_t)0x0UL) /**< CTRL1_DBTM_TIME4MS Value */ 155 #define MXC_S_SKBD_REVA_CTRL1_DBTM_TIME4MS (MXC_V_SKBD_REVA_CTRL1_DBTM_TIME4MS << MXC_F_SKBD_REVA_CTRL1_DBTM_POS) /**< CTRL1_DBTM_TIME4MS Setting */ 156 #define MXC_V_SKBD_REVA_CTRL1_DBTM_TIME5MS ((uint32_t)0x1UL) /**< CTRL1_DBTM_TIME5MS Value */ 157 #define MXC_S_SKBD_REVA_CTRL1_DBTM_TIME5MS (MXC_V_SKBD_REVA_CTRL1_DBTM_TIME5MS << MXC_F_SKBD_REVA_CTRL1_DBTM_POS) /**< CTRL1_DBTM_TIME5MS Setting */ 158 #define MXC_V_SKBD_REVA_CTRL1_DBTM_TIME6MS ((uint32_t)0x2UL) /**< CTRL1_DBTM_TIME6MS Value */ 159 #define MXC_S_SKBD_REVA_CTRL1_DBTM_TIME6MS (MXC_V_SKBD_REVA_CTRL1_DBTM_TIME6MS << MXC_F_SKBD_REVA_CTRL1_DBTM_POS) /**< CTRL1_DBTM_TIME6MS Setting */ 160 #define MXC_V_SKBD_REVA_CTRL1_DBTM_TIME7MS ((uint32_t)0x3UL) /**< CTRL1_DBTM_TIME7MS Value */ 161 #define MXC_S_SKBD_REVA_CTRL1_DBTM_TIME7MS (MXC_V_SKBD_REVA_CTRL1_DBTM_TIME7MS << MXC_F_SKBD_REVA_CTRL1_DBTM_POS) /**< CTRL1_DBTM_TIME7MS Setting */ 162 #define MXC_V_SKBD_REVA_CTRL1_DBTM_TIME8MS ((uint32_t)0x4UL) /**< CTRL1_DBTM_TIME8MS Value */ 163 #define MXC_S_SKBD_REVA_CTRL1_DBTM_TIME8MS (MXC_V_SKBD_REVA_CTRL1_DBTM_TIME8MS << MXC_F_SKBD_REVA_CTRL1_DBTM_POS) /**< CTRL1_DBTM_TIME8MS Setting */ 164 #define MXC_V_SKBD_REVA_CTRL1_DBTM_TIME10MS ((uint32_t)0x5UL) /**< CTRL1_DBTM_TIME10MS Value */ 165 #define MXC_S_SKBD_REVA_CTRL1_DBTM_TIME10MS (MXC_V_SKBD_REVA_CTRL1_DBTM_TIME10MS << MXC_F_SKBD_REVA_CTRL1_DBTM_POS) /**< CTRL1_DBTM_TIME10MS Setting */ 166 #define MXC_V_SKBD_REVA_CTRL1_DBTM_TIME11MS ((uint32_t)0x6UL) /**< CTRL1_DBTM_TIME11MS Value */ 167 #define MXC_S_SKBD_REVA_CTRL1_DBTM_TIME11MS (MXC_V_SKBD_REVA_CTRL1_DBTM_TIME11MS << MXC_F_SKBD_REVA_CTRL1_DBTM_POS) /**< CTRL1_DBTM_TIME11MS Setting */ 168 #define MXC_V_SKBD_REVA_CTRL1_DBTM_TIME12MS ((uint32_t)0x7UL) /**< CTRL1_DBTM_TIME12MS Value */ 169 #define MXC_S_SKBD_REVA_CTRL1_DBTM_TIME12MS (MXC_V_SKBD_REVA_CTRL1_DBTM_TIME12MS << MXC_F_SKBD_REVA_CTRL1_DBTM_POS) /**< CTRL1_DBTM_TIME12MS Setting */ 170 171 /**@} end of group SKBD_REVA_CTRL1_Register */ 172 173 /** 174 * @ingroup skbd_reva_registers 175 * @defgroup SKBD_REVA_SR SKBD_REVA_SR 176 * @brief Status Register 177 * @{ 178 */ 179 #define MXC_F_SKBD_REVA_SR_BUSY_POS 0 /**< SR_BUSY Position */ 180 #define MXC_F_SKBD_REVA_SR_BUSY ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_SR_BUSY_POS)) /**< SR_BUSY Mask */ 181 182 /**@} end of group SKBD_REVA_SR_Register */ 183 184 /** 185 * @ingroup skbd_reva_registers 186 * @defgroup SKBD_REVA_IER SKBD_REVA_IER 187 * @brief Interrupt Enable Register 188 * @{ 189 */ 190 #define MXC_F_SKBD_REVA_IER_PUSHIE_POS 0 /**< IER_PUSHIE Position */ 191 #define MXC_F_SKBD_REVA_IER_PUSHIE ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_IER_PUSHIE_POS)) /**< IER_PUSHIE Mask */ 192 193 #define MXC_F_SKBD_REVA_IER_RELEASEIE_POS 1 /**< IER_RELEASEIE Position */ 194 #define MXC_F_SKBD_REVA_IER_RELEASEIE ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_IER_RELEASEIE_POS)) /**< IER_RELEASEIE Mask */ 195 196 #define MXC_F_SKBD_REVA_IER_OVERIE_POS 2 /**< IER_OVERIE Position */ 197 #define MXC_F_SKBD_REVA_IER_OVERIE ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_IER_OVERIE_POS)) /**< IER_OVERIE Mask */ 198 199 /**@} end of group SKBD_REVA_IER_Register */ 200 201 /** 202 * @ingroup skbd_reva_registers 203 * @defgroup SKBD_REVA_ISR SKBD_REVA_ISR 204 * @brief Interrupt Status Register 205 * @{ 206 */ 207 #define MXC_F_SKBD_REVA_ISR_PUSHIS_POS 0 /**< ISR_PUSHIS Position */ 208 #define MXC_F_SKBD_REVA_ISR_PUSHIS ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_ISR_PUSHIS_POS)) /**< ISR_PUSHIS Mask */ 209 210 #define MXC_F_SKBD_REVA_ISR_RELEASEIS_POS 1 /**< ISR_RELEASEIS Position */ 211 #define MXC_F_SKBD_REVA_ISR_RELEASEIS ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_ISR_RELEASEIS_POS)) /**< ISR_RELEASEIS Mask */ 212 213 #define MXC_F_SKBD_REVA_ISR_OVERIS_POS 2 /**< ISR_OVERIS Position */ 214 #define MXC_F_SKBD_REVA_ISR_OVERIS ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_ISR_OVERIS_POS)) /**< ISR_OVERIS Mask */ 215 216 /**@} end of group SKBD_REVA_ISR_Register */ 217 218 /** 219 * @ingroup skbd_reva_registers 220 * @defgroup SKBD_REVA_EVT SKBD_REVA_EVT 221 * @brief Key Register 222 * @{ 223 */ 224 #define MXC_F_SKBD_REVA_EVT_IOIN_POS 0 /**< EVT_IOIN Position */ 225 #define MXC_F_SKBD_REVA_EVT_IOIN ((uint32_t)(0x7UL << MXC_F_SKBD_REVA_EVT_IOIN_POS)) /**< EVT_IOIN Mask */ 226 227 #define MXC_F_SKBD_REVA_EVT_IOOUT_POS 5 /**< EVT_IOOUT Position */ 228 #define MXC_F_SKBD_REVA_EVT_IOOUT ((uint32_t)(0x7UL << MXC_F_SKBD_REVA_EVT_IOOUT_POS)) /**< EVT_IOOUT Mask */ 229 230 #define MXC_F_SKBD_REVA_EVT_PUSH_POS 10 /**< EVT_PUSH Position */ 231 #define MXC_F_SKBD_REVA_EVT_PUSH ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_EVT_PUSH_POS)) /**< EVT_PUSH Mask */ 232 233 #define MXC_F_SKBD_REVA_EVT_READ_POS 11 /**< EVT_READ Position */ 234 #define MXC_F_SKBD_REVA_EVT_READ ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_EVT_READ_POS)) /**< EVT_READ Mask */ 235 236 #define MXC_F_SKBD_REVA_EVT_NEXT_POS 12 /**< EVT_NEXT Position */ 237 #define MXC_F_SKBD_REVA_EVT_NEXT ((uint32_t)(0x1UL << MXC_F_SKBD_REVA_EVT_NEXT_POS)) /**< EVT_NEXT Mask */ 238 239 /**@} end of group SKBD_REVA_EVT_Register */ 240 241 #ifdef __cplusplus 242 } 243 #endif 244 245 #endif /* _SKBD_REVA_REGS_H_ */ 246