M4521_BSP V3.02.000
The Board Support Package for M4521
ebi.h
Go to the documentation of this file.
1/**************************************************************************/
12#ifndef __EBI_H__
13#define __EBI_H__
14
15#ifdef __cplusplus
16extern "C"
17{
18#endif
19
20
32/*---------------------------------------------------------------------------------------------------------*/
33/* Miscellaneous Constant Definitions */
34/*---------------------------------------------------------------------------------------------------------*/
35#define EBI_BANK0_BASE_ADDR 0x60000000UL
36#define EBI_BANK1_BASE_ADDR 0x60100000UL
37#define EBI_MAX_SIZE 0x00100000UL
39/*---------------------------------------------------------------------------------------------------------*/
40/* Constants for EBI bank number */
41/*---------------------------------------------------------------------------------------------------------*/
42#define EBI_BANK0 0
43#define EBI_BANK1 1
45/*---------------------------------------------------------------------------------------------------------*/
46/* Constants for EBI data bus width */
47/*---------------------------------------------------------------------------------------------------------*/
48#define EBI_BUSWIDTH_8BIT 8
49#define EBI_BUSWIDTH_16BIT 16
51/*---------------------------------------------------------------------------------------------------------*/
52/* Constants for EBI CS Active Level */
53/*---------------------------------------------------------------------------------------------------------*/
54#define EBI_CS_ACTIVE_LOW 0
55#define EBI_CS_ACTIVE_HIGH 1
57/*---------------------------------------------------------------------------------------------------------*/
58/* Constants for EBI MCLK divider and Timing */
59/*---------------------------------------------------------------------------------------------------------*/
60#define EBI_MCLKDIV_1 0x0UL
61#define EBI_MCLKDIV_2 0x1UL
62#define EBI_MCLKDIV_4 0x2UL
63#define EBI_MCLKDIV_8 0x3UL
64#define EBI_MCLKDIV_16 0x4UL
65#define EBI_MCLKDIV_32 0x5UL
67#define EBI_TIMING_FASTEST 0x0UL
68#define EBI_TIMING_VERYFAST 0x1UL
69#define EBI_TIMING_FAST 0x2UL
70#define EBI_TIMING_NORMAL 0x3UL
71#define EBI_TIMING_SLOW 0x4UL
72#define EBI_TIMING_VERYSLOW 0x5UL
73#define EBI_TIMING_SLOWEST 0x6UL /* end of group EBI_EXPORTED_CONSTANTS */
76
77
91#define EBI0_READ_DATA8(u32Addr) (*((volatile unsigned char *)(EBI_BANK0_BASE_ADDR+(u32Addr))))
92
103#define EBI0_WRITE_DATA8(u32Addr, u32Data) (*((volatile unsigned char *)(EBI_BANK0_BASE_ADDR+(u32Addr))) = (u32Data))
104
114#define EBI0_READ_DATA16(u32Addr) (*((volatile unsigned short *)(EBI_BANK0_BASE_ADDR+(u32Addr))))
115
126#define EBI0_WRITE_DATA16(u32Addr, u32Data) (*((volatile unsigned short *)(EBI_BANK0_BASE_ADDR+(u32Addr))) = (u32Data))
127
137#define EBI0_READ_DATA32(u32Addr) (*((volatile unsigned int *)(EBI_BANK0_BASE_ADDR+(u32Addr))))
138
149#define EBI0_WRITE_DATA32(u32Addr, u32Data) (*((volatile unsigned int *)(EBI_BANK0_BASE_ADDR+(u32Addr))) = (u32Data))
150
160#define EBI1_READ_DATA8(u32Addr) (*((volatile unsigned char *)(EBI_BANK1_BASE_ADDR+(u32Addr))))
161
172#define EBI1_WRITE_DATA8(u32Addr, u32Data) (*((volatile unsigned char *)(EBI_BANK1_BASE_ADDR+(u32Addr))) = (u32Data))
173
183#define EBI1_READ_DATA16(u32Addr) (*((volatile unsigned short *)(EBI_BANK1_BASE_ADDR+(u32Addr))))
184
195#define EBI1_WRITE_DATA16(u32Addr, u32Data) (*((volatile unsigned short *)(EBI_BANK1_BASE_ADDR+(u32Addr))) = (u32Data))
196
206#define EBI1_READ_DATA32(u32Addr) (*((volatile unsigned int *)(EBI_BANK1_BASE_ADDR+(u32Addr))))
207
218#define EBI1_WRITE_DATA32(u32Addr, u32Data) (*((volatile unsigned int *)(EBI_BANK1_BASE_ADDR+(u32Addr))) = (u32Data))
219
220void EBI_Open(uint32_t u32Bank, uint32_t u32DataWidth, uint32_t u32TimingClass, uint32_t u32BusMode, uint32_t u32CSActiveLevel);
221void EBI_Close(uint32_t u32Bank);
222void EBI_SetBusTiming(uint32_t u32Bank, uint32_t u32TimingConfig, uint32_t u32MclkDiv);
223 /* end of group EBI_EXPORTED_FUNCTIONS */
225 /* end of group EBI_Driver */
227 /* end of group Standard_Driver */
229
230#ifdef __cplusplus
231}
232#endif
233
234#endif //__EBI_H__
235
void EBI_Close(uint32_t u32Bank)
Disable EBI on specify Bank.
Definition: ebi.c:138
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:55
void EBI_SetBusTiming(uint32_t u32Bank, uint32_t u32TimingConfig, uint32_t u32MclkDiv)
Set EBI Bus Timing for specify Bank.
Definition: ebi.c:164