iLLD_TC29x  1.0
IfxEbu.h
Go to the documentation of this file.
1 /**
2  * \file IfxEbu.h
3  * \brief EBU basic functionality
4  * \ingroup IfxLld_Ebu
5  *
6  * \version iLLD_1_0_0_11_0
7  * \copyright Copyright (c) 2013 Infineon Technologies AG. All rights reserved.
8  *
9  *
10  * IMPORTANT NOTICE
11  *
12  *
13  * Infineon Technologies AG (Infineon) is supplying this file for use
14  * exclusively with Infineon's microcontroller products. This file can be freely
15  * distributed within development tools that are supporting such microcontroller
16  * products.
17  *
18  * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
19  * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
20  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
21  * INFINEON SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL,
22  * OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
23  *
24  * \defgroup IfxLld_Ebu_Std_Enum Enumerations
25  * \ingroup IfxLld_Ebu_Std
26  * \defgroup IfxLld_Ebu_Std_Operative Operative Functions
27  * \ingroup IfxLld_Ebu_Std
28  * \defgroup IfxLld_Ebu_Std_Support Support Functions
29  * \ingroup IfxLld_Ebu_Std
30  */
31 
32 #ifndef IFXEBU_H
33 #define IFXEBU_H 1
34 
35 /******************************************************************************/
36 /*----------------------------------Includes----------------------------------*/
37 /******************************************************************************/
38 
39 #include "_Impl/IfxEbu_cfg.h"
40 #include "IfxEbu_reg.h"
41 
42 /******************************************************************************/
43 /*--------------------------------Enumerations--------------------------------*/
44 /******************************************************************************/
45 
46 /** \addtogroup IfxLld_Ebu_Std_Enum
47  * \{ */
48 typedef enum
49 {
50  IfxEbu_ChipSelect_0, /**< \brief Chip Select Line 0 */
51  IfxEbu_ChipSelect_1, /**< \brief Chip Select Line 1 */
52  IfxEbu_ChipSelect_2 /**< \brief Chip Select Line 2 */
54 
55 typedef enum
56 {
57  IfxEbu_ExternalClockRatio_1, /**< \brief f_ebu:f_sri = 1:1; */
58  IfxEbu_ExternalClockRatio_2, /**< \brief f_ebu:f_sri = 2:1 */
59  IfxEbu_ExternalClockRatio_3, /**< \brief f_ebu:f_sri = 3:1 */
60  IfxEbu_ExternalClockRatio_4, /**< \brief f_ebu:f_sri = 4:1 */
61  IfxEbu_ExternalClockRatio_6, /**< \brief f_ebu:f_sri = 6:1 */
62  IfxEbu_ExternalClockRatio_8 /**< \brief f_ebu:f_sri = 8:1 */
64 
65 /** \} */
66 
67 typedef enum
68 {
69  IfxEbu_AlternateSegmentCompare_disabled = 0, /**< \brief Alternate Segment is never Compared with SRI Bus */
70  IfxEbu_AlternateSegmentCompare_enabled = 1 /**< \brief Alternate Segment Address is always compared */
72 
73 typedef enum
74 {
75  IfxEbu_ArbitrationSignalSynchronization_synchronous = 0, /**< \brief Arbitration Signals are Synchronous */
76  IfxEbu_ArbitrationSignalSynchronization_asynchronous = 1 /**< \brief Arbitration inputs are Asynchronous */
78 
79 typedef enum
80 {
86 
87 typedef enum
88 {
89  IfxEbu_ByteControlEnable_byteControlOff = 0, /**< \brief Byte control off. Pins available for address or
90  * GPIO as set by Ports logic */
91  IfxEbu_ByteControlEnable_byteControl8Bit = 1, /**< \brief 8 bit byte control. Byte control 0 only. A(22:20)
92  * available for address or GPIO as set by Ports
93  * logic */
94  IfxEbu_ByteControlEnable_byteControl16Bit = 2, /**< \brief 16 bit byte control. BC(1:0) available. A(21:20)
95  * available for address or GPIO as set by Ports
96  * logic */
97  IfxEbu_ByteControlEnable_byteControl32Bit = 3 /**< \brief 32 bit byte control. BC(3:0) available */
99 
100 typedef enum
101 {
102  IfxEbu_CASLatency_Latency2 = 2, /**< \brief CAS Latency 2 between Read Command and availability of Data */
103  IfxEbu_CASLatency_Latency3 = 3 /**< \brief CAS Latency 3 between Read Access and availability of Data */
105 
106 typedef enum
107 {
108  IfxEbu_ClockDivideRatio_0 = 0, /**< \brief EBU Clock divide Ratio */
109  IfxEbu_ClockDivideRatio_1, /**< \brief EBU Clock divide Ratio */
110  IfxEbu_ClockDivideRatio_2, /**< \brief EBU Clock divide Ratio */
111  IfxEbu_ClockDivideRatio_3 /**< \brief EBU Clock divide Ratio */
113 
114 typedef enum
115 {
116  IfxEbu_ClockSource_asynchronous = 0, /**< \brief EBU input clock is in Asynchronous mode; */
117  IfxEbu_ClockSource_synchronous = 1 /**< \brief EBU Input Clock Source is from PLL; */
119 
120 typedef enum
121 {
122  IfxEbu_ColumnAddressWidth_1 = 1, /**< \brief Asri[8:0] for 16bit 512bytes and Asri[9:0] for 32bit 1024bytes */
123  IfxEbu_ColumnAddressWidth_2 = 2, /**< \brief Asri[9:0] for 16bit 1024 bytes and Asri[10:0] for 32bit 2048 bytes */
124  IfxEbu_ColumnAddressWidth_3 = 3 /**< \brief Asri[10:0] for 16bit 1024 bytes and Asri[11:0] for 32bit 4096 bytes */
126 
127 typedef enum
128 {
129  IfxEbu_DelayOnPowerDownExit_0, /**< \brief Number of Nops after SDRAM controller exits power down */
130  IfxEbu_DelayOnPowerDownExit_1, /**< \brief Number of Nops after SDRAM controller exits power down */
131  IfxEbu_DelayOnPowerDownExit_2, /**< \brief Number of Nops after SDRAM controller exits power down */
132  IfxEbu_DelayOnPowerDownExit_3, /**< \brief Number of Nops after SDRAM controller exits power down */
133  IfxEbu_DelayOnPowerDownExit_4, /**< \brief Number of Nops after SDRAM controller exits power down */
134  IfxEbu_DelayOnPowerDownExit_5, /**< \brief Number of Nops after SDRAM controller exits power down */
135  IfxEbu_DelayOnPowerDownExit_6, /**< \brief Number of Nops after SDRAM controller exits power down */
136  IfxEbu_DelayOnPowerDownExit_7 /**< \brief Number of Nops after SDRAM controller exits power down */
138 
139 typedef enum
140 {
141  IfxEbu_DeviceType_muxedAsynchronousType = 0, /**< \brief External Device is a Muxed Asynchronous Type Device */
142  IfxEbu_DeviceType_muxedBurstType = 1, /**< \brief External Device is a Muxed Burst Type */
143  IfxEbu_DeviceType_nandFlash = 2, /**< \brief External Device is a Nand Flash device */
144  IfxEbu_DeviceType_muxedCellularRam = 3, /**< \brief External Device is a Muxed Cellular Ram Device */
145  IfxEbu_DeviceType_demuxedAsynchronousType = 4, /**< \brief External Device is a Demuxed Asynchronous Type device */
146  IfxEbu_DeviceType_demuxedBurstType = 5, /**< \brief External device is a Demuxed Burst Type device */
147  IfxEbu_DeviceType_demuxedPageMode = 6, /**< \brief External device is a Demuxed Page Mode Device */
148  IfxEbu_DeviceType_demuxedCellularRam = 7, /**< \brief External device is a Demuxed Cellular Ram Device */
149  IfxEbu_DeviceType_sdram = 8 /**< \brief External Device is a SDRAM Device */
151 
152 typedef enum
153 {
154  IfxEbu_ExtendedData_0, /**< \brief Data is output every 2*str(x) Clock Cycle(s) */
155  IfxEbu_ExtendedData_1, /**< \brief Data is output every 2*str(x) Clock Cycle(s) */
156  IfxEbu_ExtendedData_2, /**< \brief Data is output every 2*str(x) Clock Cycle(s) */
157  IfxEbu_ExtendedData_3 /**< \brief Data is output every 2*str(x) Clock Cycle(s) */
159 
160 typedef enum
161 {
162  IfxEbu_ExtendedOperationBankSelect_0, /**< \brief Value written to Bank Select Pins of Mobile SDRAM */
163  IfxEbu_ExtendedOperationBankSelect_1, /**< \brief Value written to Bank Select Pins of Mobile SDRAM */
164  IfxEbu_ExtendedOperationBankSelect_2, /**< \brief Value written to Bank Select Pins of Mobile SDRAM */
165  IfxEbu_ExtendedOperationBankSelect_3 /**< \brief Value written to Bank Select Pins of Mobile SDRAM */
167 
168 typedef enum
169 {
175 
176 typedef enum
177 {
178  IfxEbu_ExternalBusMode_noBus = 0, /**< \brief EBU is in NoBus Mode */
179  IfxEbu_ExternalBusMode_arbiter = 1, /**< \brief EBU is in Arbiter mode; */
180  IfxEbu_ExternalBusMode_participant = 2, /**< \brief EBU is in Participant Mode; */
181  IfxEbu_ExternalBusMode_soleMaster = 3 /**< \brief EBU is in Sole Master Mode */
183 
184 typedef enum
185 {
186  IfxEbu_ExternalDeviceInterface_8bitMultiplexed = 0, /**< \brief External Device is an 8 Bit Device */
187  IfxEbu_ExternalDeviceInterface_16bitMultiplexed = 1, /**< \brief External evice is an 16 bit Multiplexed */
188  IfxEbu_ExternalDeviceInterface_twin16bitMultiplexed = 2, /**< \brief Two External 16 bit Multiplexed Devices are used */
189  IfxEbu_ExternalDeviceInterface_32bitMultiplexed = 3 /**< \brief External device is an 32 bit Multiplexed device */
191 
192 typedef enum
193 {
194  IfxEbu_ExternalMemoryWriteProtect_disabled = 0, /**< \brief External memory is writable */
195  IfxEbu_ExternalMemoryWriteProtect_enabled = 1 /**< \brief External Memory is write protected */
197 
198 typedef enum
199 {
200  IfxEbu_MaskForBankTag_1 = 1, /**< \brief Asri[21 to 20] */
201  IfxEbu_MaskForBankTag_2 = 2, /**< \brief Asri[22 to 21] */
202  IfxEbu_MaskForBankTag_3 = 3, /**< \brief Asri[23 to 22] */
203  IfxEbu_MaskForBankTag_4 = 4, /**< \brief Asri[24 to 23] */
204  IfxEbu_MaskForBankTag_5 = 5, /**< \brief Asri[25 to 24] */
205  IfxEbu_MaskForBankTag_6 = 6 /**< \brief Asri[26 to 25] */
207 
208 typedef enum
209 {
210  IfxEbu_MemoryRegionMask_0, /**< \brief Mask1 */
211  IfxEbu_MemoryRegionMask_1, /**< \brief Mask2 */
212  IfxEbu_MemoryRegionMask_2, /**< \brief Mask3 */
213  IfxEbu_MemoryRegionMask_3, /**< \brief Mask4 */
214  IfxEbu_MemoryRegionMask_4, /**< \brief Mask5 */
215  IfxEbu_MemoryRegionMask_5, /**< \brief Mask6 */
216  IfxEbu_MemoryRegionMask_6, /**< \brief Mask7 */
217  IfxEbu_MemoryRegionMask_7, /**< \brief Mask8 */
218  IfxEbu_MemoryRegionMask_8, /**< \brief Mask9 */
219  IfxEbu_MemoryRegionMask_9, /**< \brief Mask10 */
220  IfxEbu_MemoryRegionMask_10, /**< \brief Mask11 */
221  IfxEbu_MemoryRegionMask_11, /**< \brief Mask12 */
222  IfxEbu_MemoryRegionMask_12, /**< \brief Mask13 */
223  IfxEbu_MemoryRegionMask_13, /**< \brief Mask14 */
224  IfxEbu_MemoryRegionMask_14, /**< \brief Mask15 */
225  IfxEbu_MemoryRegionMask_15 /**< \brief Mask16 */
227 
228 typedef enum
229 {
230  IfxEbu_ModeRegisterSetupTime_0, /**< \brief Number of Nop Cycles after a Mode Register Set Command (Crsc + 1) Nop cycles */
231  IfxEbu_ModeRegisterSetupTime_1, /**< \brief Number of Nop Cycles after a Mode Register Set Command (Crsc + 1) Nop cycles */
232  IfxEbu_ModeRegisterSetupTime_2, /**< \brief Number of Nop Cycles after a Mode Register Set Command (Crsc + 1) Nop cycles */
233  IfxEbu_ModeRegisterSetupTime_3 /**< \brief Number of Nop Cycles after a Mode Register Set Command (Crsc + 1) Nop cycles */
235 
236 typedef enum
237 {
238  IfxEbu_PowerSaveMode_0, /**< \brief Power Save mode used for clock gate mode */
239  IfxEbu_PowerSaveMode_1, /**< \brief Power Save mode used for clock gate mode */
240  IfxEbu_PowerSaveMode_2, /**< \brief Power Save mode used for clock gate mode */
241  IfxEbu_PowerSaveMode_3 /**< \brief Power Save mode used for clock gate mode */
243 
244 typedef enum
245 {
255 
256 typedef enum
257 {
258  IfxEbu_RowPrechargeTime_0, /**< \brief Number of Nops inserted after Precharge command (Crp + 1) Nop Cycles */
259  IfxEbu_RowPrechargeTime_1, /**< \brief Number of Nops inserted after Precharge command (Crp + 1) Nop Cycles */
260  IfxEbu_RowPrechargeTime_2, /**< \brief Number of Nops inserted after Precharge command (Crp + 1) Nop Cycles */
261  IfxEbu_RowPrechargeTime_3 /**< \brief Number of Nops inserted after Precharge command (Crp + 1) Nop Cycles */
263 
264 typedef enum
265 {
266  IfxEbu_RowToColumnDelay_0, /**< \brief Number of Nops between Row Address and Column Address (Crcd(value) + 1 Nop Cycle) */
267  IfxEbu_RowToColumnDelay_1, /**< \brief Number of Nops between Row Address and Column Address (Crcd(value) + 1 Nop Cycle) */
268  IfxEbu_RowToColumnDelay_2, /**< \brief Number of Nops between Row Address and Column Address (Crcd(value) + 1 Nop Cycle) */
269  IfxEbu_RowToColumnDelay_3 /**< \brief Number of Nops between Row Address and Column Address (Crcd(value) + 1 Nop Cycle) */
271 
272 typedef enum
273 {
274  IfxEbu_SDRAMBurstLength_1 = 0, /**< \brief Burst Length 1 */
275  IfxEbu_SDRAMBurstLength_2 = 1, /**< \brief Burst Length 2 */
276  IfxEbu_SDRAMBurstLength_4 = 2, /**< \brief Burst Length 4 */
277  IfxEbu_SDRAMBurstLength_8 = 3, /**< \brief Burst Length 8 */
278  IfxEbu_SDRAMBurstLength_16 = 4 /**< \brief Burst Length 16 */
280 
281 typedef enum
282 {
283  IfxEbu_SynchronousBurstBuffer_bufferLength = 0, /**< \brief EBU Buffer length = IfxEbu_SynchronousBurstLength; */
284  IfxEbu_SynchronousBurstBuffer_continuous = 1 /**< \brief EBU External Data is Transferred in Single Burst; */
286 
287 typedef enum
288 {
289  IfxEbu_SynchronousBurstLength_1 = 0, /**< \brief EBU Burst Length is 1; */
290  IfxEbu_SynchronousBurstLength_2 = 1, /**< \brief EBU Burst length is 2 */
291  IfxEbu_SynchronousBurstLength_4 = 2, /**< \brief EBU Burst Length is 4 */
292  IfxEbu_SynchronousBurstLength_8 = 3 /**< \brief EBU Burst Length is 8 */
294 
295 typedef enum
296 {
297  IfxEbu_WaitControl_off = 0, /**< \brief External Wait is off */
298  IfxEbu_WaitControl_asynchronous = 1, /**< \brief Asynchronous input for wait (Asynchronous Device) & Wait for Page load (Synchronous Device) */
299  IfxEbu_WaitControl_synchronous = 2 /**< \brief Synchronous input for wait (Asynchronous Device) & wait for Page load (with Data) (Synchronous Device) */
301 
302 /******************************************************************************/
303 /*-----------------------------Data Structures--------------------------------*/
304 /******************************************************************************/
305 
306 typedef struct
307 {
308  boolean regionEnabled;
316 
317 typedef struct
318 {
319  boolean aleMode; /**< \brief when '0' output is ADV, when '1' output is ALE */
320  IfxEbu_ExternalBusMode arbMode; /**< \brief Arbitration mode of External Bus */
321  IfxEbu_ArbitrationSignalSynchronization arbSignalSynchronization; /**< \brief Arbitration signal Synchronization mode */
322  boolean sdramTri; /**< \brief when '0' SDRAM control Signals are driven by EBU, when '1' SDRAM control signals are tristated */
323  uint8 lockTimeout; /**< \brief Value for preloaded for arbitration lock */
324  boolean clockComb; /**< \brief Both BFlash and SDRAM share the same clock out */
326 
327 typedef struct
328 {
329  uint8 addressCycle; /**< \brief BUSRAP.ADDRC Number of Clock Phase for Address */
330  uint8 addressHold; /**< \brief BUSRAP.AHOLDC Number of Cycles for Address Hold Phase */
331  uint8 commandDelay; /**< \brief BUSRAP.CMDDELAY Number of Command Delay Phase Clock Cycles */
332  IfxEbu_ExtendedData extendedData; /**< \brief BUSRAP.EXTDATA Determines the Clock Cycles after which the data is put out */
333  uint8 externalClock; /**< \brief BUSRAP.EXTCLOCK Determines the Clock Ratio between EBU_CLC and BFCLK or SDCLK */
334  uint8 dataHold; /**< \brief BUSRAP.DATAC Data Hold Cycles for Read */
335  uint8 waitState; /**< \brief BUSRAP.WAITRDC Number of Wait States for Read */
336  uint8 recoveryAccess; /**< \brief BUSRAP.RDRECOVC Recovery cycles at end of Read Access */
337  uint8 recoveryRegion; /**< \brief BUSRAP.RDDTACS Recovery cycles between different regions */
339 
340 typedef struct
341 {
342  IfxEbu_DeviceType deviceType; /**< \brief BUSRCON.AGEN Device selection for Read */
343  IfxEbu_WaitControl waitControl; /**< \brief BUSRCON.WAIT, External Wait Control */
344  IfxEbu_ExternalDeviceInterface deviceInterface; /**< \brief BUSRCON.PORTW Selects the device Addressing mode (16bit, 32bit, 2*16bit) */
345  uint8 byteControl; /**< \brief BUSRCON.BCGEN selects the timing mode of byte control */
346  boolean polarityWait; /**< \brief BUSRCON.WAITINV if '1' the polarity is reversed */
347  boolean earlyBurst; /**< \brief BUSRCON.EBSE if '1' ADV is not delayed */
348  boolean earlyChipSelect; /**< \brief BUSRCON.ECSE if '1' CS is not delayed */
349  boolean burstFlashClockMode; /**< \brief BUSRCON.BFCMSEL if '1' Clock is disabled between Access */
350  boolean burstFlashClockFeedback; /**< \brief BUSRCON.FDBKEN if '1' Feedback clock is used for resynchronizing the contol and data coming in */
351  boolean synchronousBurstBuffer; /**< \brief BUSRCON.FBBMSEL The data is either continuous or depends on FETLBEN */
352  IfxEbu_SynchronousBurstLength burstLength; /**< \brief BUSRCON.FETBLEN Defines maximum number of Burst Data */
354 
355 typedef struct
356 {
357  uint8 rowToPrechargeDelay; /**< \brief Number of clock cycles between Row Activate command and a Precharge command */
358  uint8 initializationRefreshCommand; /**< \brief Number of Refresh cycles issued during Initialization */
359  IfxEbu_ModeRegisterSetupTime modeRegSetupTime; /**< \brief Number of NOP commands after a mode register set command */
360  IfxEbu_RowPrechargeTime rowPrechargeTime; /**< \brief Number of NOP commands inserted after Precharge */
361  IfxEbu_ColumnAddressWidth columnAddressWidth; /**< \brief Number of Address bits from 0 used for Column Addressing */
362  IfxEbu_RowToColumnDelay rowToColumnDelay; /**< \brief Number of NOP commands between Row address and Column address */
363  uint8 refreshCycleTime; /**< \brief Number of NOP cycles following Refresh cycle */
364  IfxEbu_MaskForBankTag maskForBankTag; /**< \brief SRI address bits used to determine Bank Address */
365  boolean disableClockOutput; /**< \brief if '0' Clock is enabled */
366  IfxEbu_PowerSaveMode powerSaveMode; /**< \brief Power save mode used for Gated Clock mode */
367  boolean clockModeSelect; /**< \brief if '0' clock is running continuously, if '1' clock is disabled between access */
369 
370 typedef struct
371 {
372  IfxEbu_ExtendedOperationBankSelect extendedBankSelect; /**< \brief Value to be written to bank select pins of a mobile SDRAM */
373  uint16 extendedOperationMode; /**< \brief Value to be written to the extended mode register of a mobile SDRAM device */
374  boolean coldStart; /**< \brief If '1' is written the SDRAM device register will be updated */
375  IfxEbu_CASLatency casLatency; /**< \brief Number of Clock cycles between the availability of data an Read Access */
376  IfxEbu_SDRAMBurstLength burstLength; /**< \brief Number of location that can be accessed in a single command */
379 
380 typedef struct
381 {
382  IfxEbu_DelayOnPowerDownExit delayOnPowerDownExit; /**< \brief Number of Nops after SDRAM Controller exits Power down before an active command is active */
383  boolean autoRefresh; /**< \brief If '1' Auto Refresh will be enabled before Self Refresh Exit */
384  uint8 selfRefreshExitDelay; /**< \brief Number of Nops inserted after Self Refresh Command */
385  IfxEbu_ExtendedRefresh extendedRefresh; /**< \brief Used to Increase the Range of RefreshC field from 6 bits to 8 bits */
386  boolean automaticSelfRefresh; /**< \brief If '1' Automatic Self Refresh command will be issued for Entry and Exit */
387  boolean selfRefreshEntry; /**< \brief If '1' Self Refresh Entry command is issued */
388  boolean selfRefreshExit; /**< \brief If '1' Self Refresh Exit commands are issued */
389  IfxEbu_RefreshCommands refreshCommands; /**< \brief The Number of additional Refresh commands issued to SDRAM each time a refresh is due */
390  uint8 refreshPeriod; /**< \brief Number of clock Cycles between Refresh */
392 
393 typedef struct
394 {
395  uint8 addressCycle; /**< \brief BUSWAP.ADDRC Number of Clock Phase for Address */
396  uint8 addressHold; /**< \brief BUSWAP.AHOLDC Number of Cycles for Address Hold Phase */
397  uint8 commandDelay; /**< \brief BUSWAP.CMDDELAY Number of Command Delay Phase Clock Cycles */
398  IfxEbu_ExtendedData extendedData; /**< \brief BUSWAP.EXTDATA Determines the Clock Cycles after which the data is put out */
399  uint8 externalClock; /**< \brief BUSWAP.EXTCLOCK Determines the Clock Ratio between EBU_CLC and BFCLK or SDCLK */
400  uint8 dataHold; /**< \brief BUSWAP.DATAC Data Hold Cycles for WRITE */
401  uint8 waitState; /**< \brief BUSRAP.WAITWRC Number of Wait States for Write */
402  uint8 recoveryAccess; /**< \brief BUSWAP.WRRECOVC Recovery cycles at end of Write Access */
403  uint8 recoveryRegion; /**< \brief BUSWAP.WRDTACS Recovery cycles between different regions */
405 
406 typedef struct
407 {
408  IfxEbu_DeviceType deviceType; /**< \brief BUSWCON.AGEN Device selection for Read */
409  IfxEbu_WaitControl waitControl; /**< \brief BUSWCON.WAIT, External Wait Control */
410  IfxEbu_ExternalDeviceInterface deviceInterface; /**< \brief BUSWCON.PORTW Selects the device Addressing mode (16bit, 32bit, 2*16bit) */
411  uint8 byteControl; /**< \brief BUSWCON.BCGEN selects the timing mode of byte control */
412  boolean polarityWait; /**< \brief BUSWCON.WAITINV if '1' the polarity is reversed */
413  boolean earlyBurst; /**< \brief BUSWCON.EBSE if '1' ADV is not delayed */
414  boolean earlyChipSelect; /**< \brief BUSWCON.ECSE if '1' CS is not delayed */
415  boolean synchronousBurstBuffer; /**< \brief BUSWCON.FBBMSEL The data is either continuous or depends on FETLBEN */
416  IfxEbu_SynchronousBurstLength burstLength; /**< \brief BUSWCON.FETBLEN Defines maximum number of Burst Data */
418 
419 /** \addtogroup IfxLld_Ebu_Std_Operative
420  * \{ */
421 
422 /******************************************************************************/
423 /*-------------------------Global Function Prototypes-------------------------*/
424 /******************************************************************************/
425 
426 /** \brief Configures the EBU Clock Divider
427  * \return None
428  */
430 
431 /** \brief configures the byte control enable in the USERCON register
432  * \return None
433  */
434 IFX_EXTERN void IfxEbu_setByteControlEnable(Ifx_EBU *ebu, IfxEbu_ByteControlEnable byteControlEnable);
435 
436 /** \} */
437 
438 #endif /* IFXEBU_H */