[processor-sdk/performance-audio-sr.git] / pdk_k2g_1_0_1_0_eng / packages / ti / board / src / idkAM572x / boardPadDelay.h
1 /**
2 * Note: This file was auto-generated by TI PinMux on 3/1/2016 at 8:15:26 PM.
3 *
4 * \file boardPadDelay.h
5 *
6 * \brief This file contains runtime timing configuration structure declarations. For details on timing and
7 * switching configuratio refer to "Timing Requirements and Switching Characteristics" subsection
8 * in the device Data Manual.
9 *
10 * \copyright Copyright (CU) 2015 Texas Instruments Incorporated -
11 * http://www.ti.com/
12 */
14 /**
15 * Redistribution and use in source and binary forms, with or without
16 * modification, are permitted provided that the following conditions
17 * are met:
18 *
19 * Redistributions of source code must retain the above copyright
20 * notice, this list of conditions and the following disclaimer.
21 *
22 * Redistributions in binary form must reproduce the above copyright
23 * notice, this list of conditions and the following disclaimer in the
24 * documentation and/or other materials provided with the
25 * distribution.
26 *
27 * Neither the name of Texas Instruments Incorporated nor the names of
28 * its contributors may be used to endorse or promote products derived
29 * from this software without specific prior written permission.
30 *
31 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
34 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
36 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
37 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
38 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
39 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
40 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
41 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
42 *
43 */
45 /**
46 * \brief This structure defines the delay configuration for IO Delay Config
47 * Registers: CFG_X_IN, CFG_X_OUT and CFG_X_OEN.
48 */
49 typedef struct boardDelayCfg
50 {
51 uint16_t offset;
52 /**< Offset for Delay Configuration Register */
53 uint16_t aDelay;
54 /**< Value of Process Agnostic(Unaware) Delay */
55 uint16_t gDelay;
56 /**< Value of Process Gnostic(Aware) Delay */
57 }boardDelayCfg_t;
59 /**
60 * \brief This structure defines the delay configuration associated with a
61 * particular pad as given by PinMux.
62 */
63 typedef struct boardPadDelayCfg
64 {
65 uint16_t offset;
66 /**< Offset for Pad Configuration Register */
67 uint32_t regVal;
68 /**< Value of Pad configuration Register as given by the PinMux */
69 boardDelayCfg_t delayConfigIn;
70 /**< Delay Configuration of CFG_X_IN register */
71 boardDelayCfg_t delayConfigOen;
72 /**< Delay Configuration of CFG_X_OEN register */
73 boardDelayCfg_t delayConfigOut;
74 /**< Delay Configuration of CFG_X_OUT register */
75 }boardPadDelayCfg_t;
77 /**
78 * \brief This structure defines the alternate muxing configuration associated with a
79 * particular pad as given by PinMux.
80 */
81 typedef struct boardPadDelayAltGpCfg
82 {
83 uint32_t regAddr;
84 /**< Register address of alternate Pad Configuration Register */
85 uint32_t regVal;
86 /**< Value of Alternate Pad configuration Register as given by the PinMux */
87 }boardPadDelayAltGpCfg_t;
89 /**
90 * \brief Structure defining the mapping of MMC operational mode to its
91 * corresponding pad configuration structure.
92 */
93 typedef struct mmcBoardPadCfgTable
94 {
95 int32_t mmcMode;
96 /**< MMC operational mode. */
97 const boardPadDelayCfg_t *mmcPadCfg;
98 /**< Pointer to the structure containing the pad configuration data for an
99 MMC interface */
100 uint16_t noPins;
101 /**< Value to indicate the number of pins. */
102 }mmcBoardPadCfgTable_t;
104 /**
105 * \brief Enumerates the different operating modes defined for an MMC device.
106 * This enum to include all the modes of all instances.
107 */
108 typedef enum mmcMode
109 {
110 MMC1_DEFAULT_PLB,
111 /**< Default Pad Loopback mode of MMC1. */
112 MMC1_HS_ILB,
113 /**< High speed Internal Loopback mode of MMC1. */
114 MMC1_HS_PLB,
115 /**< High speed Pad Loopback mode of MMC1. */
116 MMC1_SDR12_PLB,
117 /**< SDR12 Pad Loopback mode of MMC1. */
118 MMC1_SDR12_ILB,
119 /**< SDR12 Internal Loopback mode of MMC1. */
120 MMC1_SDR25_ILB,
121 /**< SDR25 Internal Loopback mode of MMC1. */
122 MMC1_SDR50_ILB,
123 /**< SDR50 Internal Loopback mode of MMC1. */
124 MMC1_SDR50_PLB,
125 /**< SDR50 Pad Loopback mode of MMC1. */
126 MMC1_DS_ILB,
127 /**< Default speed Internal Loopback mode of MMC1. */
128 MMC1_DDR50_ILB,
129 /**< DDR50 Internal Loopback mode of MMC1. */
130 MMC1_DDR50_PLB,
131 /**< DDR50 Pad Loopback mode of MMC1. */
132 MMC1_SDR104,
133 /**< SDR104 mode of MMC1. */
134 MMC2_DEFAULT_HS_PLB,
135 /**< Default High Speed Pad Loopback mode of MMC2. */
136 MMC2_DEFAULT_STD_PLB,
137 /**< Default Standard Pad Loopback mode of MMC2. */
138 MMC2_DDR_ILB,
139 /**< DDR Internal Loopback mode of MMC2. */
140 MMC2_DDR_PLB,
141 /**< DDR Pad Loopback 1.8V and 3.3V mode of MMC2. */
142 MMC2_HS200,
143 /**< HS200 mode of MMC2. */
144 MMC2_STD_ILB,
145 /**< Standard Internal Loopback mode of MMC2. */
146 MMC2_HS_ILB,
147 /**< High speed Internal Loopback mode of MMC2. */
148 MMC3_DEFAULT,
149 /**< Default speed mode of MMC3. */
150 MMC3_HS,
151 /**< High speed mode of MMC3. */
152 MMC3_SDR12,
153 /**< SDR12 mode of MMC3. */
154 MMC3_SDR25,
155 /**< SDR25 mode of MMC3. */
156 MMC3_SDR50,
157 /**< SDR50 mode of MMC3. */
158 MMC4_DEFAULT,
159 /**< Default speed mode of MMC4. */
160 MMC4_HS,
161 /**< High speed mode of MMC4. */
162 MMC4_SDR12,
163 /**< SDR12 mode of MMC4. */
164 MMC4_SDR25,
165 /**< SDR25 mode of MMC4. */
166 MMC_MODE_INVALID = -1
167 /**< Invalid MMC Mode */
168 }mmcMode_t;
170 /**
171 * \brief Function to return the array size as it may differ based on
172 * the selections made in boardPadDelayTune.h file.
173 */
174 #if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)
175 #pragma CODE_SECTION (boardPadGetSize, "BOARD_IO_DELAY_CODE");
176 uint32_t boardPadGetSize();
177 #else
178 uint32_t boardPadGetSize() __attribute__((section("BOARD_IO_DELAY_CODE")));
179 #endif
181 /**
182 * \brief Function to return the alternate array size as it may differ based on
183 * the selections made in boardPadDelayTune.h file.
184 */
185 #if defined(BOARD_PAD_DELAY_ALT_GRP_ENABLE)
186 #if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)
187 #pragma CODE_SECTION (boardAltPadGetSize, "BOARD_IO_DELAY_CODE");
188 uint32_t boardAltPadGetSize();
189 #else
190 uint32_t boardAltPadGetSize() __attribute__((section("BOARD_IO_DELAY_CODE")));
191 #endif
192 #endif
194 /**
195 * \brief Function to return the runtime pinmux config table for the MMCSD
196 * instance.
197 */
198 mmcBoardPadCfgTable_t* BoardGetMmcCtrlPadPinmuxTable(uint32_t instance);