Lines Matching refs:i2c
158 uint32_t I2C_BusFreqGet(I2C_TypeDef *i2c) in I2C_BusFreqGet() argument
165 n = (uint32_t)(i2cNSum[(i2c->CTRL & _I2C_CTRL_CLHR_MASK) >> _I2C_CTRL_CLHR_SHIFT]); in I2C_BusFreqGet()
167 return(hfperclk / ((n * (i2c->CLKDIV + 1)) + 4)); in I2C_BusFreqGet()
209 void I2C_BusFreqSet(I2C_TypeDef *i2c, in I2C_BusFreqSet() argument
234 n = (uint32_t)(i2cNSum[(i2c->CTRL & _I2C_CTRL_CLHR_MASK) >> _I2C_CTRL_CLHR_SHIFT]); in I2C_BusFreqSet()
245 if ((i2c->CTRL & I2C_CTRL_SLAVE) && !div) in I2C_BusFreqSet()
251 i2c->CLKDIV = div; in I2C_BusFreqSet()
268 void I2C_Enable(I2C_TypeDef *i2c, bool enable) in I2C_Enable() argument
270 EFM_ASSERT(I2C_REF_VALID(i2c)); in I2C_Enable()
272 BITBAND_Peripheral(&(i2c->CTRL), _I2C_CTRL_EN_SHIFT, (unsigned int)enable); in I2C_Enable()
286 void I2C_Init(I2C_TypeDef *i2c, const I2C_Init_TypeDef *init) in I2C_Init() argument
288 EFM_ASSERT(I2C_REF_VALID(i2c)); in I2C_Init()
290 i2c->IEN = 0; in I2C_Init()
291 i2c->IFC = _I2C_IFC_MASK; in I2C_Init()
293 I2C_BusFreqSet(i2c, init->refFreq, init->freq, init->clhr); in I2C_Init()
295 BITBAND_Peripheral(&(i2c->CTRL), in I2C_Init()
299 BITBAND_Peripheral(&(i2c->CTRL), in I2C_Init()
316 void I2C_Reset(I2C_TypeDef *i2c) in I2C_Reset() argument
318 i2c->CTRL = _I2C_CTRL_RESETVALUE; in I2C_Reset()
319 i2c->CLKDIV = _I2C_CLKDIV_RESETVALUE; in I2C_Reset()
320 i2c->SADDR = _I2C_SADDR_RESETVALUE; in I2C_Reset()
321 i2c->SADDRMASK = _I2C_SADDRMASK_RESETVALUE; in I2C_Reset()
322 i2c->IEN = _I2C_IEN_RESETVALUE; in I2C_Reset()
323 i2c->IFC = _I2C_IFC_MASK; in I2C_Reset()
364 I2C_TransferReturn_TypeDef I2C_Transfer(I2C_TypeDef *i2c) in I2C_Transfer() argument
371 EFM_ASSERT(I2C_REF_VALID(i2c)); in I2C_Transfer()
374 if (i2c == I2C0) in I2C_Transfer()
379 else if (i2c == I2C1) in I2C_Transfer()
392 pending = i2c->IF; in I2C_Transfer()
443 i2c->TXDATA = tmp; /* Data not transmitted until START sent */ in I2C_Transfer()
444 i2c->CMD = I2C_CMD_START; in I2C_Transfer()
453 i2c->IFC = I2C_IFC_NACK; in I2C_Transfer()
456 i2c->CMD = I2C_CMD_STOP; in I2C_Transfer()
460 i2c->IFC = I2C_IFC_ACK; in I2C_Transfer()
466 i2c->TXDATA = (uint32_t)(seq->addr) & 0xff; in I2C_Transfer()
490 i2c->IFC = I2C_IFC_NACK; in I2C_Transfer()
493 i2c->CMD = I2C_CMD_STOP; in I2C_Transfer()
497 i2c->IFC = I2C_IFC_ACK; in I2C_Transfer()
537 i2c->CMD = I2C_CMD_START; in I2C_Transfer()
538 i2c->TXDATA = tmp; in I2C_Transfer()
547 i2c->IFC = I2C_IFC_NACK; in I2C_Transfer()
550 i2c->CMD = I2C_CMD_STOP; in I2C_Transfer()
554 i2c->IFC = I2C_IFC_ACK; in I2C_Transfer()
591 i2c->CMD = I2C_CMD_STOP; in I2C_Transfer()
600 i2c->TXDATA = (uint32_t)(seq->buf[transfer->bufIndx].data[transfer->offset++]); in I2C_Transfer()
610 i2c->IFC = I2C_IFC_NACK; in I2C_Transfer()
613 i2c->CMD = I2C_CMD_STOP; in I2C_Transfer()
617 i2c->IFC = I2C_IFC_ACK; in I2C_Transfer()
632 data = (uint8_t)(i2c->RXDATA); in I2C_Transfer()
644 i2c->CMD = I2C_CMD_NACK; in I2C_Transfer()
645 i2c->CMD = I2C_CMD_STOP; in I2C_Transfer()
650 i2c->CMD = I2C_CMD_ACK; in I2C_Transfer()
661 i2c->IFC = I2C_IFC_MSTOP; in I2C_Transfer()
681 i2c->IEN = 0; in I2C_Transfer()
724 I2C_TransferReturn_TypeDef I2C_TransferInit(I2C_TypeDef *i2c, in I2C_TransferInit() argument
729 EFM_ASSERT(I2C_REF_VALID(i2c)); in I2C_TransferInit()
733 if (i2c == I2C0) in I2C_TransferInit()
738 else if (i2c == I2C1) in I2C_TransferInit()
750 if (i2c->STATE & I2C_STATE_BUSY) in I2C_TransferInit()
752 i2c->CMD = I2C_CMD_ABORT; in I2C_TransferInit()
774 i2c->CMD = I2C_CMD_CLEARPC | I2C_CMD_CLEARTX; in I2C_TransferInit()
775 if (i2c->IF & I2C_IF_RXDATAV) in I2C_TransferInit()
777 i2c->RXDATA; in I2C_TransferInit()
781 i2c->IFC = _I2C_IFC_MASK; in I2C_TransferInit()
786 i2c->IEN = I2C_IF_NACK | I2C_IF_ACK | I2C_IF_MSTOP | in I2C_TransferInit()
790 return(I2C_Transfer(i2c)); in I2C_TransferInit()