mbed library sources. Supersedes mbed-src.

Fork of mbed-dev by mbed official

Committer:
<>
Date:
Thu Dec 15 11:48:27 2016 +0000
Revision:
152:9a67f0b066fc
Parent:
149:156823d33999
This updates the lib to the mbed lib v131

Who changed what in which revision?

UserRevisionLine numberNew contents of line
<> 149:156823d33999 1 /**************************************************************************//**
<> 149:156823d33999 2 * @file ebi.h
<> 149:156823d33999 3 * @version V3.00
<> 149:156823d33999 4 * $Revision: 8 $
<> 149:156823d33999 5 * $Date: 15/08/11 10:26a $
<> 149:156823d33999 6 * @brief M451 series EBI driver header file
<> 149:156823d33999 7 *
<> 149:156823d33999 8 * @note
<> 149:156823d33999 9 * Copyright (C) 2013~2015 Nuvoton Technology Corp. All rights reserved.
<> 149:156823d33999 10 *****************************************************************************/
<> 149:156823d33999 11 #ifndef __EBI_H__
<> 149:156823d33999 12 #define __EBI_H__
<> 149:156823d33999 13
<> 149:156823d33999 14 #ifdef __cplusplus
<> 149:156823d33999 15 extern "C"
<> 149:156823d33999 16 {
<> 149:156823d33999 17 #endif
<> 149:156823d33999 18
<> 149:156823d33999 19
<> 149:156823d33999 20 /** @addtogroup Standard_Driver Standard Driver
<> 149:156823d33999 21 @{
<> 149:156823d33999 22 */
<> 149:156823d33999 23
<> 149:156823d33999 24 /** @addtogroup EBI_Driver EBI Driver
<> 149:156823d33999 25 @{
<> 149:156823d33999 26 */
<> 149:156823d33999 27
<> 149:156823d33999 28 /** @addtogroup EBI_EXPORTED_CONSTANTS EBI Exported Constants
<> 149:156823d33999 29 @{
<> 149:156823d33999 30 */
<> 149:156823d33999 31 /*---------------------------------------------------------------------------------------------------------*/
<> 149:156823d33999 32 /* Miscellaneous Constant Definitions */
<> 149:156823d33999 33 /*---------------------------------------------------------------------------------------------------------*/
<> 149:156823d33999 34 #define EBI_BANK0_BASE_ADDR 0x60000000UL /*!< EBI bank0 base address */
<> 149:156823d33999 35 #define EBI_BANK1_BASE_ADDR 0x60100000UL /*!< EBI bank1 base address */
<> 149:156823d33999 36 #define EBI_MAX_SIZE 0x00100000UL /*!< Maximum EBI size for each bank is 1 MB */
<> 149:156823d33999 37
<> 149:156823d33999 38 /*---------------------------------------------------------------------------------------------------------*/
<> 149:156823d33999 39 /* Constants for EBI bank number */
<> 149:156823d33999 40 /*---------------------------------------------------------------------------------------------------------*/
<> 149:156823d33999 41 #define EBI_BANK0 0 /*!< EBI bank 0 */
<> 149:156823d33999 42 #define EBI_BANK1 1 /*!< EBI bank 1 */
<> 149:156823d33999 43
<> 149:156823d33999 44 /*---------------------------------------------------------------------------------------------------------*/
<> 149:156823d33999 45 /* Constants for EBI data bus width */
<> 149:156823d33999 46 /*---------------------------------------------------------------------------------------------------------*/
<> 149:156823d33999 47 #define EBI_BUSWIDTH_8BIT 8 /*!< EBI bus width is 8-bit */
<> 149:156823d33999 48 #define EBI_BUSWIDTH_16BIT 16 /*!< EBI bus width is 16-bit */
<> 149:156823d33999 49
<> 149:156823d33999 50 /*---------------------------------------------------------------------------------------------------------*/
<> 149:156823d33999 51 /* Constants for EBI CS Active Level */
<> 149:156823d33999 52 /*---------------------------------------------------------------------------------------------------------*/
<> 149:156823d33999 53 #define EBI_CS_ACTIVE_LOW 0 /*!< EBI CS active level is low */
<> 149:156823d33999 54 #define EBI_CS_ACTIVE_HIGH 1 /*!< EBI CS active level is high */
<> 149:156823d33999 55
<> 149:156823d33999 56 /*---------------------------------------------------------------------------------------------------------*/
<> 149:156823d33999 57 /* Constants for EBI MCLK divider and Timing */
<> 149:156823d33999 58 /*---------------------------------------------------------------------------------------------------------*/
<> 149:156823d33999 59 #define EBI_MCLKDIV_1 0x0UL /*!< EBI output clock(MCLK) is HCLK/1 */
<> 149:156823d33999 60 #define EBI_MCLKDIV_2 0x1UL /*!< EBI output clock(MCLK) is HCLK/2 */
<> 149:156823d33999 61 #define EBI_MCLKDIV_4 0x2UL /*!< EBI output clock(MCLK) is HCLK/4 */
<> 149:156823d33999 62 #define EBI_MCLKDIV_8 0x3UL /*!< EBI output clock(MCLK) is HCLK/8 */
<> 149:156823d33999 63 #define EBI_MCLKDIV_16 0x4UL /*!< EBI output clock(MCLK) is HCLK/16 */
<> 149:156823d33999 64 #define EBI_MCLKDIV_32 0x5UL /*!< EBI output clock(MCLK) is HCLK/32 */
<> 149:156823d33999 65
<> 149:156823d33999 66 #define EBI_TIMING_FASTEST 0x0UL /*!< EBI timing is the fastest */
<> 149:156823d33999 67 #define EBI_TIMING_VERYFAST 0x1UL /*!< EBI timing is very fast */
<> 149:156823d33999 68 #define EBI_TIMING_FAST 0x2UL /*!< EBI timing is fast */
<> 149:156823d33999 69 #define EBI_TIMING_NORMAL 0x3UL /*!< EBI timing is normal */
<> 149:156823d33999 70 #define EBI_TIMING_SLOW 0x4UL /*!< EBI timing is slow */
<> 149:156823d33999 71 #define EBI_TIMING_VERYSLOW 0x5UL /*!< EBI timing is very slow */
<> 149:156823d33999 72 #define EBI_TIMING_SLOWEST 0x6UL /*!< EBI timing is the slowest */
<> 149:156823d33999 73
<> 149:156823d33999 74 /*@}*/ /* end of group EBI_EXPORTED_CONSTANTS */
<> 149:156823d33999 75
<> 149:156823d33999 76
<> 149:156823d33999 77 /** @addtogroup EBI_EXPORTED_FUNCTIONS EBI Exported Functions
<> 149:156823d33999 78 @{
<> 149:156823d33999 79 */
<> 149:156823d33999 80
<> 149:156823d33999 81 /**
<> 149:156823d33999 82 * @brief Read 8-bit data on EBI bank0
<> 149:156823d33999 83 *
<> 149:156823d33999 84 * @param[in] u32Addr The data address on EBI bank0.
<> 149:156823d33999 85 *
<> 149:156823d33999 86 * @return 8-bit Data
<> 149:156823d33999 87 *
<> 149:156823d33999 88 * @details This macro is used to read 8-bit data from specify address on EBI bank0.
<> 149:156823d33999 89 */
<> 149:156823d33999 90 #define EBI0_READ_DATA8(u32Addr) (*((volatile unsigned char *)(EBI_BANK0_BASE_ADDR+(u32Addr))))
<> 149:156823d33999 91
<> 149:156823d33999 92 /**
<> 149:156823d33999 93 * @brief Write 8-bit data to EBI bank0
<> 149:156823d33999 94 *
<> 149:156823d33999 95 * @param[in] u32Addr The data address on EBI bank0.
<> 149:156823d33999 96 * @param[in] u32Data Specify data to be written.
<> 149:156823d33999 97 *
<> 149:156823d33999 98 * @return None
<> 149:156823d33999 99 *
<> 149:156823d33999 100 * @details This macro is used to write 8-bit data to specify address on EBI bank0.
<> 149:156823d33999 101 */
<> 149:156823d33999 102 #define EBI0_WRITE_DATA8(u32Addr, u32Data) (*((volatile unsigned char *)(EBI_BANK0_BASE_ADDR+(u32Addr))) = (u32Data))
<> 149:156823d33999 103
<> 149:156823d33999 104 /**
<> 149:156823d33999 105 * @brief Read 16-bit data on EBI bank0
<> 149:156823d33999 106 *
<> 149:156823d33999 107 * @param[in] u32Addr The data address on EBI bank0.
<> 149:156823d33999 108 *
<> 149:156823d33999 109 * @return 16-bit Data
<> 149:156823d33999 110 *
<> 149:156823d33999 111 * @details This macro is used to read 16-bit data from specify address on EBI bank0.
<> 149:156823d33999 112 */
<> 149:156823d33999 113 #define EBI0_READ_DATA16(u32Addr) (*((volatile unsigned short *)(EBI_BANK0_BASE_ADDR+(u32Addr))))
<> 149:156823d33999 114
<> 149:156823d33999 115 /**
<> 149:156823d33999 116 * @brief Write 16-bit data to EBI bank0
<> 149:156823d33999 117 *
<> 149:156823d33999 118 * @param[in] u32Addr The data address on EBI bank0.
<> 149:156823d33999 119 * @param[in] u32Data Specify data to be written.
<> 149:156823d33999 120 *
<> 149:156823d33999 121 * @return None
<> 149:156823d33999 122 *
<> 149:156823d33999 123 * @details This macro is used to write 16-bit data to specify address on EBI bank0.
<> 149:156823d33999 124 */
<> 149:156823d33999 125 #define EBI0_WRITE_DATA16(u32Addr, u32Data) (*((volatile unsigned short *)(EBI_BANK0_BASE_ADDR+(u32Addr))) = (u32Data))
<> 149:156823d33999 126
<> 149:156823d33999 127 /**
<> 149:156823d33999 128 * @brief Read 32-bit data on EBI bank0
<> 149:156823d33999 129 *
<> 149:156823d33999 130 * @param[in] u32Addr The data address on EBI bank0.
<> 149:156823d33999 131 *
<> 149:156823d33999 132 * @return 32-bit Data
<> 149:156823d33999 133 *
<> 149:156823d33999 134 * @details This macro is used to read 32-bit data from specify address on EBI bank0.
<> 149:156823d33999 135 */
<> 149:156823d33999 136 #define EBI0_READ_DATA32(u32Addr) (*((volatile unsigned int *)(EBI_BANK0_BASE_ADDR+(u32Addr))))
<> 149:156823d33999 137
<> 149:156823d33999 138 /**
<> 149:156823d33999 139 * @brief Write 32-bit data to EBI bank0
<> 149:156823d33999 140 *
<> 149:156823d33999 141 * @param[in] u32Addr The data address on EBI bank0.
<> 149:156823d33999 142 * @param[in] u32Data Specify data to be written.
<> 149:156823d33999 143 *
<> 149:156823d33999 144 * @return None
<> 149:156823d33999 145 *
<> 149:156823d33999 146 * @details This macro is used to write 32-bit data to specify address on EBI bank0.
<> 149:156823d33999 147 */
<> 149:156823d33999 148 #define EBI0_WRITE_DATA32(u32Addr, u32Data) (*((volatile unsigned int *)(EBI_BANK0_BASE_ADDR+(u32Addr))) = (u32Data))
<> 149:156823d33999 149
<> 149:156823d33999 150 /**
<> 149:156823d33999 151 * @brief Read 8-bit data on EBI bank1
<> 149:156823d33999 152 *
<> 149:156823d33999 153 * @param[in] u32Addr The data address on EBI bank1.
<> 149:156823d33999 154 *
<> 149:156823d33999 155 * @return 8-bit Data
<> 149:156823d33999 156 *
<> 149:156823d33999 157 * @details This macro is used to read 8-bit data from specify address on EBI bank1.
<> 149:156823d33999 158 */
<> 149:156823d33999 159 #define EBI1_READ_DATA8(u32Addr) (*((volatile unsigned char *)(EBI_BANK1_BASE_ADDR+(u32Addr))))
<> 149:156823d33999 160
<> 149:156823d33999 161 /**
<> 149:156823d33999 162 * @brief Write 8-bit data to EBI bank1
<> 149:156823d33999 163 *
<> 149:156823d33999 164 * @param[in] u32Addr The data address on EBI bank1.
<> 149:156823d33999 165 * @param[in] u32Data Specify data to be written.
<> 149:156823d33999 166 *
<> 149:156823d33999 167 * @return None
<> 149:156823d33999 168 *
<> 149:156823d33999 169 * @details This macro is used to write 8-bit data to specify address on EBI bank1.
<> 149:156823d33999 170 */
<> 149:156823d33999 171 #define EBI1_WRITE_DATA8(u32Addr, u32Data) (*((volatile unsigned char *)(EBI_BANK1_BASE_ADDR+(u32Addr))) = (u32Data))
<> 149:156823d33999 172
<> 149:156823d33999 173 /**
<> 149:156823d33999 174 * @brief Read 16-bit data on EBI bank1
<> 149:156823d33999 175 *
<> 149:156823d33999 176 * @param[in] u32Addr The data address on EBI bank1.
<> 149:156823d33999 177 *
<> 149:156823d33999 178 * @return 16-bit Data
<> 149:156823d33999 179 *
<> 149:156823d33999 180 * @details This macro is used to read 16-bit data from specify address on EBI bank1.
<> 149:156823d33999 181 */
<> 149:156823d33999 182 #define EBI1_READ_DATA16(u32Addr) (*((volatile unsigned short *)(EBI_BANK1_BASE_ADDR+(u32Addr))))
<> 149:156823d33999 183
<> 149:156823d33999 184 /**
<> 149:156823d33999 185 * @brief Write 16-bit data to EBI bank1
<> 149:156823d33999 186 *
<> 149:156823d33999 187 * @param[in] u32Addr The data address on EBI bank1.
<> 149:156823d33999 188 * @param[in] u32Data Specify data to be written.
<> 149:156823d33999 189 *
<> 149:156823d33999 190 * @return None
<> 149:156823d33999 191 *
<> 149:156823d33999 192 * @details This macro is used to write 16-bit data to specify address on EBI bank1.
<> 149:156823d33999 193 */
<> 149:156823d33999 194 #define EBI1_WRITE_DATA16(u32Addr, u32Data) (*((volatile unsigned short *)(EBI_BANK1_BASE_ADDR+(u32Addr))) = (u32Data))
<> 149:156823d33999 195
<> 149:156823d33999 196 /**
<> 149:156823d33999 197 * @brief Read 32-bit data on EBI bank1
<> 149:156823d33999 198 *
<> 149:156823d33999 199 * @param[in] u32Addr The data address on EBI bank1.
<> 149:156823d33999 200 *
<> 149:156823d33999 201 * @return 32-bit Data
<> 149:156823d33999 202 *
<> 149:156823d33999 203 * @details This macro is used to read 32-bit data from specify address on EBI bank1.
<> 149:156823d33999 204 */
<> 149:156823d33999 205 #define EBI1_READ_DATA32(u32Addr) (*((volatile unsigned int *)(EBI_BANK1_BASE_ADDR+(u32Addr))))
<> 149:156823d33999 206
<> 149:156823d33999 207 /**
<> 149:156823d33999 208 * @brief Write 32-bit data to EBI bank1
<> 149:156823d33999 209 *
<> 149:156823d33999 210 * @param[in] u32Addr The data address on EBI bank1.
<> 149:156823d33999 211 * @param[in] u32Data Specify data to be written.
<> 149:156823d33999 212 *
<> 149:156823d33999 213 * @return None
<> 149:156823d33999 214 *
<> 149:156823d33999 215 * @details This macro is used to write 32-bit data to specify address on EBI bank1.
<> 149:156823d33999 216 */
<> 149:156823d33999 217 #define EBI1_WRITE_DATA32(u32Addr, u32Data) (*((volatile unsigned int *)(EBI_BANK1_BASE_ADDR+(u32Addr))) = (u32Data))
<> 149:156823d33999 218
<> 149:156823d33999 219 void EBI_Open(uint32_t u32Bank, uint32_t u32DataWidth, uint32_t u32TimingClass, uint32_t u32BusMode, uint32_t u32CSActiveLevel);
<> 149:156823d33999 220 void EBI_Close(uint32_t u32Bank);
<> 149:156823d33999 221 void EBI_SetBusTiming(uint32_t u32Bank, uint32_t u32TimingConfig, uint32_t u32MclkDiv);
<> 149:156823d33999 222
<> 149:156823d33999 223 /*@}*/ /* end of group EBI_EXPORTED_FUNCTIONS */
<> 149:156823d33999 224
<> 149:156823d33999 225 /*@}*/ /* end of group EBI_Driver */
<> 149:156823d33999 226
<> 149:156823d33999 227 /*@}*/ /* end of group Standard_Driver */
<> 149:156823d33999 228
<> 149:156823d33999 229 #ifdef __cplusplus
<> 149:156823d33999 230 }
<> 149:156823d33999 231 #endif
<> 149:156823d33999 232
<> 149:156823d33999 233 #endif //__EBI_H__
<> 149:156823d33999 234
<> 149:156823d33999 235 /*** (C) COPYRIGHT 2013~2015 Nuvoton Technology Corp. ***/