1 /*********************************************************************************************************************** 2 * Copyright [2015-2017] Renesas Electronics Corporation and/or its licensors. All Rights Reserved. 3 * 4 * This file is part of Renesas SynergyTM Software Package (SSP) 5 * 6 * The contents of this file (the "contents") are proprietary and confidential to Renesas Electronics Corporation 7 * and/or its licensors ("Renesas") and subject to statutory and contractual protections. 8 * 9 * This file is subject to a Renesas SSP license agreement. Unless otherwise agreed in an SSP license agreement with 10 * Renesas: 1) you may not use, copy, modify, distribute, display, or perform the contents; 2) you may not use any name 11 * or mark of Renesas for advertising or publicity purposes or in connection with your use of the contents; 3) RENESAS 12 * MAKES NO WARRANTY OR REPRESENTATIONS ABOUT THE SUITABILITY OF THE CONTENTS FOR ANY PURPOSE; THE CONTENTS ARE PROVIDED 13 * "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 14 * PARTICULAR PURPOSE, AND NON-INFRINGEMENT; AND 4) RENESAS SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, OR 15 * CONSEQUENTIAL DAMAGES, INCLUDING DAMAGES RESULTING FROM LOSS OF USE, DATA, OR PROJECTS, WHETHER IN AN ACTION OF 16 * CONTRACT OR TORT, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE CONTENTS. Third-party contents 17 * included in this file may be subject to different terms. 18 **********************************************************************************************************************/ 19 /*********************************************************************************************************************** 20 * File Name : bsp_common_analog.h 21 * Description : Common definitions for analog pin connections. 22 ***********************************************************************************************************************/ 23 24 #ifndef BSP_COMMON_ANALOG_H_ 25 #define BSP_COMMON_ANALOG_H_ 26 27 /*********************************************************************************************************************** 28 Macro definitions 29 ***********************************************************************************************************************/ 30 #define ANALOG_CONNECT_PRIV_MODULE_START_BIT (24) 31 #define ANALOG_CONNECT_PRIV_FLAG_BIT (20) 32 #define ANALOG_CONNECT_PRIV_CHANNEL_START_BIT (16) 33 #define ANALOG_CONNECT_PRIV_CONNECTION_START_BIT (8) 34 #define ANALOG_CONNECT_PRIV_OPTION_START_BIT (0) 35 36 #define ANALOG_CONNECT_PRIV_FLAG_MASK (1U << ANALOG_CONNECT_PRIV_FLAG_BIT) 37 38 #define ANALOG_CONNECT_DEFINE(module, channel, connection, option, flag) \ 39 ((((((uint32_t) ANALOG_CONNECT_PRIV_MODULE_##module << ANALOG_CONNECT_PRIV_MODULE_START_BIT) | \ 40 ((uint32_t) ANALOG_CONNECT_PRIV_CHANNEL_##channel << ANALOG_CONNECT_PRIV_CHANNEL_START_BIT)) | \ 41 ((uint32_t) ANALOG_CONNECT_PRIV_REG_##module##_##connection << ANALOG_CONNECT_PRIV_CONNECTION_START_BIT)) | \ 42 ((uint32_t) ANALOG_CONNECT_PRIV_OPTION_##module##_##connection##_##option << ANALOG_CONNECT_PRIV_OPTION_START_BIT)) | \ 43 ((uint32_t) ANALOG_CONNECT_PRIV_##flag << ANALOG_CONNECT_PRIV_FLAG_BIT)) 44 45 /*********************************************************************************************************************** 46 Typedef definitions 47 ***********************************************************************************************************************/ 48 typedef enum e_analog_connect_priv_module 49 { 50 ANALOG_CONNECT_PRIV_MODULE_ACMPHS = 1U, 51 ANALOG_CONNECT_PRIV_MODULE_ACMPLP = 2U, 52 ANALOG_CONNECT_PRIV_MODULE_OPAMP = 3U, 53 } analog_connect_priv_module_t; 54 55 typedef enum e_analog_connect_priv_channel 56 { 57 ANALOG_CONNECT_PRIV_CHANNEL_0 = 0U, 58 ANALOG_CONNECT_PRIV_CHANNEL_1 = 1U, 59 ANALOG_CONNECT_PRIV_CHANNEL_2 = 2U, 60 ANALOG_CONNECT_PRIV_CHANNEL_3 = 3U, 61 ANALOG_CONNECT_PRIV_CHANNEL_4 = 4U, 62 ANALOG_CONNECT_PRIV_CHANNEL_5 = 5U, 63 ANALOG_CONNECT_PRIV_CHANNEL_6 = 6U, 64 ANALOG_CONNECT_PRIV_CHANNEL_7 = 7U, 65 ANALOG_CONNECT_PRIV_CHANNEL_8 = 8U, 66 ANALOG_CONNECT_PRIV_CHANNEL_9 = 9U, 67 ANALOG_CONNECT_PRIV_CHANNEL_10 = 10U, 68 ANALOG_CONNECT_PRIV_CHANNEL_11 = 11U, 69 ANALOG_CONNECT_PRIV_CHANNEL_12 = 12U, 70 ANALOG_CONNECT_PRIV_CHANNEL_13 = 13U, 71 ANALOG_CONNECT_PRIV_CHANNEL_14 = 14U, 72 ANALOG_CONNECT_PRIV_CHANNEL_15 = 15U, 73 } analog_connect_priv_channel_t; 74 75 typedef enum e_analog_connect_priv_flag 76 { 77 ANALOG_CONNECT_PRIV_FLAG_CLEAR = 0U, 78 ANALOG_CONNECT_PRIV_FLAG_SET = 1U, 79 } analog_connect_priv_flag_t; 80 81 typedef enum e_analog_connect_priv_reg_acmphs 82 { 83 ANALOG_CONNECT_PRIV_REG_ACMPHS_CMPSEL0 = 0x4U, // CMPSEL0 offset from ACMPHS base 84 ANALOG_CONNECT_PRIV_REG_ACMPHS_CMPSEL1 = 0x8U, // CMPSEL1 offset from ACMPHS base 85 } analog_connect_priv_reg_acmphs_t; 86 87 typedef enum e_analog_connect_priv_reg_acmplp 88 { 89 ANALOG_CONNECT_PRIV_REG_ACMPLP_COMPMDR = 0x0U, // COMPMDR offset from ACMPLP base 90 ANALOG_CONNECT_PRIV_REG_ACMPLP_COMPSEL0 = 0x4U, // COMPSEL0 offset from ACMPLP base 91 ANALOG_CONNECT_PRIV_REG_ACMPLP_COMPSEL1 = 0x5U, // COMPSEL1 offset from ACMPLP base 92 } analog_connect_priv_reg_acmplp_t; 93 94 typedef enum e_analog_connect_priv_reg_opamp 95 { 96 ANALOG_CONNECT_PRIV_REG_OPAMP_AMP0OS = 0xEU, // AMP0OS offset from OPAMP base 97 ANALOG_CONNECT_PRIV_REG_OPAMP_AMP0MS = 0xFU, // AMP0MS offset from OPAMP base 98 ANALOG_CONNECT_PRIV_REG_OPAMP_AMP0PS = 0x10U, // AMP0PS offset from OPAMP base 99 ANALOG_CONNECT_PRIV_REG_OPAMP_AMP1MS = 0x12U, // AMP1MS offset from OPAMP base 100 ANALOG_CONNECT_PRIV_REG_OPAMP_AMP1PS = 0x13U, // AMP1PS offset from OPAMP base 101 ANALOG_CONNECT_PRIV_REG_OPAMP_AMP2MS = 0x15U, // AMP2MS offset from OPAMP base 102 ANALOG_CONNECT_PRIV_REG_OPAMP_AMP2PS = 0x16U, // AMP2PS offset from OPAMP base 103 } analog_connect_priv_reg_opamp_t; 104 105 typedef enum e_analog_connect_priv_option_acmphs_cmpsel0 106 { 107 ANALOG_CONNECT_PRIV_OPTION_ACMPHS_CMPSEL0_IVCMP0 = 1U << 0, 108 ANALOG_CONNECT_PRIV_OPTION_ACMPHS_CMPSEL0_IVCMP1 = 1U << 1, 109 ANALOG_CONNECT_PRIV_OPTION_ACMPHS_CMPSEL0_IVCMP2 = 1U << 2, 110 ANALOG_CONNECT_PRIV_OPTION_ACMPHS_CMPSEL0_IVCMP3 = 1U << 3, 111 ANALOG_CONNECT_PRIV_OPTION_ACMPHS_CMPSEL0_IVCMP4 = 1U << 4, 112 ANALOG_CONNECT_PRIV_OPTION_ACMPHS_CMPSEL0_IVCMP5 = 1U << 5, 113 ANALOG_CONNECT_PRIV_OPTION_ACMPHS_CMPSEL0_IVCMP6 = 1U << 6, 114 ANALOG_CONNECT_PRIV_OPTION_ACMPHS_CMPSEL0_IVCMP7 = 1U << 7, 115 } analog_connect_priv_option_acmphs_cmpsel0_t; 116 117 typedef enum e_analog_connect_priv_option_acmphs_cmpsel1 118 { 119 ANALOG_CONNECT_PRIV_OPTION_ACMPHS_CMPSEL1_IVREF0 = 1U << 0, 120 ANALOG_CONNECT_PRIV_OPTION_ACMPHS_CMPSEL1_IVREF1 = 1U << 1, 121 ANALOG_CONNECT_PRIV_OPTION_ACMPHS_CMPSEL1_IVREF2 = 1U << 2, 122 ANALOG_CONNECT_PRIV_OPTION_ACMPHS_CMPSEL1_IVREF3 = 1U << 3, 123 ANALOG_CONNECT_PRIV_OPTION_ACMPHS_CMPSEL1_IVREF4 = 1U << 4, 124 ANALOG_CONNECT_PRIV_OPTION_ACMPHS_CMPSEL1_IVREF5 = 1U << 5, 125 ANALOG_CONNECT_PRIV_OPTION_ACMPHS_CMPSEL1_IVREF6 = 1U << 6, 126 ANALOG_CONNECT_PRIV_OPTION_ACMPHS_CMPSEL1_IVREF7 = 1U << 7, 127 } analog_connect_priv_option_acmphs_cmpsel1_t; 128 129 typedef enum e_analog_connect_priv_option_acmplp_compmdr 130 { 131 ANALOG_CONNECT_PRIV_OPTION_ACMPLP_COMPMDR_C0VRF = 0x40, // Set bit 2, do not clear anything 132 ANALOG_CONNECT_PRIV_OPTION_ACMPLP_COMPMDR_CLEAR_C0VRF = 0x04, // Do not set anything, clear bit 2 133 ANALOG_CONNECT_PRIV_OPTION_ACMPLP_COMPMDR_C1VRF = 0x40 | ANALOG_CONNECT_PRIV_FLAG_MASK, // Set bit 6, do not clear anything 134 ANALOG_CONNECT_PRIV_OPTION_ACMPLP_COMPMDR_CLEAR_C1VRF = 0x04 | ANALOG_CONNECT_PRIV_FLAG_MASK, // Do not set anything, clear bit 6 135 } analog_connect_priv_option_acmplp_compmdr_t; 136 137 typedef enum e_analog_connect_priv_option_acmplp_compsel0 138 { 139 ANALOG_CONNECT_PRIV_OPTION_ACMPLP_COMPSEL0_CMPSEL0 = 0x16, // Set bit 0, clear bits 1 and 2 140 ANALOG_CONNECT_PRIV_OPTION_ACMPLP_COMPSEL0_CMPSEL1 = 0x25, // Set bit 1, clear bits 0 and 2 141 ANALOG_CONNECT_PRIV_OPTION_ACMPLP_COMPSEL0_CMPSEL2 = 0x43, // Set bit 2, clear bits 0 and 1 142 ANALOG_CONNECT_PRIV_OPTION_ACMPLP_COMPSEL0_CMPSEL4 = 0x16 | ANALOG_CONNECT_PRIV_FLAG_MASK, // Set bit 4, clear bits 5 and 6 143 ANALOG_CONNECT_PRIV_OPTION_ACMPLP_COMPSEL0_CMPSEL5 = 0x25 | ANALOG_CONNECT_PRIV_FLAG_MASK, // Set bit 5, clear bits 4 and 6 144 ANALOG_CONNECT_PRIV_OPTION_ACMPLP_COMPSEL0_CMPSEL6 = 0x43 | ANALOG_CONNECT_PRIV_FLAG_MASK, // Set bit 6, clear bits 4 and 5 145 } analog_connect_priv_option_acmplp_compsel0_t; 146 147 typedef enum e_analog_connect_priv_option_acmplp_compsel1 148 { 149 ANALOG_CONNECT_PRIV_OPTION_ACMPLP_COMPSEL1_CRVS0 = 0x16, // Set bit 0, clear bits 1 and 2 150 ANALOG_CONNECT_PRIV_OPTION_ACMPLP_COMPSEL1_CRVS1 = 0x25, // Set bit 1, clear bits 0 and 2 151 ANALOG_CONNECT_PRIV_OPTION_ACMPLP_COMPSEL1_CRVS2 = 0x43, // Set bit 2, clear bits 0 and 1 152 ANALOG_CONNECT_PRIV_OPTION_ACMPLP_COMPSEL1_CRVS4 = 0x16 | ANALOG_CONNECT_PRIV_FLAG_MASK, // Set bit 4, clear bits 5 and 6 153 ANALOG_CONNECT_PRIV_OPTION_ACMPLP_COMPSEL1_CRVS5 = 0x25 | ANALOG_CONNECT_PRIV_FLAG_MASK, // Set bit 5, clear bits 4 and 6 154 ANALOG_CONNECT_PRIV_OPTION_ACMPLP_COMPSEL1_CRVS6 = 0x43 | ANALOG_CONNECT_PRIV_FLAG_MASK, // Set bit 6, clear bits 4 and 5 155 ANALOG_CONNECT_PRIV_OPTION_ACMPLP_COMPSEL1_C1VRF2 = 0x80 | ANALOG_CONNECT_PRIV_FLAG_MASK, // Set bit 7, do not clear anything 156 ANALOG_CONNECT_PRIV_OPTION_ACMPLP_COMPSEL1_CLEAR_C1VRF2 = 0x08 | ANALOG_CONNECT_PRIV_FLAG_MASK, // Do not set anything, clear bit 7 157 } analog_connect_priv_option_acmplp_compsel1_t; 158 159 typedef enum e_analog_connect_priv_option_opamp_amp0os 160 { 161 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP0OS_BREAK = 0, 162 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP0OS_AMPOS0 = 1U << 0, 163 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP0OS_AMPOS1 = 1U << 1, 164 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP0OS_AMPOS2 = 1U << 2, 165 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP0OS_AMPOS3 = 1U << 3, 166 } analog_connect_priv_option_opamp_amp0os_t; 167 168 typedef enum e_analog_connect_priv_option_opamp_amp0ms 169 { 170 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP0MS_BREAK = 0, 171 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP0MS_AMPMS0 = 1U << 0, 172 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP0MS_AMPMS1 = 1U << 1, 173 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP0MS_AMPMS2 = 1U << 2, 174 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP0MS_AMPMS3 = 1U << 3, 175 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP0MS_AMPMS4 = 1U << 4, 176 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP0MS_AMPMS7 = 1U << 7, 177 } analog_connect_priv_option_opamp_amp0ms_t; 178 179 typedef enum e_analog_connect_priv_option_opamp_amp0ps 180 { 181 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP0PS_BREAK = 0, 182 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP0PS_AMPPS0 = 1U << 0, 183 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP0PS_AMPPS1 = 1U << 1, 184 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP0PS_AMPPS2 = 1U << 2, 185 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP0PS_AMPPS3 = 1U << 3, 186 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP0PS_AMPPS7 = 1U << 7, 187 } analog_connect_priv_option_opamp_amp0ps_t; 188 189 typedef enum e_analog_connect_priv_option_opamp_amp1ms 190 { 191 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP1MS_BREAK = 0, 192 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP1MS_AMPMS0 = 1U << 0, 193 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP1MS_AMPMS7 = 1U << 7, 194 } analog_connect_priv_option_opamp_amp1ms_t; 195 196 typedef enum e_analog_connect_priv_option_opamp_amp1ps 197 { 198 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP1PS_BREAK = 0, 199 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP1PS_AMPPS0 = 1U << 0, 200 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP1PS_AMPPS1 = 1U << 1, 201 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP1PS_AMPPS2 = 1U << 2, 202 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP1PS_AMPPS3 = 1U << 3, 203 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP1PS_AMPPS7 = 1U << 7, 204 } analog_connect_priv_option_opamp_amp1ps_t; 205 206 typedef enum e_analog_connect_priv_option_opamp_amp2ms 207 { 208 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP2MS_BREAK = 0, 209 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP2MS_AMPMS0 = 1U << 0, 210 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP2MS_AMPMS7 = 1U << 7, 211 } analog_connect_priv_option_opamp_amp2ms_t; 212 213 typedef enum e_analog_connect_priv_option_opamp_amp2ps 214 { 215 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP2PS_BREAK = 0, 216 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP2PS_AMPPS0 = 1U << 0, 217 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP2PS_AMPPS1 = 1U << 1, 218 ANALOG_CONNECT_PRIV_OPTION_OPAMP_AMP2PS_AMPPS7 = 1U << 7, 219 } analog_connect_priv_option_opamp_amp2ps_t; 220 221 /*********************************************************************************************************************** 222 Exported global variables 223 ***********************************************************************************************************************/ 224 225 /*********************************************************************************************************************** 226 Exported global functions (to be accessed by other files) 227 ***********************************************************************************************************************/ 228 229 #endif /* BSP_COMMON_ANALOG_H_ */ 230