Lines Matching refs:i2c
76 static void I2C_MasterHandler(mxc_i2c_regs_t *i2c);
77 static void I2C_SlaveHandler(mxc_i2c_regs_t *i2c);
79 static void I2C_Recover(mxc_i2c_regs_t *i2c);
82 static int I2C_Setspeed(mxc_i2c_regs_t * i2c, i2c_speed_t i2cspeed) in I2C_Setspeed() argument
91 sys_freq = SYS_I2C_GetFreq(i2c); in I2C_Setspeed()
116 i2c->hs_clk = (ticks_lo << MXC_F_I2C_HS_CLK_HS_CLK_LO_POS) | (ticks_hi << in I2C_Setspeed()
125 ticks = SYS_I2C_GetFreq(i2c) / i2cspeed; in I2C_Setspeed()
147 i2c->clk_lo = ticks_lo; in I2C_Setspeed()
148 i2c->clk_hi = ticks_hi; in I2C_Setspeed()
154 int I2C_Init(mxc_i2c_regs_t *i2c, i2c_speed_t i2cspeed, const sys_cfg_i2c_t* sys_cfg) in I2C_Init() argument
157 int idx = MXC_I2C_GET_IDX(i2c); in I2C_Init()
162 if ((err = SYS_I2C_Init(i2c, sys_cfg)) != E_NO_ERROR) { in I2C_Init()
167 i2c->tx_ctrl0 |= 0x20; in I2C_Init()
171 i2c->ctrl = 0; // clear configuration bits in I2C_Init()
172 i2c->ctrl = MXC_F_I2C_CTRL_I2C_EN; // Enable I2C in I2C_Init()
173 i2c->master_ctrl = 0; // clear master configuration bits in I2C_Init()
174 i2c->status = 0; // clear status bits in I2C_Init()
180 if ((i2c->ctrl & (MXC_F_I2C_CTRL_SCL | MXC_F_I2C_CTRL_SDA)) != in I2C_Init()
186 i2c->ctrl |= MXC_F_I2C_CTRL_SW_OUT_EN; in I2C_Init()
193 i2c->ctrl &= ~(MXC_F_I2C_CTRL_SCL_OUT); in I2C_Init()
195 if ((i2c->ctrl & MXC_F_I2C_CTRL_SCL) == MXC_F_I2C_CTRL_SCL) { in I2C_Init()
200 i2c->ctrl &= ~(MXC_F_I2C_CTRL_SDA_OUT); in I2C_Init()
202 if ((i2c->ctrl & MXC_F_I2C_CTRL_SDA) == MXC_F_I2C_CTRL_SDA) { in I2C_Init()
207 i2c->ctrl |= (MXC_F_I2C_CTRL_SDA_OUT); in I2C_Init()
209 if ((i2c->ctrl & MXC_F_I2C_CTRL_SDA) != MXC_F_I2C_CTRL_SDA) { in I2C_Init()
214 i2c->ctrl |= (MXC_F_I2C_CTRL_SCL_OUT); in I2C_Init()
216 if ((i2c->ctrl & MXC_F_I2C_CTRL_SCL) != MXC_F_I2C_CTRL_SCL) { in I2C_Init()
223 i2c->ctrl &= ~(MXC_F_I2C_CTRL_SDA_OUT); in I2C_Init()
226 i2c->ctrl |= (MXC_F_I2C_CTRL_SDA_OUT); in I2C_Init()
237 i2c->ctrl = 0; // clear configuration bits in I2C_Init()
238 i2c->ctrl = MXC_F_I2C_CTRL_I2C_EN; // Enable I2C in I2C_Init()
239 i2c->master_ctrl = 0; // clear master configuration bits in I2C_Init()
240 i2c->status= 0; // clear status bits in I2C_Init()
244 i2c->ctrl |= MXC_F_I2C_CTRL_HS_MODE; // Enable HS mode in I2C_Init()
248 i2c->int_en0 = 0; in I2C_Init()
249 i2c->int_en1 = 0; in I2C_Init()
250 i2c->int_fl0 = i2c->int_fl0; in I2C_Init()
251 i2c->int_fl1 = i2c->int_fl1; in I2C_Init()
253 i2c->timeout = 0x0; // set timeout in I2C_Init()
254 i2c->rx_ctrl0 |= MXC_F_I2C_RX_CTRL0_RX_FLUSH; // clear the RX FIFO in I2C_Init()
255 i2c->tx_ctrl0 |= MXC_F_I2C_TX_CTRL0_TX_FLUSH; // clear the TX FIFO in I2C_Init()
257 return I2C_Setspeed(i2c, i2cspeed); in I2C_Init()
260 int I2C_Shutdown(mxc_i2c_regs_t *i2c) in I2C_Shutdown() argument
265 i2c_num = MXC_I2C_GET_IDX(i2c); in I2C_Shutdown()
269 i2c->int_en0 = 0; in I2C_Shutdown()
270 i2c->int_en1 = 0; in I2C_Shutdown()
271 i2c->int_fl0 = i2c->int_fl0; in I2C_Shutdown()
272 i2c->int_fl1 = i2c->int_fl1; in I2C_Shutdown()
274 i2c->rx_ctrl0 |= MXC_F_I2C_RX_CTRL0_RX_FLUSH; // clear the RX FIFO in I2C_Shutdown()
275 i2c->tx_ctrl0 |= MXC_F_I2C_TX_CTRL0_TX_FLUSH; // clear the TX FIFO in I2C_Shutdown()
279 I2C_Recover(i2c); in I2C_Shutdown()
283 i2c->ctrl = 0; in I2C_Shutdown()
286 if ((err = SYS_I2C_Shutdown(i2c)) != E_NO_ERROR) { in I2C_Shutdown()
294 int I2C_MasterWrite(mxc_i2c_regs_t *i2c, uint8_t addr, const uint8_t* data, int len, int restart) in I2C_MasterWrite() argument
303 i2c->int_fl0 = MXC_F_I2C_INT_FL0_TX_LOCK_OUT; in I2C_MasterWrite()
304 i2c->int_fl0 = i2c->int_fl0; in I2C_MasterWrite()
307 i2c->ctrl |= MXC_F_I2C_CTRL_MST; in I2C_MasterWrite()
310 while (i2c->status & MXC_F_I2C_STATUS_TX_FULL) {} in I2C_MasterWrite()
311 i2c->fifo = addr & ~(0x1); in I2C_MasterWrite()
313 while ((len > 0) && !(i2c->status & MXC_F_I2C_STATUS_TX_FULL)) { in I2C_MasterWrite()
314 i2c->fifo = *data++; in I2C_MasterWrite()
318 i2c->master_ctrl |= MXC_F_I2C_MASTER_CTRL_START; in I2C_MasterWrite()
324 if (i2c->int_fl0 & I2C_ERROR) { in I2C_MasterWrite()
326 i2c->master_ctrl &= ~(MXC_F_I2C_MASTER_CTRL_RESTART); in I2C_MasterWrite()
327 i2c->master_ctrl |= MXC_F_I2C_MASTER_CTRL_STOP; in I2C_MasterWrite()
328 while (!(i2c->int_fl0 & (MXC_F_I2C_INT_FL0_STOP))) {} in I2C_MasterWrite()
333 if (!(i2c->status & MXC_F_I2C_STATUS_TX_FULL)) { in I2C_MasterWrite()
334 i2c->fifo = *data++; in I2C_MasterWrite()
340 i2c->master_ctrl |= MXC_F_I2C_MASTER_CTRL_RESTART; in I2C_MasterWrite()
342 i2c->master_ctrl |= MXC_F_I2C_MASTER_CTRL_STOP; in I2C_MasterWrite()
346 while (!(i2c->int_fl0 & (MXC_F_I2C_INT_FL0_DONE | I2C_ERROR ))) {} in I2C_MasterWrite()
348 i2c->int_fl0 = MXC_F_I2C_INT_FL0_DONE; in I2C_MasterWrite()
352 while (!(i2c->int_fl0 & (MXC_F_I2C_INT_FL0_STOP ))) {} in I2C_MasterWrite()
354 i2c->int_fl0 = MXC_F_I2C_INT_FL0_STOP; in I2C_MasterWrite()
358 if (i2c->int_fl0 & I2C_ERROR) { in I2C_MasterWrite()
366 int I2C_MasterRead(mxc_i2c_regs_t *i2c, uint8_t addr, uint8_t* data, int len, int restart) in I2C_MasterRead() argument
378 i2c->int_fl0 = MXC_F_I2C_INT_FL0_TX_LOCK_OUT; in I2C_MasterRead()
379 i2c->int_fl0 = i2c->int_fl0; in I2C_MasterRead()
382 if (!(i2c->ctrl & MXC_F_I2C_CTRL_I2C_EN)) { in I2C_MasterRead()
387 i2c->ctrl |= MXC_F_I2C_CTRL_MST; in I2C_MasterRead()
390 i2c->rx_ctrl1= len; in I2C_MasterRead()
392 i2c->master_ctrl |= MXC_F_I2C_MASTER_CTRL_START; in I2C_MasterRead()
395 while (i2c->status & MXC_F_I2C_STATUS_TX_FULL) {} in I2C_MasterRead()
396 i2c->fifo = (addr | 1); in I2C_MasterRead()
403 if (i2c->int_fl0 & I2C_ERROR) { in I2C_MasterRead()
405 i2c->master_ctrl |= MXC_F_I2C_MASTER_CTRL_STOP; in I2C_MasterRead()
409 if (!(i2c->status & MXC_F_I2C_STATUS_RX_EMPTY)) { in I2C_MasterRead()
410 *data++ = i2c->fifo; in I2C_MasterRead()
415 if (i2c->int_fl0 & I2C_ERROR) { in I2C_MasterRead()
417 i2c->master_ctrl |= MXC_F_I2C_MASTER_CTRL_STOP; in I2C_MasterRead()
422 i2c->master_ctrl |= MXC_F_I2C_MASTER_CTRL_RESTART; in I2C_MasterRead()
424 i2c->master_ctrl |= MXC_F_I2C_MASTER_CTRL_STOP; in I2C_MasterRead()
428 while (!(i2c->int_fl0 & (MXC_F_I2C_INT_FL0_DONE | I2C_ERROR ))) {} in I2C_MasterRead()
430 i2c->int_fl0 = MXC_F_I2C_INT_FL0_DONE; in I2C_MasterRead()
434 while (!(i2c->int_fl0 & (MXC_F_I2C_INT_FL0_STOP | I2C_ERROR))) { in I2C_MasterRead()
438 i2c->int_fl0 = MXC_F_I2C_INT_FL0_STOP; in I2C_MasterRead()
442 if (i2c->int_fl0 & I2C_ERROR) { in I2C_MasterRead()
450 int I2C_Slave(mxc_i2c_regs_t *i2c, uint8_t addr, const uint8_t* read_data, int read_len, in I2C_Slave() argument
456 i2c_num = MXC_I2C_GET_IDX(i2c); in I2C_Slave()
462 if (!(i2c->ctrl & MXC_F_I2C_CTRL_I2C_EN)) { in I2C_Slave()
474 i2c->ctrl &= ~MXC_F_I2C_CTRL_MST; in I2C_Slave()
477 i2c->int_fl0 = i2c->int_fl0; in I2C_Slave()
478 i2c->int_fl1 = i2c->int_fl1; in I2C_Slave()
481 i2c->slave_addr = (addr >> 1); in I2C_Slave()
484 while (!(i2c->int_fl0 & MXC_F_I2C_INT_FL0_ADDR_MATCH) && !(i2c->int_fl0 & I2C_ERROR)) { in I2C_Slave()
488 i2c->int_fl0 = MXC_F_I2C_INT_FL0_ADDR_MATCH; in I2C_Slave()
489 i2c->int_fl0 = MXC_F_I2C_INT_FL0_TX_LOCK_OUT; in I2C_Slave()
491 if (i2c->int_fl0 & I2C_ERROR) { in I2C_Slave()
493 i2c->tx_ctrl0 |= MXC_F_I2C_TX_CTRL0_TX_FLUSH; in I2C_Slave()
494 i2c->rx_ctrl0 |= MXC_F_I2C_RX_CTRL0_RX_FLUSH; in I2C_Slave()
501 if (i2c->ctrl & MXC_F_I2C_CTRL_READ) { in I2C_Slave()
512 if (i2c->int_fl0 & I2C_ERROR) { in I2C_Slave()
513 …*tx_num = states[i2c_num].num_wr - ((i2c->tx_ctrl1 & MXC_F_I2C_TX_CTRL1_TX_FIFO) >> MXC_F_I2C_TX_C… in I2C_Slave()
516 i2c->tx_ctrl0 |= MXC_F_I2C_TX_CTRL0_TX_FLUSH; in I2C_Slave()
523 if (i2c->int_fl0 & MXC_F_I2C_INT_FL0_TX_LOCK_OUT) { in I2C_Slave()
528 if (i2c->int_fl0 & MXC_F_I2C_INT_FL0_DONE) { in I2C_Slave()
532 if (!(i2c->status & MXC_F_I2C_STATUS_TX_FULL)) { in I2C_Slave()
533 i2c->fifo = *read_data++; in I2C_Slave()
540 while (!(i2c->int_fl0 & MXC_F_I2C_INT_FL0_DONE)) {} in I2C_Slave()
543 …*tx_num = states[i2c_num].num_wr - ((i2c->tx_ctrl1 & MXC_F_I2C_TX_CTRL1_TX_FIFO) >> MXC_F_I2C_TX_C… in I2C_Slave()
547 i2c->tx_ctrl0 |= MXC_F_I2C_TX_CTRL0_TX_FLUSH; in I2C_Slave()
561 if (i2c->int_fl0 & I2C_ERROR) { in I2C_Slave()
563 i2c->rx_ctrl0 |= MXC_F_I2C_RX_CTRL0_RX_FLUSH; in I2C_Slave()
570 if (i2c->int_fl0 & MXC_F_I2C_INT_FL0_DONE) { in I2C_Slave()
574 if (!(i2c->status & MXC_F_I2C_STATUS_RX_EMPTY)) { in I2C_Slave()
575 *write_data++ = i2c->fifo; in I2C_Slave()
582 while (!(i2c->int_fl0 & MXC_F_I2C_INT_FL0_DONE)) { in I2C_Slave()
587 i2c->rx_ctrl0 |= MXC_F_I2C_RX_CTRL0_RX_FLUSH; in I2C_Slave()
592 if (i2c->int_fl0 & I2C_ERROR) { in I2C_Slave()
595 i2c->tx_ctrl0 |= MXC_F_I2C_TX_CTRL0_TX_FLUSH; in I2C_Slave()
596 i2c->rx_ctrl0 |= MXC_F_I2C_RX_CTRL0_RX_FLUSH; in I2C_Slave()
606 int I2C_MasterAsync(mxc_i2c_regs_t *i2c, i2c_req_t *req) in I2C_MasterAsync() argument
610 i2c_num = MXC_I2C_GET_IDX(i2c); in I2C_MasterAsync()
631 if (!(i2c->ctrl & MXC_F_I2C_CTRL_I2C_EN)) { in I2C_MasterAsync()
643 i2c->ctrl |= MXC_F_I2C_CTRL_MST; in I2C_MasterAsync()
650 i2c->int_en0 = 0; in I2C_MasterAsync()
651 i2c->int_en1 = 0; in I2C_MasterAsync()
652 i2c->int_fl0 = i2c->int_fl0; in I2C_MasterAsync()
653 i2c->int_fl1 = i2c->int_fl1; in I2C_MasterAsync()
656 I2C_MasterHandler(i2c); in I2C_MasterAsync()
662 static void I2C_MasterHandler(mxc_i2c_regs_t *i2c) in I2C_MasterHandler() argument
669 i2c_num = MXC_I2C_GET_IDX(i2c); in I2C_MasterHandler()
673 int0 = i2c->int_fl0; in I2C_MasterHandler()
677 i2c->master_ctrl &= ~(MXC_F_I2C_MASTER_CTRL_RESTART); in I2C_MasterHandler()
678 i2c->master_ctrl |= MXC_F_I2C_MASTER_CTRL_STOP; in I2C_MasterHandler()
680 i2c->int_en0 = 0; in I2C_MasterHandler()
682 I2C_Recover(i2c); in I2C_MasterHandler()
694 while (rx_remain && !(i2c->status & MXC_F_I2C_STATUS_RX_EMPTY)) { in I2C_MasterHandler()
695 *(req->rx_data)++ = i2c->fifo; in I2C_MasterHandler()
699 i2c->int_en0 = 0; in I2C_MasterHandler()
701 I2C_Recover(i2c); in I2C_MasterHandler()
709 i2c->int_en0 = 0; in I2C_MasterHandler()
711 I2C_Recover(i2c); in I2C_MasterHandler()
721 while (rx_remain && !(i2c->status & MXC_F_I2C_STATUS_RX_EMPTY)) { in I2C_MasterHandler()
722 *(req->rx_data)++ = i2c->fifo; in I2C_MasterHandler()
732 i2c->int_fl0 = int0; in I2C_MasterHandler()
738 while (rx_remain && !(i2c->status & MXC_F_I2C_STATUS_RX_EMPTY)) { in I2C_MasterHandler()
739 *(req->rx_data)++ = i2c->fifo; in I2C_MasterHandler()
746 i2c->fifo = (req->addr | 1); in I2C_MasterHandler()
749 i2c->rx_ctrl1 = req->rx_len; in I2C_MasterHandler()
752 if (!(i2c->status & MXC_F_I2C_STATUS_BUS)) { in I2C_MasterHandler()
753 i2c->master_ctrl |= MXC_F_I2C_MASTER_CTRL_START; in I2C_MasterHandler()
758 i2c->master_ctrl |= MXC_F_I2C_MASTER_CTRL_RESTART; in I2C_MasterHandler()
760 i2c->master_ctrl |= MXC_F_I2C_MASTER_CTRL_STOP; in I2C_MasterHandler()
767 i2c->rx_ctrl1 = ((i2c->rx_ctrl1 & ~(MXC_F_I2C_RX_CTRL0_RX_THRESH)) | in I2C_MasterHandler()
772 i2c->rx_ctrl1 = ((i2c->rx_ctrl1 & ~(MXC_F_I2C_RX_CTRL0_RX_THRESH)) | in I2C_MasterHandler()
782 i2c->fifo = req->addr; in I2C_MasterHandler()
784 if (!(i2c->status & MXC_F_I2C_STATUS_BUS)) { in I2C_MasterHandler()
785 i2c->master_ctrl |= MXC_F_I2C_MASTER_CTRL_START; in I2C_MasterHandler()
790 while ((tx_remain > 0) && !(i2c->status & MXC_F_I2C_STATUS_TX_FULL)) { in I2C_MasterHandler()
791 i2c->fifo = *(req->tx_data)++; in I2C_MasterHandler()
798 …i2c->tx_ctrl1 = ((i2c->tx_ctrl1 & ~(MXC_F_I2C_TX_CTRL0_TX_THRESH)) | (1 << MXC_F_I2C_TX_CTRL0_TX_T… in I2C_MasterHandler()
803 i2c->master_ctrl |= MXC_F_I2C_MASTER_CTRL_RESTART; in I2C_MasterHandler()
805 i2c->master_ctrl |= MXC_F_I2C_MASTER_CTRL_STOP; in I2C_MasterHandler()
811 i2c->int_en0 = inten0; in I2C_MasterHandler()
815 int I2C_SlaveAsync(mxc_i2c_regs_t *i2c, i2c_req_t *req) in I2C_SlaveAsync() argument
819 i2c_num = MXC_I2C_GET_IDX(i2c); in I2C_SlaveAsync()
822 if (!(i2c->ctrl & MXC_F_I2C_CTRL_I2C_EN)) { in I2C_SlaveAsync()
834 i2c->slave_addr = (req->addr >> 1); in I2C_SlaveAsync()
841 i2c->int_en0 = 0; in I2C_SlaveAsync()
842 i2c->int_en1 = 0; in I2C_SlaveAsync()
843 i2c->int_fl0 = i2c->int_fl0; in I2C_SlaveAsync()
844 i2c->int_fl1 = i2c->int_fl1; in I2C_SlaveAsync()
845 i2c->int_en0 |= MXC_F_I2C_INT_EN0_ADDR_MATCH; in I2C_SlaveAsync()
850 static void I2C_SlaveHandler(mxc_i2c_regs_t *i2c) in I2C_SlaveHandler() argument
856 i2c_num = MXC_I2C_GET_IDX(i2c); in I2C_SlaveHandler()
859 if ( i2c->int_fl0 & MXC_F_I2C_INT_FL0_ADDR_MATCH ) { in I2C_SlaveHandler()
860 i2c->int_fl0 |=MXC_F_I2C_INT_EN0_STOP; in I2C_SlaveHandler()
864 int0 = i2c->int_fl0; in I2C_SlaveHandler()
866 i2c->int_en0 = 0; in I2C_SlaveHandler()
868 …req->tx_num = states[i2c_num].num_wr - ((i2c->tx_ctrl1 & MXC_F_I2C_TX_CTRL1_TX_FIFO) >> MXC_F_I2C_… in I2C_SlaveHandler()
872 i2c->tx_ctrl0 |= MXC_F_I2C_TX_CTRL0_TX_FLUSH; in I2C_SlaveHandler()
876 I2C_Recover(i2c); in I2C_SlaveHandler()
886 if ((i2c->int_fl0 & MXC_F_I2C_INT_FL0_TX_LOCK_OUT) && !(i2c->ctrl & MXC_F_I2C_CTRL_READ)) { in I2C_SlaveHandler()
888 i2c->int_en0 = 0; in I2C_SlaveHandler()
890 I2C_Recover(i2c); in I2C_SlaveHandler()
899 while (rx_remain && !(i2c->status & MXC_F_I2C_STATUS_RX_EMPTY)) { in I2C_SlaveHandler()
900 *(req->rx_data)++ = i2c->fifo; in I2C_SlaveHandler()
906 …req->tx_num = states[i2c_num].num_wr - ((i2c->tx_ctrl1 & MXC_F_I2C_TX_CTRL1_TX_FIFO) >> MXC_F_I2C_… in I2C_SlaveHandler()
910 i2c->tx_ctrl0 |= MXC_F_I2C_TX_CTRL0_TX_FLUSH; in I2C_SlaveHandler()
913 i2c->int_en0 = 0; in I2C_SlaveHandler()
915 if (i2c->int_fl0 & MXC_F_I2C_INT_FL0_STOP) { in I2C_SlaveHandler()
916 I2C_Recover(i2c); in I2C_SlaveHandler()
918 i2c->int_fl0 = i2c->int_fl0; in I2C_SlaveHandler()
919 i2c->int_fl1 = i2c->int_fl1; in I2C_SlaveHandler()
927 i2c->int_fl0 = int0; in I2C_SlaveHandler()
928 if (i2c->ctrl & MXC_F_I2C_CTRL_READ) { in I2C_SlaveHandler()
930 i2c->int_en0 = 0; in I2C_SlaveHandler()
932 I2C_Recover(i2c); in I2C_SlaveHandler()
937 while ((tx_remain > 0) && !(i2c->status & MXC_F_I2C_STATUS_TX_FULL)) { in I2C_SlaveHandler()
938 i2c->fifo = *(req->tx_data)++; in I2C_SlaveHandler()
945 …i2c->tx_ctrl0 = ((i2c->tx_ctrl0 & ~(MXC_F_I2C_TX_CTRL0_TX_THRESH)) | (1 << MXC_F_I2C_TX_CTRL0_TX_T… in I2C_SlaveHandler()
951 while (rx_remain && !(i2c->status & MXC_F_I2C_STATUS_RX_EMPTY)) { in I2C_SlaveHandler()
952 *(req->rx_data)++ = i2c->fifo; in I2C_SlaveHandler()
959 i2c->rx_ctrl0 = ((i2c->rx_ctrl0 & ~(MXC_F_I2C_RX_CTRL0_RX_THRESH)) | in I2C_SlaveHandler()
964 i2c->rx_ctrl0 = ((i2c->rx_ctrl0 & ~(MXC_F_I2C_RX_CTRL0_RX_THRESH)) | in I2C_SlaveHandler()
972 i2c->int_en0 = inten0; in I2C_SlaveHandler()
976 void I2C_Handler(mxc_i2c_regs_t *i2c) in I2C_Handler() argument
978 if (i2c->ctrl & MXC_F_I2C_CTRL_MST && i2c->int_fl0) { in I2C_Handler()
980 I2C_MasterHandler(i2c); in I2C_Handler()
981 } else if (i2c->int_fl0 || i2c->int_fl1) { in I2C_Handler()
983 I2C_SlaveHandler(i2c); in I2C_Handler()
988 void I2C_DrainRX(mxc_i2c_regs_t *i2c) in I2C_DrainRX() argument
990 i2c->rx_ctrl0 |= MXC_F_I2C_RX_CTRL0_RX_FLUSH; in I2C_DrainRX()
994 void I2C_DrainTX(mxc_i2c_regs_t *i2c) in I2C_DrainTX() argument
996 i2c->tx_ctrl0 |= MXC_F_I2C_TX_CTRL0_TX_FLUSH; in I2C_DrainTX()
1013 static void I2C_Recover(mxc_i2c_regs_t *i2c) in I2C_Recover() argument
1016 i2c->int_en0 = 0; in I2C_Recover()
1017 i2c->int_en1 = 0; in I2C_Recover()
1018 i2c->int_fl0 = i2c->int_fl0; in I2C_Recover()
1019 i2c->int_fl1 = i2c->int_fl1; in I2C_Recover()
1020 i2c->ctrl = 0; in I2C_Recover()
1021 i2c->ctrl = MXC_F_I2C_CTRL_I2C_EN; in I2C_Recover()
1028 mxc_i2c_regs_t *i2c; in I2C_AbortAsync() local
1034 i2c = MXC_I2C_GET_I2C(i2c_num); in I2C_AbortAsync()
1035 I2C_Recover(i2c); in I2C_AbortAsync()
1046 int I2C_SetTimeout(mxc_i2c_regs_t *i2c, int us){ in I2C_SetTimeout() argument
1052 i2c->timeout = timeout; in I2C_SetTimeout()
1057 void I2C_ClearTimeout (mxc_i2c_regs_t *i2c) in I2C_ClearTimeout() argument
1059 i2c->timeout = 0; in I2C_ClearTimeout()