mbed library sources. Supersedes mbed-src.
Fork of mbed-dev by
targets/TARGET_NUVOTON/TARGET_M451/device/StdDriver/m451_ebi.h@152:9a67f0b066fc, 2016-12-15 (annotated)
- 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?
User | Revision | Line number | New 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. ***/ |