added prescaler for 16 bit pwm in LPC1347 target

Fork of mbed-dev by mbed official

Committer:
JojoS
Date:
Sat Sep 10 15:32:04 2016 +0000
Revision:
147:ba84b7dc41a7
Parent:
144:ef7eb2e8f9f7
added prescaler for 16 bit timers (solution as in LPC11xx), default prescaler 31 for max 28 ms period time

Who changed what in which revision?

UserRevisionLine numberNew contents of line
<> 144:ef7eb2e8f9f7 1 /*******************************************************************************
<> 144:ef7eb2e8f9f7 2 * Copyright (C) 2015 Maxim Integrated Products, Inc., All Rights Reserved.
<> 144:ef7eb2e8f9f7 3 *
<> 144:ef7eb2e8f9f7 4 * Permission is hereby granted, free of charge, to any person obtaining a
<> 144:ef7eb2e8f9f7 5 * copy of this software and associated documentation files (the "Software"),
<> 144:ef7eb2e8f9f7 6 * to deal in the Software without restriction, including without limitation
<> 144:ef7eb2e8f9f7 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
<> 144:ef7eb2e8f9f7 8 * and/or sell copies of the Software, and to permit persons to whom the
<> 144:ef7eb2e8f9f7 9 * Software is furnished to do so, subject to the following conditions:
<> 144:ef7eb2e8f9f7 10 *
<> 144:ef7eb2e8f9f7 11 * The above copyright notice and this permission notice shall be included
<> 144:ef7eb2e8f9f7 12 * in all copies or substantial portions of the Software.
<> 144:ef7eb2e8f9f7 13 *
<> 144:ef7eb2e8f9f7 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
<> 144:ef7eb2e8f9f7 15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
<> 144:ef7eb2e8f9f7 16 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
<> 144:ef7eb2e8f9f7 17 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
<> 144:ef7eb2e8f9f7 18 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
<> 144:ef7eb2e8f9f7 19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
<> 144:ef7eb2e8f9f7 20 * OTHER DEALINGS IN THE SOFTWARE.
<> 144:ef7eb2e8f9f7 21 *
<> 144:ef7eb2e8f9f7 22 * Except as contained in this notice, the name of Maxim Integrated
<> 144:ef7eb2e8f9f7 23 * Products, Inc. shall not be used except as stated in the Maxim Integrated
<> 144:ef7eb2e8f9f7 24 * Products, Inc. Branding Policy.
<> 144:ef7eb2e8f9f7 25 *
<> 144:ef7eb2e8f9f7 26 * The mere transfer of this software does not imply any licenses
<> 144:ef7eb2e8f9f7 27 * of trade secrets, proprietary technology, copyrights, patents,
<> 144:ef7eb2e8f9f7 28 * trademarks, maskwork rights, or any other form of intellectual
<> 144:ef7eb2e8f9f7 29 * property whatsoever. Maxim Integrated Products, Inc. retains all
<> 144:ef7eb2e8f9f7 30 * ownership rights.
<> 144:ef7eb2e8f9f7 31 *******************************************************************************
<> 144:ef7eb2e8f9f7 32 */
<> 144:ef7eb2e8f9f7 33
<> 144:ef7eb2e8f9f7 34 #ifndef _MAX32600_H_
<> 144:ef7eb2e8f9f7 35 #define _MAX32600_H_
<> 144:ef7eb2e8f9f7 36
<> 144:ef7eb2e8f9f7 37 #include <stdint.h>
<> 144:ef7eb2e8f9f7 38
<> 144:ef7eb2e8f9f7 39 typedef enum IRQn_Type {
<> 144:ef7eb2e8f9f7 40 NonMaskableInt_IRQn = -14,
<> 144:ef7eb2e8f9f7 41 HardFault_IRQn = -13,
<> 144:ef7eb2e8f9f7 42 MemoryManagement_IRQn = -12,
<> 144:ef7eb2e8f9f7 43 BusFault_IRQn = -11,
<> 144:ef7eb2e8f9f7 44 UsageFault_IRQn = -10,
<> 144:ef7eb2e8f9f7 45 SVCall_IRQn = -5,
<> 144:ef7eb2e8f9f7 46 DebugMonitor_IRQn = -4,
<> 144:ef7eb2e8f9f7 47 PendSV_IRQn = -2,
<> 144:ef7eb2e8f9f7 48 SysTick_IRQn = -1,
<> 144:ef7eb2e8f9f7 49
<> 144:ef7eb2e8f9f7 50 /* Externals interrupts */
<> 144:ef7eb2e8f9f7 51 UART0_IRQn = 0, /* 16:01 UART0 */
<> 144:ef7eb2e8f9f7 52 UART1_IRQn, /* 17: 2 UART1 */
<> 144:ef7eb2e8f9f7 53 I2CM0_IRQn, /* 18: 3 I2C Master 0 */
<> 144:ef7eb2e8f9f7 54 I2CS_IRQn, /* 19: 4 I2C Slave */
<> 144:ef7eb2e8f9f7 55 USB_IRQn, /* 20: 5 USB */
<> 144:ef7eb2e8f9f7 56 PMU_IRQn, /* 21: 6 DMA */
<> 144:ef7eb2e8f9f7 57 AFE_IRQn, /* 22: 7 AFE */
<> 144:ef7eb2e8f9f7 58 MAA_IRQn, /* 23: 8 MAA */
<> 144:ef7eb2e8f9f7 59 AES_IRQn, /* 24: 9 AES */
<> 144:ef7eb2e8f9f7 60 SPI0_IRQn, /* 25:10 SPI0 */
<> 144:ef7eb2e8f9f7 61 SPI1_IRQn, /* 26:11 SPI1 */
<> 144:ef7eb2e8f9f7 62 SPI2_IRQn, /* 27:12 SPI2 */
<> 144:ef7eb2e8f9f7 63 TMR0_IRQn, /* 28:13 Timer32-0 */
<> 144:ef7eb2e8f9f7 64 TMR1_IRQn, /* 29:14 Timer32-1 */
<> 144:ef7eb2e8f9f7 65 TMR2_IRQn, /* 30:15 Timer32-1 */
<> 144:ef7eb2e8f9f7 66 TMR3_IRQn, /* 31:16 Timer32-2 */
<> 144:ef7eb2e8f9f7 67 RSVD0_IRQn, /* 32:17 RSVD */
<> 144:ef7eb2e8f9f7 68 RSVD1_IRQn, /* 33:18 RSVD */
<> 144:ef7eb2e8f9f7 69 DAC0_IRQn, /* 34:19 DAC0 (12-bit DAC) */
<> 144:ef7eb2e8f9f7 70 DAC1_IRQn, /* 35:20 DAC1 (12-bit DAC) */
<> 144:ef7eb2e8f9f7 71 DAC2_IRQn, /* 36:21 DAC2 (8-bit DAC) */
<> 144:ef7eb2e8f9f7 72 DAC3_IRQn, /* 37:22 DAC3 (8-bit DAC) */
<> 144:ef7eb2e8f9f7 73 ADC_IRQn, /* 38:23 ADC */
<> 144:ef7eb2e8f9f7 74 FLC_IRQn, /* 39:24 Flash Controller */
<> 144:ef7eb2e8f9f7 75 PWRMAN_IRQn, /* 40:25 PWRMAN */
<> 144:ef7eb2e8f9f7 76 CLKMAN_IRQn, /* 41:26 CLKMAN */
<> 144:ef7eb2e8f9f7 77 RTC0_IRQn, /* 42:27 RTC INT0 */
<> 144:ef7eb2e8f9f7 78 RTC1_IRQn, /* 43:28 RTC INT1 */
<> 144:ef7eb2e8f9f7 79 RTC2_IRQn, /* 44:29 RTC INT2 */
<> 144:ef7eb2e8f9f7 80 RTC3_IRQn, /* 45:30 RTC INT3 */
<> 144:ef7eb2e8f9f7 81 WDT0_IRQn, /* 46:31 WATCHDOG0 */
<> 144:ef7eb2e8f9f7 82 WDT0_P_IRQn, /* 47:32 WATCHDOG0 PRE-WINDOW */
<> 144:ef7eb2e8f9f7 83 WDT1_IRQn, /* 48:33 WATCHDOG1 */
<> 144:ef7eb2e8f9f7 84 WDT1_P_IRQn, /* 49:34 WATCHDOG1 PRE-WINDOW */
<> 144:ef7eb2e8f9f7 85 GPIO_P0_IRQn, /* 50:35 GPIO Port 0 */
<> 144:ef7eb2e8f9f7 86 GPIO_P1_IRQn, /* 51:36 GPIO Port 1 */
<> 144:ef7eb2e8f9f7 87 GPIO_P2_IRQn, /* 52:37 GPIO Port 2 */
<> 144:ef7eb2e8f9f7 88 GPIO_P3_IRQn, /* 53:38 GPIO Port 3 */
<> 144:ef7eb2e8f9f7 89 GPIO_P4_IRQn, /* 54:39 GPIO Port 4 */
<> 144:ef7eb2e8f9f7 90 GPIO_P5_IRQn, /* 55:40 GPIO Port 5 */
<> 144:ef7eb2e8f9f7 91 GPIO_P6_IRQn, /* 56:41 GPIO Port 6 */
<> 144:ef7eb2e8f9f7 92 GPIO_P7_IRQn, /* 57:42 GPIO Port 7 */
<> 144:ef7eb2e8f9f7 93 TMR16_0_IRQn, /* 58:43 Timer16-s0 */
<> 144:ef7eb2e8f9f7 94 TMR16_1_IRQn, /* 59:44 Timer16-s1 */
<> 144:ef7eb2e8f9f7 95 TMR16_2_IRQn, /* 60:45 Timer16-s2 */
<> 144:ef7eb2e8f9f7 96 TMR16_3_IRQn, /* 61:46 Timer16-s3 */
<> 144:ef7eb2e8f9f7 97 I2CM1_IRQn, /* 62:47 I2C Master 1 */
<> 144:ef7eb2e8f9f7 98 MXC_IRQ_EXT_COUNT,
<> 144:ef7eb2e8f9f7 99 } IRQn_Type;
<> 144:ef7eb2e8f9f7 100
<> 144:ef7eb2e8f9f7 101 #define MXC_IRQ_COUNT (MXC_IRQ_EXT_COUNT + 16)
<> 144:ef7eb2e8f9f7 102
<> 144:ef7eb2e8f9f7 103 /* ================================================================================ */
<> 144:ef7eb2e8f9f7 104 /* ================ Processor and Core Peripheral Section ================ */
<> 144:ef7eb2e8f9f7 105 /* ================================================================================ */
<> 144:ef7eb2e8f9f7 106
<> 144:ef7eb2e8f9f7 107 #define __NVIC_PRIO_BITS 3 /*!< Number of Bits used for Priority Levels */
<> 144:ef7eb2e8f9f7 108
<> 144:ef7eb2e8f9f7 109 #include <core_cm3.h> /* Processor and core peripherals */
<> 144:ef7eb2e8f9f7 110 #include "system_max32600.h" /* System Header */
<> 144:ef7eb2e8f9f7 111
<> 144:ef7eb2e8f9f7 112 /* ================================================================================ */
<> 144:ef7eb2e8f9f7 113 /* ================== Device Specific Memory Section ================== */
<> 144:ef7eb2e8f9f7 114 /* ================================================================================ */
<> 144:ef7eb2e8f9f7 115
<> 144:ef7eb2e8f9f7 116 #define MXC_FLASH_MEM_BASE 0x00000000UL
<> 144:ef7eb2e8f9f7 117 #define MXC_FLASH_PAGE_SIZE 0x1000 // 256 x 128b = 4KB
<> 144:ef7eb2e8f9f7 118 #define MXC_FLASH_MEM_SIZE 0x00040000UL
<> 144:ef7eb2e8f9f7 119 #define MXC_SYS_MEM_BASE 0x20000000UL
<> 144:ef7eb2e8f9f7 120
<> 144:ef7eb2e8f9f7 121 /* ================================================================================ */
<> 144:ef7eb2e8f9f7 122 /* ================ Device Specific Peripheral Section ================ */
<> 144:ef7eb2e8f9f7 123 /* ================================================================================ */
<> 144:ef7eb2e8f9f7 124
<> 144:ef7eb2e8f9f7 125 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 126 /* General Purpose I/O Ports (GPIO) */
<> 144:ef7eb2e8f9f7 127
<> 144:ef7eb2e8f9f7 128 #define MXC_BASE_GPIO ((uint32_t)0x40000000UL)
<> 144:ef7eb2e8f9f7 129 #define MXC_GPIO ((mxc_gpio_regs_t *)MXC_BASE_GPIO)
<> 144:ef7eb2e8f9f7 130 #define MXC_BASE_GPIO_BITBAND ((uint32_t)0x42000000UL)
<> 144:ef7eb2e8f9f7 131
<> 144:ef7eb2e8f9f7 132 #define MXC_GPIO_GET_IRQ(i) (((unsigned int)i) + GPIO_P0_IRQn)
<> 144:ef7eb2e8f9f7 133
<> 144:ef7eb2e8f9f7 134
<> 144:ef7eb2e8f9f7 135 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 136 /* Pulse Train Generation */
<> 144:ef7eb2e8f9f7 137
<> 144:ef7eb2e8f9f7 138 #define MXC_CFG_PT_INSTANCES (13)
<> 144:ef7eb2e8f9f7 139
<> 144:ef7eb2e8f9f7 140 #define MXC_BASE_PTG ((uint32_t)0x40001000UL)
<> 144:ef7eb2e8f9f7 141 #define MXC_PTG ((mxc_ptg_regs_t *)MXC_BASE_PTG)
<> 144:ef7eb2e8f9f7 142 #define MXC_BASE_PT ((uint32_t)0x40001008UL)
<> 144:ef7eb2e8f9f7 143 #define MXC_PT ((mxc_pt_regs_t *)MXC_BASE_PT)
<> 144:ef7eb2e8f9f7 144 #define MXC_BASE_PT0 ((uint32_t)0x40001008UL)
<> 144:ef7eb2e8f9f7 145 #define MXC_PT0 ((mxc_pt_regs_t *)MXC_BASE_PT0)
<> 144:ef7eb2e8f9f7 146 #define MXC_BASE_PT1 ((uint32_t)0x40001010UL)
<> 144:ef7eb2e8f9f7 147 #define MXC_PT1 ((mxc_pt_regs_t *)MXC_BASE_PT1)
<> 144:ef7eb2e8f9f7 148 #define MXC_BASE_PT2 ((uint32_t)0x40001018UL)
<> 144:ef7eb2e8f9f7 149 #define MXC_PT2 ((mxc_pt_regs_t *)MXC_BASE_PT2)
<> 144:ef7eb2e8f9f7 150 #define MXC_BASE_PT3 ((uint32_t)0x40001020UL)
<> 144:ef7eb2e8f9f7 151 #define MXC_PT3 ((mxc_pt_regs_t *)MXC_BASE_PT3)
<> 144:ef7eb2e8f9f7 152 #define MXC_BASE_PT4 ((uint32_t)0x40001028UL)
<> 144:ef7eb2e8f9f7 153 #define MXC_PT4 ((mxc_pt_regs_t *)MXC_BASE_PT4)
<> 144:ef7eb2e8f9f7 154 #define MXC_BASE_PT5 ((uint32_t)0x40001030UL)
<> 144:ef7eb2e8f9f7 155 #define MXC_PT5 ((mxc_pt_regs_t *)MXC_BASE_PT5)
<> 144:ef7eb2e8f9f7 156 #define MXC_BASE_PT6 ((uint32_t)0x40001038UL)
<> 144:ef7eb2e8f9f7 157 #define MXC_PT6 ((mxc_pt_regs_t *)MXC_BASE_PT6)
<> 144:ef7eb2e8f9f7 158 #define MXC_BASE_PT7 ((uint32_t)0x40001040UL)
<> 144:ef7eb2e8f9f7 159 #define MXC_PT7 ((mxc_pt_regs_t *)MXC_BASE_PT7)
<> 144:ef7eb2e8f9f7 160 #define MXC_BASE_PT8 ((uint32_t)0x40001048UL)
<> 144:ef7eb2e8f9f7 161 #define MXC_PT8 ((mxc_pt_regs_t *)MXC_BASE_PT8)
<> 144:ef7eb2e8f9f7 162 #define MXC_BASE_PT9 ((uint32_t)0x40001050UL)
<> 144:ef7eb2e8f9f7 163 #define MXC_PT9 ((mxc_pt_regs_t *)MXC_BASE_PT9)
<> 144:ef7eb2e8f9f7 164 #define MXC_BASE_PT10 ((uint32_t)0x40001058UL)
<> 144:ef7eb2e8f9f7 165 #define MXC_PT10 ((mxc_pt_regs_t *)MXC_BASE_PT10)
<> 144:ef7eb2e8f9f7 166 #define MXC_BASE_PT11 ((uint32_t)0x40001060UL)
<> 144:ef7eb2e8f9f7 167 #define MXC_PT11 ((mxc_pt_regs_t *)MXC_BASE_PT11)
<> 144:ef7eb2e8f9f7 168
<> 144:ef7eb2e8f9f7 169 /* PT12, PT13, PT14 are not used */
<> 144:ef7eb2e8f9f7 170
<> 144:ef7eb2e8f9f7 171 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 172 /* CRC-16/CRC-32 Engine */
<> 144:ef7eb2e8f9f7 173
<> 144:ef7eb2e8f9f7 174 #define MXC_BASE_CRC ((uint32_t)0x40010000UL)
<> 144:ef7eb2e8f9f7 175 #define MXC_CRC_REGS ((mxc_crc_regs_t *)MXC_BASE_CRC)
<> 144:ef7eb2e8f9f7 176
<> 144:ef7eb2e8f9f7 177 #define MXC_BASE_CRC_DATA ((uint32_t)0x4010B000UL)
<> 144:ef7eb2e8f9f7 178 #define MXC_CRC_DATA ((mxc_crc_data_regs_t *)MXC_BASE_CRC_DATA)
<> 144:ef7eb2e8f9f7 179
<> 144:ef7eb2e8f9f7 180 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 181 /* Trust Protection Unit (TPU) */
<> 144:ef7eb2e8f9f7 182
<> 144:ef7eb2e8f9f7 183 #define MXC_BASE_TPU ((uint32_t)0x40011000UL)
<> 144:ef7eb2e8f9f7 184 #define MXC_TPU ((mxc_tpu_regs_t *)MXC_BASE_TPU)
<> 144:ef7eb2e8f9f7 185
<> 144:ef7eb2e8f9f7 186 #define MXC_BASE_TPU_TSR ((uint32_t)0x40011C00UL)
<> 144:ef7eb2e8f9f7 187 #define MXC_TPU_TSR ((mxc_tpu_tsr_regs_t *)MXC_BASE_TPU_TSR)
<> 144:ef7eb2e8f9f7 188
<> 144:ef7eb2e8f9f7 189 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 190 /* AES Cryptographic Engine */
<> 144:ef7eb2e8f9f7 191
<> 144:ef7eb2e8f9f7 192 #define MXC_BASE_AES ((uint32_t)0x40011400UL)
<> 144:ef7eb2e8f9f7 193 #define MXC_AES ((mxc_aes_regs_t *)MXC_BASE_AES)
<> 144:ef7eb2e8f9f7 194
<> 144:ef7eb2e8f9f7 195 #define MXC_BASE_AES_MEM ((uint32_t)0x4010A000UL)
<> 144:ef7eb2e8f9f7 196 #define MXC_AES_MEM ((mxc_aes_mem_regs_t *)MXC_BASE_AES_MEM)
<> 144:ef7eb2e8f9f7 197
<> 144:ef7eb2e8f9f7 198
<> 144:ef7eb2e8f9f7 199 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 200 /* MAA Cryptographic Engine */
<> 144:ef7eb2e8f9f7 201
<> 144:ef7eb2e8f9f7 202 #define MXC_BASE_MAA ((uint32_t)0x40011800UL)
<> 144:ef7eb2e8f9f7 203 #define MXC_MAA ((mxc_maa_regs_t *)MXC_BASE_MAA)
<> 144:ef7eb2e8f9f7 204
<> 144:ef7eb2e8f9f7 205 #define MXC_BASE_MAA_MEM ((uint32_t)0x4010A800UL)
<> 144:ef7eb2e8f9f7 206 #define MXC_MAA_MEM ((mxc_maa_mem_regs_t *)MXC_BASE_MAA_MEM)
<> 144:ef7eb2e8f9f7 207
<> 144:ef7eb2e8f9f7 208 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 209 /* 32-Bit PWM Timer/Counter */
<> 144:ef7eb2e8f9f7 210
<> 144:ef7eb2e8f9f7 211 #define MXC_CFG_TMR_INSTANCES (4)
<> 144:ef7eb2e8f9f7 212
<> 144:ef7eb2e8f9f7 213 #define MXC_BASE_TMR0 ((uint32_t)0x40012000UL)
<> 144:ef7eb2e8f9f7 214 #define MXC_BASE_TMR0_BITBAND ((uint32_t)0x42240000UL)
<> 144:ef7eb2e8f9f7 215 #define MXC_TMR0 ((mxc_tmr_regs_t *) MXC_BASE_TMR0)
<> 144:ef7eb2e8f9f7 216
<> 144:ef7eb2e8f9f7 217 #define MXC_BASE_TMR1 ((uint32_t)0x40013000UL)
<> 144:ef7eb2e8f9f7 218 #define MXC_BASE_TMR1_BITBAND ((uint32_t)0x42260000UL)
<> 144:ef7eb2e8f9f7 219 #define MXC_TMR1 ((mxc_tmr_regs_t *) MXC_BASE_TMR1)
<> 144:ef7eb2e8f9f7 220
<> 144:ef7eb2e8f9f7 221 #define MXC_BASE_TMR2 ((uint32_t)0x40014000UL)
<> 144:ef7eb2e8f9f7 222 #define MXC_BASE_TMR2_BITBAND ((uint32_t)0x42280000UL)
<> 144:ef7eb2e8f9f7 223 #define MXC_TMR2 ((mxc_tmr_regs_t *) MXC_BASE_TMR2)
<> 144:ef7eb2e8f9f7 224
<> 144:ef7eb2e8f9f7 225 #define MXC_BASE_TMR3 ((uint32_t)0x40015000UL)
<> 144:ef7eb2e8f9f7 226 #define MXC_BASE_TMR3_BITBAND ((uint32_t)0x422A0000UL)
<> 144:ef7eb2e8f9f7 227 #define MXC_TMR3 ((mxc_tmr_regs_t *) MXC_BASE_TMR3)
<> 144:ef7eb2e8f9f7 228
<> 144:ef7eb2e8f9f7 229
<> 144:ef7eb2e8f9f7 230 #define MXC_TMR_GET_IRQ_32(i) ((i) == 0 ? TMR0_IRQn : \
<> 144:ef7eb2e8f9f7 231 (i) == 1 ? TMR1_IRQn : \
<> 144:ef7eb2e8f9f7 232 (i) == 2 ? TMR2_IRQn : \
<> 144:ef7eb2e8f9f7 233 (i) == 3 ? TMR3_IRQn : 0)
<> 144:ef7eb2e8f9f7 234
<> 144:ef7eb2e8f9f7 235 #define MXC_TMR_GET_IRQ_16(i) ((i) == 0 ? TMR0_IRQn : \
<> 144:ef7eb2e8f9f7 236 (i) == 1 ? TMR1_IRQn : \
<> 144:ef7eb2e8f9f7 237 (i) == 2 ? TMR2_IRQn : \
<> 144:ef7eb2e8f9f7 238 (i) == 3 ? TMR3_IRQn : \
<> 144:ef7eb2e8f9f7 239 (i) == 4 ? TMR16_0_IRQn : \
<> 144:ef7eb2e8f9f7 240 (i) == 5 ? TMR16_1_IRQn : \
<> 144:ef7eb2e8f9f7 241 (i) == 6 ? TMR16_2_IRQn : \
<> 144:ef7eb2e8f9f7 242 (i) == 7 ? TMR16_3_IRQn : 0)
<> 144:ef7eb2e8f9f7 243
<> 144:ef7eb2e8f9f7 244 #define MXC_TMR_GET_BASE(i) ((i) == 0 ? MXC_BASE_TMR0 : \
<> 144:ef7eb2e8f9f7 245 (i) == 1 ? MXC_BASE_TMR1 : \
<> 144:ef7eb2e8f9f7 246 (i) == 2 ? MXC_BASE_TMR2 : \
<> 144:ef7eb2e8f9f7 247 (i) == 3 ? MXC_BASE_TMR3 : 0)
<> 144:ef7eb2e8f9f7 248
<> 144:ef7eb2e8f9f7 249 #define MXC_TMR_GET_TMR(i) ((i) == 0 ? MXC_TMR0 : \
<> 144:ef7eb2e8f9f7 250 (i) == 1 ? MXC_TMR1 : \
<> 144:ef7eb2e8f9f7 251 (i) == 2 ? MXC_TMR2 : \
<> 144:ef7eb2e8f9f7 252 (i) == 3 ? MXC_TMR3 : 0)
<> 144:ef7eb2e8f9f7 253 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 254 /* Watchdog Timer */
<> 144:ef7eb2e8f9f7 255
<> 144:ef7eb2e8f9f7 256 #define MXC_CFG_WDT_INSTANCES (2)
<> 144:ef7eb2e8f9f7 257
<> 144:ef7eb2e8f9f7 258 #define MXC_BASE_WDT0 ((uint32_t)0x40021000UL)
<> 144:ef7eb2e8f9f7 259 #define MXC_BASE_WDT0_BITBAND ((uint32_t)0x42420000UL)
<> 144:ef7eb2e8f9f7 260 #define MXC_WDT0 ((mxc_wdt_regs_t *)MXC_BASE_WDT0)
<> 144:ef7eb2e8f9f7 261
<> 144:ef7eb2e8f9f7 262 #define MXC_BASE_WDT1 ((uint32_t)0x40022000UL)
<> 144:ef7eb2e8f9f7 263 #define MXC_BASE_WDT1_BITBAND ((uint32_t)0x42440000UL)
<> 144:ef7eb2e8f9f7 264 #define MXC_WDT1 ((mxc_wdt_regs_t *)MXC_BASE_WDT1)
<> 144:ef7eb2e8f9f7 265
<> 144:ef7eb2e8f9f7 266 #define MXC_WDT_GET_IRQ(i) ((i) == 0 ? WDT0_IRQn : \
<> 144:ef7eb2e8f9f7 267 (i) == 1 ? WDT1_IRQn : 0)
<> 144:ef7eb2e8f9f7 268
<> 144:ef7eb2e8f9f7 269 #define MXC_WDT_GET_IRQ_P(i) ((i) == 0 ? WDT0_P_IRQn : \
<> 144:ef7eb2e8f9f7 270 (i) == 1 ? WDT1_P_IRQn : 0)
<> 144:ef7eb2e8f9f7 271
<> 144:ef7eb2e8f9f7 272 #define MXC_WDT_GET_BASE(i) ((i) == 0 ? MXC_BASE_WDT0 : \
<> 144:ef7eb2e8f9f7 273 (i) == 1 ? MXC_BASE_WDT1 : 0)
<> 144:ef7eb2e8f9f7 274
<> 144:ef7eb2e8f9f7 275 #define MXC_WDT_GET_WDT(i) ((i) == 0 ? MXC_WDT0 : \
<> 144:ef7eb2e8f9f7 276 (i) == 1 ? MXC_WDT1 : 0)
<> 144:ef7eb2e8f9f7 277
<> 144:ef7eb2e8f9f7 278 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 279 /* SPI Interface */
<> 144:ef7eb2e8f9f7 280
<> 144:ef7eb2e8f9f7 281 #define MXC_CFG_SPI_INSTANCES (3)
<> 144:ef7eb2e8f9f7 282 #define MXC_CFG_SPI_FIFO_DEPTH (16)
<> 144:ef7eb2e8f9f7 283
<> 144:ef7eb2e8f9f7 284 #define MXC_BASE_SPI0 ((uint32_t)0x40030000UL)
<> 144:ef7eb2e8f9f7 285 #define MXC_SPI0 ((mxc_spi_regs_t *)MXC_BASE_SPI0)
<> 144:ef7eb2e8f9f7 286
<> 144:ef7eb2e8f9f7 287 #define MXC_BASE_SPI0_TXFIFO ((uint32_t)0x40100000UL)
<> 144:ef7eb2e8f9f7 288 #define MXC_SPI0_TXFIFO ((mxc_spi_txfifo_regs_t *)MXC_BASE_SPI0_TXFIFO)
<> 144:ef7eb2e8f9f7 289 #define MXC_BASE_SPI0_RXFIFO ((uint32_t)0x40100800UL)
<> 144:ef7eb2e8f9f7 290 #define MXC_SPI0_RXFIFO ((mxc_spi_rxfifo_regs_t *)MXC_BASE_SPI0_RXFIFO)
<> 144:ef7eb2e8f9f7 291
<> 144:ef7eb2e8f9f7 292 #define MXC_BASE_SPI1 ((uint32_t)0x40031000UL)
<> 144:ef7eb2e8f9f7 293 #define MXC_SPI1 ((mxc_spi_regs_t *)MXC_BASE_SPI1)
<> 144:ef7eb2e8f9f7 294
<> 144:ef7eb2e8f9f7 295 #define MXC_BASE_SPI1_TXFIFO ((uint32_t)0x40101000UL)
<> 144:ef7eb2e8f9f7 296 #define MXC_SPI1_TXFIFO ((mxc_spi_txfifo_regs_t *)MXC_BASE_SPI1_TXFIFO)
<> 144:ef7eb2e8f9f7 297 #define MXC_BASE_SPI1_RXFIFO ((uint32_t)0x40101800UL)
<> 144:ef7eb2e8f9f7 298 #define MXC_SPI1_RXFIFO ((mxc_spi_rxfifo_regs_t *)MXC_BASE_SPI1_RXFIFO)
<> 144:ef7eb2e8f9f7 299
<> 144:ef7eb2e8f9f7 300 #define MXC_BASE_SPI2 ((uint32_t)0x40032000UL)
<> 144:ef7eb2e8f9f7 301 #define MXC_SPI2 ((mxc_spi_regs_t *)MXC_BASE_SPI2)
<> 144:ef7eb2e8f9f7 302
<> 144:ef7eb2e8f9f7 303 #define MXC_BASE_SPI2_TXFIFO ((uint32_t)0x40102000UL)
<> 144:ef7eb2e8f9f7 304 #define MXC_SPI2_TXFIFO ((mxc_spi_txfifo_regs_t *)MXC_BASE_SPI2_TXFIFO)
<> 144:ef7eb2e8f9f7 305 #define MXC_BASE_SPI2_RXFIFO ((uint32_t)0x40102800UL)
<> 144:ef7eb2e8f9f7 306 #define MXC_SPI2_RXFIFO ((mxc_spi_rxfifo_regs_t *)MXC_BASE_SPI2_RXFIFO)
<> 144:ef7eb2e8f9f7 307
<> 144:ef7eb2e8f9f7 308
<> 144:ef7eb2e8f9f7 309 #define MXC_SPI_GET_IRQ(i) ((i) == 0 ? SPI0_IRQn : \
<> 144:ef7eb2e8f9f7 310 (i) == 1 ? SPI1_IRQn : \
<> 144:ef7eb2e8f9f7 311 (i) == 2 ? SPI2_IRQn : 0)
<> 144:ef7eb2e8f9f7 312
<> 144:ef7eb2e8f9f7 313 #define MXC_SPI_GET_BASE(i) ((i) == 0 ? MXC_BASE_SPI0 : \
<> 144:ef7eb2e8f9f7 314 (i) == 1 ? MXC_BASE_SPI1 : \
<> 144:ef7eb2e8f9f7 315 (i) == 2 ? MXC_BASE_SPI2 : 0)
<> 144:ef7eb2e8f9f7 316
<> 144:ef7eb2e8f9f7 317 #define MXC_SPI_GET_SPI(i) ((i) == 0 ? MXC_SPI0 : \
<> 144:ef7eb2e8f9f7 318 (i) == 1 ? MXC_SPI1 : \
<> 144:ef7eb2e8f9f7 319 (i) == 2 ? MXC_SPI2 : 0)
<> 144:ef7eb2e8f9f7 320
<> 144:ef7eb2e8f9f7 321 #define MXC_SPI_GET_RXFIFO(i) ((i) == 0 ? MXC_SPI0_RXFIFO : \
<> 144:ef7eb2e8f9f7 322 (i) == 1 ? MXC_SPI1_RXFIFO : \
<> 144:ef7eb2e8f9f7 323 (i) == 2 ? MXC_SPI2_RXFIFO : 0)
<> 144:ef7eb2e8f9f7 324
<> 144:ef7eb2e8f9f7 325 #define MXC_SPI_GET_TXFIFO(i) ((i) == 0 ? MXC_SPI0_TXFIFO : \
<> 144:ef7eb2e8f9f7 326 (i) == 1 ? MXC_SPI1_TXFIFO : \
<> 144:ef7eb2e8f9f7 327 (i) == 2 ? MXC_SPI2_TXFIFO : 0)
<> 144:ef7eb2e8f9f7 328
<> 144:ef7eb2e8f9f7 329 #define MXC_SPI_INSTANCE_TO_BASE(instance) (((uint32_t)(instance) << 12) + MXC_BASE_SPI0)
<> 144:ef7eb2e8f9f7 330 #define MXC_SPI_BASE_TO_INSTANCE(base) (((uint32_t)(base) & 0x00003000) >> 12)
<> 144:ef7eb2e8f9f7 331
<> 144:ef7eb2e8f9f7 332
<> 144:ef7eb2e8f9f7 333 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 334 /* UART Interface */
<> 144:ef7eb2e8f9f7 335
<> 144:ef7eb2e8f9f7 336 #define MXC_CFG_UART_INSTANCES (2)
<> 144:ef7eb2e8f9f7 337
<> 144:ef7eb2e8f9f7 338 #define MXC_BASE_UART0 ((uint32_t)0x40038000UL)
<> 144:ef7eb2e8f9f7 339 #define MXC_BASE_UART0_BITBAND ((uint32_t)0x42700000UL)
<> 144:ef7eb2e8f9f7 340 #define MXC_UART0 ((mxc_uart_regs_t *)MXC_BASE_UART0)
<> 144:ef7eb2e8f9f7 341
<> 144:ef7eb2e8f9f7 342 #define MXC_BASE_UART1 ((uint32_t)0x40039000UL)
<> 144:ef7eb2e8f9f7 343 #define MXC_BASE_UART1_BITBAND ((uint32_t)0x42720000UL)
<> 144:ef7eb2e8f9f7 344 #define MXC_UART1 ((mxc_uart_regs_t *)MXC_BASE_UART1)
<> 144:ef7eb2e8f9f7 345
<> 144:ef7eb2e8f9f7 346
<> 144:ef7eb2e8f9f7 347 #define MXC_UART_GET_IRQ(i) ((i) == 0 ? UART0_IRQn : \
<> 144:ef7eb2e8f9f7 348 (i) == 1 ? UART1_IRQn : 0)
<> 144:ef7eb2e8f9f7 349
<> 144:ef7eb2e8f9f7 350 #define MXC_UART_GET_BASE(i) ((i) == 0 ? MXC_BASE_UART0 : \
<> 144:ef7eb2e8f9f7 351 (i) == 1 ? MXC_BASE_UART1 : 0)
<> 144:ef7eb2e8f9f7 352
<> 144:ef7eb2e8f9f7 353 #define MXC_UART_GET_UART(i) ((i) == 0 ? MXC_UART0 : \
<> 144:ef7eb2e8f9f7 354 (i) == 1 ? MXC_UART1 : 0)
<> 144:ef7eb2e8f9f7 355
<> 144:ef7eb2e8f9f7 356 #define MXC_UART_INSTANCE_TO_BASE(instance) (((uint32_t)(instance) << 12) + MXC_BASE_UART0)
<> 144:ef7eb2e8f9f7 357 #define MXC_UART_BASE_TO_INSTANCE(base) (((uint32_t)(base) & 0x00001000) >> 12)
<> 144:ef7eb2e8f9f7 358
<> 144:ef7eb2e8f9f7 359
<> 144:ef7eb2e8f9f7 360 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 361 /* I2C Master Interface */
<> 144:ef7eb2e8f9f7 362
<> 144:ef7eb2e8f9f7 363 #define MXC_CFG_I2CM_INSTANCES (2)
<> 144:ef7eb2e8f9f7 364
<> 144:ef7eb2e8f9f7 365 #define MXC_BASE_I2CM0 ((uint32_t)0x40040000UL)
<> 144:ef7eb2e8f9f7 366 #define MXC_BASE_I2CM0_BITBAND ((uint32_t)0x42800000UL)
<> 144:ef7eb2e8f9f7 367 #define MXC_I2CM0 ((mxc_i2cm_regs_t *)MXC_BASE_I2CM0)
<> 144:ef7eb2e8f9f7 368 #define MXC_BASE_I2CM0_TX_FIFO ((uint32_t)0x40103000UL)
<> 144:ef7eb2e8f9f7 369 #define MXC_BASE_I2CM0_RX_FIFO ((uint32_t)0x40103800UL)
<> 144:ef7eb2e8f9f7 370
<> 144:ef7eb2e8f9f7 371 #define MXC_BASE_I2CM1 ((uint32_t)0x40042000UL)
<> 144:ef7eb2e8f9f7 372 #define MXC_BASE_I2CM1_BITBAND ((uint32_t)0x42840000UL)
<> 144:ef7eb2e8f9f7 373 #define MXC_I2CM1 ((mxc_i2cm_regs_t *)MXC_BASE_I2CM1)
<> 144:ef7eb2e8f9f7 374 #define MXC_BASE_I2CM1_TX_FIFO ((uint32_t)0x4010D000UL)
<> 144:ef7eb2e8f9f7 375 #define MXC_BASE_I2CM1_RX_FIFO ((uint32_t)0x4010D800UL)
<> 144:ef7eb2e8f9f7 376
<> 144:ef7eb2e8f9f7 377 #define MXC_I2CM_GET_IRQ(i) ((i) == 0 ? I2CM0_IRQn : \
<> 144:ef7eb2e8f9f7 378 (i) == 1 ? I2CM1_IRQn : 0)
<> 144:ef7eb2e8f9f7 379
<> 144:ef7eb2e8f9f7 380 #define MXC_I2CM_GET_BASE(i) ((i) == 0 ? MXC_BASE_I2CM0 : \
<> 144:ef7eb2e8f9f7 381 (i) == 1 ? MXC_BASE_I2CM1 : 0)
<> 144:ef7eb2e8f9f7 382
<> 144:ef7eb2e8f9f7 383 #define MXC_I2CM_GET_I2CM(i) ((i) == 0 ? MXC_I2CM0 : \
<> 144:ef7eb2e8f9f7 384 (i) == 1 ? MXC_I2CM1 : 0)
<> 144:ef7eb2e8f9f7 385
<> 144:ef7eb2e8f9f7 386 #define MXC_I2CM_GET_BASE_TX_FIFO(i) ((i) == 0 ? MXC_BASE_I2CM0_TX_FIFO : \
<> 144:ef7eb2e8f9f7 387 (i) == 1 ? MXC_BASE_I2CM1_TX_FIFO : 0)
<> 144:ef7eb2e8f9f7 388
<> 144:ef7eb2e8f9f7 389 #define MXC_I2CM_GET_BASE_RX_FIFO(i) ((i) == 0 ? MXC_BASE_I2CM0_RX_FIFO : \
<> 144:ef7eb2e8f9f7 390 (i) == 1 ? MXC_BASE_I2CM1_RX_FIFO : 0)
<> 144:ef7eb2e8f9f7 391
<> 144:ef7eb2e8f9f7 392 #define MXC_I2CM_INSTANCE_TO_BASE(instance) (((uint32_t)(instance) << 13) + MXC_BASE_I2CM0)
<> 144:ef7eb2e8f9f7 393 #define MXC_I2CM_BASE_TO_INSTANCE(base) (((uint32_t)(base) & 0x00002000) >> 13)
<> 144:ef7eb2e8f9f7 394
<> 144:ef7eb2e8f9f7 395
<> 144:ef7eb2e8f9f7 396 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 397 /* I2C Slave Interface */
<> 144:ef7eb2e8f9f7 398
<> 144:ef7eb2e8f9f7 399 #define MXC_CFG_I2CS_INSTANCES (1)
<> 144:ef7eb2e8f9f7 400
<> 144:ef7eb2e8f9f7 401 #define MXC_BASE_I2CS0 ((uint32_t)0x40041000UL)
<> 144:ef7eb2e8f9f7 402 #define MXC_BASE_I2CS0_BITBAND ((uint32_t)0x42820000UL)
<> 144:ef7eb2e8f9f7 403 #define MXC_I2CS0 ((mxc_i2cs_regs_t *)MXC_BASE_I2CS0)
<> 144:ef7eb2e8f9f7 404
<> 144:ef7eb2e8f9f7 405 #define MXC_BASE_I2CS0_FIFO ((uint32_t)0x40104000UL)
<> 144:ef7eb2e8f9f7 406 #define MXC_I2CS0_FIFO ((mxc_i2cs_fifo_regs_t *)MXC_BASE_I2CS0)
<> 144:ef7eb2e8f9f7 407
<> 144:ef7eb2e8f9f7 408
<> 144:ef7eb2e8f9f7 409
<> 144:ef7eb2e8f9f7 410 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 411 /* DACs */
<> 144:ef7eb2e8f9f7 412
<> 144:ef7eb2e8f9f7 413 #define MXC_CFG_DAC_INSTANCES (4)
<> 144:ef7eb2e8f9f7 414 #define MXC_CFG_DAC_FIFO_DEPTH (32)
<> 144:ef7eb2e8f9f7 415
<> 144:ef7eb2e8f9f7 416 #define MXC_BASE_DAC0 ((uint32_t)0x40050000UL)
<> 144:ef7eb2e8f9f7 417 #define MXC_DAC0 ((mxc_dac_regs_t *)MXC_BASE_DAC0)
<> 144:ef7eb2e8f9f7 418 #define MXC_BASE_DAC0_FIFO ((uint32_t)0x40105000UL)
<> 144:ef7eb2e8f9f7 419 #define MXC_DAC0_FIFO ((mxc_dac_fifo_regs_t *)MXC_BASE_DAC0_FIFO)
<> 144:ef7eb2e8f9f7 420 #define MXC_DAC0_WIDTH ((uint8_t)(2))
<> 144:ef7eb2e8f9f7 421
<> 144:ef7eb2e8f9f7 422 #define MXC_BASE_DAC1 ((uint32_t)0x40051000UL)
<> 144:ef7eb2e8f9f7 423 #define MXC_DAC1 ((mxc_dac_regs_t *)MXC_BASE_DAC1)
<> 144:ef7eb2e8f9f7 424 #define MXC_BASE_DAC1_FIFO ((uint32_t)0x40106000UL)
<> 144:ef7eb2e8f9f7 425 #define MXC_DAC1_FIFO ((mxc_dac_fifo_regs_t *)MXC_BASE_DAC1_FIFO)
<> 144:ef7eb2e8f9f7 426 #define MXC_DAC1_WIDTH ((uint8_t)(2))
<> 144:ef7eb2e8f9f7 427
<> 144:ef7eb2e8f9f7 428 #define MXC_BASE_DAC2 ((uint32_t)0x40052000UL)
<> 144:ef7eb2e8f9f7 429 #define MXC_DAC2 ((mxc_dac_regs_t *)MXC_BASE_DAC2)
<> 144:ef7eb2e8f9f7 430 #define MXC_BASE_DAC2_FIFO ((uint32_t)0x40107000UL)
<> 144:ef7eb2e8f9f7 431 #define MXC_DAC2_FIFO ((mxc_dac_fifo_regs_t *)MXC_BASE_DAC2_FIFO)
<> 144:ef7eb2e8f9f7 432 #define MXC_DAC2_WIDTH ((uint8_t)(1))
<> 144:ef7eb2e8f9f7 433
<> 144:ef7eb2e8f9f7 434 #define MXC_BASE_DAC3 ((uint32_t)0x40053000UL)
<> 144:ef7eb2e8f9f7 435 #define MXC_DAC3 ((mxc_dac_regs_t *)MXC_BASE_DAC3)
<> 144:ef7eb2e8f9f7 436 #define MXC_BASE_DAC3_FIFO ((uint32_t)0x40108000UL)
<> 144:ef7eb2e8f9f7 437 #define MXC_DAC3_FIFO ((mxc_dac_fifo_regs_t *)MXC_BASE_DAC3_FIFO)
<> 144:ef7eb2e8f9f7 438 #define MXC_DAC3_WIDTH ((uint8_t)(1))
<> 144:ef7eb2e8f9f7 439
<> 144:ef7eb2e8f9f7 440
<> 144:ef7eb2e8f9f7 441 #define MXC_DAC_GET_IRQ(i) ((i) == 0 ? DAC0_IRQn : \
<> 144:ef7eb2e8f9f7 442 (i) == 1 ? DAC1_IRQn : \
<> 144:ef7eb2e8f9f7 443 (i) == 2 ? DAC2_IRQn : \
<> 144:ef7eb2e8f9f7 444 (i) == 3 ? DAC3_IRQn : 0)
<> 144:ef7eb2e8f9f7 445
<> 144:ef7eb2e8f9f7 446
<> 144:ef7eb2e8f9f7 447 #define MXC_DAC_GET_BASE(i) (i == 0 ? MXC_BASE_DAC0 : \
<> 144:ef7eb2e8f9f7 448 i == 1 ? MXC_BASE_DAC1 : \
<> 144:ef7eb2e8f9f7 449 i == 2 ? MXC_BASE_DAC2 : \
<> 144:ef7eb2e8f9f7 450 i == 3 ? MXC_BASE_DAC3 : 0)
<> 144:ef7eb2e8f9f7 451
<> 144:ef7eb2e8f9f7 452 #define MXC_DAC_GET_FIFO(i) (i == 0 ? MXC_BASE_DAC0_FIFO : \
<> 144:ef7eb2e8f9f7 453 i == 1 ? MXC_BASE_DAC1_FIFO : \
<> 144:ef7eb2e8f9f7 454 i == 2 ? MXC_BASE_DAC2_FIFO : \
<> 144:ef7eb2e8f9f7 455 i == 3 ? MXC_BASE_DAC3_FIFO : 0)
<> 144:ef7eb2e8f9f7 456
<> 144:ef7eb2e8f9f7 457 #define MXC_DAC_GET_PMU_FIFO_IRQ(i) (i == 0 ? PMU_IRQ_DAC0_FIFO_AE : \
<> 144:ef7eb2e8f9f7 458 i == 1 ? PMU_IRQ_DAC1_FIFO_AE : \
<> 144:ef7eb2e8f9f7 459 i == 2 ? PMU_IRQ_DAC2_FIFO_AE : \
<> 144:ef7eb2e8f9f7 460 i == 3 ? PMU_IRQ_DAC3_FIFO_AE : 0)
<> 144:ef7eb2e8f9f7 461
<> 144:ef7eb2e8f9f7 462 #define MXC_DAC_GET_DAC(i) (i == 0 ? MXC_DAC0 : \
<> 144:ef7eb2e8f9f7 463 i == 1 ? MXC_DAC1 : \
<> 144:ef7eb2e8f9f7 464 i == 2 ? MXC_DAC2 : \
<> 144:ef7eb2e8f9f7 465 i == 3 ? MXC_DAC3 : 0)
<> 144:ef7eb2e8f9f7 466
<> 144:ef7eb2e8f9f7 467 #define MXC_DAC_GET_WIDTH(i) (i == 0 ? MXC_DAC0_WIDTH : \
<> 144:ef7eb2e8f9f7 468 i == 1 ? MXC_DAC1_WIDTH : \
<> 144:ef7eb2e8f9f7 469 i == 2 ? MXC_DAC2_WIDTH : \
<> 144:ef7eb2e8f9f7 470 i == 3 ? MXC_DAC3_WIDTH : 0)
<> 144:ef7eb2e8f9f7 471
<> 144:ef7eb2e8f9f7 472
<> 144:ef7eb2e8f9f7 473 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 474 /* Analog Front End */
<> 144:ef7eb2e8f9f7 475
<> 144:ef7eb2e8f9f7 476 #define MXC_BASE_AFE ((uint32_t)0x4005401CUL)
<> 144:ef7eb2e8f9f7 477 #define MXC_AFE ((mxc_afe_regs_t *)MXC_BASE_AFE)
<> 144:ef7eb2e8f9f7 478
<> 144:ef7eb2e8f9f7 479
<> 144:ef7eb2e8f9f7 480
<> 144:ef7eb2e8f9f7 481 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 482 /* ADC */
<> 144:ef7eb2e8f9f7 483
<> 144:ef7eb2e8f9f7 484 #define MXC_CFG_ADC_FIFO_DEPTH ((uint32_t)(32))
<> 144:ef7eb2e8f9f7 485
<> 144:ef7eb2e8f9f7 486 #define MXC_BASE_ADC ((uint32_t)0x40054000UL)
<> 144:ef7eb2e8f9f7 487 #define MXC_ADC ((mxc_adc_regs_t *)MXC_BASE_ADC)
<> 144:ef7eb2e8f9f7 488
<> 144:ef7eb2e8f9f7 489 #define MXC_BASE_ADCCFG ((uint32_t)0x40054038UL)
<> 144:ef7eb2e8f9f7 490 #define MXC_ADCCFG ((mxc_adccfg_regs_t *)MXC_BASE_ADCCFG)
<> 144:ef7eb2e8f9f7 491
<> 144:ef7eb2e8f9f7 492 #define MXC_BASE_ADC_FIFO ((uint32_t)0x40109000UL)
<> 144:ef7eb2e8f9f7 493 #define MXC_ADC_FIFO ((mxc_adc_fifo_regs_t *)MXC_BASE_ADC_FIFO)
<> 144:ef7eb2e8f9f7 494
<> 144:ef7eb2e8f9f7 495
<> 144:ef7eb2e8f9f7 496
<> 144:ef7eb2e8f9f7 497 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 498 /* LCD */
<> 144:ef7eb2e8f9f7 499 #define MXC_BASE_LCD ((uint32_t)0x40060000)
<> 144:ef7eb2e8f9f7 500 #define MXC_LCD ((mxc_lcd_regs_t *)MXC_BASE_LCD)
<> 144:ef7eb2e8f9f7 501
<> 144:ef7eb2e8f9f7 502 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 503 /* Peripheral Management Unit (PMU) - formerly DMA Controller */
<> 144:ef7eb2e8f9f7 504
<> 144:ef7eb2e8f9f7 505 #define MXC_CFG_PMU_CHANNELS (6)
<> 144:ef7eb2e8f9f7 506
<> 144:ef7eb2e8f9f7 507 #define MXC_BASE_PMU0 ((uint32_t)0x40070000UL)
<> 144:ef7eb2e8f9f7 508 #define MXC_PMU0 ((mxc_pmu_regs_t *)MXC_BASE_PMU0)
<> 144:ef7eb2e8f9f7 509 #define MXC_BASE_PMU1 ((uint32_t)0x40070020UL)
<> 144:ef7eb2e8f9f7 510 #define MXC_PMU1 ((mxc_pmu_regs_t *)MXC_BASE_PMU1)
<> 144:ef7eb2e8f9f7 511 #define MXC_BASE_PMU2 ((uint32_t)0x40070040UL)
<> 144:ef7eb2e8f9f7 512 #define MXC_PMU2 ((mxc_pmu_regs_t *)MXC_BASE_PMU2)
<> 144:ef7eb2e8f9f7 513 #define MXC_BASE_PMU3 ((uint32_t)0x40070060UL)
<> 144:ef7eb2e8f9f7 514 #define MXC_PMU3 ((mxc_pmu_regs_t *)MXC_BASE_PMU3)
<> 144:ef7eb2e8f9f7 515 #define MXC_BASE_PMU4 ((uint32_t)0x40070080UL)
<> 144:ef7eb2e8f9f7 516 #define MXC_PMU4 ((mxc_pmu_regs_t *)MXC_BASE_PMU4)
<> 144:ef7eb2e8f9f7 517 #define MXC_BASE_PMU5 ((uint32_t)0x400700A0UL)
<> 144:ef7eb2e8f9f7 518 #define MXC_PMU5 ((mxc_pmu_regs_t *)MXC_BASE_PMU5)
<> 144:ef7eb2e8f9f7 519
<> 144:ef7eb2e8f9f7 520 #define MXC_BASE_PMU_BITBAND ((uint32_t)0x42E00000UL)
<> 144:ef7eb2e8f9f7 521 #define MXC_BASE_PMU_BITBAND_CHOFFSET ((uint32_t)0x00000400UL)
<> 144:ef7eb2e8f9f7 522 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 523
<> 144:ef7eb2e8f9f7 524 typedef enum {
<> 144:ef7eb2e8f9f7 525 PMU_IRQ_DAC0_FIFO_AE,
<> 144:ef7eb2e8f9f7 526 PMU_IRQ_DAC1_FIFO_AE,
<> 144:ef7eb2e8f9f7 527 PMU_IRQ_DAC2_FIFO_AE,
<> 144:ef7eb2e8f9f7 528 PMU_IRQ_DAC3_FIFO_AE,
<> 144:ef7eb2e8f9f7 529 PMU_IRQ_DAC0_DONE,
<> 144:ef7eb2e8f9f7 530 PMU_IRQ_DAC1_DONE,
<> 144:ef7eb2e8f9f7 531 PMU_IRQ_DAC2_DONE,
<> 144:ef7eb2e8f9f7 532 PMU_IRQ_DAC3_DONE,
<> 144:ef7eb2e8f9f7 533 PMU_IRQ_ADC_FIFO_AF,
<> 144:ef7eb2e8f9f7 534 PMU_IRQ_ADC_DONE,
<> 144:ef7eb2e8f9f7 535 PMU_IRQ_I2C_MST0_DONE,
<> 144:ef7eb2e8f9f7 536 PMU_IRQ_I2C_MST1_DONE,
<> 144:ef7eb2e8f9f7 537 PMU_IRQ_SPI0_RSLTS_DONE,
<> 144:ef7eb2e8f9f7 538 PMU_IRQ_SPI1_RSLTS_DONE,
<> 144:ef7eb2e8f9f7 539 PMU_IRQ_SPI2_RSLTS_DONE,
<> 144:ef7eb2e8f9f7 540 PMU_IRQ_MAA_DONE,
<> 144:ef7eb2e8f9f7 541 PMU_IRQ_SPI0_TX_FIFO_AE,
<> 144:ef7eb2e8f9f7 542 PMU_IRQ_SPI0_RSLTS_FIFO_AF,
<> 144:ef7eb2e8f9f7 543 PMU_IRQ_SPI1_TX_FIFO_AE,
<> 144:ef7eb2e8f9f7 544 PMU_IRQ_SPI1_RSLTS_FIFO_AF,
<> 144:ef7eb2e8f9f7 545 PMU_IRQ_SPI2_TX_FIFO_AE,
<> 144:ef7eb2e8f9f7 546 PMU_IRQ_SPI3_RSLTS_FIFO_AF,
<> 144:ef7eb2e8f9f7 547 PMU_IRQ_I2C_MST0_TRANS_FIFO,
<> 144:ef7eb2e8f9f7 548 PMU_IRQ_I2C_MST0_RSLT_FIFO,
<> 144:ef7eb2e8f9f7 549 PMU_IRQ_I2C_MST1_TRANS_FIFO,
<> 144:ef7eb2e8f9f7 550 PMU_IRQ_I2C_MST2_RSLT_FIFO,
<> 144:ef7eb2e8f9f7 551 PMU_IRQ_I2C_SLV_TRANS_FIFO,
<> 144:ef7eb2e8f9f7 552 PMU_IRQ_I2C_SLV_RSLT_FIFO,
<> 144:ef7eb2e8f9f7 553 PMU_IRQ_UART0_TX_FIFO,
<> 144:ef7eb2e8f9f7 554 PMU_IRQ_UART0_RX_FIFO,
<> 144:ef7eb2e8f9f7 555 PMU_IRQ_UART1_TX_FIFO,
<> 144:ef7eb2e8f9f7 556 PMU_IRQ_UART1_RX_FIFO,
<> 144:ef7eb2e8f9f7 557 PMU_IRQ_SPI0_EXCP,
<> 144:ef7eb2e8f9f7 558 PMU_IRQ_SPI1_EXCP,
<> 144:ef7eb2e8f9f7 559 PMU_IRQ_SPI2_EXCP,
<> 144:ef7eb2e8f9f7 560 PMU_IRQ_RSVD0,
<> 144:ef7eb2e8f9f7 561 PMU_IRQ_I2C_MST0_EXCP,
<> 144:ef7eb2e8f9f7 562 PMU_IRQ_I2C_MST1_EXCP,
<> 144:ef7eb2e8f9f7 563 PMU_IRQ_I2C_SLV_EXCP,
<> 144:ef7eb2e8f9f7 564 PMU_IRQ_RSVD1,
<> 144:ef7eb2e8f9f7 565 PMU_IRQ_GPIO0,
<> 144:ef7eb2e8f9f7 566 PMU_IRQ_GPIO1,
<> 144:ef7eb2e8f9f7 567 PMU_IRQ_GPIO2,
<> 144:ef7eb2e8f9f7 568 PMU_IRQ_GPIO3,
<> 144:ef7eb2e8f9f7 569 PMU_IRQ_GPIO4,
<> 144:ef7eb2e8f9f7 570 PMU_IRQ_GPIO5,
<> 144:ef7eb2e8f9f7 571 PMU_IRQ_GPIO6,
<> 144:ef7eb2e8f9f7 572 PMU_IRQ_GPIO7,
<> 144:ef7eb2e8f9f7 573 PMU_IRQ_GPIO8,
<> 144:ef7eb2e8f9f7 574 PMU_IRQ_AFE_COMP_NMI,
<> 144:ef7eb2e8f9f7 575 PMU_IRQ_AES_ENGINE,
<> 144:ef7eb2e8f9f7 576 } pmu_int_mask_t;
<> 144:ef7eb2e8f9f7 577
<> 144:ef7eb2e8f9f7 578 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 579 /* USB */
<> 144:ef7eb2e8f9f7 580
<> 144:ef7eb2e8f9f7 581 #define MXC_BASE_USB ((uint32_t)0x4010C000UL)
<> 144:ef7eb2e8f9f7 582 #define MXC_USB ((mxc_usb_regs_t *)MXC_BASE_USB)
<> 144:ef7eb2e8f9f7 583
<> 144:ef7eb2e8f9f7 584 #define MXC_USB_MAX_PACKET (64)
<> 144:ef7eb2e8f9f7 585 #define MXC_USB_NUM_EP (8)
<> 144:ef7eb2e8f9f7 586
<> 144:ef7eb2e8f9f7 587
<> 144:ef7eb2e8f9f7 588 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 589 /* Instruction Cache Controller */
<> 144:ef7eb2e8f9f7 590
<> 144:ef7eb2e8f9f7 591 #define MXC_BASE_ICC ((uint32_t)0x40080000UL)
<> 144:ef7eb2e8f9f7 592 #define MXC_ICC ((mxc_icc_regs_t *)MXC_BASE_ICC)
<> 144:ef7eb2e8f9f7 593
<> 144:ef7eb2e8f9f7 594 /* System Manager */
<> 144:ef7eb2e8f9f7 595
<> 144:ef7eb2e8f9f7 596 #define MXC_BASE_SYSMAN ((uint32_t)0x40090000UL)
<> 144:ef7eb2e8f9f7 597
<> 144:ef7eb2e8f9f7 598 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 599 /* Clock Manager */
<> 144:ef7eb2e8f9f7 600
<> 144:ef7eb2e8f9f7 601 #define MXC_BASE_CLKMAN ((uint32_t)0x40090400UL)
<> 144:ef7eb2e8f9f7 602 #define MXC_CLKMAN ((mxc_clkman_regs_t *)MXC_BASE_CLKMAN)
<> 144:ef7eb2e8f9f7 603
<> 144:ef7eb2e8f9f7 604
<> 144:ef7eb2e8f9f7 605 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 606 /* Power Manager */
<> 144:ef7eb2e8f9f7 607
<> 144:ef7eb2e8f9f7 608 #define MXC_BASE_PWRMAN ((uint32_t)0x40090800UL)
<> 144:ef7eb2e8f9f7 609 #define MXC_PWRMAN ((mxc_pwrman_regs_t *)MXC_BASE_PWRMAN)
<> 144:ef7eb2e8f9f7 610
<> 144:ef7eb2e8f9f7 611 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 612 /* I/O Manager */
<> 144:ef7eb2e8f9f7 613
<> 144:ef7eb2e8f9f7 614 #define MXC_BASE_IOMAN ((uint32_t)0x40090C00UL)
<> 144:ef7eb2e8f9f7 615 #define MXC_IOMAN ((mxc_ioman_regs_t *)MXC_BASE_IOMAN)
<> 144:ef7eb2e8f9f7 616
<> 144:ef7eb2e8f9f7 617
<> 144:ef7eb2e8f9f7 618 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 619 /* RTC: Timer/Alarms */
<> 144:ef7eb2e8f9f7 620
<> 144:ef7eb2e8f9f7 621 #define MXC_BASE_RTCTMR ((uint32_t)0x40090A00UL)
<> 144:ef7eb2e8f9f7 622 #define MXC_RTCTMR ((mxc_rtctmr_regs_t *)MXC_BASE_RTCTMR)
<> 144:ef7eb2e8f9f7 623
<> 144:ef7eb2e8f9f7 624 #define MXC_RTCTMR_GET_IRQ(i) (i == 0 ? RTC0_IRQn : \
<> 144:ef7eb2e8f9f7 625 i == 1 ? RTC1_IRQn : \
<> 144:ef7eb2e8f9f7 626 i == 2 ? RTC2_IRQn : \
<> 144:ef7eb2e8f9f7 627 i == 3 ? RTC3_IRQn : 0)
<> 144:ef7eb2e8f9f7 628
<> 144:ef7eb2e8f9f7 629 #define MXC_BASE_RTCCFG ((uint32_t)0x40090A70UL)
<> 144:ef7eb2e8f9f7 630 #define MXC_RTCCFG ((mxc_rtccfg_regs_t *)MXC_BASE_RTCCFG)
<> 144:ef7eb2e8f9f7 631 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 632 /* RTC: Power Sequencer */
<> 144:ef7eb2e8f9f7 633
<> 144:ef7eb2e8f9f7 634 #define MXC_BASE_PWRSEQ ((uint32_t)0x40090A30UL)
<> 144:ef7eb2e8f9f7 635 #define MXC_PWRSEQ ((mxc_pwrseq_regs_t *)MXC_BASE_PWRSEQ)
<> 144:ef7eb2e8f9f7 636
<> 144:ef7eb2e8f9f7 637 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 638 /* Trim Shadow Registers */
<> 144:ef7eb2e8f9f7 639
<> 144:ef7eb2e8f9f7 640 #define MXC_BASE_TRIM ((uint32_t)0x400E0000UL)
<> 144:ef7eb2e8f9f7 641 #define MXC_TRIM ((mxc_ftr_regs_t *)MXC_BASE_TRIM)
<> 144:ef7eb2e8f9f7 642
<> 144:ef7eb2e8f9f7 643 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 644 /* Flash Memory Controller / Security */
<> 144:ef7eb2e8f9f7 645
<> 144:ef7eb2e8f9f7 646 #define MXC_BASE_FLC ((uint32_t)0x400F0000UL)
<> 144:ef7eb2e8f9f7 647 #define MXC_FLC ((mxc_flc_regs_t *)MXC_BASE_FLC)
<> 144:ef7eb2e8f9f7 648 #define MXC_BASE_FLC_BITBAND ((uint32_t)0x43E00000UL)
<> 144:ef7eb2e8f9f7 649 #define MXC_FLC_PAGE_SIZE_SHIFT 11
<> 144:ef7eb2e8f9f7 650 #define MXC_FLC_PAGE_SIZE (1 << MXC_FLC_PAGE_SIZE_SHIFT)
<> 144:ef7eb2e8f9f7 651 #define MXC_FLC_PAGE_ERASE_MSK ((~(1 << (MXC_FLC_PAGE_SIZE_SHIFT - 1))) >> MXC_FLC_PAGE_SIZE_SHIFT) << MXC_FLC_PAGE_SIZE_SHIFT
<> 144:ef7eb2e8f9f7 652
<> 144:ef7eb2e8f9f7 653 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 654
<> 144:ef7eb2e8f9f7 655 #define MXC_SET_FIELD(reg, clr, set) (*(volatile uint32_t *)reg = ((*(volatile uint32_t *)reg & ~clr) | set))
<> 144:ef7eb2e8f9f7 656
<> 144:ef7eb2e8f9f7 657 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 658
<> 144:ef7eb2e8f9f7 659 #define BITBAND(reg, bit) ((0xf0000000 & (uint32_t)(reg)) + 0x2000000 + (((uint32_t)(reg) & 0x0fffffff) << 5) + ((bit) << 2))
<> 144:ef7eb2e8f9f7 660 #define MXC_CLRBIT(reg, bit) (*(volatile uint32_t *)BITBAND(reg, bit) = 0)
<> 144:ef7eb2e8f9f7 661 #define MXC_SETBIT(reg, bit) (*(volatile uint32_t *)BITBAND(reg, bit) = 1)
<> 144:ef7eb2e8f9f7 662 #define MXC_GETBIT(reg, bit) (*(volatile uint32_t *)BITBAND(reg, bit))
<> 144:ef7eb2e8f9f7 663
<> 144:ef7eb2e8f9f7 664 /*******************************************************************************/
<> 144:ef7eb2e8f9f7 665
<> 144:ef7eb2e8f9f7 666 #endif /* _MAX32600_H_ */