1 /**************************************************************************//**
2 *
3 * @copyright (C) 2020 Nuvoton Technology Corp. All rights reserved.
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 *
7 * Change Logs:
8 * Date            Author           Notes
9 * 2020-3-5        Philo            First version
10 *
11 ******************************************************************************/
12 #ifndef __DRV_EBI_H___
13 #define __DRV_EBI_H___
14 
15 #include <rtdevice.h>
16 #include "NuMicro.h"
17 
18 #define MAX_BANK    EBI_BANK2
19 
20 /**
21   * @brief      Initialize EBI for specify Bank
22   *
23   * @param[in]  u32Bank             Bank number for EBI. Valid values are:
24   *                                     - \ref EBI_BANK0
25   *                                     - \ref EBI_BANK1
26   *                                     - \ref EBI_BANK2
27   * @param[in]  u32DataWidth        Data bus width. Valid values are:
28   *                                     - \ref EBI_BUSWIDTH_8BIT
29   *                                     - \ref EBI_BUSWIDTH_16BIT
30   * @param[in]  u32TimingClass      Default timing configuration. Valid values are:
31   *                                     - \ref EBI_TIMING_FASTEST
32   *                                     - \ref EBI_TIMING_VERYFAST
33   *                                     - \ref EBI_TIMING_FAST
34   *                                     - \ref EBI_TIMING_NORMAL
35   *                                     - \ref EBI_TIMING_SLOW
36   *                                     - \ref EBI_TIMING_VERYSLOW
37   *                                     - \ref EBI_TIMING_SLOWEST
38   * @param[in]  u32BusMode          Set EBI bus operate mode. Valid values are:
39   *                                     - \ref EBI_OPMODE_NORMAL
40   *                                     - \ref EBI_OPMODE_CACCESS
41   * @param[in]  u32CSActiveLevel    CS is active High/Low. Valid values are:
42   *                                     - \ref EBI_CS_ACTIVE_HIGH
43   *                                     - \ref EBI_CS_ACTIVE_LOW
44   *
45   * @return     None
46   *
47   * @details    This function is used to open specify EBI bank with different bus width, timing setting and \n
48   *             active level of CS pin to access EBI device.
49   * @note       Write Buffer Enable(WBUFEN) and Extend Time Of ALE(TALE) are only available in EBI bank0 control register.
50   */
51 rt_err_t nu_ebi_init(uint32_t u32Bank, uint32_t u32DataWidth, uint32_t u32TimingClass, uint32_t u32BusMode, uint32_t u32CSActiveLevel);
52 
53 #endif // __DRV_EBI_H___
54