mbed library sources. Supersedes mbed-src. Fixes analogIn and analogOut problems for TARGET_STM32F3. Tested on NUCLEO-F303K8, using 3 analogout and 7 analogin channels simultaneously. Added ability for STM32F334R8 and STM32F303K8 to use all three channels of DAC simultaneously. https://developer.mbed.org/users/StevieWray/code/mbed-dev/ Added ability for TARGET_STM32F3 to use more than one ADC simultaneously. https://developer.mbed.org/questions/67997/NUCLEO-F303K8ADC/

Fork of mbed-dev by mbed official

Committer:
neurofun
Date:
Tue Feb 23 21:59:35 2016 +0000
Revision:
70:b3a5af880266
Parent:
0:9b334a45a8ff
Edited DAC routines to allow for the simultaneous use of three channels from two DACs as seen on the STM32F334R8 and STM32F303K8. Edited ADC routines to allow for the simultaneous use of more than one ADC.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bogdanm 0:9b334a45a8ff 1 #ifndef ATMEL_PARTS_H
bogdanm 0:9b334a45a8ff 2 #define ATMEL_PARTS_H
bogdanm 0:9b334a45a8ff 3
bogdanm 0:9b334a45a8ff 4 /**
bogdanm 0:9b334a45a8ff 5 * \defgroup part_macros_group Atmel part identification macros
bogdanm 0:9b334a45a8ff 6 *
bogdanm 0:9b334a45a8ff 7 * This collection of macros identify which series and families that the various
bogdanm 0:9b334a45a8ff 8 * Atmel parts belong to. These can be used to select part-dependent sections of
bogdanm 0:9b334a45a8ff 9 * code at compile time.
bogdanm 0:9b334a45a8ff 10 *
bogdanm 0:9b334a45a8ff 11 * @{
bogdanm 0:9b334a45a8ff 12 */
bogdanm 0:9b334a45a8ff 13
bogdanm 0:9b334a45a8ff 14 /**
bogdanm 0:9b334a45a8ff 15 * \name Convenience macros for part checking
bogdanm 0:9b334a45a8ff 16 * @{
bogdanm 0:9b334a45a8ff 17 */
bogdanm 0:9b334a45a8ff 18 /* ! Check GCC and IAR part definition for 8-bit AVR */
bogdanm 0:9b334a45a8ff 19 #define AVR8_PART_IS_DEFINED(part) \
bogdanm 0:9b334a45a8ff 20 (defined(__ ## part ## __) || defined(__AVR_ ## part ## __))
bogdanm 0:9b334a45a8ff 21
bogdanm 0:9b334a45a8ff 22 /* ! Check GCC and IAR part definition for 32-bit AVR */
bogdanm 0:9b334a45a8ff 23 #define AVR32_PART_IS_DEFINED(part) \
bogdanm 0:9b334a45a8ff 24 (defined(__AT32 ## part ## __) || defined(__AVR32_ ## part ## __))
bogdanm 0:9b334a45a8ff 25
bogdanm 0:9b334a45a8ff 26 /* ! Check GCC and IAR part definition for SAM */
bogdanm 0:9b334a45a8ff 27 #define SAM_PART_IS_DEFINED(part) (defined(__ ## part ## __))
bogdanm 0:9b334a45a8ff 28 /** @} */
bogdanm 0:9b334a45a8ff 29
bogdanm 0:9b334a45a8ff 30 /**
bogdanm 0:9b334a45a8ff 31 * \defgroup uc3_part_macros_group AVR UC3 parts
bogdanm 0:9b334a45a8ff 32 * @{
bogdanm 0:9b334a45a8ff 33 */
bogdanm 0:9b334a45a8ff 34
bogdanm 0:9b334a45a8ff 35 /**
bogdanm 0:9b334a45a8ff 36 * \name AVR UC3 A series
bogdanm 0:9b334a45a8ff 37 * @{
bogdanm 0:9b334a45a8ff 38 */
bogdanm 0:9b334a45a8ff 39 #define UC3A0 ( \
bogdanm 0:9b334a45a8ff 40 AVR32_PART_IS_DEFINED(UC3A0128) || \
bogdanm 0:9b334a45a8ff 41 AVR32_PART_IS_DEFINED(UC3A0256) || \
bogdanm 0:9b334a45a8ff 42 AVR32_PART_IS_DEFINED(UC3A0512) \
bogdanm 0:9b334a45a8ff 43 )
bogdanm 0:9b334a45a8ff 44
bogdanm 0:9b334a45a8ff 45 #define UC3A1 ( \
bogdanm 0:9b334a45a8ff 46 AVR32_PART_IS_DEFINED(UC3A1128) || \
bogdanm 0:9b334a45a8ff 47 AVR32_PART_IS_DEFINED(UC3A1256) || \
bogdanm 0:9b334a45a8ff 48 AVR32_PART_IS_DEFINED(UC3A1512) \
bogdanm 0:9b334a45a8ff 49 )
bogdanm 0:9b334a45a8ff 50
bogdanm 0:9b334a45a8ff 51 #define UC3A3 ( \
bogdanm 0:9b334a45a8ff 52 AVR32_PART_IS_DEFINED(UC3A364) || \
bogdanm 0:9b334a45a8ff 53 AVR32_PART_IS_DEFINED(UC3A364S) || \
bogdanm 0:9b334a45a8ff 54 AVR32_PART_IS_DEFINED(UC3A3128) || \
bogdanm 0:9b334a45a8ff 55 AVR32_PART_IS_DEFINED(UC3A3128S) || \
bogdanm 0:9b334a45a8ff 56 AVR32_PART_IS_DEFINED(UC3A3256) || \
bogdanm 0:9b334a45a8ff 57 AVR32_PART_IS_DEFINED(UC3A3256S) \
bogdanm 0:9b334a45a8ff 58 )
bogdanm 0:9b334a45a8ff 59
bogdanm 0:9b334a45a8ff 60 #define UC3A4 ( \
bogdanm 0:9b334a45a8ff 61 AVR32_PART_IS_DEFINED(UC3A464) || \
bogdanm 0:9b334a45a8ff 62 AVR32_PART_IS_DEFINED(UC3A464S) || \
bogdanm 0:9b334a45a8ff 63 AVR32_PART_IS_DEFINED(UC3A4128) || \
bogdanm 0:9b334a45a8ff 64 AVR32_PART_IS_DEFINED(UC3A4128S) || \
bogdanm 0:9b334a45a8ff 65 AVR32_PART_IS_DEFINED(UC3A4256) || \
bogdanm 0:9b334a45a8ff 66 AVR32_PART_IS_DEFINED(UC3A4256S) \
bogdanm 0:9b334a45a8ff 67 )
bogdanm 0:9b334a45a8ff 68 /** @} */
bogdanm 0:9b334a45a8ff 69
bogdanm 0:9b334a45a8ff 70 /**
bogdanm 0:9b334a45a8ff 71 * \name AVR UC3 B series
bogdanm 0:9b334a45a8ff 72 * @{
bogdanm 0:9b334a45a8ff 73 */
bogdanm 0:9b334a45a8ff 74 #define UC3B0 ( \
bogdanm 0:9b334a45a8ff 75 AVR32_PART_IS_DEFINED(UC3B064) || \
bogdanm 0:9b334a45a8ff 76 AVR32_PART_IS_DEFINED(UC3B0128) || \
bogdanm 0:9b334a45a8ff 77 AVR32_PART_IS_DEFINED(UC3B0256) || \
bogdanm 0:9b334a45a8ff 78 AVR32_PART_IS_DEFINED(UC3B0512) \
bogdanm 0:9b334a45a8ff 79 )
bogdanm 0:9b334a45a8ff 80
bogdanm 0:9b334a45a8ff 81 #define UC3B1 ( \
bogdanm 0:9b334a45a8ff 82 AVR32_PART_IS_DEFINED(UC3B164) || \
bogdanm 0:9b334a45a8ff 83 AVR32_PART_IS_DEFINED(UC3B1128) || \
bogdanm 0:9b334a45a8ff 84 AVR32_PART_IS_DEFINED(UC3B1256) || \
bogdanm 0:9b334a45a8ff 85 AVR32_PART_IS_DEFINED(UC3B1512) \
bogdanm 0:9b334a45a8ff 86 )
bogdanm 0:9b334a45a8ff 87 /** @} */
bogdanm 0:9b334a45a8ff 88
bogdanm 0:9b334a45a8ff 89 /**
bogdanm 0:9b334a45a8ff 90 * \name AVR UC3 C series
bogdanm 0:9b334a45a8ff 91 * @{
bogdanm 0:9b334a45a8ff 92 */
bogdanm 0:9b334a45a8ff 93 #define UC3C0 ( \
bogdanm 0:9b334a45a8ff 94 AVR32_PART_IS_DEFINED(UC3C064C) || \
bogdanm 0:9b334a45a8ff 95 AVR32_PART_IS_DEFINED(UC3C0128C) || \
bogdanm 0:9b334a45a8ff 96 AVR32_PART_IS_DEFINED(UC3C0256C) || \
bogdanm 0:9b334a45a8ff 97 AVR32_PART_IS_DEFINED(UC3C0512C) \
bogdanm 0:9b334a45a8ff 98 )
bogdanm 0:9b334a45a8ff 99
bogdanm 0:9b334a45a8ff 100 #define UC3C1 ( \
bogdanm 0:9b334a45a8ff 101 AVR32_PART_IS_DEFINED(UC3C164C) || \
bogdanm 0:9b334a45a8ff 102 AVR32_PART_IS_DEFINED(UC3C1128C) || \
bogdanm 0:9b334a45a8ff 103 AVR32_PART_IS_DEFINED(UC3C1256C) || \
bogdanm 0:9b334a45a8ff 104 AVR32_PART_IS_DEFINED(UC3C1512C) \
bogdanm 0:9b334a45a8ff 105 )
bogdanm 0:9b334a45a8ff 106
bogdanm 0:9b334a45a8ff 107 #define UC3C2 ( \
bogdanm 0:9b334a45a8ff 108 AVR32_PART_IS_DEFINED(UC3C264C) || \
bogdanm 0:9b334a45a8ff 109 AVR32_PART_IS_DEFINED(UC3C2128C) || \
bogdanm 0:9b334a45a8ff 110 AVR32_PART_IS_DEFINED(UC3C2256C) || \
bogdanm 0:9b334a45a8ff 111 AVR32_PART_IS_DEFINED(UC3C2512C) \
bogdanm 0:9b334a45a8ff 112 )
bogdanm 0:9b334a45a8ff 113 /** @} */
bogdanm 0:9b334a45a8ff 114
bogdanm 0:9b334a45a8ff 115 /**
bogdanm 0:9b334a45a8ff 116 * \name AVR UC3 D series
bogdanm 0:9b334a45a8ff 117 * @{
bogdanm 0:9b334a45a8ff 118 */
bogdanm 0:9b334a45a8ff 119 #define UC3D3 ( \
bogdanm 0:9b334a45a8ff 120 AVR32_PART_IS_DEFINED(UC64D3) || \
bogdanm 0:9b334a45a8ff 121 AVR32_PART_IS_DEFINED(UC128D3) \
bogdanm 0:9b334a45a8ff 122 )
bogdanm 0:9b334a45a8ff 123
bogdanm 0:9b334a45a8ff 124 #define UC3D4 ( \
bogdanm 0:9b334a45a8ff 125 AVR32_PART_IS_DEFINED(UC64D4) || \
bogdanm 0:9b334a45a8ff 126 AVR32_PART_IS_DEFINED(UC128D4) \
bogdanm 0:9b334a45a8ff 127 )
bogdanm 0:9b334a45a8ff 128 /** @} */
bogdanm 0:9b334a45a8ff 129
bogdanm 0:9b334a45a8ff 130 /**
bogdanm 0:9b334a45a8ff 131 * \name AVR UC3 L series
bogdanm 0:9b334a45a8ff 132 * @{
bogdanm 0:9b334a45a8ff 133 */
bogdanm 0:9b334a45a8ff 134 #define UC3L0 ( \
bogdanm 0:9b334a45a8ff 135 AVR32_PART_IS_DEFINED(UC3L016) || \
bogdanm 0:9b334a45a8ff 136 AVR32_PART_IS_DEFINED(UC3L032) || \
bogdanm 0:9b334a45a8ff 137 AVR32_PART_IS_DEFINED(UC3L064) \
bogdanm 0:9b334a45a8ff 138 )
bogdanm 0:9b334a45a8ff 139
bogdanm 0:9b334a45a8ff 140 #define UC3L0128 ( \
bogdanm 0:9b334a45a8ff 141 AVR32_PART_IS_DEFINED(UC3L0128) \
bogdanm 0:9b334a45a8ff 142 )
bogdanm 0:9b334a45a8ff 143
bogdanm 0:9b334a45a8ff 144 #define UC3L0256 ( \
bogdanm 0:9b334a45a8ff 145 AVR32_PART_IS_DEFINED(UC3L0256) \
bogdanm 0:9b334a45a8ff 146 )
bogdanm 0:9b334a45a8ff 147
bogdanm 0:9b334a45a8ff 148 #define UC3L3 ( \
bogdanm 0:9b334a45a8ff 149 AVR32_PART_IS_DEFINED(UC64L3U) || \
bogdanm 0:9b334a45a8ff 150 AVR32_PART_IS_DEFINED(UC128L3U) || \
bogdanm 0:9b334a45a8ff 151 AVR32_PART_IS_DEFINED(UC256L3U) \
bogdanm 0:9b334a45a8ff 152 )
bogdanm 0:9b334a45a8ff 153
bogdanm 0:9b334a45a8ff 154 #define UC3L4 ( \
bogdanm 0:9b334a45a8ff 155 AVR32_PART_IS_DEFINED(UC64L4U) || \
bogdanm 0:9b334a45a8ff 156 AVR32_PART_IS_DEFINED(UC128L4U) || \
bogdanm 0:9b334a45a8ff 157 AVR32_PART_IS_DEFINED(UC256L4U) \
bogdanm 0:9b334a45a8ff 158 )
bogdanm 0:9b334a45a8ff 159
bogdanm 0:9b334a45a8ff 160 #define UC3L3_L4 (UC3L3 || UC3L4)
bogdanm 0:9b334a45a8ff 161 /** @} */
bogdanm 0:9b334a45a8ff 162
bogdanm 0:9b334a45a8ff 163 /**
bogdanm 0:9b334a45a8ff 164 * \name AVR UC3 families
bogdanm 0:9b334a45a8ff 165 * @{
bogdanm 0:9b334a45a8ff 166 */
bogdanm 0:9b334a45a8ff 167 /** AVR UC3 A family */
bogdanm 0:9b334a45a8ff 168 #define UC3A (UC3A0 || UC3A1 || UC3A3 || UC3A4)
bogdanm 0:9b334a45a8ff 169
bogdanm 0:9b334a45a8ff 170 /** AVR UC3 B family */
bogdanm 0:9b334a45a8ff 171 #define UC3B (UC3B0 || UC3B1)
bogdanm 0:9b334a45a8ff 172
bogdanm 0:9b334a45a8ff 173 /** AVR UC3 C family */
bogdanm 0:9b334a45a8ff 174 #define UC3C (UC3C0 || UC3C1 || UC3C2)
bogdanm 0:9b334a45a8ff 175
bogdanm 0:9b334a45a8ff 176 /** AVR UC3 D family */
bogdanm 0:9b334a45a8ff 177 #define UC3D (UC3D3 || UC3D4)
bogdanm 0:9b334a45a8ff 178
bogdanm 0:9b334a45a8ff 179 /** AVR UC3 L family */
bogdanm 0:9b334a45a8ff 180 #define UC3L (UC3L0 || UC3L0128 || UC3L0256 || UC3L3_L4)
bogdanm 0:9b334a45a8ff 181 /** @} */
bogdanm 0:9b334a45a8ff 182
bogdanm 0:9b334a45a8ff 183 /** AVR UC3 product line */
bogdanm 0:9b334a45a8ff 184 #define UC3 (UC3A || UC3B || UC3C || UC3D || UC3L)
bogdanm 0:9b334a45a8ff 185
bogdanm 0:9b334a45a8ff 186 /** @} */
bogdanm 0:9b334a45a8ff 187
bogdanm 0:9b334a45a8ff 188 /**
bogdanm 0:9b334a45a8ff 189 * \defgroup xmega_part_macros_group AVR XMEGA parts
bogdanm 0:9b334a45a8ff 190 * @{
bogdanm 0:9b334a45a8ff 191 */
bogdanm 0:9b334a45a8ff 192
bogdanm 0:9b334a45a8ff 193 /**
bogdanm 0:9b334a45a8ff 194 * \name AVR XMEGA A series
bogdanm 0:9b334a45a8ff 195 * @{
bogdanm 0:9b334a45a8ff 196 */
bogdanm 0:9b334a45a8ff 197 #define XMEGA_A1 ( \
bogdanm 0:9b334a45a8ff 198 AVR8_PART_IS_DEFINED(ATxmega64A1) || \
bogdanm 0:9b334a45a8ff 199 AVR8_PART_IS_DEFINED(ATxmega128A1) \
bogdanm 0:9b334a45a8ff 200 )
bogdanm 0:9b334a45a8ff 201
bogdanm 0:9b334a45a8ff 202 #define XMEGA_A3 ( \
bogdanm 0:9b334a45a8ff 203 AVR8_PART_IS_DEFINED(ATxmega64A3) || \
bogdanm 0:9b334a45a8ff 204 AVR8_PART_IS_DEFINED(ATxmega128A3) || \
bogdanm 0:9b334a45a8ff 205 AVR8_PART_IS_DEFINED(ATxmega192A3) || \
bogdanm 0:9b334a45a8ff 206 AVR8_PART_IS_DEFINED(ATxmega256A3) \
bogdanm 0:9b334a45a8ff 207 )
bogdanm 0:9b334a45a8ff 208
bogdanm 0:9b334a45a8ff 209 #define XMEGA_A3B ( \
bogdanm 0:9b334a45a8ff 210 AVR8_PART_IS_DEFINED(ATxmega256A3B) \
bogdanm 0:9b334a45a8ff 211 )
bogdanm 0:9b334a45a8ff 212
bogdanm 0:9b334a45a8ff 213 #define XMEGA_A4 ( \
bogdanm 0:9b334a45a8ff 214 AVR8_PART_IS_DEFINED(ATxmega16A4) || \
bogdanm 0:9b334a45a8ff 215 AVR8_PART_IS_DEFINED(ATxmega32A4) \
bogdanm 0:9b334a45a8ff 216 )
bogdanm 0:9b334a45a8ff 217 /** @} */
bogdanm 0:9b334a45a8ff 218
bogdanm 0:9b334a45a8ff 219 /**
bogdanm 0:9b334a45a8ff 220 * \name AVR XMEGA AU series
bogdanm 0:9b334a45a8ff 221 * @{
bogdanm 0:9b334a45a8ff 222 */
bogdanm 0:9b334a45a8ff 223 #define XMEGA_A1U ( \
bogdanm 0:9b334a45a8ff 224 AVR8_PART_IS_DEFINED(ATxmega64A1U) || \
bogdanm 0:9b334a45a8ff 225 AVR8_PART_IS_DEFINED(ATxmega128A1U) \
bogdanm 0:9b334a45a8ff 226 )
bogdanm 0:9b334a45a8ff 227
bogdanm 0:9b334a45a8ff 228 #define XMEGA_A3U ( \
bogdanm 0:9b334a45a8ff 229 AVR8_PART_IS_DEFINED(ATxmega64A3U) || \
bogdanm 0:9b334a45a8ff 230 AVR8_PART_IS_DEFINED(ATxmega128A3U) || \
bogdanm 0:9b334a45a8ff 231 AVR8_PART_IS_DEFINED(ATxmega192A3U) || \
bogdanm 0:9b334a45a8ff 232 AVR8_PART_IS_DEFINED(ATxmega256A3U) \
bogdanm 0:9b334a45a8ff 233 )
bogdanm 0:9b334a45a8ff 234
bogdanm 0:9b334a45a8ff 235 #define XMEGA_A3BU ( \
bogdanm 0:9b334a45a8ff 236 AVR8_PART_IS_DEFINED(ATxmega256A3BU) \
bogdanm 0:9b334a45a8ff 237 )
bogdanm 0:9b334a45a8ff 238
bogdanm 0:9b334a45a8ff 239 #define XMEGA_A4U ( \
bogdanm 0:9b334a45a8ff 240 AVR8_PART_IS_DEFINED(ATxmega16A4U) || \
bogdanm 0:9b334a45a8ff 241 AVR8_PART_IS_DEFINED(ATxmega32A4U) || \
bogdanm 0:9b334a45a8ff 242 AVR8_PART_IS_DEFINED(ATxmega64A4U) || \
bogdanm 0:9b334a45a8ff 243 AVR8_PART_IS_DEFINED(ATxmega128A4U) \
bogdanm 0:9b334a45a8ff 244 )
bogdanm 0:9b334a45a8ff 245 /** @} */
bogdanm 0:9b334a45a8ff 246
bogdanm 0:9b334a45a8ff 247 /**
bogdanm 0:9b334a45a8ff 248 * \name AVR XMEGA B series
bogdanm 0:9b334a45a8ff 249 * @{
bogdanm 0:9b334a45a8ff 250 */
bogdanm 0:9b334a45a8ff 251 #define XMEGA_B1 ( \
bogdanm 0:9b334a45a8ff 252 AVR8_PART_IS_DEFINED(ATxmega64B1) || \
bogdanm 0:9b334a45a8ff 253 AVR8_PART_IS_DEFINED(ATxmega128B1) \
bogdanm 0:9b334a45a8ff 254 )
bogdanm 0:9b334a45a8ff 255
bogdanm 0:9b334a45a8ff 256 #define XMEGA_B3 ( \
bogdanm 0:9b334a45a8ff 257 AVR8_PART_IS_DEFINED(ATxmega64B3) || \
bogdanm 0:9b334a45a8ff 258 AVR8_PART_IS_DEFINED(ATxmega128B3) \
bogdanm 0:9b334a45a8ff 259 )
bogdanm 0:9b334a45a8ff 260 /** @} */
bogdanm 0:9b334a45a8ff 261
bogdanm 0:9b334a45a8ff 262 /**
bogdanm 0:9b334a45a8ff 263 * \name AVR XMEGA C series
bogdanm 0:9b334a45a8ff 264 * @{
bogdanm 0:9b334a45a8ff 265 */
bogdanm 0:9b334a45a8ff 266 #define XMEGA_C3 ( \
bogdanm 0:9b334a45a8ff 267 AVR8_PART_IS_DEFINED(ATxmega384C3) || \
bogdanm 0:9b334a45a8ff 268 AVR8_PART_IS_DEFINED(ATxmega256C3) || \
bogdanm 0:9b334a45a8ff 269 AVR8_PART_IS_DEFINED(ATxmega192C3) || \
bogdanm 0:9b334a45a8ff 270 AVR8_PART_IS_DEFINED(ATxmega128C3) || \
bogdanm 0:9b334a45a8ff 271 AVR8_PART_IS_DEFINED(ATxmega64C3) || \
bogdanm 0:9b334a45a8ff 272 AVR8_PART_IS_DEFINED(ATxmega32C3) \
bogdanm 0:9b334a45a8ff 273 )
bogdanm 0:9b334a45a8ff 274
bogdanm 0:9b334a45a8ff 275 #define XMEGA_C4 ( \
bogdanm 0:9b334a45a8ff 276 AVR8_PART_IS_DEFINED(ATxmega32C4) || \
bogdanm 0:9b334a45a8ff 277 AVR8_PART_IS_DEFINED(ATxmega16C4) \
bogdanm 0:9b334a45a8ff 278 )
bogdanm 0:9b334a45a8ff 279 /** @} */
bogdanm 0:9b334a45a8ff 280
bogdanm 0:9b334a45a8ff 281 /**
bogdanm 0:9b334a45a8ff 282 * \name AVR XMEGA D series
bogdanm 0:9b334a45a8ff 283 * @{
bogdanm 0:9b334a45a8ff 284 */
bogdanm 0:9b334a45a8ff 285 #define XMEGA_D3 ( \
bogdanm 0:9b334a45a8ff 286 AVR8_PART_IS_DEFINED(ATxmega32D3) || \
bogdanm 0:9b334a45a8ff 287 AVR8_PART_IS_DEFINED(ATxmega64D3) || \
bogdanm 0:9b334a45a8ff 288 AVR8_PART_IS_DEFINED(ATxmega128D3) || \
bogdanm 0:9b334a45a8ff 289 AVR8_PART_IS_DEFINED(ATxmega192D3) || \
bogdanm 0:9b334a45a8ff 290 AVR8_PART_IS_DEFINED(ATxmega256D3) || \
bogdanm 0:9b334a45a8ff 291 AVR8_PART_IS_DEFINED(ATxmega384D3) \
bogdanm 0:9b334a45a8ff 292 )
bogdanm 0:9b334a45a8ff 293
bogdanm 0:9b334a45a8ff 294 #define XMEGA_D4 ( \
bogdanm 0:9b334a45a8ff 295 AVR8_PART_IS_DEFINED(ATxmega16D4) || \
bogdanm 0:9b334a45a8ff 296 AVR8_PART_IS_DEFINED(ATxmega32D4) || \
bogdanm 0:9b334a45a8ff 297 AVR8_PART_IS_DEFINED(ATxmega64D4) || \
bogdanm 0:9b334a45a8ff 298 AVR8_PART_IS_DEFINED(ATxmega128D4) \
bogdanm 0:9b334a45a8ff 299 )
bogdanm 0:9b334a45a8ff 300 /** @} */
bogdanm 0:9b334a45a8ff 301
bogdanm 0:9b334a45a8ff 302 /**
bogdanm 0:9b334a45a8ff 303 * \name AVR XMEGA E series
bogdanm 0:9b334a45a8ff 304 * @{
bogdanm 0:9b334a45a8ff 305 */
bogdanm 0:9b334a45a8ff 306 #define XMEGA_E5 ( \
bogdanm 0:9b334a45a8ff 307 AVR8_PART_IS_DEFINED(ATxmega8E5) || \
bogdanm 0:9b334a45a8ff 308 AVR8_PART_IS_DEFINED(ATxmega16E5) || \
bogdanm 0:9b334a45a8ff 309 AVR8_PART_IS_DEFINED(ATxmega32E5) \
bogdanm 0:9b334a45a8ff 310 )
bogdanm 0:9b334a45a8ff 311 /** @} */
bogdanm 0:9b334a45a8ff 312
bogdanm 0:9b334a45a8ff 313
bogdanm 0:9b334a45a8ff 314 /**
bogdanm 0:9b334a45a8ff 315 * \name AVR XMEGA families
bogdanm 0:9b334a45a8ff 316 * @{
bogdanm 0:9b334a45a8ff 317 */
bogdanm 0:9b334a45a8ff 318 /** AVR XMEGA A family */
bogdanm 0:9b334a45a8ff 319 #define XMEGA_A (XMEGA_A1 || XMEGA_A3 || XMEGA_A3B || XMEGA_A4)
bogdanm 0:9b334a45a8ff 320
bogdanm 0:9b334a45a8ff 321 /** AVR XMEGA AU family */
bogdanm 0:9b334a45a8ff 322 #define XMEGA_AU (XMEGA_A1U || XMEGA_A3U || XMEGA_A3BU || XMEGA_A4U)
bogdanm 0:9b334a45a8ff 323
bogdanm 0:9b334a45a8ff 324 /** AVR XMEGA B family */
bogdanm 0:9b334a45a8ff 325 #define XMEGA_B (XMEGA_B1 || XMEGA_B3)
bogdanm 0:9b334a45a8ff 326
bogdanm 0:9b334a45a8ff 327 /** AVR XMEGA C family */
bogdanm 0:9b334a45a8ff 328 #define XMEGA_C (XMEGA_C3 || XMEGA_C4)
bogdanm 0:9b334a45a8ff 329
bogdanm 0:9b334a45a8ff 330 /** AVR XMEGA D family */
bogdanm 0:9b334a45a8ff 331 #define XMEGA_D (XMEGA_D3 || XMEGA_D4)
bogdanm 0:9b334a45a8ff 332
bogdanm 0:9b334a45a8ff 333 /** AVR XMEGA E family */
bogdanm 0:9b334a45a8ff 334 #define XMEGA_E (XMEGA_E5)
bogdanm 0:9b334a45a8ff 335 /** @} */
bogdanm 0:9b334a45a8ff 336
bogdanm 0:9b334a45a8ff 337
bogdanm 0:9b334a45a8ff 338 /** AVR XMEGA product line */
bogdanm 0:9b334a45a8ff 339 #define XMEGA (XMEGA_A || XMEGA_AU || XMEGA_B || XMEGA_C || XMEGA_D || XMEGA_E)
bogdanm 0:9b334a45a8ff 340
bogdanm 0:9b334a45a8ff 341 /** @} */
bogdanm 0:9b334a45a8ff 342
bogdanm 0:9b334a45a8ff 343 /**
bogdanm 0:9b334a45a8ff 344 * \defgroup mega_part_macros_group megaAVR parts
bogdanm 0:9b334a45a8ff 345 *
bogdanm 0:9b334a45a8ff 346 * \note These megaAVR groupings are based on the groups in AVR Libc for the
bogdanm 0:9b334a45a8ff 347 * part header files. They are not names of official megaAVR device series or
bogdanm 0:9b334a45a8ff 348 * families.
bogdanm 0:9b334a45a8ff 349 *
bogdanm 0:9b334a45a8ff 350 * @{
bogdanm 0:9b334a45a8ff 351 */
bogdanm 0:9b334a45a8ff 352
bogdanm 0:9b334a45a8ff 353 /**
bogdanm 0:9b334a45a8ff 354 * \name ATmegaxx0/xx1 subgroups
bogdanm 0:9b334a45a8ff 355 * @{
bogdanm 0:9b334a45a8ff 356 */
bogdanm 0:9b334a45a8ff 357 #define MEGA_XX0 ( \
bogdanm 0:9b334a45a8ff 358 AVR8_PART_IS_DEFINED(ATmega640) || \
bogdanm 0:9b334a45a8ff 359 AVR8_PART_IS_DEFINED(ATmega1280) || \
bogdanm 0:9b334a45a8ff 360 AVR8_PART_IS_DEFINED(ATmega2560) \
bogdanm 0:9b334a45a8ff 361 )
bogdanm 0:9b334a45a8ff 362
bogdanm 0:9b334a45a8ff 363 #define MEGA_XX1 ( \
bogdanm 0:9b334a45a8ff 364 AVR8_PART_IS_DEFINED(ATmega1281) || \
bogdanm 0:9b334a45a8ff 365 AVR8_PART_IS_DEFINED(ATmega2561) \
bogdanm 0:9b334a45a8ff 366 )
bogdanm 0:9b334a45a8ff 367 /** @} */
bogdanm 0:9b334a45a8ff 368
bogdanm 0:9b334a45a8ff 369 /**
bogdanm 0:9b334a45a8ff 370 * \name megaAVR groups
bogdanm 0:9b334a45a8ff 371 * @{
bogdanm 0:9b334a45a8ff 372 */
bogdanm 0:9b334a45a8ff 373 /** ATmegaxx0/xx1 group */
bogdanm 0:9b334a45a8ff 374 #define MEGA_XX0_1 (MEGA_XX0 || MEGA_XX1)
bogdanm 0:9b334a45a8ff 375
bogdanm 0:9b334a45a8ff 376 /** ATmegaxx4 group */
bogdanm 0:9b334a45a8ff 377 #define MEGA_XX4 ( \
bogdanm 0:9b334a45a8ff 378 AVR8_PART_IS_DEFINED(ATmega164A) || \
bogdanm 0:9b334a45a8ff 379 AVR8_PART_IS_DEFINED(ATmega164PA) || \
bogdanm 0:9b334a45a8ff 380 AVR8_PART_IS_DEFINED(ATmega324A) || \
bogdanm 0:9b334a45a8ff 381 AVR8_PART_IS_DEFINED(ATmega324PA) || \
bogdanm 0:9b334a45a8ff 382 AVR8_PART_IS_DEFINED(ATmega644) || \
bogdanm 0:9b334a45a8ff 383 AVR8_PART_IS_DEFINED(ATmega644A) || \
bogdanm 0:9b334a45a8ff 384 AVR8_PART_IS_DEFINED(ATmega644PA) || \
bogdanm 0:9b334a45a8ff 385 AVR8_PART_IS_DEFINED(ATmega1284P) || \
bogdanm 0:9b334a45a8ff 386 AVR8_PART_IS_DEFINED(ATmega128RFA1) \
bogdanm 0:9b334a45a8ff 387 )
bogdanm 0:9b334a45a8ff 388
bogdanm 0:9b334a45a8ff 389 /** ATmegaxx4 group */
bogdanm 0:9b334a45a8ff 390 #define MEGA_XX4_A ( \
bogdanm 0:9b334a45a8ff 391 AVR8_PART_IS_DEFINED(ATmega164A) || \
bogdanm 0:9b334a45a8ff 392 AVR8_PART_IS_DEFINED(ATmega164PA) || \
bogdanm 0:9b334a45a8ff 393 AVR8_PART_IS_DEFINED(ATmega324A) || \
bogdanm 0:9b334a45a8ff 394 AVR8_PART_IS_DEFINED(ATmega324PA) || \
bogdanm 0:9b334a45a8ff 395 AVR8_PART_IS_DEFINED(ATmega644A) || \
bogdanm 0:9b334a45a8ff 396 AVR8_PART_IS_DEFINED(ATmega644PA) || \
bogdanm 0:9b334a45a8ff 397 AVR8_PART_IS_DEFINED(ATmega1284P) \
bogdanm 0:9b334a45a8ff 398 )
bogdanm 0:9b334a45a8ff 399
bogdanm 0:9b334a45a8ff 400 /** ATmegaxx8 group */
bogdanm 0:9b334a45a8ff 401 #define MEGA_XX8 ( \
bogdanm 0:9b334a45a8ff 402 AVR8_PART_IS_DEFINED(ATmega48) || \
bogdanm 0:9b334a45a8ff 403 AVR8_PART_IS_DEFINED(ATmega48A) || \
bogdanm 0:9b334a45a8ff 404 AVR8_PART_IS_DEFINED(ATmega48PA) || \
bogdanm 0:9b334a45a8ff 405 AVR8_PART_IS_DEFINED(ATmega88) || \
bogdanm 0:9b334a45a8ff 406 AVR8_PART_IS_DEFINED(ATmega88A) || \
bogdanm 0:9b334a45a8ff 407 AVR8_PART_IS_DEFINED(ATmega88PA) || \
bogdanm 0:9b334a45a8ff 408 AVR8_PART_IS_DEFINED(ATmega168) || \
bogdanm 0:9b334a45a8ff 409 AVR8_PART_IS_DEFINED(ATmega168A) || \
bogdanm 0:9b334a45a8ff 410 AVR8_PART_IS_DEFINED(ATmega168PA) || \
bogdanm 0:9b334a45a8ff 411 AVR8_PART_IS_DEFINED(ATmega328) || \
bogdanm 0:9b334a45a8ff 412 AVR8_PART_IS_DEFINED(ATmega328P) \
bogdanm 0:9b334a45a8ff 413 )
bogdanm 0:9b334a45a8ff 414
bogdanm 0:9b334a45a8ff 415 /** ATmegaxx8A/P/PA group */
bogdanm 0:9b334a45a8ff 416 #define MEGA_XX8_A ( \
bogdanm 0:9b334a45a8ff 417 AVR8_PART_IS_DEFINED(ATmega48A) || \
bogdanm 0:9b334a45a8ff 418 AVR8_PART_IS_DEFINED(ATmega48PA) || \
bogdanm 0:9b334a45a8ff 419 AVR8_PART_IS_DEFINED(ATmega88A) || \
bogdanm 0:9b334a45a8ff 420 AVR8_PART_IS_DEFINED(ATmega88PA) || \
bogdanm 0:9b334a45a8ff 421 AVR8_PART_IS_DEFINED(ATmega168A) || \
bogdanm 0:9b334a45a8ff 422 AVR8_PART_IS_DEFINED(ATmega168PA) || \
bogdanm 0:9b334a45a8ff 423 AVR8_PART_IS_DEFINED(ATmega328P) \
bogdanm 0:9b334a45a8ff 424 )
bogdanm 0:9b334a45a8ff 425
bogdanm 0:9b334a45a8ff 426 /** ATmegaxx group */
bogdanm 0:9b334a45a8ff 427 #define MEGA_XX ( \
bogdanm 0:9b334a45a8ff 428 AVR8_PART_IS_DEFINED(ATmega16) || \
bogdanm 0:9b334a45a8ff 429 AVR8_PART_IS_DEFINED(ATmega16A) || \
bogdanm 0:9b334a45a8ff 430 AVR8_PART_IS_DEFINED(ATmega32) || \
bogdanm 0:9b334a45a8ff 431 AVR8_PART_IS_DEFINED(ATmega32A) || \
bogdanm 0:9b334a45a8ff 432 AVR8_PART_IS_DEFINED(ATmega64) || \
bogdanm 0:9b334a45a8ff 433 AVR8_PART_IS_DEFINED(ATmega64A) || \
bogdanm 0:9b334a45a8ff 434 AVR8_PART_IS_DEFINED(ATmega128) || \
bogdanm 0:9b334a45a8ff 435 AVR8_PART_IS_DEFINED(ATmega128A) \
bogdanm 0:9b334a45a8ff 436 )
bogdanm 0:9b334a45a8ff 437
bogdanm 0:9b334a45a8ff 438 /** ATmegaxxA/P/PA group */
bogdanm 0:9b334a45a8ff 439 #define MEGA_XX_A ( \
bogdanm 0:9b334a45a8ff 440 AVR8_PART_IS_DEFINED(ATmega16A) || \
bogdanm 0:9b334a45a8ff 441 AVR8_PART_IS_DEFINED(ATmega32A) || \
bogdanm 0:9b334a45a8ff 442 AVR8_PART_IS_DEFINED(ATmega64A) || \
bogdanm 0:9b334a45a8ff 443 AVR8_PART_IS_DEFINED(ATmega128A) \
bogdanm 0:9b334a45a8ff 444 )
bogdanm 0:9b334a45a8ff 445 /** ATmegaxxRFA1 group */
bogdanm 0:9b334a45a8ff 446 #define MEGA_RFA1 ( \
bogdanm 0:9b334a45a8ff 447 AVR8_PART_IS_DEFINED(ATmega128RFA1) \
bogdanm 0:9b334a45a8ff 448 )
bogdanm 0:9b334a45a8ff 449
bogdanm 0:9b334a45a8ff 450 /** ATmegaxxRFR2 group */
bogdanm 0:9b334a45a8ff 451 #define MEGA_RFR2 ( \
bogdanm 0:9b334a45a8ff 452 AVR8_PART_IS_DEFINED(ATmega64RFR2) || \
bogdanm 0:9b334a45a8ff 453 AVR8_PART_IS_DEFINED(ATmega128RFR2) || \
bogdanm 0:9b334a45a8ff 454 AVR8_PART_IS_DEFINED(ATmega256RFR2) || \
bogdanm 0:9b334a45a8ff 455 AVR8_PART_IS_DEFINED(ATmega644RFR2) || \
bogdanm 0:9b334a45a8ff 456 AVR8_PART_IS_DEFINED(ATmega1284RFR2) || \
bogdanm 0:9b334a45a8ff 457 AVR8_PART_IS_DEFINED(ATmega2564RFR2) \
bogdanm 0:9b334a45a8ff 458 )
bogdanm 0:9b334a45a8ff 459
bogdanm 0:9b334a45a8ff 460
bogdanm 0:9b334a45a8ff 461 /** ATmegaxxRFxx group */
bogdanm 0:9b334a45a8ff 462 #define MEGA_RF (MEGA_RFA1 || MEGA_RFR2)
bogdanm 0:9b334a45a8ff 463
bogdanm 0:9b334a45a8ff 464 /**
bogdanm 0:9b334a45a8ff 465 * \name ATmegaxx_un0/un1/un2 subgroups
bogdanm 0:9b334a45a8ff 466 * @{
bogdanm 0:9b334a45a8ff 467 */
bogdanm 0:9b334a45a8ff 468 #define MEGA_XX_UN0 ( \
bogdanm 0:9b334a45a8ff 469 AVR8_PART_IS_DEFINED(ATmega16) || \
bogdanm 0:9b334a45a8ff 470 AVR8_PART_IS_DEFINED(ATmega16A) || \
bogdanm 0:9b334a45a8ff 471 AVR8_PART_IS_DEFINED(ATmega32) || \
bogdanm 0:9b334a45a8ff 472 AVR8_PART_IS_DEFINED(ATmega32A) \
bogdanm 0:9b334a45a8ff 473 )
bogdanm 0:9b334a45a8ff 474
bogdanm 0:9b334a45a8ff 475 /** ATmegaxx group without power reduction and
bogdanm 0:9b334a45a8ff 476 * And interrupt sense register.
bogdanm 0:9b334a45a8ff 477 */
bogdanm 0:9b334a45a8ff 478 #define MEGA_XX_UN1 ( \
bogdanm 0:9b334a45a8ff 479 AVR8_PART_IS_DEFINED(ATmega64) || \
bogdanm 0:9b334a45a8ff 480 AVR8_PART_IS_DEFINED(ATmega64A) || \
bogdanm 0:9b334a45a8ff 481 AVR8_PART_IS_DEFINED(ATmega128) || \
bogdanm 0:9b334a45a8ff 482 AVR8_PART_IS_DEFINED(ATmega128A) \
bogdanm 0:9b334a45a8ff 483 )
bogdanm 0:9b334a45a8ff 484
bogdanm 0:9b334a45a8ff 485 /** ATmegaxx group without power reduction and
bogdanm 0:9b334a45a8ff 486 * And interrupt sense register.
bogdanm 0:9b334a45a8ff 487 */
bogdanm 0:9b334a45a8ff 488 #define MEGA_XX_UN2 ( \
bogdanm 0:9b334a45a8ff 489 AVR8_PART_IS_DEFINED(ATmega169P) || \
bogdanm 0:9b334a45a8ff 490 AVR8_PART_IS_DEFINED(ATmega169PA) || \
bogdanm 0:9b334a45a8ff 491 AVR8_PART_IS_DEFINED(ATmega329P) || \
bogdanm 0:9b334a45a8ff 492 AVR8_PART_IS_DEFINED(ATmega329PA) \
bogdanm 0:9b334a45a8ff 493 )
bogdanm 0:9b334a45a8ff 494
bogdanm 0:9b334a45a8ff 495 /** Devices added to complete megaAVR offering.
bogdanm 0:9b334a45a8ff 496 * Please do not use this group symbol as it is not intended
bogdanm 0:9b334a45a8ff 497 * to be permanent: the devices should be regrouped.
bogdanm 0:9b334a45a8ff 498 */
bogdanm 0:9b334a45a8ff 499 #define MEGA_UNCATEGORIZED ( \
bogdanm 0:9b334a45a8ff 500 AVR8_PART_IS_DEFINED(AT90CAN128) || \
bogdanm 0:9b334a45a8ff 501 AVR8_PART_IS_DEFINED(AT90CAN32) || \
bogdanm 0:9b334a45a8ff 502 AVR8_PART_IS_DEFINED(AT90CAN64) || \
bogdanm 0:9b334a45a8ff 503 AVR8_PART_IS_DEFINED(AT90PWM1) || \
bogdanm 0:9b334a45a8ff 504 AVR8_PART_IS_DEFINED(AT90PWM216) || \
bogdanm 0:9b334a45a8ff 505 AVR8_PART_IS_DEFINED(AT90PWM2B) || \
bogdanm 0:9b334a45a8ff 506 AVR8_PART_IS_DEFINED(AT90PWM316) || \
bogdanm 0:9b334a45a8ff 507 AVR8_PART_IS_DEFINED(AT90PWM3B) || \
bogdanm 0:9b334a45a8ff 508 AVR8_PART_IS_DEFINED(AT90PWM81) || \
bogdanm 0:9b334a45a8ff 509 AVR8_PART_IS_DEFINED(AT90USB1286) || \
bogdanm 0:9b334a45a8ff 510 AVR8_PART_IS_DEFINED(AT90USB1287) || \
bogdanm 0:9b334a45a8ff 511 AVR8_PART_IS_DEFINED(AT90USB162) || \
bogdanm 0:9b334a45a8ff 512 AVR8_PART_IS_DEFINED(AT90USB646) || \
bogdanm 0:9b334a45a8ff 513 AVR8_PART_IS_DEFINED(AT90USB647) || \
bogdanm 0:9b334a45a8ff 514 AVR8_PART_IS_DEFINED(AT90USB82) || \
bogdanm 0:9b334a45a8ff 515 AVR8_PART_IS_DEFINED(ATmega1284) || \
bogdanm 0:9b334a45a8ff 516 AVR8_PART_IS_DEFINED(ATmega162) || \
bogdanm 0:9b334a45a8ff 517 AVR8_PART_IS_DEFINED(ATmega164P) || \
bogdanm 0:9b334a45a8ff 518 AVR8_PART_IS_DEFINED(ATmega165A) || \
bogdanm 0:9b334a45a8ff 519 AVR8_PART_IS_DEFINED(ATmega165P) || \
bogdanm 0:9b334a45a8ff 520 AVR8_PART_IS_DEFINED(ATmega165PA) || \
bogdanm 0:9b334a45a8ff 521 AVR8_PART_IS_DEFINED(ATmega168P) || \
bogdanm 0:9b334a45a8ff 522 AVR8_PART_IS_DEFINED(ATmega169A) || \
bogdanm 0:9b334a45a8ff 523 AVR8_PART_IS_DEFINED(ATmega16M1) || \
bogdanm 0:9b334a45a8ff 524 AVR8_PART_IS_DEFINED(ATmega16U2) || \
bogdanm 0:9b334a45a8ff 525 AVR8_PART_IS_DEFINED(ATmega16U4) || \
bogdanm 0:9b334a45a8ff 526 AVR8_PART_IS_DEFINED(ATmega256RFA2) || \
bogdanm 0:9b334a45a8ff 527 AVR8_PART_IS_DEFINED(ATmega324P) || \
bogdanm 0:9b334a45a8ff 528 AVR8_PART_IS_DEFINED(ATmega325) || \
bogdanm 0:9b334a45a8ff 529 AVR8_PART_IS_DEFINED(ATmega3250) || \
bogdanm 0:9b334a45a8ff 530 AVR8_PART_IS_DEFINED(ATmega3250A) || \
bogdanm 0:9b334a45a8ff 531 AVR8_PART_IS_DEFINED(ATmega3250P) || \
bogdanm 0:9b334a45a8ff 532 AVR8_PART_IS_DEFINED(ATmega3250PA) || \
bogdanm 0:9b334a45a8ff 533 AVR8_PART_IS_DEFINED(ATmega325A) || \
bogdanm 0:9b334a45a8ff 534 AVR8_PART_IS_DEFINED(ATmega325P) || \
bogdanm 0:9b334a45a8ff 535 AVR8_PART_IS_DEFINED(ATmega325PA) || \
bogdanm 0:9b334a45a8ff 536 AVR8_PART_IS_DEFINED(ATmega329) || \
bogdanm 0:9b334a45a8ff 537 AVR8_PART_IS_DEFINED(ATmega3290) || \
bogdanm 0:9b334a45a8ff 538 AVR8_PART_IS_DEFINED(ATmega3290A) || \
bogdanm 0:9b334a45a8ff 539 AVR8_PART_IS_DEFINED(ATmega3290P) || \
bogdanm 0:9b334a45a8ff 540 AVR8_PART_IS_DEFINED(ATmega3290PA) || \
bogdanm 0:9b334a45a8ff 541 AVR8_PART_IS_DEFINED(ATmega329A) || \
bogdanm 0:9b334a45a8ff 542 AVR8_PART_IS_DEFINED(ATmega32M1) || \
bogdanm 0:9b334a45a8ff 543 AVR8_PART_IS_DEFINED(ATmega32U2) || \
bogdanm 0:9b334a45a8ff 544 AVR8_PART_IS_DEFINED(ATmega32U4) || \
bogdanm 0:9b334a45a8ff 545 AVR8_PART_IS_DEFINED(ATmega48P) || \
bogdanm 0:9b334a45a8ff 546 AVR8_PART_IS_DEFINED(ATmega644P) || \
bogdanm 0:9b334a45a8ff 547 AVR8_PART_IS_DEFINED(ATmega645) || \
bogdanm 0:9b334a45a8ff 548 AVR8_PART_IS_DEFINED(ATmega6450) || \
bogdanm 0:9b334a45a8ff 549 AVR8_PART_IS_DEFINED(ATmega6450A) || \
bogdanm 0:9b334a45a8ff 550 AVR8_PART_IS_DEFINED(ATmega6450P) || \
bogdanm 0:9b334a45a8ff 551 AVR8_PART_IS_DEFINED(ATmega645A) || \
bogdanm 0:9b334a45a8ff 552 AVR8_PART_IS_DEFINED(ATmega645P) || \
bogdanm 0:9b334a45a8ff 553 AVR8_PART_IS_DEFINED(ATmega649) || \
bogdanm 0:9b334a45a8ff 554 AVR8_PART_IS_DEFINED(ATmega6490) || \
bogdanm 0:9b334a45a8ff 555 AVR8_PART_IS_DEFINED(ATmega6490A) || \
bogdanm 0:9b334a45a8ff 556 AVR8_PART_IS_DEFINED(ATmega6490P) || \
bogdanm 0:9b334a45a8ff 557 AVR8_PART_IS_DEFINED(ATmega649A) || \
bogdanm 0:9b334a45a8ff 558 AVR8_PART_IS_DEFINED(ATmega649P) || \
bogdanm 0:9b334a45a8ff 559 AVR8_PART_IS_DEFINED(ATmega64M1) || \
bogdanm 0:9b334a45a8ff 560 AVR8_PART_IS_DEFINED(ATmega64RFA2) || \
bogdanm 0:9b334a45a8ff 561 AVR8_PART_IS_DEFINED(ATmega8) || \
bogdanm 0:9b334a45a8ff 562 AVR8_PART_IS_DEFINED(ATmega8515) || \
bogdanm 0:9b334a45a8ff 563 AVR8_PART_IS_DEFINED(ATmega8535) || \
bogdanm 0:9b334a45a8ff 564 AVR8_PART_IS_DEFINED(ATmega88P) || \
bogdanm 0:9b334a45a8ff 565 AVR8_PART_IS_DEFINED(ATmega8A) || \
bogdanm 0:9b334a45a8ff 566 AVR8_PART_IS_DEFINED(ATmega8U2) \
bogdanm 0:9b334a45a8ff 567 )
bogdanm 0:9b334a45a8ff 568
bogdanm 0:9b334a45a8ff 569 /** Unspecified group */
bogdanm 0:9b334a45a8ff 570 #define MEGA_UNSPECIFIED (MEGA_XX_UN0 || MEGA_XX_UN1 || MEGA_XX_UN2 || \
bogdanm 0:9b334a45a8ff 571 MEGA_UNCATEGORIZED)
bogdanm 0:9b334a45a8ff 572
bogdanm 0:9b334a45a8ff 573 /** @} */
bogdanm 0:9b334a45a8ff 574
bogdanm 0:9b334a45a8ff 575 /** megaAVR product line */
bogdanm 0:9b334a45a8ff 576 #define MEGA (MEGA_XX0_1 || MEGA_XX4 || MEGA_XX8 || MEGA_XX || MEGA_RF || \
bogdanm 0:9b334a45a8ff 577 MEGA_UNSPECIFIED)
bogdanm 0:9b334a45a8ff 578
bogdanm 0:9b334a45a8ff 579 /** @} */
bogdanm 0:9b334a45a8ff 580
bogdanm 0:9b334a45a8ff 581 /**
bogdanm 0:9b334a45a8ff 582 * \defgroup tiny_part_macros_group tinyAVR parts
bogdanm 0:9b334a45a8ff 583 *
bogdanm 0:9b334a45a8ff 584 * @{
bogdanm 0:9b334a45a8ff 585 */
bogdanm 0:9b334a45a8ff 586
bogdanm 0:9b334a45a8ff 587 /**
bogdanm 0:9b334a45a8ff 588 * \name tinyAVR groups
bogdanm 0:9b334a45a8ff 589 * @{
bogdanm 0:9b334a45a8ff 590 */
bogdanm 0:9b334a45a8ff 591
bogdanm 0:9b334a45a8ff 592 /** Devices added to complete tinyAVR offering.
bogdanm 0:9b334a45a8ff 593 * Please do not use this group symbol as it is not intended
bogdanm 0:9b334a45a8ff 594 * to be permanent: the devices should be regrouped.
bogdanm 0:9b334a45a8ff 595 */
bogdanm 0:9b334a45a8ff 596 #define TINY_UNCATEGORIZED ( \
bogdanm 0:9b334a45a8ff 597 AVR8_PART_IS_DEFINED(ATtiny10) || \
bogdanm 0:9b334a45a8ff 598 AVR8_PART_IS_DEFINED(ATtiny13) || \
bogdanm 0:9b334a45a8ff 599 AVR8_PART_IS_DEFINED(ATtiny13A) || \
bogdanm 0:9b334a45a8ff 600 AVR8_PART_IS_DEFINED(ATtiny1634) || \
bogdanm 0:9b334a45a8ff 601 AVR8_PART_IS_DEFINED(ATtiny167) || \
bogdanm 0:9b334a45a8ff 602 AVR8_PART_IS_DEFINED(ATtiny20) || \
bogdanm 0:9b334a45a8ff 603 AVR8_PART_IS_DEFINED(ATtiny2313) || \
bogdanm 0:9b334a45a8ff 604 AVR8_PART_IS_DEFINED(ATtiny2313A) || \
bogdanm 0:9b334a45a8ff 605 AVR8_PART_IS_DEFINED(ATtiny24) || \
bogdanm 0:9b334a45a8ff 606 AVR8_PART_IS_DEFINED(ATtiny24A) || \
bogdanm 0:9b334a45a8ff 607 AVR8_PART_IS_DEFINED(ATtiny25) || \
bogdanm 0:9b334a45a8ff 608 AVR8_PART_IS_DEFINED(ATtiny26) || \
bogdanm 0:9b334a45a8ff 609 AVR8_PART_IS_DEFINED(ATtiny261) || \
bogdanm 0:9b334a45a8ff 610 AVR8_PART_IS_DEFINED(ATtiny261A) || \
bogdanm 0:9b334a45a8ff 611 AVR8_PART_IS_DEFINED(ATtiny4) || \
bogdanm 0:9b334a45a8ff 612 AVR8_PART_IS_DEFINED(ATtiny40) || \
bogdanm 0:9b334a45a8ff 613 AVR8_PART_IS_DEFINED(ATtiny4313) || \
bogdanm 0:9b334a45a8ff 614 AVR8_PART_IS_DEFINED(ATtiny43U) || \
bogdanm 0:9b334a45a8ff 615 AVR8_PART_IS_DEFINED(ATtiny44) || \
bogdanm 0:9b334a45a8ff 616 AVR8_PART_IS_DEFINED(ATtiny44A) || \
bogdanm 0:9b334a45a8ff 617 AVR8_PART_IS_DEFINED(ATtiny45) || \
bogdanm 0:9b334a45a8ff 618 AVR8_PART_IS_DEFINED(ATtiny461) || \
bogdanm 0:9b334a45a8ff 619 AVR8_PART_IS_DEFINED(ATtiny461A) || \
bogdanm 0:9b334a45a8ff 620 AVR8_PART_IS_DEFINED(ATtiny48) || \
bogdanm 0:9b334a45a8ff 621 AVR8_PART_IS_DEFINED(ATtiny5) || \
bogdanm 0:9b334a45a8ff 622 AVR8_PART_IS_DEFINED(ATtiny828) || \
bogdanm 0:9b334a45a8ff 623 AVR8_PART_IS_DEFINED(ATtiny84) || \
bogdanm 0:9b334a45a8ff 624 AVR8_PART_IS_DEFINED(ATtiny84A) || \
bogdanm 0:9b334a45a8ff 625 AVR8_PART_IS_DEFINED(ATtiny85) || \
bogdanm 0:9b334a45a8ff 626 AVR8_PART_IS_DEFINED(ATtiny861) || \
bogdanm 0:9b334a45a8ff 627 AVR8_PART_IS_DEFINED(ATtiny861A) || \
bogdanm 0:9b334a45a8ff 628 AVR8_PART_IS_DEFINED(ATtiny87) || \
bogdanm 0:9b334a45a8ff 629 AVR8_PART_IS_DEFINED(ATtiny88) || \
bogdanm 0:9b334a45a8ff 630 AVR8_PART_IS_DEFINED(ATtiny9) \
bogdanm 0:9b334a45a8ff 631 )
bogdanm 0:9b334a45a8ff 632
bogdanm 0:9b334a45a8ff 633 /** @} */
bogdanm 0:9b334a45a8ff 634
bogdanm 0:9b334a45a8ff 635 /** tinyAVR product line */
bogdanm 0:9b334a45a8ff 636 #define TINY (TINY_UNCATEGORIZED)
bogdanm 0:9b334a45a8ff 637
bogdanm 0:9b334a45a8ff 638 /** @} */
bogdanm 0:9b334a45a8ff 639
bogdanm 0:9b334a45a8ff 640 /**
bogdanm 0:9b334a45a8ff 641 * \defgroup sam_part_macros_group SAM parts
bogdanm 0:9b334a45a8ff 642 * @{
bogdanm 0:9b334a45a8ff 643 */
bogdanm 0:9b334a45a8ff 644
bogdanm 0:9b334a45a8ff 645 /**
bogdanm 0:9b334a45a8ff 646 * \name SAM3S series
bogdanm 0:9b334a45a8ff 647 * @{
bogdanm 0:9b334a45a8ff 648 */
bogdanm 0:9b334a45a8ff 649 #define SAM3S1 ( \
bogdanm 0:9b334a45a8ff 650 SAM_PART_IS_DEFINED(SAM3S1A) || \
bogdanm 0:9b334a45a8ff 651 SAM_PART_IS_DEFINED(SAM3S1B) || \
bogdanm 0:9b334a45a8ff 652 SAM_PART_IS_DEFINED(SAM3S1C) \
bogdanm 0:9b334a45a8ff 653 )
bogdanm 0:9b334a45a8ff 654
bogdanm 0:9b334a45a8ff 655 #define SAM3S2 ( \
bogdanm 0:9b334a45a8ff 656 SAM_PART_IS_DEFINED(SAM3S2A) || \
bogdanm 0:9b334a45a8ff 657 SAM_PART_IS_DEFINED(SAM3S2B) || \
bogdanm 0:9b334a45a8ff 658 SAM_PART_IS_DEFINED(SAM3S2C) \
bogdanm 0:9b334a45a8ff 659 )
bogdanm 0:9b334a45a8ff 660
bogdanm 0:9b334a45a8ff 661 #define SAM3S4 ( \
bogdanm 0:9b334a45a8ff 662 SAM_PART_IS_DEFINED(SAM3S4A) || \
bogdanm 0:9b334a45a8ff 663 SAM_PART_IS_DEFINED(SAM3S4B) || \
bogdanm 0:9b334a45a8ff 664 SAM_PART_IS_DEFINED(SAM3S4C) \
bogdanm 0:9b334a45a8ff 665 )
bogdanm 0:9b334a45a8ff 666
bogdanm 0:9b334a45a8ff 667 #define SAM3S8 ( \
bogdanm 0:9b334a45a8ff 668 SAM_PART_IS_DEFINED(SAM3S8B) || \
bogdanm 0:9b334a45a8ff 669 SAM_PART_IS_DEFINED(SAM3S8C) \
bogdanm 0:9b334a45a8ff 670 )
bogdanm 0:9b334a45a8ff 671
bogdanm 0:9b334a45a8ff 672 #define SAM3SD8 ( \
bogdanm 0:9b334a45a8ff 673 SAM_PART_IS_DEFINED(SAM3SD8B) || \
bogdanm 0:9b334a45a8ff 674 SAM_PART_IS_DEFINED(SAM3SD8C) \
bogdanm 0:9b334a45a8ff 675 )
bogdanm 0:9b334a45a8ff 676 /** @} */
bogdanm 0:9b334a45a8ff 677
bogdanm 0:9b334a45a8ff 678 /**
bogdanm 0:9b334a45a8ff 679 * \name SAM3U series
bogdanm 0:9b334a45a8ff 680 * @{
bogdanm 0:9b334a45a8ff 681 */
bogdanm 0:9b334a45a8ff 682 #define SAM3U1 ( \
bogdanm 0:9b334a45a8ff 683 SAM_PART_IS_DEFINED(SAM3U1C) || \
bogdanm 0:9b334a45a8ff 684 SAM_PART_IS_DEFINED(SAM3U1E) \
bogdanm 0:9b334a45a8ff 685 )
bogdanm 0:9b334a45a8ff 686
bogdanm 0:9b334a45a8ff 687 #define SAM3U2 ( \
bogdanm 0:9b334a45a8ff 688 SAM_PART_IS_DEFINED(SAM3U2C) || \
bogdanm 0:9b334a45a8ff 689 SAM_PART_IS_DEFINED(SAM3U2E) \
bogdanm 0:9b334a45a8ff 690 )
bogdanm 0:9b334a45a8ff 691
bogdanm 0:9b334a45a8ff 692 #define SAM3U4 ( \
bogdanm 0:9b334a45a8ff 693 SAM_PART_IS_DEFINED(SAM3U4C) || \
bogdanm 0:9b334a45a8ff 694 SAM_PART_IS_DEFINED(SAM3U4E) \
bogdanm 0:9b334a45a8ff 695 )
bogdanm 0:9b334a45a8ff 696 /** @} */
bogdanm 0:9b334a45a8ff 697
bogdanm 0:9b334a45a8ff 698 /**
bogdanm 0:9b334a45a8ff 699 * \name SAM3N series
bogdanm 0:9b334a45a8ff 700 * @{
bogdanm 0:9b334a45a8ff 701 */
bogdanm 0:9b334a45a8ff 702 #define SAM3N00 ( \
bogdanm 0:9b334a45a8ff 703 SAM_PART_IS_DEFINED(SAM3N00A) || \
bogdanm 0:9b334a45a8ff 704 SAM_PART_IS_DEFINED(SAM3N00B) \
bogdanm 0:9b334a45a8ff 705 )
bogdanm 0:9b334a45a8ff 706
bogdanm 0:9b334a45a8ff 707 #define SAM3N0 ( \
bogdanm 0:9b334a45a8ff 708 SAM_PART_IS_DEFINED(SAM3N0A) || \
bogdanm 0:9b334a45a8ff 709 SAM_PART_IS_DEFINED(SAM3N0B) || \
bogdanm 0:9b334a45a8ff 710 SAM_PART_IS_DEFINED(SAM3N0C) \
bogdanm 0:9b334a45a8ff 711 )
bogdanm 0:9b334a45a8ff 712
bogdanm 0:9b334a45a8ff 713 #define SAM3N1 ( \
bogdanm 0:9b334a45a8ff 714 SAM_PART_IS_DEFINED(SAM3N1A) || \
bogdanm 0:9b334a45a8ff 715 SAM_PART_IS_DEFINED(SAM3N1B) || \
bogdanm 0:9b334a45a8ff 716 SAM_PART_IS_DEFINED(SAM3N1C) \
bogdanm 0:9b334a45a8ff 717 )
bogdanm 0:9b334a45a8ff 718
bogdanm 0:9b334a45a8ff 719 #define SAM3N2 ( \
bogdanm 0:9b334a45a8ff 720 SAM_PART_IS_DEFINED(SAM3N2A) || \
bogdanm 0:9b334a45a8ff 721 SAM_PART_IS_DEFINED(SAM3N2B) || \
bogdanm 0:9b334a45a8ff 722 SAM_PART_IS_DEFINED(SAM3N2C) \
bogdanm 0:9b334a45a8ff 723 )
bogdanm 0:9b334a45a8ff 724
bogdanm 0:9b334a45a8ff 725 #define SAM3N4 ( \
bogdanm 0:9b334a45a8ff 726 SAM_PART_IS_DEFINED(SAM3N4A) || \
bogdanm 0:9b334a45a8ff 727 SAM_PART_IS_DEFINED(SAM3N4B) || \
bogdanm 0:9b334a45a8ff 728 SAM_PART_IS_DEFINED(SAM3N4C) \
bogdanm 0:9b334a45a8ff 729 )
bogdanm 0:9b334a45a8ff 730 /** @} */
bogdanm 0:9b334a45a8ff 731
bogdanm 0:9b334a45a8ff 732 /**
bogdanm 0:9b334a45a8ff 733 * \name SAM3X series
bogdanm 0:9b334a45a8ff 734 * @{
bogdanm 0:9b334a45a8ff 735 */
bogdanm 0:9b334a45a8ff 736 #define SAM3X4 ( \
bogdanm 0:9b334a45a8ff 737 SAM_PART_IS_DEFINED(SAM3X4C) || \
bogdanm 0:9b334a45a8ff 738 SAM_PART_IS_DEFINED(SAM3X4E) \
bogdanm 0:9b334a45a8ff 739 )
bogdanm 0:9b334a45a8ff 740
bogdanm 0:9b334a45a8ff 741 #define SAM3X8 ( \
bogdanm 0:9b334a45a8ff 742 SAM_PART_IS_DEFINED(SAM3X8C) || \
bogdanm 0:9b334a45a8ff 743 SAM_PART_IS_DEFINED(SAM3X8E) || \
bogdanm 0:9b334a45a8ff 744 SAM_PART_IS_DEFINED(SAM3X8H) \
bogdanm 0:9b334a45a8ff 745 )
bogdanm 0:9b334a45a8ff 746 /** @} */
bogdanm 0:9b334a45a8ff 747
bogdanm 0:9b334a45a8ff 748 /**
bogdanm 0:9b334a45a8ff 749 * \name SAM3A series
bogdanm 0:9b334a45a8ff 750 * @{
bogdanm 0:9b334a45a8ff 751 */
bogdanm 0:9b334a45a8ff 752 #define SAM3A4 ( \
bogdanm 0:9b334a45a8ff 753 SAM_PART_IS_DEFINED(SAM3A4C) \
bogdanm 0:9b334a45a8ff 754 )
bogdanm 0:9b334a45a8ff 755
bogdanm 0:9b334a45a8ff 756 #define SAM3A8 ( \
bogdanm 0:9b334a45a8ff 757 SAM_PART_IS_DEFINED(SAM3A8C) \
bogdanm 0:9b334a45a8ff 758 )
bogdanm 0:9b334a45a8ff 759 /** @} */
bogdanm 0:9b334a45a8ff 760
bogdanm 0:9b334a45a8ff 761 /**
bogdanm 0:9b334a45a8ff 762 * \name SAM4S series
bogdanm 0:9b334a45a8ff 763 * @{
bogdanm 0:9b334a45a8ff 764 */
bogdanm 0:9b334a45a8ff 765 #define SAM4S2 ( \
bogdanm 0:9b334a45a8ff 766 SAM_PART_IS_DEFINED(SAM4S2A) || \
bogdanm 0:9b334a45a8ff 767 SAM_PART_IS_DEFINED(SAM4S2B) || \
bogdanm 0:9b334a45a8ff 768 SAM_PART_IS_DEFINED(SAM4S2C) \
bogdanm 0:9b334a45a8ff 769 )
bogdanm 0:9b334a45a8ff 770
bogdanm 0:9b334a45a8ff 771 #define SAM4S4 ( \
bogdanm 0:9b334a45a8ff 772 SAM_PART_IS_DEFINED(SAM4S4A) || \
bogdanm 0:9b334a45a8ff 773 SAM_PART_IS_DEFINED(SAM4S4B) || \
bogdanm 0:9b334a45a8ff 774 SAM_PART_IS_DEFINED(SAM4S4C) \
bogdanm 0:9b334a45a8ff 775 )
bogdanm 0:9b334a45a8ff 776
bogdanm 0:9b334a45a8ff 777 #define SAM4S8 ( \
bogdanm 0:9b334a45a8ff 778 SAM_PART_IS_DEFINED(SAM4S8B) || \
bogdanm 0:9b334a45a8ff 779 SAM_PART_IS_DEFINED(SAM4S8C) \
bogdanm 0:9b334a45a8ff 780 )
bogdanm 0:9b334a45a8ff 781
bogdanm 0:9b334a45a8ff 782 #define SAM4S16 ( \
bogdanm 0:9b334a45a8ff 783 SAM_PART_IS_DEFINED(SAM4S16B) || \
bogdanm 0:9b334a45a8ff 784 SAM_PART_IS_DEFINED(SAM4S16C) \
bogdanm 0:9b334a45a8ff 785 )
bogdanm 0:9b334a45a8ff 786
bogdanm 0:9b334a45a8ff 787 #define SAM4SA16 ( \
bogdanm 0:9b334a45a8ff 788 SAM_PART_IS_DEFINED(SAM4SA16B) || \
bogdanm 0:9b334a45a8ff 789 SAM_PART_IS_DEFINED(SAM4SA16C) \
bogdanm 0:9b334a45a8ff 790 )
bogdanm 0:9b334a45a8ff 791
bogdanm 0:9b334a45a8ff 792 #define SAM4SD16 ( \
bogdanm 0:9b334a45a8ff 793 SAM_PART_IS_DEFINED(SAM4SD16B) || \
bogdanm 0:9b334a45a8ff 794 SAM_PART_IS_DEFINED(SAM4SD16C) \
bogdanm 0:9b334a45a8ff 795 )
bogdanm 0:9b334a45a8ff 796
bogdanm 0:9b334a45a8ff 797 #define SAM4SD32 ( \
bogdanm 0:9b334a45a8ff 798 SAM_PART_IS_DEFINED(SAM4SD32B) || \
bogdanm 0:9b334a45a8ff 799 SAM_PART_IS_DEFINED(SAM4SD32C) \
bogdanm 0:9b334a45a8ff 800 )
bogdanm 0:9b334a45a8ff 801 /** @} */
bogdanm 0:9b334a45a8ff 802
bogdanm 0:9b334a45a8ff 803 /**
bogdanm 0:9b334a45a8ff 804 * \name SAM4L series
bogdanm 0:9b334a45a8ff 805 * @{
bogdanm 0:9b334a45a8ff 806 */
bogdanm 0:9b334a45a8ff 807 #define SAM4LS ( \
bogdanm 0:9b334a45a8ff 808 SAM_PART_IS_DEFINED(SAM4LS2A) || \
bogdanm 0:9b334a45a8ff 809 SAM_PART_IS_DEFINED(SAM4LS2B) || \
bogdanm 0:9b334a45a8ff 810 SAM_PART_IS_DEFINED(SAM4LS2C) || \
bogdanm 0:9b334a45a8ff 811 SAM_PART_IS_DEFINED(SAM4LS4A) || \
bogdanm 0:9b334a45a8ff 812 SAM_PART_IS_DEFINED(SAM4LS4B) || \
bogdanm 0:9b334a45a8ff 813 SAM_PART_IS_DEFINED(SAM4LS4C) || \
bogdanm 0:9b334a45a8ff 814 SAM_PART_IS_DEFINED(SAM4LS8A) || \
bogdanm 0:9b334a45a8ff 815 SAM_PART_IS_DEFINED(SAM4LS8B) || \
bogdanm 0:9b334a45a8ff 816 SAM_PART_IS_DEFINED(SAM4LS8C) \
bogdanm 0:9b334a45a8ff 817 )
bogdanm 0:9b334a45a8ff 818
bogdanm 0:9b334a45a8ff 819 #define SAM4LC ( \
bogdanm 0:9b334a45a8ff 820 SAM_PART_IS_DEFINED(SAM4LC2A) || \
bogdanm 0:9b334a45a8ff 821 SAM_PART_IS_DEFINED(SAM4LC2B) || \
bogdanm 0:9b334a45a8ff 822 SAM_PART_IS_DEFINED(SAM4LC2C) || \
bogdanm 0:9b334a45a8ff 823 SAM_PART_IS_DEFINED(SAM4LC4A) || \
bogdanm 0:9b334a45a8ff 824 SAM_PART_IS_DEFINED(SAM4LC4B) || \
bogdanm 0:9b334a45a8ff 825 SAM_PART_IS_DEFINED(SAM4LC4C) || \
bogdanm 0:9b334a45a8ff 826 SAM_PART_IS_DEFINED(SAM4LC8A) || \
bogdanm 0:9b334a45a8ff 827 SAM_PART_IS_DEFINED(SAM4LC8B) || \
bogdanm 0:9b334a45a8ff 828 SAM_PART_IS_DEFINED(SAM4LC8C) \
bogdanm 0:9b334a45a8ff 829 )
bogdanm 0:9b334a45a8ff 830 /** @} */
bogdanm 0:9b334a45a8ff 831
bogdanm 0:9b334a45a8ff 832 /**
bogdanm 0:9b334a45a8ff 833 * \name SAMD20 series
bogdanm 0:9b334a45a8ff 834 * @{
bogdanm 0:9b334a45a8ff 835 */
bogdanm 0:9b334a45a8ff 836 #define SAMD20J ( \
bogdanm 0:9b334a45a8ff 837 SAM_PART_IS_DEFINED(SAMD20J14) || \
bogdanm 0:9b334a45a8ff 838 SAM_PART_IS_DEFINED(SAMD20J15) || \
bogdanm 0:9b334a45a8ff 839 SAM_PART_IS_DEFINED(SAMD20J16) || \
bogdanm 0:9b334a45a8ff 840 SAM_PART_IS_DEFINED(SAMD20J17) || \
bogdanm 0:9b334a45a8ff 841 SAM_PART_IS_DEFINED(SAMD20J18) \
bogdanm 0:9b334a45a8ff 842 )
bogdanm 0:9b334a45a8ff 843
bogdanm 0:9b334a45a8ff 844 #define SAMD20G ( \
bogdanm 0:9b334a45a8ff 845 SAM_PART_IS_DEFINED(SAMD20G14) || \
bogdanm 0:9b334a45a8ff 846 SAM_PART_IS_DEFINED(SAMD20G15) || \
bogdanm 0:9b334a45a8ff 847 SAM_PART_IS_DEFINED(SAMD20G16) || \
bogdanm 0:9b334a45a8ff 848 SAM_PART_IS_DEFINED(SAMD20G17) || \
bogdanm 0:9b334a45a8ff 849 SAM_PART_IS_DEFINED(SAMD20G17U) || \
bogdanm 0:9b334a45a8ff 850 SAM_PART_IS_DEFINED(SAMD20G18) || \
bogdanm 0:9b334a45a8ff 851 SAM_PART_IS_DEFINED(SAMD20G18U) \
bogdanm 0:9b334a45a8ff 852 )
bogdanm 0:9b334a45a8ff 853
bogdanm 0:9b334a45a8ff 854 #define SAMD20E ( \
bogdanm 0:9b334a45a8ff 855 SAM_PART_IS_DEFINED(SAMD20E14) || \
bogdanm 0:9b334a45a8ff 856 SAM_PART_IS_DEFINED(SAMD20E15) || \
bogdanm 0:9b334a45a8ff 857 SAM_PART_IS_DEFINED(SAMD20E16) || \
bogdanm 0:9b334a45a8ff 858 SAM_PART_IS_DEFINED(SAMD20E17) || \
bogdanm 0:9b334a45a8ff 859 SAM_PART_IS_DEFINED(SAMD20E18) || \
bogdanm 0:9b334a45a8ff 860 SAM_PART_IS_DEFINED(SAMD20E1F) \
bogdanm 0:9b334a45a8ff 861 )
bogdanm 0:9b334a45a8ff 862 /** @} */
bogdanm 0:9b334a45a8ff 863
bogdanm 0:9b334a45a8ff 864 /**
bogdanm 0:9b334a45a8ff 865 * \name SAMD21 series
bogdanm 0:9b334a45a8ff 866 * @{
bogdanm 0:9b334a45a8ff 867 */
bogdanm 0:9b334a45a8ff 868 #define SAMD21J ( \
bogdanm 0:9b334a45a8ff 869 SAM_PART_IS_DEFINED(SAMD21J15A) || \
bogdanm 0:9b334a45a8ff 870 SAM_PART_IS_DEFINED(SAMD21J16A) || \
bogdanm 0:9b334a45a8ff 871 SAM_PART_IS_DEFINED(SAMD21J17A) || \
bogdanm 0:9b334a45a8ff 872 SAM_PART_IS_DEFINED(SAMD21J18A) \
bogdanm 0:9b334a45a8ff 873 )
bogdanm 0:9b334a45a8ff 874
bogdanm 0:9b334a45a8ff 875 #define SAMD21G ( \
bogdanm 0:9b334a45a8ff 876 SAM_PART_IS_DEFINED(SAMD21G15A) || \
bogdanm 0:9b334a45a8ff 877 SAM_PART_IS_DEFINED(SAMD21G16A) || \
bogdanm 0:9b334a45a8ff 878 SAM_PART_IS_DEFINED(SAMD21G17A) || \
bogdanm 0:9b334a45a8ff 879 SAM_PART_IS_DEFINED(SAMD21G18A) \
bogdanm 0:9b334a45a8ff 880 )
bogdanm 0:9b334a45a8ff 881
bogdanm 0:9b334a45a8ff 882 #define SAMD21E ( \
bogdanm 0:9b334a45a8ff 883 SAM_PART_IS_DEFINED(SAMD21E15A) || \
bogdanm 0:9b334a45a8ff 884 SAM_PART_IS_DEFINED(SAMD21E16A) || \
bogdanm 0:9b334a45a8ff 885 SAM_PART_IS_DEFINED(SAMD21E17A) || \
bogdanm 0:9b334a45a8ff 886 SAM_PART_IS_DEFINED(SAMD21E18A) \
bogdanm 0:9b334a45a8ff 887 )
bogdanm 0:9b334a45a8ff 888 /** @} */
bogdanm 0:9b334a45a8ff 889
bogdanm 0:9b334a45a8ff 890 /**
bogdanm 0:9b334a45a8ff 891 * \name SAMR21 series
bogdanm 0:9b334a45a8ff 892 * @{
bogdanm 0:9b334a45a8ff 893 */
bogdanm 0:9b334a45a8ff 894 #define SAMR21G ( \
bogdanm 0:9b334a45a8ff 895 SAM_PART_IS_DEFINED(SAMR21G16A) || \
bogdanm 0:9b334a45a8ff 896 SAM_PART_IS_DEFINED(SAMR21G17A) || \
bogdanm 0:9b334a45a8ff 897 SAM_PART_IS_DEFINED(SAMR21G18A) \
bogdanm 0:9b334a45a8ff 898 )
bogdanm 0:9b334a45a8ff 899
bogdanm 0:9b334a45a8ff 900 #define SAMR21E ( \
bogdanm 0:9b334a45a8ff 901 SAM_PART_IS_DEFINED(SAMR21E16A) || \
bogdanm 0:9b334a45a8ff 902 SAM_PART_IS_DEFINED(SAMR21E17A) || \
bogdanm 0:9b334a45a8ff 903 SAM_PART_IS_DEFINED(SAMR21E18A) \
bogdanm 0:9b334a45a8ff 904 )
bogdanm 0:9b334a45a8ff 905 /** @} */
bogdanm 0:9b334a45a8ff 906
bogdanm 0:9b334a45a8ff 907 /**
bogdanm 0:9b334a45a8ff 908 * \name SAMD10 series
bogdanm 0:9b334a45a8ff 909 * @{
bogdanm 0:9b334a45a8ff 910 */
bogdanm 0:9b334a45a8ff 911 #define SAMD10C ( \
bogdanm 0:9b334a45a8ff 912 SAM_PART_IS_DEFINED(SAMD10C12A) || \
bogdanm 0:9b334a45a8ff 913 SAM_PART_IS_DEFINED(SAMD10C13A) || \
bogdanm 0:9b334a45a8ff 914 SAM_PART_IS_DEFINED(SAMD10C14A) \
bogdanm 0:9b334a45a8ff 915 )
bogdanm 0:9b334a45a8ff 916
bogdanm 0:9b334a45a8ff 917 #define SAMD10DS ( \
bogdanm 0:9b334a45a8ff 918 SAM_PART_IS_DEFINED(SAMD10D12AS) || \
bogdanm 0:9b334a45a8ff 919 SAM_PART_IS_DEFINED(SAMD10D13AS) || \
bogdanm 0:9b334a45a8ff 920 SAM_PART_IS_DEFINED(SAMD10D14AS) \
bogdanm 0:9b334a45a8ff 921 )
bogdanm 0:9b334a45a8ff 922
bogdanm 0:9b334a45a8ff 923 #define SAMD10DM ( \
bogdanm 0:9b334a45a8ff 924 SAM_PART_IS_DEFINED(SAMD10D12AM) || \
bogdanm 0:9b334a45a8ff 925 SAM_PART_IS_DEFINED(SAMD10D13AM) || \
bogdanm 0:9b334a45a8ff 926 SAM_PART_IS_DEFINED(SAMD10D14AM) \
bogdanm 0:9b334a45a8ff 927 )
bogdanm 0:9b334a45a8ff 928 /** @} */
bogdanm 0:9b334a45a8ff 929
bogdanm 0:9b334a45a8ff 930 /**
bogdanm 0:9b334a45a8ff 931 * \name SAMD11 series
bogdanm 0:9b334a45a8ff 932 * @{
bogdanm 0:9b334a45a8ff 933 */
bogdanm 0:9b334a45a8ff 934 #define SAMD11C ( \
bogdanm 0:9b334a45a8ff 935 SAM_PART_IS_DEFINED(SAMD11C14A) \
bogdanm 0:9b334a45a8ff 936 )
bogdanm 0:9b334a45a8ff 937
bogdanm 0:9b334a45a8ff 938 #define SAMD11DS ( \
bogdanm 0:9b334a45a8ff 939 SAM_PART_IS_DEFINED(SAMD11D14AS) \
bogdanm 0:9b334a45a8ff 940 )
bogdanm 0:9b334a45a8ff 941
bogdanm 0:9b334a45a8ff 942 #define SAMD11DM ( \
bogdanm 0:9b334a45a8ff 943 SAM_PART_IS_DEFINED(SAMD11D14AM) \
bogdanm 0:9b334a45a8ff 944 )
bogdanm 0:9b334a45a8ff 945 /** @} */
bogdanm 0:9b334a45a8ff 946
bogdanm 0:9b334a45a8ff 947 /**
bogdanm 0:9b334a45a8ff 948 * \name SAML21 series
bogdanm 0:9b334a45a8ff 949 * @{
bogdanm 0:9b334a45a8ff 950 */
bogdanm 0:9b334a45a8ff 951 #define SAML21E ( \
bogdanm 0:9b334a45a8ff 952 SAM_PART_IS_DEFINED(SAML21E15A) || \
bogdanm 0:9b334a45a8ff 953 SAM_PART_IS_DEFINED(SAML21E16A) || \
bogdanm 0:9b334a45a8ff 954 SAM_PART_IS_DEFINED(SAML21E17A) || \
bogdanm 0:9b334a45a8ff 955 SAM_PART_IS_DEFINED(SAML21E18A) \
bogdanm 0:9b334a45a8ff 956 )
bogdanm 0:9b334a45a8ff 957
bogdanm 0:9b334a45a8ff 958 #define SAML21G ( \
bogdanm 0:9b334a45a8ff 959 SAM_PART_IS_DEFINED(SAML21G16A) || \
bogdanm 0:9b334a45a8ff 960 SAM_PART_IS_DEFINED(SAML21G17A) || \
bogdanm 0:9b334a45a8ff 961 SAM_PART_IS_DEFINED(SAML21G18A) \
bogdanm 0:9b334a45a8ff 962 )
bogdanm 0:9b334a45a8ff 963
bogdanm 0:9b334a45a8ff 964 #define SAML21J ( \
bogdanm 0:9b334a45a8ff 965 SAM_PART_IS_DEFINED(SAML21J16A) || \
bogdanm 0:9b334a45a8ff 966 SAM_PART_IS_DEFINED(SAML21J17A) || \
bogdanm 0:9b334a45a8ff 967 SAM_PART_IS_DEFINED(SAML21J18A) \
bogdanm 0:9b334a45a8ff 968 )
bogdanm 0:9b334a45a8ff 969 /** @} */
bogdanm 0:9b334a45a8ff 970
bogdanm 0:9b334a45a8ff 971 /**
bogdanm 0:9b334a45a8ff 972 * \name SAM4E series
bogdanm 0:9b334a45a8ff 973 * @{
bogdanm 0:9b334a45a8ff 974 */
bogdanm 0:9b334a45a8ff 975 #define SAM4E8 ( \
bogdanm 0:9b334a45a8ff 976 SAM_PART_IS_DEFINED(SAM4E8C) || \
bogdanm 0:9b334a45a8ff 977 SAM_PART_IS_DEFINED(SAM4E8E) \
bogdanm 0:9b334a45a8ff 978 )
bogdanm 0:9b334a45a8ff 979
bogdanm 0:9b334a45a8ff 980 #define SAM4E16 ( \
bogdanm 0:9b334a45a8ff 981 SAM_PART_IS_DEFINED(SAM4E16C) || \
bogdanm 0:9b334a45a8ff 982 SAM_PART_IS_DEFINED(SAM4E16E) \
bogdanm 0:9b334a45a8ff 983 )
bogdanm 0:9b334a45a8ff 984 /** @} */
bogdanm 0:9b334a45a8ff 985
bogdanm 0:9b334a45a8ff 986 /**
bogdanm 0:9b334a45a8ff 987 * \name SAM4N series
bogdanm 0:9b334a45a8ff 988 * @{
bogdanm 0:9b334a45a8ff 989 */
bogdanm 0:9b334a45a8ff 990 #define SAM4N8 ( \
bogdanm 0:9b334a45a8ff 991 SAM_PART_IS_DEFINED(SAM4N8A) || \
bogdanm 0:9b334a45a8ff 992 SAM_PART_IS_DEFINED(SAM4N8B) || \
bogdanm 0:9b334a45a8ff 993 SAM_PART_IS_DEFINED(SAM4N8C) \
bogdanm 0:9b334a45a8ff 994 )
bogdanm 0:9b334a45a8ff 995
bogdanm 0:9b334a45a8ff 996 #define SAM4N16 ( \
bogdanm 0:9b334a45a8ff 997 SAM_PART_IS_DEFINED(SAM4N16B) || \
bogdanm 0:9b334a45a8ff 998 SAM_PART_IS_DEFINED(SAM4N16C) \
bogdanm 0:9b334a45a8ff 999 )
bogdanm 0:9b334a45a8ff 1000 /** @} */
bogdanm 0:9b334a45a8ff 1001
bogdanm 0:9b334a45a8ff 1002 /**
bogdanm 0:9b334a45a8ff 1003 * \name SAM4C series
bogdanm 0:9b334a45a8ff 1004 * @{
bogdanm 0:9b334a45a8ff 1005 */
bogdanm 0:9b334a45a8ff 1006 #define SAM4C8_0 ( \
bogdanm 0:9b334a45a8ff 1007 SAM_PART_IS_DEFINED(SAM4C8C_0) \
bogdanm 0:9b334a45a8ff 1008 )
bogdanm 0:9b334a45a8ff 1009
bogdanm 0:9b334a45a8ff 1010 #define SAM4C8_1 ( \
bogdanm 0:9b334a45a8ff 1011 SAM_PART_IS_DEFINED(SAM4C8C_1) \
bogdanm 0:9b334a45a8ff 1012 )
bogdanm 0:9b334a45a8ff 1013
bogdanm 0:9b334a45a8ff 1014 #define SAM4C8 (SAM4C8_0 || SAM4C8_1)
bogdanm 0:9b334a45a8ff 1015
bogdanm 0:9b334a45a8ff 1016 #define SAM4C16_0 ( \
bogdanm 0:9b334a45a8ff 1017 SAM_PART_IS_DEFINED(SAM4C16C_0) \
bogdanm 0:9b334a45a8ff 1018 )
bogdanm 0:9b334a45a8ff 1019
bogdanm 0:9b334a45a8ff 1020 #define SAM4C16_1 ( \
bogdanm 0:9b334a45a8ff 1021 SAM_PART_IS_DEFINED(SAM4C16C_1) \
bogdanm 0:9b334a45a8ff 1022 )
bogdanm 0:9b334a45a8ff 1023
bogdanm 0:9b334a45a8ff 1024 #define SAM4C16 (SAM4C16_0 || SAM4C16_1)
bogdanm 0:9b334a45a8ff 1025
bogdanm 0:9b334a45a8ff 1026 #define SAM4C32_0 ( \
bogdanm 0:9b334a45a8ff 1027 SAM_PART_IS_DEFINED(SAM4C32C_0) ||\
bogdanm 0:9b334a45a8ff 1028 SAM_PART_IS_DEFINED(SAM4C32E_0) \
bogdanm 0:9b334a45a8ff 1029 )
bogdanm 0:9b334a45a8ff 1030
bogdanm 0:9b334a45a8ff 1031 #define SAM4C32_1 ( \
bogdanm 0:9b334a45a8ff 1032 SAM_PART_IS_DEFINED(SAM4C32C_1) ||\
bogdanm 0:9b334a45a8ff 1033 SAM_PART_IS_DEFINED(SAM4C32E_1) \
bogdanm 0:9b334a45a8ff 1034 )
bogdanm 0:9b334a45a8ff 1035
bogdanm 0:9b334a45a8ff 1036
bogdanm 0:9b334a45a8ff 1037 #define SAM4C32 (SAM4C32_0 || SAM4C32_1)
bogdanm 0:9b334a45a8ff 1038
bogdanm 0:9b334a45a8ff 1039 /** @} */
bogdanm 0:9b334a45a8ff 1040
bogdanm 0:9b334a45a8ff 1041 /**
bogdanm 0:9b334a45a8ff 1042 * \name SAM4CM series
bogdanm 0:9b334a45a8ff 1043 * @{
bogdanm 0:9b334a45a8ff 1044 */
bogdanm 0:9b334a45a8ff 1045 #define SAM4CMP8_0 ( \
bogdanm 0:9b334a45a8ff 1046 SAM_PART_IS_DEFINED(SAM4CMP8C_0) \
bogdanm 0:9b334a45a8ff 1047 )
bogdanm 0:9b334a45a8ff 1048
bogdanm 0:9b334a45a8ff 1049 #define SAM4CMP8_1 ( \
bogdanm 0:9b334a45a8ff 1050 SAM_PART_IS_DEFINED(SAM4CMP8C_1) \
bogdanm 0:9b334a45a8ff 1051 )
bogdanm 0:9b334a45a8ff 1052
bogdanm 0:9b334a45a8ff 1053 #define SAM4CMP8 (SAM4CMP8_0 || SAM4CMP8_1)
bogdanm 0:9b334a45a8ff 1054
bogdanm 0:9b334a45a8ff 1055 #define SAM4CMP16_0 ( \
bogdanm 0:9b334a45a8ff 1056 SAM_PART_IS_DEFINED(SAM4CMP16C_0) \
bogdanm 0:9b334a45a8ff 1057 )
bogdanm 0:9b334a45a8ff 1058
bogdanm 0:9b334a45a8ff 1059 #define SAM4CMP16_1 ( \
bogdanm 0:9b334a45a8ff 1060 SAM_PART_IS_DEFINED(SAM4CMP16C_1) \
bogdanm 0:9b334a45a8ff 1061 )
bogdanm 0:9b334a45a8ff 1062
bogdanm 0:9b334a45a8ff 1063 #define SAM4CMP16 (SAM4CMP16_0 || SAM4CMP16_1)
bogdanm 0:9b334a45a8ff 1064
bogdanm 0:9b334a45a8ff 1065 #define SAM4CMP32_0 ( \
bogdanm 0:9b334a45a8ff 1066 SAM_PART_IS_DEFINED(SAM4CMP32C_0) \
bogdanm 0:9b334a45a8ff 1067 )
bogdanm 0:9b334a45a8ff 1068
bogdanm 0:9b334a45a8ff 1069 #define SAM4CMP32_1 ( \
bogdanm 0:9b334a45a8ff 1070 SAM_PART_IS_DEFINED(SAM4CMP32C_1) \
bogdanm 0:9b334a45a8ff 1071 )
bogdanm 0:9b334a45a8ff 1072
bogdanm 0:9b334a45a8ff 1073 #define SAM4CMP32 (SAM4CMP32_0 || SAM4CMP32_1)
bogdanm 0:9b334a45a8ff 1074
bogdanm 0:9b334a45a8ff 1075 #define SAM4CMS8_0 ( \
bogdanm 0:9b334a45a8ff 1076 SAM_PART_IS_DEFINED(SAM4CMS8C_0) \
bogdanm 0:9b334a45a8ff 1077 )
bogdanm 0:9b334a45a8ff 1078
bogdanm 0:9b334a45a8ff 1079 #define SAM4CMS8_1 ( \
bogdanm 0:9b334a45a8ff 1080 SAM_PART_IS_DEFINED(SAM4CMS8C_1) \
bogdanm 0:9b334a45a8ff 1081 )
bogdanm 0:9b334a45a8ff 1082
bogdanm 0:9b334a45a8ff 1083 #define SAM4CMS8 (SAM4CMS8_0 || SAM4CMS8_1)
bogdanm 0:9b334a45a8ff 1084
bogdanm 0:9b334a45a8ff 1085 #define SAM4CMS16_0 ( \
bogdanm 0:9b334a45a8ff 1086 SAM_PART_IS_DEFINED(SAM4CMS16C_0) \
bogdanm 0:9b334a45a8ff 1087 )
bogdanm 0:9b334a45a8ff 1088
bogdanm 0:9b334a45a8ff 1089 #define SAM4CMS16_1 ( \
bogdanm 0:9b334a45a8ff 1090 SAM_PART_IS_DEFINED(SAM4CMS16C_1) \
bogdanm 0:9b334a45a8ff 1091 )
bogdanm 0:9b334a45a8ff 1092
bogdanm 0:9b334a45a8ff 1093 #define SAM4CMS16 (SAM4CMS16_0 || SAM4CMS16_1)
bogdanm 0:9b334a45a8ff 1094
bogdanm 0:9b334a45a8ff 1095 #define SAM4CMS32_0 ( \
bogdanm 0:9b334a45a8ff 1096 SAM_PART_IS_DEFINED(SAM4CMS32C_0) \
bogdanm 0:9b334a45a8ff 1097 )
bogdanm 0:9b334a45a8ff 1098
bogdanm 0:9b334a45a8ff 1099 #define SAM4CMS32_1 ( \
bogdanm 0:9b334a45a8ff 1100 SAM_PART_IS_DEFINED(SAM4CMS32C_1) \
bogdanm 0:9b334a45a8ff 1101 )
bogdanm 0:9b334a45a8ff 1102
bogdanm 0:9b334a45a8ff 1103 #define SAM4CMS32 (SAM4CMS32_0 || SAM4CMS32_1)
bogdanm 0:9b334a45a8ff 1104
bogdanm 0:9b334a45a8ff 1105 /** @} */
bogdanm 0:9b334a45a8ff 1106
bogdanm 0:9b334a45a8ff 1107 /**
bogdanm 0:9b334a45a8ff 1108 * \name SAM4CP series
bogdanm 0:9b334a45a8ff 1109 * @{
bogdanm 0:9b334a45a8ff 1110 */
bogdanm 0:9b334a45a8ff 1111 #define SAM4CP16_0 ( \
bogdanm 0:9b334a45a8ff 1112 SAM_PART_IS_DEFINED(SAM4CP16B_0) \
bogdanm 0:9b334a45a8ff 1113 )
bogdanm 0:9b334a45a8ff 1114
bogdanm 0:9b334a45a8ff 1115 #define SAM4CP16_1 ( \
bogdanm 0:9b334a45a8ff 1116 SAM_PART_IS_DEFINED(SAM4CP16B_1) \
bogdanm 0:9b334a45a8ff 1117 )
bogdanm 0:9b334a45a8ff 1118
bogdanm 0:9b334a45a8ff 1119 #define SAM4CP16 (SAM4CP16_0 || SAM4CP16_1)
bogdanm 0:9b334a45a8ff 1120 /** @} */
bogdanm 0:9b334a45a8ff 1121
bogdanm 0:9b334a45a8ff 1122 /**
bogdanm 0:9b334a45a8ff 1123 * \name SAMG series
bogdanm 0:9b334a45a8ff 1124 * @{
bogdanm 0:9b334a45a8ff 1125 */
bogdanm 0:9b334a45a8ff 1126 #define SAMG51 ( \
bogdanm 0:9b334a45a8ff 1127 SAM_PART_IS_DEFINED(SAMG51G18) \
bogdanm 0:9b334a45a8ff 1128 )
bogdanm 0:9b334a45a8ff 1129
bogdanm 0:9b334a45a8ff 1130 #define SAMG53 ( \
bogdanm 0:9b334a45a8ff 1131 SAM_PART_IS_DEFINED(SAMG53G19) ||\
bogdanm 0:9b334a45a8ff 1132 SAM_PART_IS_DEFINED(SAMG53N19) \
bogdanm 0:9b334a45a8ff 1133 )
bogdanm 0:9b334a45a8ff 1134
bogdanm 0:9b334a45a8ff 1135 #define SAMG54 ( \
bogdanm 0:9b334a45a8ff 1136 SAM_PART_IS_DEFINED(SAMG54G19) ||\
bogdanm 0:9b334a45a8ff 1137 SAM_PART_IS_DEFINED(SAMG54J19) ||\
bogdanm 0:9b334a45a8ff 1138 SAM_PART_IS_DEFINED(SAMG54N19) \
bogdanm 0:9b334a45a8ff 1139 )
bogdanm 0:9b334a45a8ff 1140
bogdanm 0:9b334a45a8ff 1141 #define SAMG55 ( \
bogdanm 0:9b334a45a8ff 1142 SAM_PART_IS_DEFINED(SAMG55G18) ||\
bogdanm 0:9b334a45a8ff 1143 SAM_PART_IS_DEFINED(SAMG55G19) ||\
bogdanm 0:9b334a45a8ff 1144 SAM_PART_IS_DEFINED(SAMG55J18) ||\
bogdanm 0:9b334a45a8ff 1145 SAM_PART_IS_DEFINED(SAMG55J19) ||\
bogdanm 0:9b334a45a8ff 1146 SAM_PART_IS_DEFINED(SAMG55N19) \
bogdanm 0:9b334a45a8ff 1147 )
bogdanm 0:9b334a45a8ff 1148 /** @} */
bogdanm 0:9b334a45a8ff 1149 /**
bogdanm 0:9b334a45a8ff 1150 * \name SAM families
bogdanm 0:9b334a45a8ff 1151 * @{
bogdanm 0:9b334a45a8ff 1152 */
bogdanm 0:9b334a45a8ff 1153 /** SAM3S Family */
bogdanm 0:9b334a45a8ff 1154 #define SAM3S (SAM3S1 || SAM3S2 || SAM3S4 || SAM3S8 || SAM3SD8)
bogdanm 0:9b334a45a8ff 1155
bogdanm 0:9b334a45a8ff 1156 /** SAM3U Family */
bogdanm 0:9b334a45a8ff 1157 #define SAM3U (SAM3U1 || SAM3U2 || SAM3U4)
bogdanm 0:9b334a45a8ff 1158
bogdanm 0:9b334a45a8ff 1159 /** SAM3N Family */
bogdanm 0:9b334a45a8ff 1160 #define SAM3N (SAM3N00 || SAM3N0 || SAM3N1 || SAM3N2 || SAM3N4)
bogdanm 0:9b334a45a8ff 1161
bogdanm 0:9b334a45a8ff 1162 /** SAM3XA Family */
bogdanm 0:9b334a45a8ff 1163 #define SAM3XA (SAM3X4 || SAM3X8 || SAM3A4 || SAM3A8)
bogdanm 0:9b334a45a8ff 1164
bogdanm 0:9b334a45a8ff 1165 /** SAM4S Family */
bogdanm 0:9b334a45a8ff 1166 #define SAM4S (SAM4S2 || SAM4S4 || SAM4S8 || SAM4S16 || SAM4SA16 || SAM4SD16 || SAM4SD32)
bogdanm 0:9b334a45a8ff 1167
bogdanm 0:9b334a45a8ff 1168 /** SAM4L Family */
bogdanm 0:9b334a45a8ff 1169 #define SAM4L (SAM4LS || SAM4LC)
bogdanm 0:9b334a45a8ff 1170
bogdanm 0:9b334a45a8ff 1171 /** SAMD20 Family */
bogdanm 0:9b334a45a8ff 1172 #define SAMD20 (SAMD20J || SAMD20G || SAMD20E)
bogdanm 0:9b334a45a8ff 1173
bogdanm 0:9b334a45a8ff 1174 /** SAMD21 Family */
bogdanm 0:9b334a45a8ff 1175 #define SAMD21 (SAMD21J || SAMD21G || SAMD21E)
bogdanm 0:9b334a45a8ff 1176
bogdanm 0:9b334a45a8ff 1177 /** SAMD10 Family */
bogdanm 0:9b334a45a8ff 1178 #define SAMD10 (SAMD10C || SAMD10DS || SAMD10DM)
bogdanm 0:9b334a45a8ff 1179
bogdanm 0:9b334a45a8ff 1180 /** SAMD11 Family */
bogdanm 0:9b334a45a8ff 1181 #define SAMD11 (SAMD11C || SAMD11DS || SAMD11DM)
bogdanm 0:9b334a45a8ff 1182
bogdanm 0:9b334a45a8ff 1183 /** SAMD Family */
bogdanm 0:9b334a45a8ff 1184 #define SAMD (SAMD20 || SAMD21 || SAMD10 || SAMD11)
bogdanm 0:9b334a45a8ff 1185
bogdanm 0:9b334a45a8ff 1186 /** SAMR21 Family */
bogdanm 0:9b334a45a8ff 1187 #define SAMR21 (SAMR21G || SAMR21E)
bogdanm 0:9b334a45a8ff 1188
bogdanm 0:9b334a45a8ff 1189 /** SAML21 Family */
bogdanm 0:9b334a45a8ff 1190 #define SAML21 (SAML21J || SAML21G || SAML21E)
bogdanm 0:9b334a45a8ff 1191
bogdanm 0:9b334a45a8ff 1192 /** SAM4E Family */
bogdanm 0:9b334a45a8ff 1193 #define SAM4E (SAM4E8 || SAM4E16)
bogdanm 0:9b334a45a8ff 1194
bogdanm 0:9b334a45a8ff 1195 /** SAM4N Family */
bogdanm 0:9b334a45a8ff 1196 #define SAM4N (SAM4N8 || SAM4N16)
bogdanm 0:9b334a45a8ff 1197
bogdanm 0:9b334a45a8ff 1198 /** SAM4C Family */
bogdanm 0:9b334a45a8ff 1199 #define SAM4C_0 (SAM4C8_0 || SAM4C16_0 || SAM4C32_0)
bogdanm 0:9b334a45a8ff 1200 #define SAM4C_1 (SAM4C8_1 || SAM4C16_1 || SAM4C32_1)
bogdanm 0:9b334a45a8ff 1201 #define SAM4C (SAM4C8 || SAM4C16 || SAM4C32)
bogdanm 0:9b334a45a8ff 1202
bogdanm 0:9b334a45a8ff 1203 /** SAM4CM Family */
bogdanm 0:9b334a45a8ff 1204 #define SAM4CM_0 (SAM4CMP8_0 || SAM4CMP16_0 || SAM4CMP32_0 || SAM4CMS8_0 || \
bogdanm 0:9b334a45a8ff 1205 SAM4CMS16_0 || SAM4CMS32_0)
bogdanm 0:9b334a45a8ff 1206 #define SAM4CM_1 (SAM4CMP8_1 || SAM4CMP16_1 || SAM4CMP32_1 || SAM4CMS8_1 || \
bogdanm 0:9b334a45a8ff 1207 SAM4CMS16_1 || SAM4CMS32_1)
bogdanm 0:9b334a45a8ff 1208 #define SAM4CM (SAM4CMP8 || SAM4CMP16 || SAM4CMP32 || SAM4CMS8 || \
bogdanm 0:9b334a45a8ff 1209 SAM4CMS16 || SAM4CMS32)
bogdanm 0:9b334a45a8ff 1210
bogdanm 0:9b334a45a8ff 1211 /** SAM4CP Family */
bogdanm 0:9b334a45a8ff 1212 #define SAM4CP_0 (SAM4CP16_0)
bogdanm 0:9b334a45a8ff 1213 #define SAM4CP_1 (SAM4CP16_1)
bogdanm 0:9b334a45a8ff 1214 #define SAM4CP (SAM4CP16)
bogdanm 0:9b334a45a8ff 1215
bogdanm 0:9b334a45a8ff 1216 /** SAMG Family */
bogdanm 0:9b334a45a8ff 1217 #define SAMG (SAMG51 || SAMG53 || SAMG54 || SAMG55)
bogdanm 0:9b334a45a8ff 1218
bogdanm 0:9b334a45a8ff 1219 /** SAM0 product line (cortex-m0+) */
bogdanm 0:9b334a45a8ff 1220 #define SAM0 (SAMD20 || SAMD21 || SAMR21 || SAMD10 || SAMD11 || SAML21)
bogdanm 0:9b334a45a8ff 1221
bogdanm 0:9b334a45a8ff 1222 /** @} */
bogdanm 0:9b334a45a8ff 1223
bogdanm 0:9b334a45a8ff 1224 /** SAM product line */
bogdanm 0:9b334a45a8ff 1225 #define SAM (SAM3S || SAM3U || SAM3N || SAM3XA || SAM4S || SAM4L || SAM4E || \
bogdanm 0:9b334a45a8ff 1226 SAM0 || SAM4N || SAM4C || SAM4CM || SAM4CP || SAMG)
bogdanm 0:9b334a45a8ff 1227
bogdanm 0:9b334a45a8ff 1228 /** @} */
bogdanm 0:9b334a45a8ff 1229
bogdanm 0:9b334a45a8ff 1230 /** @} */
bogdanm 0:9b334a45a8ff 1231
bogdanm 0:9b334a45a8ff 1232 /** @} */
bogdanm 0:9b334a45a8ff 1233
bogdanm 0:9b334a45a8ff 1234 #endif /* ATMEL_PARTS_H */