Version 0.4 from Mike Line
[keystone-rtos/ibl.git] / src / device / c6472 / target.h
1 /**************************************************************************
2  * FILE PURPOSE: Target specific definitions
3  **************************************************************************
4  * FILE NAME: target.h
5  *
6  * DESCRIPTION: This file defines target specific values used by low level
7  *                              drivers.
8  *
9  * @file target.h
10  *
11  * @brief
12  *  Low level target specific values are defined
13  *
14  ***************************************************************************/
15  
16  
17 /** 
18  *  @brief
19  *   Device EMAC definitions
20  */
21 #define TARGET_DEVICE_CPMAC
22  
23 #define TARGET_EMAC_N_PORTS            2
25 #define TARGET_EMAC_BASE_ADDRESSES     { 0x02c80000u, 0x02cc0000u }
26 #define TARGET_EMAC_DSC_BASE_ADDR      { 0x02c82000u, 0x02cc2000u }
28 /* Leave mdio disabled */
29 #define dev_mdio_open()     1
32 /**
33  *  @brief
34  *    Device Timer definitions
35  */
36 #define TIMER0_BASE             0x025e0000u
38 #define TIMER_INPUT_DIVIDER     6           /* Timer driven from cpu clock / 6 */
41 /**
42  *  @def MAIN_PLL
43  */
44 #define MAIN_PLL        0   /**< The index to the main PLL */
46 /**
47  * @def NET_PLL
48  */
49 #define NET_PLL         1   /**< The index to the network PLL */
51 /**
52  *  @def DDR_PLL
53  */
54 #define DDR_PLL         2   /**< The index to the DDR PLL */
57 /**
58  *  @brief
59  *    Device PLL definitions
60  */
61 #define DEVICE_PLL_BASE(x)  ((x) == MAIN_PLL ? 0x29a0000 : ((x) == NET_PLL ? 0x29c0000 : 0x29c0400))
64 /**
65  * @brief 
66  *  Device PSC definitions
67  */
68 #define DEVICE_PSC_BASE     0x02ae0000u
70 /**
71  * @brief
72  *  The PSC number for ethernet port 0 is 7, and for port 1 it is 8 */
73 #define TARGET_PWR_ETH(x)   ((x) == 0  ?  7  :  8)
75 /**
76  *  @brief
77  *    The nand is done through gpio, which is always powered up.
78  *    A value < 0 tells the low level psc driver to simply return success
79  */
80 #define TARGET_PWR_NAND     -1
83 /**
84  *  @brief
85  *    Device DDR controller definitions
86  */
87 #define DEVICE_DDR_BASE  0x78000000
89 /**
90  * @brief
91  *  The highest module number
92  */
93 #define TARGET_PWR_MAX_MOD  13
94  
96 /**
97  * @brief
98  *   The base address of MDIO 
99  */
100 #define TARGET_MDIO_BASE    0x2c81800
102 /**
103  *  @brief
104  *    GPIO address
105  */
106 #define GPIO_GPIOPID_REG                0x02B00000
107 #define GPIO_GPIOEMU_REG                0x02B00004
108 #define GPIO_BINTEN_REG                 0x02B00008
109 #define GPIO_DIR_REG                    0x02B00010
110 #define GPIO_OUT_DATA_REG               0x02B00014
111 #define GPIO_SET_DATA_REG               0x02B00018
112 #define GPIO_CLEAR_DATA_REG             0x02B0001C
113 #define GPIO_IN_DATA_REG                0x02B00020
114 #define GPIO_SET_RIS_TRIG_REG   0x02B00024
115 #define GPIO_CLR_RIS_TRIG_REG   0x02B00028
116 #define GPIO_SET_FAL_TRIG_REG   0x02B0002C
117 #define GPIO_CLR_FAL_TRIG_REG   0x02B00030
119 /**
120  *  @brief
121  *    GPIO pin mapping 
122  */
123 #define NAND_CLE_GPIO_PIN       GPIO_8     // High: Command Cycle occuring
124 #define NAND_ALE_GPIO_PIN       GPIO_9     // High: Address input cycle oddcuring
125 #define NAND_NWE_GPIO_PIN       GPIO_10
126 #define NAND_NRE_GPIO_PIN       GPIO_12
127 #define NAND_NCE_GPIO_PIN       GPIO_13
128 #define NAND_MODE_GPIO          GPIO_14
130 /**
131  *  @brief
132  *      The standard NAND delay must be big enough to handle the highest possible
133  *      operating frequency of the device */
134 #define TARGET_NAND_STD_DELAY                           25 // In cpu cycles
136 /**
137  *  @brief
138  *      The base address of the I2C peripheral, and the module divisor of the cpu clock
139  */
140 #define DEVICE_I2C_BASE                 0x02b04000
141 #define DEVICE_I2C_MODULE_DIVISOR       6
142