]> rtime.felk.cvut.cz Git - pes-rpp/rpp-test-sw.git/blob - rpp/lib/rpp/include/sys/ti_drv_emif.h
Yet another place to fix
[pes-rpp/rpp-test-sw.git] / rpp / lib / rpp / include / sys / ti_drv_emif.h
1 /** @file emif.h
2 *   @brief emif Driver Definition File
3 *   @date 15.Feb.2012
4 *   @version 03.01.00
5 *
6 */
7
8 /* (c) Texas Instruments 2009-2012, All rights reserved. */
9
10 #ifndef _EMIF_H_
11 #define _EMIF_H_
12
13 #include "base.h"
14
15 /** @enum emif_pins
16 *   @brief Alias for emif pins
17 *
18 */
19 enum emif_pins
20 {
21     emif_wait_pin0 = 0,
22     emif_wait_pin1 = 1
23 };
24
25
26 /** @enum emif_size
27 *   @brief Alias for emif page size
28 *
29 */
30 enum emif_size
31 {
32     elements_256 = 0,
33     elements_512 = 1,
34     elements_1024 = 2,
35     elements_2048 = 3
36 };
37
38 /** @enum emif_port
39 *   @brief Alias for emif port
40 *
41 */
42 enum emif_port
43 {
44     emif_8_bit_port = 0,
45     emif_16_bit_port = 1
46 };
47
48
49 /** @enum emif_pagesize
50 *   @brief Alias for emif pagesize
51 *
52 */
53 enum emif_pagesize
54 {
55     emif_4_words = 0,
56     emif_8_words = 1
57 };
58
59 /** @enum emif_wait_polarity
60 *   @brief Alias for emif wait polarity
61 *
62 */
63 enum emif_wait_polarity
64 {
65     emif_pin_low = 0,
66     emif_pin_high = 1
67 };
68
69
70 #define PTR (uint32_t *)(0x80000000)
71
72 /** @struct emifBASE_t
73 *   @brief emifBASE Register Definition
74 *
75 *   This structure is used to access the EMIF module egisters.
76 */
77 typedef volatile struct emifBase
78 {
79     uint32_t MIDR;          /**< 0x0000 Module ID Register */
80     uint32_t AWCC;          /**< 0x0004 Asynchronous wait cycle register*/
81     uint32_t SDCR;          /**< 0x0008 SDRAM configuratiopn register */
82     uint32_t SDRCR ;        /**< 0x000C Set Interrupt Enable Register */
83     uint32_t CE2CFG;        /**< 0x0010 Asynchronous 1 Configuration Register */
84     uint32_t CE3CFG;        /**< 0x0014 Asynchronous 2 Configuration Register */
85     uint32_t CE4CFG;        /**< 0x0018 Asynchronous 3 Configuration Register */
86     uint32_t CE5CFG;        /**< 0x001C Asynchronous 4 Configuration Register */
87     uint32_t SDTIMR;        /**< 0x0020 SDRAM Timing Register */
88     uint32_t dummy1[6];     /** reserved **/
89     uint32_t SDSRETR;       /**< 0x003c SDRAM Self Refresh Exit Timing Register */
90     uint32_t INTRAW;        /**< 0x0040 0x0020 Interrupt Vector Offset*/
91     uint32_t INTMSK;        /**< 0x0044 EMIF Interrupt Mask Register */
92     uint32_t INTMSKSET;     /**< 48 EMIF Interrupt Mask Set Register */
93     uint32_t INTMSKCLR;     /**< 0x004c EMIF Interrupt Mask Register */
94     uint32_t dummy2[6];     /** reserved **/
95     uint32_t PMCR;          /**< 0x0068 Page Mode Control Register*/
96
97 } emifBASE_t;
98
99 #define emifREG ((emifBASE_t *)0xFCFFE800U)
100
101 /* EMIF Interface Functions */
102
103 void emif_SDRAMInit(void);
104 void emif_ASYNC1Init(void);
105 void emif_ASYNC2Init(void);
106 void emif_ASYNC3Init(void);
107
108
109 #endif /*EMIF_H_*/