M471M/R1/S BSP V3.01.000
The Board Support Package for M4521
ebi.h
Go to the documentation of this file.
1/**************************************************************************/
8#ifndef __EBI_H__
9#define __EBI_H__
10
11#ifdef __cplusplus
12extern "C"
13{
14#endif
15
16
28/*---------------------------------------------------------------------------------------------------------*/
29/* Miscellaneous Constant Definitions */
30/*---------------------------------------------------------------------------------------------------------*/
31#define EBI_BANK0_BASE_ADDR 0x60000000UL
32#define EBI_BANK1_BASE_ADDR 0x60100000UL
33#define EBI_MAX_SIZE 0x00100000UL
35/*---------------------------------------------------------------------------------------------------------*/
36/* Constants for EBI bank number */
37/*---------------------------------------------------------------------------------------------------------*/
38#define EBI_BANK0 0
39#define EBI_BANK1 1
41/*---------------------------------------------------------------------------------------------------------*/
42/* Constants for EBI data bus width */
43/*---------------------------------------------------------------------------------------------------------*/
44#define EBI_BUSWIDTH_8BIT 8
45#define EBI_BUSWIDTH_16BIT 16
47/*---------------------------------------------------------------------------------------------------------*/
48/* Constants for EBI CS Active Level */
49/*---------------------------------------------------------------------------------------------------------*/
50#define EBI_CS_ACTIVE_LOW 0
51#define EBI_CS_ACTIVE_HIGH 1
53/*---------------------------------------------------------------------------------------------------------*/
54/* Constants for EBI MCLK divider and Timing */
55/*---------------------------------------------------------------------------------------------------------*/
56#define EBI_MCLKDIV_1 0x0UL
57#define EBI_MCLKDIV_2 0x1UL
58#define EBI_MCLKDIV_4 0x2UL
59#define EBI_MCLKDIV_8 0x3UL
60#define EBI_MCLKDIV_16 0x4UL
61#define EBI_MCLKDIV_32 0x5UL
63#define EBI_TIMING_FASTEST 0x0UL
64#define EBI_TIMING_VERYFAST 0x1UL
65#define EBI_TIMING_FAST 0x2UL
66#define EBI_TIMING_NORMAL 0x3UL
67#define EBI_TIMING_SLOW 0x4UL
68#define EBI_TIMING_VERYSLOW 0x5UL
69#define EBI_TIMING_SLOWEST 0x6UL /* end of group EBI_EXPORTED_CONSTANTS */
72
73
87#define EBI0_READ_DATA8(u32Addr) (*((volatile unsigned char *)(EBI_BANK0_BASE_ADDR+(u32Addr))))
88
99#define EBI0_WRITE_DATA8(u32Addr, u32Data) (*((volatile unsigned char *)(EBI_BANK0_BASE_ADDR+(u32Addr))) = (u32Data))
100
110#define EBI0_READ_DATA16(u32Addr) (*((volatile unsigned short *)(EBI_BANK0_BASE_ADDR+(u32Addr))))
111
122#define EBI0_WRITE_DATA16(u32Addr, u32Data) (*((volatile unsigned short *)(EBI_BANK0_BASE_ADDR+(u32Addr))) = (u32Data))
123
133#define EBI0_READ_DATA32(u32Addr) (*((volatile unsigned int *)(EBI_BANK0_BASE_ADDR+(u32Addr))))
134
145#define EBI0_WRITE_DATA32(u32Addr, u32Data) (*((volatile unsigned int *)(EBI_BANK0_BASE_ADDR+(u32Addr))) = (u32Data))
146
156#define EBI1_READ_DATA8(u32Addr) (*((volatile unsigned char *)(EBI_BANK1_BASE_ADDR+(u32Addr))))
157
168#define EBI1_WRITE_DATA8(u32Addr, u32Data) (*((volatile unsigned char *)(EBI_BANK1_BASE_ADDR+(u32Addr))) = (u32Data))
169
179#define EBI1_READ_DATA16(u32Addr) (*((volatile unsigned short *)(EBI_BANK1_BASE_ADDR+(u32Addr))))
180
191#define EBI1_WRITE_DATA16(u32Addr, u32Data) (*((volatile unsigned short *)(EBI_BANK1_BASE_ADDR+(u32Addr))) = (u32Data))
192
202#define EBI1_READ_DATA32(u32Addr) (*((volatile unsigned int *)(EBI_BANK1_BASE_ADDR+(u32Addr))))
203
214#define EBI1_WRITE_DATA32(u32Addr, u32Data) (*((volatile unsigned int *)(EBI_BANK1_BASE_ADDR+(u32Addr))) = (u32Data))
215
216void EBI_Open(uint32_t u32Bank, uint32_t u32DataWidth, uint32_t u32TimingClass, uint32_t u32BusMode, uint32_t u32CSActiveLevel);
217void EBI_Close(uint32_t u32Bank);
218void EBI_SetBusTiming(uint32_t u32Bank, uint32_t u32TimingConfig, uint32_t u32MclkDiv);
219 /* end of group EBI_EXPORTED_FUNCTIONS */
221 /* end of group EBI_Driver */
223 /* end of group Standard_Driver */
225
226#ifdef __cplusplus
227}
228#endif
229
230#endif //__EBI_H__
231
void EBI_Close(uint32_t u32Bank)
Disable EBI on specify Bank.
Definition: ebi.c:134
void EBI_Open(uint32_t u32Bank, uint32_t u32DataWidth, uint32_t u32TimingClass, uint32_t u32BusMode, uint32_t u32CSActiveLevel)
Initialize EBI for specify Bank.
Definition: ebi.c:51
void EBI_SetBusTiming(uint32_t u32Bank, uint32_t u32TimingConfig, uint32_t u32MclkDiv)
Set EBI Bus Timing for specify Bank.
Definition: ebi.c:160