xref: /btstack/port/renesas-tb-s1ja-cc256x/template/btstack_example/synergy/ssp/src/bsp/mcu/all/bsp_common_analog.h (revision 3b5c872a8c45689e8cc17891f01530f5aa5e911c)
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