/*********************************************************************************************************                                               
*                                     MCU ACH118X driver library
*                             COPYRIGHT(c) 2019 Amped RF Technology (ART)
*                                        All Rights Reserved
*
* File    : ach1180x_map.h
* Version : V1.0.0
* Brief   : Memory mappings of peripherals
**********************************************************************************************************/

#ifndef __ACH1180X_MAP_H
#define __ACH1180X_MAP_H

#include "ach118x_type.h"

// APB0_PERIPH_BASE
#define I2S0            ((I2S_Typedef *) I2S0_REG_BASE)         // 0x4002 2800
#define I2S1            ((I2S_Typedef *) I2S1_REG_BASE)         // 0x4002 4000
#define UART0           ((UART_Typedef *) UART0_REG_BASE)       // 0x4002 3000
#define UART1           ((UART_Typedef *) UART1_REG_BASE)       // 0x4002 3800
#define UART2           ((UART_Typedef *) UART2_REG_BASE)       // 0x4002 6000
#define I2C             I2C0_REG_BASE                           // 0x4002 5000
#define ADC0            ADC0_REG_BASE                           // 0x4003 3800
#define ADC1            ADC1_REG_BASE                           // 0x4003 4000
#define SPI0            ((SPI_Typedef *) SPI0_REG_BASE)         // 0x4002 1800
#define SPI1            ((SPI_Typedef *) SPI1_REG_BASE)         // 0x4002 2200
#define SPI2            ((SPI_Typedef *) SPI2_REG_BASE)         // 0x4002 4800
#define TIM             TIM_REG_BASE                            // 0x4002 6000

// APB1_PERIPH_BASE
#define SYSCFG          ((SysCfg_Typedef *) SYSCFG_REG_BASE)    // 0x4003 5800
#define SYSCFG_BASE     SYSCFG_REG_BASE                         // 0x4003 5800
#define GPIO_BASE       GPIO3_REG_BASE                          // 0x4003 1800

// APB1_PERIPH_BASE GPIO
#define GPIO            ((APB_GPIO_Typedef *)GPIO3_REG_BASE)    // 0x4003 1800
#define GPIOA_BASE		((APB1_PERIPH_BASE | 0x1800))           // 0x4003 1800
#define GPIOB_BASE		((APB1_PERIPH_BASE | 0x180C))           // 0x4003 180C
#define GPIOC_BASE		((APB1_PERIPH_BASE | 0x1818))           // 0x4003 1818
#define GPIOD_BASE		((APB1_PERIPH_BASE | 0x1824))           // 0x4003 1824
#define GPIOA           ((GPIO_Typedef *) GPIOA_BASE)           // 0x4003 1800
#define GPIOB           ((GPIO_Typedef *) GPIOB_BASE)           // 0x4003 180C
#define GPIOC           ((GPIO_Typedef *) GPIOC_BASE)           // 0x4003 1818
#define GPIOD           ((GPIO_Typedef *) GPIOD_BASE)           // 0x4003 1824

// AHB_PERIPH_BASE
#define DMA             ((DMA_Typedef *) DMAC_REG_BASE)         // 0x4004 0000

// Convenient references
#define EXT_I2S         I2S0                                    // 0x4002 2800
#define AUDIO_I2S       I2S1                                    // 0x4002 4000
#define MAIN_UART       UART0                                   // 0x4002 3000

#endif // __ACH1180X_MAP_H
/************************ (C) COPYRIGHT ART *****END OF FILE****/
