Kinetis Bootloader  2.0.0
Common bootloader for Kinetis devices
fsl_i2c.h
1 /*
2  * Copyright (c) 2015, Freescale Semiconductor, Inc.
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without modification,
6  * are permitted provided that the following conditions are met:
7  *
8  * o Redistributions of source code must retain the above copyright notice, this list
9  * of conditions and the following disclaimer.
10  *
11  * o Redistributions in binary form must reproduce the above copyright notice, this
12  * list of conditions and the following disclaimer in the documentation and/or
13  * other materials provided with the distribution.
14  *
15  * o Neither the name of Freescale Semiconductor, Inc. nor the names of its
16  * contributors may be used to endorse or promote products derived from this
17  * software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
23  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
26  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */
30 #ifndef _FSL_I2C_H_
31 #define _FSL_I2C_H_
32 
33 #include "fsl_common.h"
34 
40 /*******************************************************************************
41  * Definitions
42  ******************************************************************************/
43 
45 #define FSL_I2C_DRIVER_VERSION (MAKE_VERSION(2, 0, 0))
47 #if (defined(FSL_FEATURE_I2C_HAS_START_STOP_DETECT) && FSL_FEATURE_I2C_HAS_START_STOP_DETECT || \
48  defined(FSL_FEATURE_I2C_HAS_STOP_DETECT) && FSL_FEATURE_I2C_HAS_STOP_DETECT)
49 #define I2C_HAS_STOP_DETECT
50 #endif /* FSL_FEATURE_I2C_HAS_START_STOP_DETECT / FSL_FEATURE_I2C_HAS_STOP_DETECT */
51 
54 {
55  kStatus_I2C_Busy = MAKE_STATUS(kStatusGroup_I2C, 0),
56  kStatus_I2C_Idle = MAKE_STATUS(kStatusGroup_I2C, 1),
57  kStatus_I2C_Nak = MAKE_STATUS(kStatusGroup_I2C, 2),
60 };
61 
75 {
76  kI2C_ReceiveNakFlag = I2C_S_RXAK_MASK,
77  kI2C_IntPendingFlag = I2C_S_IICIF_MASK,
78  kI2C_TransferDirectionFlag = I2C_S_SRW_MASK,
79  kI2C_RangeAddressMatchFlag = I2C_S_RAM_MASK,
80  kI2C_ArbitrationLostFlag = I2C_S_ARBL_MASK,
81  kI2C_BusBusyFlag = I2C_S_BUSY_MASK,
82  kI2C_AddressMatchFlag = I2C_S_IAAS_MASK,
83  kI2C_TransferCompleteFlag = I2C_S_TCF_MASK,
84 #ifdef I2C_HAS_STOP_DETECT
85  kI2C_StopDetectFlag = I2C_FLT_STOPF_MASK << 8,
86 #endif /* FSL_FEATURE_I2C_HAS_START_STOP_DETECT / FSL_FEATURE_I2C_HAS_STOP_DETECT */
87 
88 #if defined(FSL_FEATURE_I2C_HAS_START_STOP_DETECT) && FSL_FEATURE_I2C_HAS_START_STOP_DETECT
89  kI2C_StartDetectFlag = I2C_FLT_STARTF_MASK << 8,
90 #endif /* FSL_FEATURE_I2C_HAS_START_STOP_DETECT */
91 };
92 
95 {
96  kI2C_GlobalInterruptEnable = I2C_C1_IICIE_MASK,
98 #if defined(FSL_FEATURE_I2C_HAS_STOP_DETECT) && FSL_FEATURE_I2C_HAS_STOP_DETECT
99  kI2C_StopDetectInterruptEnable = I2C_FLT_STOPIE_MASK,
100 #endif /* FSL_FEATURE_I2C_HAS_STOP_DETECT */
101 
102 #if defined(FSL_FEATURE_I2C_HAS_START_STOP_DETECT) && FSL_FEATURE_I2C_HAS_START_STOP_DETECT
104 #endif /* FSL_FEATURE_I2C_HAS_START_STOP_DETECT */
105 };
106 
108 typedef enum _i2c_direction
109 {
110  kI2C_Write = 0x0U,
111  kI2C_Read = 0x1U,
113 
115 typedef enum _i2c_slave_address_mode
116 {
120 
123 {
128 };
129 
140 typedef enum _i2c_slave_transfer_event
141 {
148 #if defined(FSL_FEATURE_I2C_HAS_START_STOP_DETECT) && FSL_FEATURE_I2C_HAS_START_STOP_DETECT
150 #endif
155 #if defined(FSL_FEATURE_I2C_HAS_START_STOP_DETECT) && FSL_FEATURE_I2C_HAS_START_STOP_DETECT
157 #endif
160 
162 typedef struct _i2c_master_config
163 {
165 #if defined(FSL_FEATURE_I2C_HAS_HIGH_DRIVE_SELECTION) && FSL_FEATURE_I2C_HAS_HIGH_DRIVE_SELECTION
167 #endif
168 #if defined(FSL_FEATURE_I2C_HAS_STOP_HOLD_OFF) && FSL_FEATURE_I2C_HAS_STOP_HOLD_OFF
170 #endif
171  uint32_t baudRate_Bps;
174 
176 typedef struct _i2c_slave_config
177 {
178  bool enableSlave;
181 #if defined(FSL_FEATURE_I2C_HAS_HIGH_DRIVE_SELECTION) && FSL_FEATURE_I2C_HAS_HIGH_DRIVE_SELECTION
183 #endif
185  uint16_t slaveAddress;
186  uint16_t upperAddress;
189 
191 typedef struct _i2c_master_handle i2c_master_handle_t;
192 
194 typedef void (*i2c_master_transfer_callback_t)(I2C_Type *base,
195  i2c_master_handle_t *handle,
196  status_t status,
197  void *userData);
198 
200 typedef struct _i2c_slave_handle i2c_slave_handle_t;
201 
203 typedef struct _i2c_master_transfer
204 {
205  uint32_t flags;
206  uint8_t slaveAddress;
208  uint32_t subaddress;
209  uint8_t subaddressSize;
210  uint8_t *volatile data;
211  volatile size_t dataSize;
213 
216 {
218  size_t transferSize;
219  uint8_t state;
221  void *userData;
222 };
223 
225 typedef struct _i2c_slave_transfer
226 {
228  uint8_t *volatile data;
229  volatile size_t dataSize;
234 
236 typedef void (*i2c_slave_transfer_callback_t)(I2C_Type *base, i2c_slave_transfer_t *xfer, void *userData);
237 
240 {
241  bool isBusy;
243  uint32_t eventMask;
245  void *userData;
246 };
247 
248 /*******************************************************************************
249  * API
250  ******************************************************************************/
251 
252 #if defined(__cplusplus)
253 extern "C" {
254 #endif /*_cplusplus. */
255 
286 void I2C_MasterInit(I2C_Type *base, const i2c_master_config_t *masterConfig, uint32_t srcClock_Hz);
287 
313 void I2C_SlaveInit(I2C_Type *base, const i2c_slave_config_t *slaveConfig);
314 
320 void I2C_MasterDeinit(I2C_Type *base);
321 
327 void I2C_SlaveDeinit(I2C_Type *base);
328 
343 
357 
364 static inline void I2C_Enable(I2C_Type *base, bool enable)
365 {
366  if (enable)
367  {
368  base->C1 |= I2C_C1_IICEN_MASK;
369  }
370  else
371  {
372  base->C1 &= ~I2C_C1_IICEN_MASK;
373  }
374 }
375 
376 /* @} */
377 
389 uint32_t I2C_MasterGetStatusFlags(I2C_Type *base);
390 
397 static inline uint32_t I2C_SlaveGetStatusFlags(I2C_Type *base)
398 {
399  return I2C_MasterGetStatusFlags(base);
400 }
401 
415 static inline void I2C_MasterClearStatusFlags(I2C_Type *base, uint32_t statusMask)
416 {
417 /* Must clear the STARTF / STOPF bits prior to clearing IICIF */
418 #if defined(FSL_FEATURE_I2C_HAS_START_STOP_DETECT) && FSL_FEATURE_I2C_HAS_START_STOP_DETECT
419  if (statusMask & kI2C_StartDetectFlag)
420  {
421  /* Shift the odd-ball flags back into place. */
422  base->FLT |= (uint8_t)(statusMask >> 8U);
423  }
424 #endif
425 
426 #ifdef I2C_HAS_STOP_DETECT
427  if (statusMask & kI2C_StopDetectFlag)
428  {
429  /* Shift the odd-ball flags back into place. */
430  base->FLT |= (uint8_t)(statusMask >> 8U);
431  }
432 #endif
433 
434  base->S = (uint8_t)statusMask;
435 }
436 
450 static inline void I2C_SlaveClearStatusFlags(I2C_Type *base, uint32_t statusMask)
451 {
452  I2C_MasterClearStatusFlags(base, statusMask);
453 }
454 
455 /* @} */
456 
472 void I2C_EnableInterrupts(I2C_Type *base, uint32_t mask);
473 
484 void I2C_DisableInterrupts(I2C_Type *base, uint32_t mask);
485 
490 #if defined(FSL_FEATURE_I2C_HAS_DMA_SUPPORT) && FSL_FEATURE_I2C_HAS_DMA_SUPPORT
491 
497 static inline void I2C_EnableDMA(I2C_Type *base, bool enable)
498 {
499  if (enable)
500  {
501  base->C1 |= I2C_C1_DMAEN_MASK;
502  }
503  else
504  {
505  base->C1 &= ~I2C_C1_DMAEN_MASK;
506  }
507 }
508 
509 #endif /* FSL_FEATURE_I2C_HAS_DMA_SUPPORT */
510 
518 static inline uint32_t I2C_GetDataRegAddr(I2C_Type *base)
519 {
520  return (uint32_t)(&(base->D));
521 }
522 
523 /* @} */
536 void I2C_MasterSetBaudRate(I2C_Type *base, uint32_t baudRate_Bps, uint32_t srcClock_Hz);
537 
550 status_t I2C_MasterStart(I2C_Type *base, uint8_t address, i2c_direction_t direction);
551 
558 status_t I2C_MasterStop(I2C_Type *base);
559 
569 status_t I2C_MasterRepeatedStart(I2C_Type *base, uint8_t address, i2c_direction_t direction);
570 
581 status_t I2C_MasterWriteBlocking(I2C_Type *base, const uint8_t *txBuff, size_t txSize);
582 
596 status_t I2C_MasterReadBlocking(I2C_Type *base, uint8_t *rxBuff, size_t rxSize);
597 
608 status_t I2C_SlaveWriteBlocking(I2C_Type *base, const uint8_t *txBuff, size_t txSize);
609 
617 void I2C_SlaveReadBlocking(I2C_Type *base, uint8_t *rxBuff, size_t rxSize);
618 
634 
635 /* @} */
636 
650 void I2C_MasterTransferCreateHandle(I2C_Type *base,
651  i2c_master_handle_t *handle,
653  void *userData);
654 
670 status_t I2C_MasterTransferNonBlocking(I2C_Type *base, i2c_master_handle_t *handle, i2c_master_transfer_t *xfer);
671 
681 status_t I2C_MasterTransferGetCount(I2C_Type *base, i2c_master_handle_t *handle, size_t *count);
682 
692 void I2C_MasterTransferAbort(I2C_Type *base, i2c_master_handle_t *handle);
693 
700 void I2C_MasterTransferHandleIRQ(I2C_Type *base, void *i2cHandle);
701 
710 void I2C_SlaveTransferCreateHandle(I2C_Type *base,
711  i2c_slave_handle_t *handle,
713  void *userData);
714 
739 status_t I2C_SlaveTransferNonBlocking(I2C_Type *base, i2c_slave_handle_t *handle, uint32_t eventMask);
740 
749 void I2C_SlaveTransferAbort(I2C_Type *base, i2c_slave_handle_t *handle);
750 
760 status_t I2C_SlaveTransferGetCount(I2C_Type *base, i2c_slave_handle_t *handle, size_t *count);
761 
768 void I2C_SlaveTransferHandleIRQ(I2C_Type *base, void *i2cHandle);
769 
770 /* @} */
771 #if defined(__cplusplus)
772 }
773 #endif /*_cplusplus. */
774 
776 #endif /* _FSL_I2C_H_*/
Definition: fsl_i2c.h:117
I2C master user config.
Definition: fsl_i2c.h:162
status_t I2C_MasterReadBlocking(I2C_Type *base, uint8_t *rxBuff, size_t rxSize)
Performs a polling receive transaction on the I2C bus with a STOP signal.
Definition: fsl_i2c.c:747
status_t I2C_MasterTransferBlocking(I2C_Type *base, i2c_master_transfer_t *xfer)
Performs a master polling transfer on the I2C bus.
Definition: fsl_i2c.c:806
Definition: fsl_i2c.h:77
i2c_slave_transfer_t transfer
Definition: fsl_i2c.h:242
status_t I2C_SlaveTransferNonBlocking(I2C_Type *base, i2c_slave_handle_t *handle, uint32_t eventMask)
Start accepting slave transfers.
Definition: fsl_i2c.c:1208
uint8_t subaddressSize
Definition: fsl_i2c.h:209
void I2C_MasterInit(I2C_Type *base, const i2c_master_config_t *masterConfig, uint32_t srcClock_Hz)
Initialize the I2C peripheral, call this API to ungate the i2c clock and configure the I2C with maste...
Definition: fsl_i2c.c:412
bool enableHighDrive
Definition: fsl_i2c.h:166
Definition: fsl_i2c.h:96
_i2c_status
I2C status return codes.
Definition: fsl_i2c.h:53
static void I2C_EnableDMA(I2C_Type *base, bool enable)
Enables/disables the I2C DMA interrupt.
Definition: fsl_i2c.h:497
void(* i2c_master_transfer_callback_t)(I2C_Type *base, i2c_master_handle_t *handle, status_t status, void *userData)
I2C master transfer callback typedef.
Definition: fsl_i2c.h:194
Definition: fsl_i2c.h:126
void I2C_MasterDeinit(I2C_Type *base)
De-initialize the I2C master peripheral, call thi API will gate the i2c clock, so the I2C master modu...
Definition: fsl_i2c.c:462
bool enableBaudRateCtl
Definition: fsl_i2c.h:184
i2c_direction_t direction
Definition: fsl_i2c.h:207
I2C master handle structure.
Definition: fsl_i2c.h:215
Definition: fsl_i2c.h:103
i2c_master_transfer_callback_t completionCallback
Definition: fsl_i2c.h:220
Definition: fsl_i2c.h:82
status_t completionStatus
Definition: fsl_i2c.h:230
bool enableWakeUp
Definition: fsl_i2c.h:180
static void I2C_Enable(I2C_Type *base, bool enable)
Enable or disables the I2C peripheral operation.
Definition: fsl_i2c.h:364
Definition: fsl_i2c.h:145
void I2C_MasterTransferAbort(I2C_Type *base, i2c_master_handle_t *handle)
Abort a interrupt non-blocking transfer in a early time.
Definition: fsl_i2c.c:1005
void * userData
Definition: fsl_i2c.h:221
status_t I2C_SlaveTransferGetCount(I2C_Type *base, i2c_slave_handle_t *handle, size_t *count)
Get slave transfer remaining bytes during a interrupt non-blocking transfer.
Definition: fsl_i2c.c:1258
Definition: fsl_common.h:76
Definition: fsl_i2c.h:125
status_t I2C_MasterWriteBlocking(I2C_Type *base, const uint8_t *txBuff, size_t txSize)
Performs a polling send transaction on the I2C bus without a STOP signal.
Definition: fsl_i2c.c:693
uint32_t eventMask
Definition: fsl_i2c.h:243
Definition: fsl_i2c.h:85
status_t I2C_MasterStart(I2C_Type *base, uint8_t address, i2c_direction_t direction)
Sends a START on the I2C bus.
Definition: fsl_i2c.c:581
bool isBusy
Definition: fsl_i2c.h:241
bool enableStopHold
Definition: fsl_i2c.h:169
status_t I2C_MasterRepeatedStart(I2C_Type *base, uint8_t address, i2c_direction_t direction)
Sends a REPEATED START on the I2C bus.
Definition: fsl_i2c.c:608
I2C slave handle structure.
Definition: fsl_i2c.h:239
i2c_master_transfer_t transfer
Definition: fsl_i2c.h:217
Definition: fsl_i2c.h:56
i2c_slave_transfer_callback_t callback
Definition: fsl_i2c.h:244
void I2C_SlaveTransferHandleIRQ(I2C_Type *base, void *i2cHandle)
Slave interrupt handler.
Definition: fsl_i2c.c:1280
uint16_t slaveAddress
Definition: fsl_i2c.h:185
i2c_slave_address_mode_t addressingMode
Definition: fsl_i2c.h:187
uint32_t subaddress
Definition: fsl_i2c.h:208
Definition: fsl_i2c.h:147
Definition: fsl_i2c.h:76
uint32_t flags
Definition: fsl_i2c.h:205
Definition: fsl_i2c.h:99
i2c_slave_transfer_event_t event
Definition: fsl_i2c.h:227
Definition: fsl_i2c.h:124
uint8_t state
Definition: fsl_i2c.h:219
status_t I2C_MasterTransferNonBlocking(I2C_Type *base, i2c_master_handle_t *handle, i2c_master_transfer_t *xfer)
Performs a master interrupt non-blocking transfer on the I2C bus.
Definition: fsl_i2c.c:978
Definition: fsl_i2c.h:110
Definition: fsl_i2c.h:58
void I2C_MasterGetDefaultConfig(i2c_master_config_t *masterConfig)
Set the I2C master configuration structure to default values.
Definition: fsl_i2c.c:471
i2c_slave_transfer_event_t
Set of events sent to the callback for nonblocking slave transfers.
Definition: fsl_i2c.h:140
static void I2C_SlaveClearStatusFlags(I2C_Type *base, uint32_t statusMask)
Clears the I2C status flag state.
Definition: fsl_i2c.h:450
void I2C_MasterSetBaudRate(I2C_Type *base, uint32_t baudRate_Bps, uint32_t srcClock_Hz)
Sets the I2C master transfer baudrate.
Definition: fsl_i2c.c:539
I2C slave transfer structure.
Definition: fsl_i2c.h:225
uint32_t baudRate_Bps
Definition: fsl_i2c.h:171
Definition: fsl_i2c.h:78
volatile size_t dataSize
Definition: fsl_i2c.h:211
size_t transferSize
Definition: fsl_i2c.h:218
uint32_t I2C_MasterGetStatusFlags(I2C_Type *base)
Gets the I2C status flags.
Definition: fsl_i2c.c:670
I2C slave user config.
Definition: fsl_i2c.h:176
Definition: fsl_i2c.h:57
Definition: fsl_i2c.h:111
void I2C_MasterTransferCreateHandle(I2C_Type *base, i2c_master_handle_t *handle, i2c_master_transfer_callback_t callback, void *userData)
Init the I2C handle which is used in transactional functions.
Definition: fsl_i2c.c:952
Definition: fsl_i2c.h:55
Definition: fsl_i2c.h:143
i2c_slave_address_mode_t
Addressing mode.
Definition: fsl_i2c.h:115
size_t transferredCount
Definition: fsl_i2c.h:232
void I2C_SlaveReadBlocking(I2C_Type *base, uint8_t *rxBuff, size_t rxSize)
Performs a polling receive transaction on the I2C bus.
Definition: fsl_i2c.c:1154
static uint32_t I2C_GetDataRegAddr(I2C_Type *base)
Get I2C tx/rx data register address This API is used to provide transfer address for I2C DMA transfer...
Definition: fsl_i2c.h:518
bool enableSlave
Definition: fsl_i2c.h:178
Definition: fsl_i2c.h:81
_i2c_master_transfer_flags
I2C transfer control flag.
Definition: fsl_i2c.h:122
uint8_t *volatile data
Definition: fsl_i2c.h:210
uint8_t slaveAddress
Definition: fsl_i2c.h:206
Definition: fsl_i2c.h:154
uint16_t upperAddress
Definition: fsl_i2c.h:186
void I2C_DisableInterrupts(I2C_Type *base, uint32_t mask)
Disable I2C interrupt requests.
Definition: fsl_i2c.c:517
_i2c_interrupt_enable
I2C feature interrupt source.
Definition: fsl_i2c.h:94
Definition: fsl_i2c.h:83
void I2C_SlaveTransferAbort(I2C_Type *base, i2c_slave_handle_t *handle)
Abort slave transfer.
Definition: fsl_i2c.c:1241
status_t I2C_MasterTransferGetCount(I2C_Type *base, i2c_master_handle_t *handle, size_t *count)
Get master transfer status during a interrupt non-blocking transfer.
Definition: fsl_i2c.c:1016
status_t I2C_MasterStop(I2C_Type *base)
Sends a STOP signal on the I2C bus.
Definition: fsl_i2c.c:649
Definition: fsl_i2c.h:89
bool enableGeneralCall
Definition: fsl_i2c.h:179
i2c_direction_t
Direction of master and slave transfers.
Definition: fsl_i2c.h:108
bool enableMaster
Definition: fsl_i2c.h:164
static void I2C_MasterClearStatusFlags(I2C_Type *base, uint32_t statusMask)
Clears the I2C status flag state.
Definition: fsl_i2c.h:415
Definition: fsl_i2c.h:80
static uint32_t I2C_SlaveGetStatusFlags(I2C_Type *base)
Gets the I2C status flags.
Definition: fsl_i2c.h:397
Definition: fsl_i2c.h:151
void I2C_EnableInterrupts(I2C_Type *base, uint32_t mask)
Enable I2C interrupt requests.
Definition: fsl_i2c.c:495
void I2C_SlaveInit(I2C_Type *base, const i2c_slave_config_t *slaveConfig)
Initialize the I2C peripheral, call this API to ungate the i2c clock and initializes the I2C with sla...
Definition: fsl_i2c.c:1073
Definition: fsl_i2c.h:149
Definition: fsl_i2c.h:127
Definition: fsl_i2c.h:118
_i2c_flags
I2C peripheral flags.
Definition: fsl_i2c.h:74
int32_t status_t
Type used for all status and error return values.
Definition: fsl_common.h:121
I2C master transfer structure.
Definition: fsl_i2c.h:203
void(* i2c_slave_transfer_callback_t)(I2C_Type *base, i2c_slave_transfer_t *xfer, void *userData)
I2C slave transfer callback typedef.
Definition: fsl_i2c.h:236
void I2C_SlaveDeinit(I2C_Type *base)
De-initialize the I2C slave peripheral, call thi API will gate the i2c clock, so the I2C slave module...
Definition: fsl_i2c.c:1115
uint8_t glitchFilterWidth
Definition: fsl_i2c.h:172
void I2C_SlaveTransferCreateHandle(I2C_Type *base, i2c_slave_handle_t *handle, i2c_slave_transfer_callback_t callback, void *userData)
Init the I2C handle which is used in transcational functions.
Definition: fsl_i2c.c:1182
Definition: fsl_i2c.h:142
status_t I2C_SlaveWriteBlocking(I2C_Type *base, const uint8_t *txBuff, size_t txSize)
Performs a polling send transaction on the I2C bus.
Definition: fsl_i2c.c:1149
void I2C_MasterTransferHandleIRQ(I2C_Type *base, void *i2cHandle)
Master interrupt handler.
Definition: fsl_i2c.c:1030
Definition: fsl_i2c.h:79
void I2C_SlaveGetDefaultConfig(i2c_slave_config_t *slaveConfig)
Set the I2C slave configuration structure to default values.
Definition: fsl_i2c.c:1124
Definition: fsl_i2c.h:59