Lines Matching refs:hsmbus

214 static HAL_StatusTypeDef SMBUS_WaitOnFlagUntilTimeout(SMBUS_HandleTypeDef *hsmbus, uint32_t Flag, F…
215 static void SMBUS_ITError(SMBUS_HandleTypeDef *hsmbus);
216 static void SMBUS_Flush_DR(SMBUS_HandleTypeDef *hsmbus);
219 static HAL_StatusTypeDef SMBUS_MasterTransmit_TXE(SMBUS_HandleTypeDef *hsmbus);
220 static HAL_StatusTypeDef SMBUS_MasterTransmit_BTF(SMBUS_HandleTypeDef *hsmbus);
221 static HAL_StatusTypeDef SMBUS_MasterReceive_RXNE(SMBUS_HandleTypeDef *hsmbus);
222 static HAL_StatusTypeDef SMBUS_MasterReceive_BTF(SMBUS_HandleTypeDef *hsmbus);
223 static HAL_StatusTypeDef SMBUS_Master_SB(SMBUS_HandleTypeDef *hsmbus);
224 static HAL_StatusTypeDef SMBUS_Master_ADD10(SMBUS_HandleTypeDef *hsmbus);
225 static HAL_StatusTypeDef SMBUS_Master_ADDR(SMBUS_HandleTypeDef *hsmbus);
227 static HAL_StatusTypeDef SMBUS_SlaveTransmit_TXE(SMBUS_HandleTypeDef *hsmbus);
228 static HAL_StatusTypeDef SMBUS_SlaveTransmit_BTF(SMBUS_HandleTypeDef *hsmbus);
229 static HAL_StatusTypeDef SMBUS_SlaveReceive_RXNE(SMBUS_HandleTypeDef *hsmbus);
230 static HAL_StatusTypeDef SMBUS_SlaveReceive_BTF(SMBUS_HandleTypeDef *hsmbus);
231 static HAL_StatusTypeDef SMBUS_Slave_ADDR(SMBUS_HandleTypeDef *hsmbus);
232 static HAL_StatusTypeDef SMBUS_Slave_STOPF(SMBUS_HandleTypeDef *hsmbus);
233 static HAL_StatusTypeDef SMBUS_Slave_AF(SMBUS_HandleTypeDef *hsmbus);
282 HAL_StatusTypeDef HAL_SMBUS_Init(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_Init() argument
288 if (hsmbus == NULL) in HAL_SMBUS_Init()
294 assert_param(IS_SMBUS_ALL_INSTANCE(hsmbus->Instance)); in HAL_SMBUS_Init()
296 assert_param(IS_SMBUS_ANALOG_FILTER(hsmbus->Init.AnalogFilter)); in HAL_SMBUS_Init()
298 assert_param(IS_SMBUS_CLOCK_SPEED(hsmbus->Init.ClockSpeed)); in HAL_SMBUS_Init()
299 assert_param(IS_SMBUS_OWN_ADDRESS1(hsmbus->Init.OwnAddress1)); in HAL_SMBUS_Init()
300 assert_param(IS_SMBUS_ADDRESSING_MODE(hsmbus->Init.AddressingMode)); in HAL_SMBUS_Init()
301 assert_param(IS_SMBUS_DUAL_ADDRESS(hsmbus->Init.DualAddressMode)); in HAL_SMBUS_Init()
302 assert_param(IS_SMBUS_OWN_ADDRESS2(hsmbus->Init.OwnAddress2)); in HAL_SMBUS_Init()
303 assert_param(IS_SMBUS_GENERAL_CALL(hsmbus->Init.GeneralCallMode)); in HAL_SMBUS_Init()
304 assert_param(IS_SMBUS_NO_STRETCH(hsmbus->Init.NoStretchMode)); in HAL_SMBUS_Init()
305 assert_param(IS_SMBUS_PEC(hsmbus->Init.PacketErrorCheckMode)); in HAL_SMBUS_Init()
306 assert_param(IS_SMBUS_PERIPHERAL_MODE(hsmbus->Init.PeripheralMode)); in HAL_SMBUS_Init()
308 if (hsmbus->State == HAL_SMBUS_STATE_RESET) in HAL_SMBUS_Init()
311 hsmbus->Lock = HAL_UNLOCKED; in HAL_SMBUS_Init()
315hsmbus->MasterTxCpltCallback = HAL_SMBUS_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback… in HAL_SMBUS_Init()
316hsmbus->MasterRxCpltCallback = HAL_SMBUS_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback… in HAL_SMBUS_Init()
317hsmbus->SlaveTxCpltCallback = HAL_SMBUS_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback … in HAL_SMBUS_Init()
318hsmbus->SlaveRxCpltCallback = HAL_SMBUS_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback … in HAL_SMBUS_Init()
319hsmbus->ListenCpltCallback = HAL_SMBUS_ListenCpltCallback; /* Legacy weak ListenCpltCallback … in HAL_SMBUS_Init()
320hsmbus->ErrorCallback = HAL_SMBUS_ErrorCallback; /* Legacy weak ErrorCallback … in HAL_SMBUS_Init()
321hsmbus->AbortCpltCallback = HAL_SMBUS_AbortCpltCallback; /* Legacy weak AbortCpltCallback … in HAL_SMBUS_Init()
322hsmbus->AddrCallback = HAL_SMBUS_AddrCallback; /* Legacy weak AddrCallback … in HAL_SMBUS_Init()
324 if (hsmbus->MspInitCallback == NULL) in HAL_SMBUS_Init()
326 hsmbus->MspInitCallback = HAL_SMBUS_MspInit; /* Legacy weak MspInit */ in HAL_SMBUS_Init()
330 hsmbus->MspInitCallback(hsmbus); in HAL_SMBUS_Init()
333 HAL_SMBUS_MspInit(hsmbus); in HAL_SMBUS_Init()
337 hsmbus->State = HAL_SMBUS_STATE_BUSY; in HAL_SMBUS_Init()
340 __HAL_SMBUS_DISABLE(hsmbus); in HAL_SMBUS_Init()
350 MODIFY_REG(hsmbus->Instance->CR2, I2C_CR2_FREQ, freqrange); in HAL_SMBUS_Init()
354 MODIFY_REG(hsmbus->Instance->TRISE, I2C_TRISE_TRISE, SMBUS_RISE_TIME(freqrange)); in HAL_SMBUS_Init()
358 …MODIFY_REG(hsmbus->Instance->CCR, (I2C_CCR_FS | I2C_CCR_DUTY | I2C_CCR_CCR), SMBUS_SPEED_STANDARD(… in HAL_SMBUS_Init()
362hsmbus->Instance->CR1, (I2C_CR1_NOSTRETCH | I2C_CR1_ENGC | I2C_CR1_ENPEC | I2C_CR1_ENARP | I2C_CR1… in HAL_SMBUS_Init()
366 …ODIFY_REG(hsmbus->Instance->OAR1, (I2C_OAR1_ADDMODE | I2C_OAR1_ADD8_9 | I2C_OAR1_ADD1_7 | I2C_OAR1… in HAL_SMBUS_Init()
370 …MODIFY_REG(hsmbus->Instance->OAR2, (I2C_OAR2_ENDUAL | I2C_OAR2_ADD2), (hsmbus->Init.DualAddressMod… in HAL_SMBUS_Init()
374 SET_BIT(hsmbus->Instance->FLTR, hsmbus->Init.AnalogFilter); in HAL_SMBUS_Init()
378 __HAL_SMBUS_ENABLE(hsmbus); in HAL_SMBUS_Init()
380 hsmbus->ErrorCode = HAL_SMBUS_ERROR_NONE; in HAL_SMBUS_Init()
381 hsmbus->State = HAL_SMBUS_STATE_READY; in HAL_SMBUS_Init()
382 hsmbus->PreviousState = SMBUS_STATE_NONE; in HAL_SMBUS_Init()
383 hsmbus->Mode = HAL_SMBUS_MODE_NONE; in HAL_SMBUS_Init()
384 hsmbus->XferPEC = 0x00; in HAL_SMBUS_Init()
395 HAL_StatusTypeDef HAL_SMBUS_DeInit(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_DeInit() argument
398 if (hsmbus == NULL) in HAL_SMBUS_DeInit()
404 assert_param(IS_SMBUS_ALL_INSTANCE(hsmbus->Instance)); in HAL_SMBUS_DeInit()
406 hsmbus->State = HAL_SMBUS_STATE_BUSY; in HAL_SMBUS_DeInit()
409 __HAL_SMBUS_DISABLE(hsmbus); in HAL_SMBUS_DeInit()
412 if (hsmbus->MspDeInitCallback == NULL) in HAL_SMBUS_DeInit()
414 hsmbus->MspDeInitCallback = HAL_SMBUS_MspDeInit; /* Legacy weak MspDeInit */ in HAL_SMBUS_DeInit()
418 hsmbus->MspDeInitCallback(hsmbus); in HAL_SMBUS_DeInit()
421 HAL_SMBUS_MspDeInit(hsmbus); in HAL_SMBUS_DeInit()
424 hsmbus->ErrorCode = HAL_SMBUS_ERROR_NONE; in HAL_SMBUS_DeInit()
425 hsmbus->State = HAL_SMBUS_STATE_RESET; in HAL_SMBUS_DeInit()
426 hsmbus->PreviousState = SMBUS_STATE_NONE; in HAL_SMBUS_DeInit()
427 hsmbus->Mode = HAL_SMBUS_MODE_NONE; in HAL_SMBUS_DeInit()
430 __HAL_UNLOCK(hsmbus); in HAL_SMBUS_DeInit()
441 __weak void HAL_SMBUS_MspInit(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_MspInit() argument
444 UNUSED(hsmbus); in HAL_SMBUS_MspInit()
456 __weak void HAL_SMBUS_MspDeInit(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_MspDeInit() argument
459 UNUSED(hsmbus); in HAL_SMBUS_MspDeInit()
473 HAL_StatusTypeDef HAL_SMBUS_ConfigAnalogFilter(SMBUS_HandleTypeDef *hsmbus, uint32_t AnalogFilter) in HAL_SMBUS_ConfigAnalogFilter() argument
476 assert_param(IS_SMBUS_ALL_INSTANCE(hsmbus->Instance)); in HAL_SMBUS_ConfigAnalogFilter()
479 if (hsmbus->State == HAL_SMBUS_STATE_READY) in HAL_SMBUS_ConfigAnalogFilter()
481 hsmbus->State = HAL_SMBUS_STATE_BUSY; in HAL_SMBUS_ConfigAnalogFilter()
484 __HAL_SMBUS_DISABLE(hsmbus); in HAL_SMBUS_ConfigAnalogFilter()
487 hsmbus->Instance->FLTR &= ~(I2C_FLTR_ANOFF); in HAL_SMBUS_ConfigAnalogFilter()
490 hsmbus->Instance->FLTR |= AnalogFilter; in HAL_SMBUS_ConfigAnalogFilter()
492 __HAL_SMBUS_ENABLE(hsmbus); in HAL_SMBUS_ConfigAnalogFilter()
494 hsmbus->State = HAL_SMBUS_STATE_READY; in HAL_SMBUS_ConfigAnalogFilter()
511 HAL_StatusTypeDef HAL_SMBUS_ConfigDigitalFilter(SMBUS_HandleTypeDef *hsmbus, uint32_t DigitalFilter) in HAL_SMBUS_ConfigDigitalFilter() argument
516 assert_param(IS_SMBUS_ALL_INSTANCE(hsmbus->Instance)); in HAL_SMBUS_ConfigDigitalFilter()
519 if (hsmbus->State == HAL_SMBUS_STATE_READY) in HAL_SMBUS_ConfigDigitalFilter()
521 hsmbus->State = HAL_SMBUS_STATE_BUSY; in HAL_SMBUS_ConfigDigitalFilter()
524 __HAL_SMBUS_DISABLE(hsmbus); in HAL_SMBUS_ConfigDigitalFilter()
527 tmpreg = hsmbus->Instance->FLTR; in HAL_SMBUS_ConfigDigitalFilter()
536 hsmbus->Instance->FLTR = tmpreg; in HAL_SMBUS_ConfigDigitalFilter()
538 __HAL_SMBUS_ENABLE(hsmbus); in HAL_SMBUS_ConfigDigitalFilter()
540 hsmbus->State = HAL_SMBUS_STATE_READY; in HAL_SMBUS_ConfigDigitalFilter()
570 HAL_StatusTypeDef HAL_SMBUS_RegisterCallback(SMBUS_HandleTypeDef *hsmbus, HAL_SMBUS_CallbackIDTypeD… in HAL_SMBUS_RegisterCallback() argument
577 hsmbus->ErrorCode |= HAL_SMBUS_ERROR_INVALID_CALLBACK; in HAL_SMBUS_RegisterCallback()
582 __HAL_LOCK(hsmbus); in HAL_SMBUS_RegisterCallback()
584 if (HAL_SMBUS_STATE_READY == hsmbus->State) in HAL_SMBUS_RegisterCallback()
589 hsmbus->MasterTxCpltCallback = pCallback; in HAL_SMBUS_RegisterCallback()
593 hsmbus->MasterRxCpltCallback = pCallback; in HAL_SMBUS_RegisterCallback()
597 hsmbus->SlaveTxCpltCallback = pCallback; in HAL_SMBUS_RegisterCallback()
601 hsmbus->SlaveRxCpltCallback = pCallback; in HAL_SMBUS_RegisterCallback()
605 hsmbus->ListenCpltCallback = pCallback; in HAL_SMBUS_RegisterCallback()
609 hsmbus->ErrorCallback = pCallback; in HAL_SMBUS_RegisterCallback()
613 hsmbus->AbortCpltCallback = pCallback; in HAL_SMBUS_RegisterCallback()
617 hsmbus->MspInitCallback = pCallback; in HAL_SMBUS_RegisterCallback()
621 hsmbus->MspDeInitCallback = pCallback; in HAL_SMBUS_RegisterCallback()
626 hsmbus->ErrorCode |= HAL_SMBUS_ERROR_INVALID_CALLBACK; in HAL_SMBUS_RegisterCallback()
633 else if (HAL_SMBUS_STATE_RESET == hsmbus->State) in HAL_SMBUS_RegisterCallback()
638 hsmbus->MspInitCallback = pCallback; in HAL_SMBUS_RegisterCallback()
642 hsmbus->MspDeInitCallback = pCallback; in HAL_SMBUS_RegisterCallback()
647 hsmbus->ErrorCode |= HAL_SMBUS_ERROR_INVALID_CALLBACK; in HAL_SMBUS_RegisterCallback()
657 hsmbus->ErrorCode |= HAL_SMBUS_ERROR_INVALID_CALLBACK; in HAL_SMBUS_RegisterCallback()
664 __HAL_UNLOCK(hsmbus); in HAL_SMBUS_RegisterCallback()
687 HAL_StatusTypeDef HAL_SMBUS_UnRegisterCallback(SMBUS_HandleTypeDef *hsmbus, HAL_SMBUS_CallbackIDTyp… in HAL_SMBUS_UnRegisterCallback() argument
692 __HAL_LOCK(hsmbus); in HAL_SMBUS_UnRegisterCallback()
694 if (HAL_SMBUS_STATE_READY == hsmbus->State) in HAL_SMBUS_UnRegisterCallback()
699hsmbus->MasterTxCpltCallback = HAL_SMBUS_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback… in HAL_SMBUS_UnRegisterCallback()
703hsmbus->MasterRxCpltCallback = HAL_SMBUS_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback… in HAL_SMBUS_UnRegisterCallback()
707hsmbus->SlaveTxCpltCallback = HAL_SMBUS_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback … in HAL_SMBUS_UnRegisterCallback()
711hsmbus->SlaveRxCpltCallback = HAL_SMBUS_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback … in HAL_SMBUS_UnRegisterCallback()
715hsmbus->ListenCpltCallback = HAL_SMBUS_ListenCpltCallback; /* Legacy weak ListenCpltCallback … in HAL_SMBUS_UnRegisterCallback()
719hsmbus->ErrorCallback = HAL_SMBUS_ErrorCallback; /* Legacy weak ErrorCallback … in HAL_SMBUS_UnRegisterCallback()
723hsmbus->AbortCpltCallback = HAL_SMBUS_AbortCpltCallback; /* Legacy weak AbortCpltCallback … in HAL_SMBUS_UnRegisterCallback()
727hsmbus->MspInitCallback = HAL_SMBUS_MspInit; /* Legacy weak MspInit … in HAL_SMBUS_UnRegisterCallback()
731hsmbus->MspDeInitCallback = HAL_SMBUS_MspDeInit; /* Legacy weak MspDeInit … in HAL_SMBUS_UnRegisterCallback()
736 hsmbus->ErrorCode |= HAL_SMBUS_ERROR_INVALID_CALLBACK; in HAL_SMBUS_UnRegisterCallback()
743 else if (HAL_SMBUS_STATE_RESET == hsmbus->State) in HAL_SMBUS_UnRegisterCallback()
748hsmbus->MspInitCallback = HAL_SMBUS_MspInit; /* Legacy weak MspInit … in HAL_SMBUS_UnRegisterCallback()
752hsmbus->MspDeInitCallback = HAL_SMBUS_MspDeInit; /* Legacy weak MspDeInit … in HAL_SMBUS_UnRegisterCallback()
757 hsmbus->ErrorCode |= HAL_SMBUS_ERROR_INVALID_CALLBACK; in HAL_SMBUS_UnRegisterCallback()
767 hsmbus->ErrorCode |= HAL_SMBUS_ERROR_INVALID_CALLBACK; in HAL_SMBUS_UnRegisterCallback()
774 __HAL_UNLOCK(hsmbus); in HAL_SMBUS_UnRegisterCallback()
786 HAL_StatusTypeDef HAL_SMBUS_RegisterAddrCallback(SMBUS_HandleTypeDef *hsmbus, pSMBUS_AddrCallbackTy… in HAL_SMBUS_RegisterAddrCallback() argument
795 __HAL_LOCK(hsmbus); in HAL_SMBUS_RegisterAddrCallback()
797 if (HAL_SMBUS_STATE_READY == hsmbus->State) in HAL_SMBUS_RegisterAddrCallback()
799 hsmbus->AddrCallback = pCallback; in HAL_SMBUS_RegisterAddrCallback()
804 hsmbus->ErrorCode |= HAL_SMBUS_ERROR_INVALID_CALLBACK; in HAL_SMBUS_RegisterAddrCallback()
811 __HAL_UNLOCK(hsmbus); in HAL_SMBUS_RegisterAddrCallback()
822 HAL_StatusTypeDef HAL_SMBUS_UnRegisterAddrCallback(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_UnRegisterAddrCallback() argument
827 __HAL_LOCK(hsmbus); in HAL_SMBUS_UnRegisterAddrCallback()
829 if (HAL_SMBUS_STATE_READY == hsmbus->State) in HAL_SMBUS_UnRegisterAddrCallback()
831 hsmbus->AddrCallback = HAL_SMBUS_AddrCallback; /* Legacy weak AddrCallback */ in HAL_SMBUS_UnRegisterAddrCallback()
836 hsmbus->ErrorCode |= HAL_SMBUS_ERROR_INVALID_CALLBACK; in HAL_SMBUS_UnRegisterAddrCallback()
843 __HAL_UNLOCK(hsmbus); in HAL_SMBUS_UnRegisterAddrCallback()
854 static void SMBUS_Flush_DR(SMBUS_HandleTypeDef *hsmbus) in SMBUS_Flush_DR() argument
857 hsmbus->Instance->DR = 0x00U; in SMBUS_Flush_DR()
918 HAL_StatusTypeDef HAL_SMBUS_Master_Transmit_IT(SMBUS_HandleTypeDef *hsmbus, uint16_t DevAddress, ui… in HAL_SMBUS_Master_Transmit_IT() argument
925 if (hsmbus->State == HAL_SMBUS_STATE_READY) in HAL_SMBUS_Master_Transmit_IT()
936 hsmbus->PreviousState = SMBUS_STATE_NONE; in HAL_SMBUS_Master_Transmit_IT()
937 hsmbus->State = HAL_SMBUS_STATE_READY; in HAL_SMBUS_Master_Transmit_IT()
940 __HAL_UNLOCK(hsmbus); in HAL_SMBUS_Master_Transmit_IT()
945 while (__HAL_SMBUS_GET_FLAG(hsmbus, SMBUS_FLAG_BUSY) != RESET); in HAL_SMBUS_Master_Transmit_IT()
949 __HAL_LOCK(hsmbus); in HAL_SMBUS_Master_Transmit_IT()
952 if ((hsmbus->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_SMBUS_Master_Transmit_IT()
955 __HAL_SMBUS_ENABLE(hsmbus); in HAL_SMBUS_Master_Transmit_IT()
959 CLEAR_BIT(hsmbus->Instance->CR1, I2C_CR1_POS); in HAL_SMBUS_Master_Transmit_IT()
961 hsmbus->State = HAL_SMBUS_STATE_BUSY_TX; in HAL_SMBUS_Master_Transmit_IT()
962 hsmbus->ErrorCode = HAL_SMBUS_ERROR_NONE; in HAL_SMBUS_Master_Transmit_IT()
963 hsmbus->Mode = HAL_SMBUS_MODE_MASTER; in HAL_SMBUS_Master_Transmit_IT()
966 hsmbus->pBuffPtr = pData; in HAL_SMBUS_Master_Transmit_IT()
967 hsmbus->XferCount = Size; in HAL_SMBUS_Master_Transmit_IT()
968 hsmbus->XferOptions = XferOptions; in HAL_SMBUS_Master_Transmit_IT()
969 hsmbus->XferSize = hsmbus->XferCount; in HAL_SMBUS_Master_Transmit_IT()
970 hsmbus->Devaddress = DevAddress; in HAL_SMBUS_Master_Transmit_IT()
973 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_START); in HAL_SMBUS_Master_Transmit_IT()
976 __HAL_UNLOCK(hsmbus); in HAL_SMBUS_Master_Transmit_IT()
983 __HAL_SMBUS_ENABLE_IT(hsmbus, SMBUS_IT_EVT | SMBUS_IT_BUF | SMBUS_IT_ERR); in HAL_SMBUS_Master_Transmit_IT()
1003 HAL_StatusTypeDef HAL_SMBUS_Master_Receive_IT(SMBUS_HandleTypeDef *hsmbus, uint16_t DevAddress, uin… in HAL_SMBUS_Master_Receive_IT() argument
1010 if (hsmbus->State == HAL_SMBUS_STATE_READY) in HAL_SMBUS_Master_Receive_IT()
1021 hsmbus->PreviousState = SMBUS_STATE_NONE; in HAL_SMBUS_Master_Receive_IT()
1022 hsmbus->State = HAL_SMBUS_STATE_READY; in HAL_SMBUS_Master_Receive_IT()
1025 __HAL_UNLOCK(hsmbus); in HAL_SMBUS_Master_Receive_IT()
1030 while (__HAL_SMBUS_GET_FLAG(hsmbus, SMBUS_FLAG_BUSY) != RESET); in HAL_SMBUS_Master_Receive_IT()
1034 __HAL_LOCK(hsmbus); in HAL_SMBUS_Master_Receive_IT()
1037 if ((hsmbus->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_SMBUS_Master_Receive_IT()
1040 __HAL_SMBUS_ENABLE(hsmbus); in HAL_SMBUS_Master_Receive_IT()
1044 CLEAR_BIT(hsmbus->Instance->CR1, I2C_CR1_POS); in HAL_SMBUS_Master_Receive_IT()
1046 hsmbus->State = HAL_SMBUS_STATE_BUSY_RX; in HAL_SMBUS_Master_Receive_IT()
1047 hsmbus->ErrorCode = HAL_SMBUS_ERROR_NONE; in HAL_SMBUS_Master_Receive_IT()
1048 hsmbus->Mode = HAL_SMBUS_MODE_MASTER; in HAL_SMBUS_Master_Receive_IT()
1051 hsmbus->pBuffPtr = pData; in HAL_SMBUS_Master_Receive_IT()
1052 hsmbus->XferCount = Size; in HAL_SMBUS_Master_Receive_IT()
1053 hsmbus->XferOptions = XferOptions; in HAL_SMBUS_Master_Receive_IT()
1054 hsmbus->XferSize = hsmbus->XferCount; in HAL_SMBUS_Master_Receive_IT()
1055 hsmbus->Devaddress = DevAddress; in HAL_SMBUS_Master_Receive_IT()
1057 …if ((hsmbus->PreviousState == SMBUS_STATE_MASTER_BUSY_TX) || (hsmbus->PreviousState == SMBUS_STATE… in HAL_SMBUS_Master_Receive_IT()
1063 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_ACK); in HAL_SMBUS_Master_Receive_IT()
1066 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_START); in HAL_SMBUS_Master_Receive_IT()
1071 if (hsmbus->PreviousState == SMBUS_STATE_NONE) in HAL_SMBUS_Master_Receive_IT()
1074 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_ACK); in HAL_SMBUS_Master_Receive_IT()
1077 if (hsmbus->PreviousState == SMBUS_STATE_MASTER_BUSY_TX) in HAL_SMBUS_Master_Receive_IT()
1080 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_ACK); in HAL_SMBUS_Master_Receive_IT()
1083 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_START); in HAL_SMBUS_Master_Receive_IT()
1091 __HAL_UNLOCK(hsmbus); in HAL_SMBUS_Master_Receive_IT()
1098 __HAL_SMBUS_ENABLE_IT(hsmbus, SMBUS_IT_EVT | SMBUS_IT_BUF | SMBUS_IT_ERR); in HAL_SMBUS_Master_Receive_IT()
1117 HAL_StatusTypeDef HAL_SMBUS_Master_Abort_IT(SMBUS_HandleTypeDef *hsmbus, uint16_t DevAddress) in HAL_SMBUS_Master_Abort_IT() argument
1121 if (hsmbus->Init.PeripheralMode == SMBUS_PERIPHERAL_MODE_SMBUS_HOST) in HAL_SMBUS_Master_Abort_IT()
1124 __HAL_LOCK(hsmbus); in HAL_SMBUS_Master_Abort_IT()
1126 hsmbus->ErrorCode = HAL_SMBUS_ERROR_NONE; in HAL_SMBUS_Master_Abort_IT()
1128 hsmbus->PreviousState = SMBUS_STATE_NONE; in HAL_SMBUS_Master_Abort_IT()
1129 hsmbus->State = HAL_SMBUS_STATE_ABORT; in HAL_SMBUS_Master_Abort_IT()
1133 CLEAR_BIT(hsmbus->Instance->CR1, I2C_CR1_ACK); in HAL_SMBUS_Master_Abort_IT()
1136 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_STOP); in HAL_SMBUS_Master_Abort_IT()
1138 hsmbus->XferCount = 0U; in HAL_SMBUS_Master_Abort_IT()
1141 __HAL_SMBUS_DISABLE_IT(hsmbus, SMBUS_IT_EVT | SMBUS_IT_BUF | SMBUS_IT_ERR); in HAL_SMBUS_Master_Abort_IT()
1144 __HAL_UNLOCK(hsmbus); in HAL_SMBUS_Master_Abort_IT()
1147 SMBUS_ITError(hsmbus); in HAL_SMBUS_Master_Abort_IT()
1167 HAL_StatusTypeDef HAL_SMBUS_Slave_Transmit_IT(SMBUS_HandleTypeDef *hsmbus, uint8_t *pData, uint16_t… in HAL_SMBUS_Slave_Transmit_IT() argument
1172 if (hsmbus->State == HAL_SMBUS_STATE_LISTEN) in HAL_SMBUS_Slave_Transmit_IT()
1180 __HAL_LOCK(hsmbus); in HAL_SMBUS_Slave_Transmit_IT()
1183 if ((hsmbus->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_SMBUS_Slave_Transmit_IT()
1186 __HAL_SMBUS_ENABLE(hsmbus); in HAL_SMBUS_Slave_Transmit_IT()
1190 CLEAR_BIT(hsmbus->Instance->CR1, I2C_CR1_POS); in HAL_SMBUS_Slave_Transmit_IT()
1192 hsmbus->State = HAL_SMBUS_STATE_BUSY_TX_LISTEN; in HAL_SMBUS_Slave_Transmit_IT()
1193 hsmbus->ErrorCode = HAL_SMBUS_ERROR_NONE; in HAL_SMBUS_Slave_Transmit_IT()
1194 hsmbus->Mode = HAL_SMBUS_MODE_SLAVE; in HAL_SMBUS_Slave_Transmit_IT()
1197 hsmbus->pBuffPtr = pData; in HAL_SMBUS_Slave_Transmit_IT()
1198 hsmbus->XferCount = Size; in HAL_SMBUS_Slave_Transmit_IT()
1199 hsmbus->XferOptions = XferOptions; in HAL_SMBUS_Slave_Transmit_IT()
1200 hsmbus->XferSize = hsmbus->XferCount; in HAL_SMBUS_Slave_Transmit_IT()
1204 __HAL_SMBUS_CLEAR_ADDRFLAG(hsmbus); in HAL_SMBUS_Slave_Transmit_IT()
1207 __HAL_UNLOCK(hsmbus); in HAL_SMBUS_Slave_Transmit_IT()
1214 __HAL_SMBUS_ENABLE_IT(hsmbus, SMBUS_IT_EVT | SMBUS_IT_BUF | SMBUS_IT_ERR); in HAL_SMBUS_Slave_Transmit_IT()
1233 HAL_StatusTypeDef HAL_SMBUS_Slave_Receive_IT(SMBUS_HandleTypeDef *hsmbus, uint8_t *pData, uint16_t … in HAL_SMBUS_Slave_Receive_IT() argument
1238 if (hsmbus->State == HAL_SMBUS_STATE_LISTEN) in HAL_SMBUS_Slave_Receive_IT()
1246 __HAL_LOCK(hsmbus); in HAL_SMBUS_Slave_Receive_IT()
1249 if ((hsmbus->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_SMBUS_Slave_Receive_IT()
1252 __HAL_SMBUS_ENABLE(hsmbus); in HAL_SMBUS_Slave_Receive_IT()
1256 CLEAR_BIT(hsmbus->Instance->CR1, I2C_CR1_POS); in HAL_SMBUS_Slave_Receive_IT()
1258 hsmbus->State = HAL_SMBUS_STATE_BUSY_RX_LISTEN; in HAL_SMBUS_Slave_Receive_IT()
1259 hsmbus->ErrorCode = HAL_SMBUS_ERROR_NONE; in HAL_SMBUS_Slave_Receive_IT()
1260 hsmbus->Mode = HAL_SMBUS_MODE_SLAVE; in HAL_SMBUS_Slave_Receive_IT()
1265 hsmbus->pBuffPtr = pData; in HAL_SMBUS_Slave_Receive_IT()
1266 hsmbus->XferCount = Size; in HAL_SMBUS_Slave_Receive_IT()
1267 hsmbus->XferOptions = XferOptions; in HAL_SMBUS_Slave_Receive_IT()
1268 hsmbus->XferSize = hsmbus->XferCount; in HAL_SMBUS_Slave_Receive_IT()
1270 __HAL_SMBUS_CLEAR_ADDRFLAG(hsmbus); in HAL_SMBUS_Slave_Receive_IT()
1273 __HAL_UNLOCK(hsmbus); in HAL_SMBUS_Slave_Receive_IT()
1280 __HAL_SMBUS_ENABLE_IT(hsmbus, SMBUS_IT_EVT | SMBUS_IT_BUF | SMBUS_IT_ERR); in HAL_SMBUS_Slave_Receive_IT()
1297 HAL_StatusTypeDef HAL_SMBUS_EnableListen_IT(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_EnableListen_IT() argument
1299 if (hsmbus->State == HAL_SMBUS_STATE_READY) in HAL_SMBUS_EnableListen_IT()
1301 hsmbus->State = HAL_SMBUS_STATE_LISTEN; in HAL_SMBUS_EnableListen_IT()
1304 if ((hsmbus->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_SMBUS_EnableListen_IT()
1307 __HAL_SMBUS_ENABLE(hsmbus); in HAL_SMBUS_EnableListen_IT()
1311 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_ACK); in HAL_SMBUS_EnableListen_IT()
1314 __HAL_SMBUS_ENABLE_IT(hsmbus, SMBUS_IT_EVT | SMBUS_IT_ERR); in HAL_SMBUS_EnableListen_IT()
1330 HAL_StatusTypeDef HAL_SMBUS_DisableListen_IT(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_DisableListen_IT() argument
1336 if (hsmbus->State == HAL_SMBUS_STATE_LISTEN) in HAL_SMBUS_DisableListen_IT()
1338 tmp = (uint32_t)(hsmbus->State) & SMBUS_STATE_MSK; in HAL_SMBUS_DisableListen_IT()
1339 hsmbus->PreviousState = tmp | (uint32_t)(hsmbus->Mode); in HAL_SMBUS_DisableListen_IT()
1340 hsmbus->State = HAL_SMBUS_STATE_READY; in HAL_SMBUS_DisableListen_IT()
1341 hsmbus->Mode = HAL_SMBUS_MODE_NONE; in HAL_SMBUS_DisableListen_IT()
1344 CLEAR_BIT(hsmbus->Instance->CR1, I2C_CR1_ACK); in HAL_SMBUS_DisableListen_IT()
1347 __HAL_SMBUS_DISABLE_IT(hsmbus, SMBUS_IT_EVT | SMBUS_IT_ERR); in HAL_SMBUS_DisableListen_IT()
1363 HAL_StatusTypeDef HAL_SMBUS_EnableAlert_IT(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_EnableAlert_IT() argument
1366 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_ALERT); in HAL_SMBUS_EnableAlert_IT()
1369 __HAL_SMBUS_CLEAR_FLAG(hsmbus, SMBUS_FLAG_SMBALERT); in HAL_SMBUS_EnableAlert_IT()
1372 __HAL_SMBUS_ENABLE_IT(hsmbus, SMBUS_IT_ERR); in HAL_SMBUS_EnableAlert_IT()
1382 HAL_StatusTypeDef HAL_SMBUS_DisableAlert_IT(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_DisableAlert_IT() argument
1385 CLEAR_BIT(hsmbus->Instance->CR1, I2C_CR1_ALERT); in HAL_SMBUS_DisableAlert_IT()
1388 __HAL_SMBUS_DISABLE_IT(hsmbus, SMBUS_IT_ERR); in HAL_SMBUS_DisableAlert_IT()
1404 HAL_StatusTypeDef HAL_SMBUS_IsDeviceReady(SMBUS_HandleTypeDef *hsmbus, uint16_t DevAddress, uint32_… in HAL_SMBUS_IsDeviceReady() argument
1411 if (hsmbus->State == HAL_SMBUS_STATE_READY) in HAL_SMBUS_IsDeviceReady()
1414 …if (SMBUS_WaitOnFlagUntilTimeout(hsmbus, SMBUS_FLAG_BUSY, SET, SMBUS_TIMEOUT_BUSY_FLAG, tickstart)… in HAL_SMBUS_IsDeviceReady()
1420 __HAL_LOCK(hsmbus); in HAL_SMBUS_IsDeviceReady()
1423 if ((hsmbus->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_SMBUS_IsDeviceReady()
1426 __HAL_SMBUS_ENABLE(hsmbus); in HAL_SMBUS_IsDeviceReady()
1430 CLEAR_BIT(hsmbus->Instance->CR1, I2C_CR1_POS); in HAL_SMBUS_IsDeviceReady()
1432 hsmbus->State = HAL_SMBUS_STATE_BUSY; in HAL_SMBUS_IsDeviceReady()
1433 hsmbus->ErrorCode = HAL_SMBUS_ERROR_NONE; in HAL_SMBUS_IsDeviceReady()
1434 hsmbus->XferOptions = SMBUS_NO_OPTION_FRAME; in HAL_SMBUS_IsDeviceReady()
1439 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_START); in HAL_SMBUS_IsDeviceReady()
1442 if (SMBUS_WaitOnFlagUntilTimeout(hsmbus, SMBUS_FLAG_SB, RESET, Timeout, tickstart) != HAL_OK) in HAL_SMBUS_IsDeviceReady()
1448 hsmbus->Instance->DR = SMBUS_7BIT_ADD_WRITE(DevAddress); in HAL_SMBUS_IsDeviceReady()
1454 tmp1 = __HAL_SMBUS_GET_FLAG(hsmbus, SMBUS_FLAG_ADDR); in HAL_SMBUS_IsDeviceReady()
1455 tmp2 = __HAL_SMBUS_GET_FLAG(hsmbus, SMBUS_FLAG_AF); in HAL_SMBUS_IsDeviceReady()
1456 tmp3 = hsmbus->State; in HAL_SMBUS_IsDeviceReady()
1461 hsmbus->State = HAL_SMBUS_STATE_TIMEOUT; in HAL_SMBUS_IsDeviceReady()
1463 tmp1 = __HAL_SMBUS_GET_FLAG(hsmbus, SMBUS_FLAG_ADDR); in HAL_SMBUS_IsDeviceReady()
1464 tmp2 = __HAL_SMBUS_GET_FLAG(hsmbus, SMBUS_FLAG_AF); in HAL_SMBUS_IsDeviceReady()
1465 tmp3 = hsmbus->State; in HAL_SMBUS_IsDeviceReady()
1468 hsmbus->State = HAL_SMBUS_STATE_READY; in HAL_SMBUS_IsDeviceReady()
1471 if (__HAL_SMBUS_GET_FLAG(hsmbus, SMBUS_FLAG_ADDR) == SET) in HAL_SMBUS_IsDeviceReady()
1474 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_STOP); in HAL_SMBUS_IsDeviceReady()
1477 __HAL_SMBUS_CLEAR_ADDRFLAG(hsmbus); in HAL_SMBUS_IsDeviceReady()
1480 …if (SMBUS_WaitOnFlagUntilTimeout(hsmbus, SMBUS_FLAG_BUSY, SET, SMBUS_TIMEOUT_BUSY_FLAG, tickstart)… in HAL_SMBUS_IsDeviceReady()
1485 hsmbus->State = HAL_SMBUS_STATE_READY; in HAL_SMBUS_IsDeviceReady()
1488 __HAL_UNLOCK(hsmbus); in HAL_SMBUS_IsDeviceReady()
1495 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_STOP); in HAL_SMBUS_IsDeviceReady()
1498 __HAL_SMBUS_CLEAR_FLAG(hsmbus, SMBUS_FLAG_AF); in HAL_SMBUS_IsDeviceReady()
1501 …if (SMBUS_WaitOnFlagUntilTimeout(hsmbus, SMBUS_FLAG_BUSY, SET, SMBUS_TIMEOUT_BUSY_FLAG, tickstart)… in HAL_SMBUS_IsDeviceReady()
1509 hsmbus->State = HAL_SMBUS_STATE_READY; in HAL_SMBUS_IsDeviceReady()
1512 __HAL_UNLOCK(hsmbus); in HAL_SMBUS_IsDeviceReady()
1528 void HAL_SMBUS_EV_IRQHandler(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_EV_IRQHandler() argument
1530 uint32_t sr2itflags = READ_REG(hsmbus->Instance->SR2); in HAL_SMBUS_EV_IRQHandler()
1531 uint32_t sr1itflags = READ_REG(hsmbus->Instance->SR1); in HAL_SMBUS_EV_IRQHandler()
1532 uint32_t itsources = READ_REG(hsmbus->Instance->CR2); in HAL_SMBUS_EV_IRQHandler()
1534 uint32_t CurrentMode = hsmbus->Mode; in HAL_SMBUS_EV_IRQHandler()
1542 SMBUS_Master_SB(hsmbus); in HAL_SMBUS_EV_IRQHandler()
1547 SMBUS_Master_ADD10(hsmbus); in HAL_SMBUS_EV_IRQHandler()
1552 SMBUS_Master_ADDR(hsmbus); in HAL_SMBUS_EV_IRQHandler()
1560 SMBUS_MasterTransmit_TXE(hsmbus); in HAL_SMBUS_EV_IRQHandler()
1565 SMBUS_MasterTransmit_BTF(hsmbus); in HAL_SMBUS_EV_IRQHandler()
1574 SMBUS_MasterReceive_RXNE(hsmbus); in HAL_SMBUS_EV_IRQHandler()
1579 SMBUS_MasterReceive_BTF(hsmbus); in HAL_SMBUS_EV_IRQHandler()
1589 SMBUS_Slave_ADDR(hsmbus); in HAL_SMBUS_EV_IRQHandler()
1594 SMBUS_Slave_STOPF(hsmbus); in HAL_SMBUS_EV_IRQHandler()
1602 SMBUS_SlaveTransmit_TXE(hsmbus); in HAL_SMBUS_EV_IRQHandler()
1607 SMBUS_SlaveTransmit_BTF(hsmbus); in HAL_SMBUS_EV_IRQHandler()
1616 SMBUS_SlaveReceive_RXNE(hsmbus); in HAL_SMBUS_EV_IRQHandler()
1621 SMBUS_SlaveReceive_BTF(hsmbus); in HAL_SMBUS_EV_IRQHandler()
1633 void HAL_SMBUS_ER_IRQHandler(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_ER_IRQHandler() argument
1636 uint32_t sr1itflags = READ_REG(hsmbus->Instance->SR1); in HAL_SMBUS_ER_IRQHandler()
1637 uint32_t itsources = READ_REG(hsmbus->Instance->CR2); in HAL_SMBUS_ER_IRQHandler()
1642 hsmbus->ErrorCode |= HAL_SMBUS_ERROR_BERR; in HAL_SMBUS_ER_IRQHandler()
1645 __HAL_SMBUS_CLEAR_FLAG(hsmbus, SMBUS_FLAG_BERR); in HAL_SMBUS_ER_IRQHandler()
1652 hsmbus->ErrorCode |= HAL_SMBUS_ERROR_OVR; in HAL_SMBUS_ER_IRQHandler()
1655 __HAL_SMBUS_CLEAR_FLAG(hsmbus, SMBUS_FLAG_OVR); in HAL_SMBUS_ER_IRQHandler()
1661 hsmbus->ErrorCode |= HAL_SMBUS_ERROR_ARLO; in HAL_SMBUS_ER_IRQHandler()
1664 __HAL_SMBUS_CLEAR_FLAG(hsmbus, SMBUS_FLAG_ARLO); in HAL_SMBUS_ER_IRQHandler()
1670 tmp1 = hsmbus->Mode; in HAL_SMBUS_ER_IRQHandler()
1671 tmp2 = hsmbus->XferCount; in HAL_SMBUS_ER_IRQHandler()
1672 tmp3 = hsmbus->State; in HAL_SMBUS_ER_IRQHandler()
1673 tmp4 = hsmbus->PreviousState; in HAL_SMBUS_ER_IRQHandler()
1679 SMBUS_Slave_AF(hsmbus); in HAL_SMBUS_ER_IRQHandler()
1683 hsmbus->ErrorCode |= HAL_SMBUS_ERROR_AF; in HAL_SMBUS_ER_IRQHandler()
1686 if (hsmbus->Mode == HAL_SMBUS_MODE_MASTER) in HAL_SMBUS_ER_IRQHandler()
1689 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_STOP); in HAL_SMBUS_ER_IRQHandler()
1694 __HAL_SMBUS_CLEAR_FLAG(hsmbus, SMBUS_FLAG_AF); in HAL_SMBUS_ER_IRQHandler()
1697 __HAL_SMBUS_DISABLE_IT(hsmbus, SMBUS_IT_EVT | SMBUS_IT_BUF | SMBUS_IT_ERR); in HAL_SMBUS_ER_IRQHandler()
1700 SMBUS_Flush_DR(hsmbus); in HAL_SMBUS_ER_IRQHandler()
1707 hsmbus->ErrorCode |= HAL_SMBUS_ERROR_TIMEOUT; in HAL_SMBUS_ER_IRQHandler()
1710 __HAL_SMBUS_CLEAR_FLAG(hsmbus, SMBUS_FLAG_TIMEOUT); in HAL_SMBUS_ER_IRQHandler()
1717 hsmbus->ErrorCode |= HAL_SMBUS_ERROR_ALERT; in HAL_SMBUS_ER_IRQHandler()
1720 __HAL_SMBUS_CLEAR_FLAG(hsmbus, SMBUS_FLAG_SMBALERT); in HAL_SMBUS_ER_IRQHandler()
1726 hsmbus->ErrorCode |= HAL_SMBUS_ERROR_PECERR; in HAL_SMBUS_ER_IRQHandler()
1729 __HAL_SMBUS_CLEAR_FLAG(hsmbus, SMBUS_FLAG_PECERR); in HAL_SMBUS_ER_IRQHandler()
1733 if (hsmbus->ErrorCode != HAL_SMBUS_ERROR_NONE) in HAL_SMBUS_ER_IRQHandler()
1735 SMBUS_ITError(hsmbus); in HAL_SMBUS_ER_IRQHandler()
1745 __weak void HAL_SMBUS_MasterTxCpltCallback(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_MasterTxCpltCallback() argument
1748 UNUSED(hsmbus); in HAL_SMBUS_MasterTxCpltCallback()
1761 __weak void HAL_SMBUS_MasterRxCpltCallback(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_MasterRxCpltCallback() argument
1764 UNUSED(hsmbus); in HAL_SMBUS_MasterRxCpltCallback()
1776 __weak void HAL_SMBUS_SlaveTxCpltCallback(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_SlaveTxCpltCallback() argument
1779 UNUSED(hsmbus); in HAL_SMBUS_SlaveTxCpltCallback()
1792 __weak void HAL_SMBUS_SlaveRxCpltCallback(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_SlaveRxCpltCallback() argument
1795 UNUSED(hsmbus); in HAL_SMBUS_SlaveRxCpltCallback()
1810 __weak void HAL_SMBUS_AddrCallback(SMBUS_HandleTypeDef *hsmbus, uint8_t TransferDirection, uint16_t… in HAL_SMBUS_AddrCallback() argument
1813 UNUSED(hsmbus); in HAL_SMBUS_AddrCallback()
1828 __weak void HAL_SMBUS_ListenCpltCallback(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_ListenCpltCallback() argument
1831 UNUSED(hsmbus); in HAL_SMBUS_ListenCpltCallback()
1844 __weak void HAL_SMBUS_ErrorCallback(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_ErrorCallback() argument
1847 UNUSED(hsmbus); in HAL_SMBUS_ErrorCallback()
1860 __weak void HAL_SMBUS_AbortCpltCallback(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_AbortCpltCallback() argument
1863 UNUSED(hsmbus); in HAL_SMBUS_AbortCpltCallback()
1895 HAL_SMBUS_StateTypeDef HAL_SMBUS_GetState(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_GetState() argument
1898 return hsmbus->State; in HAL_SMBUS_GetState()
1907 HAL_SMBUS_ModeTypeDef HAL_SMBUS_GetMode(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_GetMode() argument
1909 return hsmbus->Mode; in HAL_SMBUS_GetMode()
1918 uint32_t HAL_SMBUS_GetError(SMBUS_HandleTypeDef *hsmbus) in HAL_SMBUS_GetError() argument
1920 return hsmbus->ErrorCode; in HAL_SMBUS_GetError()
1941 static HAL_StatusTypeDef SMBUS_MasterTransmit_TXE(SMBUS_HandleTypeDef *hsmbus) in SMBUS_MasterTransmit_TXE() argument
1944 uint32_t CurrentState = hsmbus->State; in SMBUS_MasterTransmit_TXE()
1945 uint32_t CurrentXferOptions = hsmbus->XferOptions; in SMBUS_MasterTransmit_TXE()
1947 if ((hsmbus->XferSize == 0U) && (CurrentState == HAL_SMBUS_STATE_BUSY_TX)) in SMBUS_MasterTransmit_TXE()
1952 __HAL_SMBUS_DISABLE_IT(hsmbus, SMBUS_IT_EVT | SMBUS_IT_BUF | SMBUS_IT_ERR); in SMBUS_MasterTransmit_TXE()
1954 hsmbus->PreviousState = SMBUS_STATE_MASTER_BUSY_TX; in SMBUS_MasterTransmit_TXE()
1955 hsmbus->Mode = HAL_SMBUS_MODE_NONE; in SMBUS_MasterTransmit_TXE()
1956 hsmbus->State = HAL_SMBUS_STATE_READY; in SMBUS_MasterTransmit_TXE()
1959 hsmbus->MasterTxCpltCallback(hsmbus); in SMBUS_MasterTransmit_TXE()
1961 HAL_SMBUS_MasterTxCpltCallback(hsmbus); in SMBUS_MasterTransmit_TXE()
1967 __HAL_SMBUS_DISABLE_IT(hsmbus, SMBUS_IT_EVT | SMBUS_IT_BUF | SMBUS_IT_ERR); in SMBUS_MasterTransmit_TXE()
1970 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_STOP); in SMBUS_MasterTransmit_TXE()
1972 hsmbus->PreviousState = HAL_SMBUS_STATE_READY; in SMBUS_MasterTransmit_TXE()
1973 hsmbus->State = HAL_SMBUS_STATE_READY; in SMBUS_MasterTransmit_TXE()
1975 hsmbus->Mode = HAL_SMBUS_MODE_NONE; in SMBUS_MasterTransmit_TXE()
1977 hsmbus->MasterTxCpltCallback(hsmbus); in SMBUS_MasterTransmit_TXE()
1979 HAL_SMBUS_MasterTxCpltCallback(hsmbus); in SMBUS_MasterTransmit_TXE()
1986hsmbus->XferCount == 2U) && (SMBUS_GET_PEC_MODE(hsmbus) == SMBUS_PEC_ENABLE) && ((hsmbus->XferOpti… in SMBUS_MasterTransmit_TXE()
1988 hsmbus->XferCount--; in SMBUS_MasterTransmit_TXE()
1991 if (hsmbus->XferCount == 0U) in SMBUS_MasterTransmit_TXE()
1995 __HAL_SMBUS_DISABLE_IT(hsmbus, SMBUS_IT_BUF); in SMBUS_MasterTransmit_TXE()
1997 …if ((SMBUS_GET_PEC_MODE(hsmbus) == SMBUS_PEC_ENABLE) && ((hsmbus->XferOptions == SMBUS_FIRST_AND_L… in SMBUS_MasterTransmit_TXE()
1999 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_PEC); in SMBUS_MasterTransmit_TXE()
2006 hsmbus->Instance->DR = (*hsmbus->pBuffPtr++); in SMBUS_MasterTransmit_TXE()
2007 hsmbus->XferCount--; in SMBUS_MasterTransmit_TXE()
2019 static HAL_StatusTypeDef SMBUS_MasterTransmit_BTF(SMBUS_HandleTypeDef *hsmbus) in SMBUS_MasterTransmit_BTF() argument
2022 uint32_t CurrentXferOptions = hsmbus->XferOptions; in SMBUS_MasterTransmit_BTF()
2024 if (hsmbus->State == HAL_SMBUS_STATE_BUSY_TX) in SMBUS_MasterTransmit_BTF()
2026 if (hsmbus->XferCount != 0U) in SMBUS_MasterTransmit_BTF()
2029 hsmbus->Instance->DR = (*hsmbus->pBuffPtr++); in SMBUS_MasterTransmit_BTF()
2030 hsmbus->XferCount--; in SMBUS_MasterTransmit_BTF()
2037 __HAL_SMBUS_DISABLE_IT(hsmbus, SMBUS_IT_EVT | SMBUS_IT_BUF | SMBUS_IT_ERR); in SMBUS_MasterTransmit_BTF()
2039 hsmbus->PreviousState = SMBUS_STATE_MASTER_BUSY_TX; in SMBUS_MasterTransmit_BTF()
2040 hsmbus->Mode = HAL_SMBUS_MODE_NONE; in SMBUS_MasterTransmit_BTF()
2041 hsmbus->State = HAL_SMBUS_STATE_READY; in SMBUS_MasterTransmit_BTF()
2044 hsmbus->MasterTxCpltCallback(hsmbus); in SMBUS_MasterTransmit_BTF()
2046 HAL_SMBUS_MasterTxCpltCallback(hsmbus); in SMBUS_MasterTransmit_BTF()
2052 __HAL_SMBUS_DISABLE_IT(hsmbus, SMBUS_IT_EVT | SMBUS_IT_BUF | SMBUS_IT_ERR); in SMBUS_MasterTransmit_BTF()
2055 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_STOP); in SMBUS_MasterTransmit_BTF()
2057 hsmbus->PreviousState = SMBUS_STATE_NONE; in SMBUS_MasterTransmit_BTF()
2058 hsmbus->State = HAL_SMBUS_STATE_READY; in SMBUS_MasterTransmit_BTF()
2059 hsmbus->Mode = HAL_SMBUS_MODE_NONE; in SMBUS_MasterTransmit_BTF()
2061 hsmbus->MasterTxCpltCallback(hsmbus); in SMBUS_MasterTransmit_BTF()
2063 HAL_SMBUS_MasterTxCpltCallback(hsmbus); in SMBUS_MasterTransmit_BTF()
2077 static HAL_StatusTypeDef SMBUS_MasterReceive_RXNE(SMBUS_HandleTypeDef *hsmbus) in SMBUS_MasterReceive_RXNE() argument
2080 uint32_t CurrentXferOptions = hsmbus->XferOptions; in SMBUS_MasterReceive_RXNE()
2082 if (hsmbus->State == HAL_SMBUS_STATE_BUSY_RX) in SMBUS_MasterReceive_RXNE()
2084 uint32_t tmp = hsmbus->XferCount; in SMBUS_MasterReceive_RXNE()
2089 (*hsmbus->pBuffPtr++) = hsmbus->Instance->DR; in SMBUS_MasterReceive_RXNE()
2090 hsmbus->XferCount--; in SMBUS_MasterReceive_RXNE()
2092 if (hsmbus->XferCount == 3) in SMBUS_MasterReceive_RXNE()
2097 __HAL_SMBUS_DISABLE_IT(hsmbus, SMBUS_IT_BUF); in SMBUS_MasterReceive_RXNE()
2105 (*hsmbus->pBuffPtr++) = hsmbus->Instance->DR; in SMBUS_MasterReceive_RXNE()
2106 hsmbus->XferCount--; in SMBUS_MasterReceive_RXNE()
2111 hsmbus->XferPEC = SMBUS_GET_PEC(hsmbus); in SMBUS_MasterReceive_RXNE()
2115 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_STOP); in SMBUS_MasterReceive_RXNE()
2121 CLEAR_BIT(hsmbus->Instance->CR1, I2C_CR1_ACK); in SMBUS_MasterReceive_RXNE()
2124 __HAL_SMBUS_DISABLE_IT(hsmbus, SMBUS_IT_EVT | SMBUS_IT_BUF | SMBUS_IT_ERR); in SMBUS_MasterReceive_RXNE()
2127 (*hsmbus->pBuffPtr++) = hsmbus->Instance->DR; in SMBUS_MasterReceive_RXNE()
2128 hsmbus->XferCount--; in SMBUS_MasterReceive_RXNE()
2130 hsmbus->State = HAL_SMBUS_STATE_READY; in SMBUS_MasterReceive_RXNE()
2131 hsmbus->PreviousState = SMBUS_STATE_NONE; in SMBUS_MasterReceive_RXNE()
2132 hsmbus->Mode = HAL_SMBUS_MODE_NONE; in SMBUS_MasterReceive_RXNE()
2135 hsmbus->MasterRxCpltCallback(hsmbus); in SMBUS_MasterReceive_RXNE()
2137 HAL_SMBUS_MasterRxCpltCallback(hsmbus); in SMBUS_MasterReceive_RXNE()
2151 static HAL_StatusTypeDef SMBUS_MasterReceive_BTF(SMBUS_HandleTypeDef *hsmbus) in SMBUS_MasterReceive_BTF() argument
2154 uint32_t CurrentXferOptions = hsmbus->XferOptions; in SMBUS_MasterReceive_BTF()
2156 if (hsmbus->XferCount == 4U) in SMBUS_MasterReceive_BTF()
2160 __HAL_SMBUS_DISABLE_IT(hsmbus, SMBUS_IT_BUF); in SMBUS_MasterReceive_BTF()
2163 (*hsmbus->pBuffPtr++) = hsmbus->Instance->DR; in SMBUS_MasterReceive_BTF()
2164 hsmbus->XferCount--; in SMBUS_MasterReceive_BTF()
2165 hsmbus->XferPEC = SMBUS_GET_PEC(hsmbus); in SMBUS_MasterReceive_BTF()
2167 else if (hsmbus->XferCount == 3U) in SMBUS_MasterReceive_BTF()
2171 __HAL_SMBUS_DISABLE_IT(hsmbus, SMBUS_IT_BUF); in SMBUS_MasterReceive_BTF()
2174 CLEAR_BIT(hsmbus->Instance->CR1, I2C_CR1_ACK); in SMBUS_MasterReceive_BTF()
2177 (*hsmbus->pBuffPtr++) = hsmbus->Instance->DR; in SMBUS_MasterReceive_BTF()
2178 hsmbus->XferCount--; in SMBUS_MasterReceive_BTF()
2179 hsmbus->XferPEC = SMBUS_GET_PEC(hsmbus); in SMBUS_MasterReceive_BTF()
2181 else if (hsmbus->XferCount == 2U) in SMBUS_MasterReceive_BTF()
2187 CLEAR_BIT(hsmbus->Instance->CR1, I2C_CR1_ACK); in SMBUS_MasterReceive_BTF()
2190 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_START); in SMBUS_MasterReceive_BTF()
2195 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_STOP); in SMBUS_MasterReceive_BTF()
2199 (*hsmbus->pBuffPtr++) = hsmbus->Instance->DR; in SMBUS_MasterReceive_BTF()
2200 hsmbus->XferCount--; in SMBUS_MasterReceive_BTF()
2203 (*hsmbus->pBuffPtr++) = hsmbus->Instance->DR; in SMBUS_MasterReceive_BTF()
2204 hsmbus->XferCount--; in SMBUS_MasterReceive_BTF()
2207 __HAL_SMBUS_DISABLE_IT(hsmbus, SMBUS_IT_EVT | SMBUS_IT_ERR); in SMBUS_MasterReceive_BTF()
2209 hsmbus->State = HAL_SMBUS_STATE_READY; in SMBUS_MasterReceive_BTF()
2210 hsmbus->PreviousState = SMBUS_STATE_NONE; in SMBUS_MasterReceive_BTF()
2211 hsmbus->Mode = HAL_SMBUS_MODE_NONE; in SMBUS_MasterReceive_BTF()
2213 hsmbus->MasterRxCpltCallback(hsmbus); in SMBUS_MasterReceive_BTF()
2215 HAL_SMBUS_MasterRxCpltCallback(hsmbus); in SMBUS_MasterReceive_BTF()
2221 (*hsmbus->pBuffPtr++) = hsmbus->Instance->DR; in SMBUS_MasterReceive_BTF()
2222 hsmbus->XferCount--; in SMBUS_MasterReceive_BTF()
2233 static HAL_StatusTypeDef SMBUS_Master_SB(SMBUS_HandleTypeDef *hsmbus) in SMBUS_Master_SB() argument
2235 if (hsmbus->Init.AddressingMode == SMBUS_ADDRESSINGMODE_7BIT) in SMBUS_Master_SB()
2238 if (hsmbus->State == HAL_SMBUS_STATE_BUSY_TX) in SMBUS_Master_SB()
2240 hsmbus->Instance->DR = SMBUS_7BIT_ADD_WRITE(hsmbus->Devaddress); in SMBUS_Master_SB()
2244 hsmbus->Instance->DR = SMBUS_7BIT_ADD_READ(hsmbus->Devaddress); in SMBUS_Master_SB()
2249 if (hsmbus->EventCount == 0U) in SMBUS_Master_SB()
2252 hsmbus->Instance->DR = SMBUS_10BIT_HEADER_WRITE(hsmbus->Devaddress); in SMBUS_Master_SB()
2254 else if (hsmbus->EventCount == 1U) in SMBUS_Master_SB()
2257 hsmbus->Instance->DR = SMBUS_10BIT_HEADER_READ(hsmbus->Devaddress); in SMBUS_Master_SB()
2269 static HAL_StatusTypeDef SMBUS_Master_ADD10(SMBUS_HandleTypeDef *hsmbus) in SMBUS_Master_ADD10() argument
2272 hsmbus->Instance->DR = SMBUS_10BIT_ADDRESS(hsmbus->Devaddress); in SMBUS_Master_ADD10()
2283 static HAL_StatusTypeDef SMBUS_Master_ADDR(SMBUS_HandleTypeDef *hsmbus) in SMBUS_Master_ADDR() argument
2286 uint32_t Prev_State = hsmbus->PreviousState; in SMBUS_Master_ADDR()
2288 if (hsmbus->State == HAL_SMBUS_STATE_BUSY_RX) in SMBUS_Master_ADDR()
2290 if ((hsmbus->EventCount == 0U) && (hsmbus->Init.AddressingMode == SMBUS_ADDRESSINGMODE_10BIT)) in SMBUS_Master_ADDR()
2293 __HAL_SMBUS_CLEAR_ADDRFLAG(hsmbus); in SMBUS_Master_ADDR()
2296 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_START); in SMBUS_Master_ADDR()
2298 hsmbus->EventCount++; in SMBUS_Master_ADDR()
2303 if (hsmbus->XferCount == 0U) in SMBUS_Master_ADDR()
2306 __HAL_SMBUS_CLEAR_ADDRFLAG(hsmbus); in SMBUS_Master_ADDR()
2309 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_STOP); in SMBUS_Master_ADDR()
2311 else if (hsmbus->XferCount == 1U) in SMBUS_Master_ADDR()
2314 … if ((hsmbus->XferOptions == SMBUS_FIRST_FRAME) && (Prev_State != SMBUS_STATE_MASTER_BUSY_RX)) in SMBUS_Master_ADDR()
2317 CLEAR_BIT(hsmbus->Instance->CR1, I2C_CR1_ACK); in SMBUS_Master_ADDR()
2320 __HAL_SMBUS_CLEAR_ADDRFLAG(hsmbus); in SMBUS_Master_ADDR()
2322 … else if ((hsmbus->XferOptions == SMBUS_NEXT_FRAME) && (Prev_State != SMBUS_STATE_MASTER_BUSY_RX)) in SMBUS_Master_ADDR()
2325 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_ACK); in SMBUS_Master_ADDR()
2328 __HAL_SMBUS_CLEAR_ADDRFLAG(hsmbus); in SMBUS_Master_ADDR()
2333 CLEAR_BIT(hsmbus->Instance->CR1, I2C_CR1_ACK); in SMBUS_Master_ADDR()
2336 __HAL_SMBUS_CLEAR_ADDRFLAG(hsmbus); in SMBUS_Master_ADDR()
2339 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_STOP); in SMBUS_Master_ADDR()
2342 else if (hsmbus->XferCount == 2U) in SMBUS_Master_ADDR()
2344 if (hsmbus->XferOptions != SMBUS_NEXT_FRAME) in SMBUS_Master_ADDR()
2347 CLEAR_BIT(hsmbus->Instance->CR1, I2C_CR1_ACK); in SMBUS_Master_ADDR()
2350 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_POS); in SMBUS_Master_ADDR()
2357 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_ACK); in SMBUS_Master_ADDR()
2361 __HAL_SMBUS_CLEAR_ADDRFLAG(hsmbus); in SMBUS_Master_ADDR()
2366 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_ACK); in SMBUS_Master_ADDR()
2369 __HAL_SMBUS_CLEAR_ADDRFLAG(hsmbus); in SMBUS_Master_ADDR()
2373 hsmbus->EventCount = 0U; in SMBUS_Master_ADDR()
2379 __HAL_SMBUS_CLEAR_ADDRFLAG(hsmbus); in SMBUS_Master_ADDR()
2391 static HAL_StatusTypeDef SMBUS_SlaveTransmit_TXE(SMBUS_HandleTypeDef *hsmbus) in SMBUS_SlaveTransmit_TXE() argument
2394 uint32_t CurrentState = hsmbus->State; in SMBUS_SlaveTransmit_TXE()
2396 if (hsmbus->XferCount != 0U) in SMBUS_SlaveTransmit_TXE()
2399 hsmbus->Instance->DR = (*hsmbus->pBuffPtr++); in SMBUS_SlaveTransmit_TXE()
2400 hsmbus->XferCount--; in SMBUS_SlaveTransmit_TXE()
2402hsmbus->XferCount == 2U) && (SMBUS_GET_PEC_MODE(hsmbus) == SMBUS_PEC_ENABLE) && ((hsmbus->XferOpti… in SMBUS_SlaveTransmit_TXE()
2404 hsmbus->XferCount--; in SMBUS_SlaveTransmit_TXE()
2407 if ((hsmbus->XferCount == 0U) && (CurrentState == (HAL_SMBUS_STATE_BUSY_TX_LISTEN))) in SMBUS_SlaveTransmit_TXE()
2410 __HAL_SMBUS_DISABLE_IT(hsmbus, SMBUS_IT_BUF); in SMBUS_SlaveTransmit_TXE()
2413 hsmbus->PreviousState = SMBUS_STATE_SLAVE_BUSY_TX; in SMBUS_SlaveTransmit_TXE()
2414 hsmbus->State = HAL_SMBUS_STATE_LISTEN; in SMBUS_SlaveTransmit_TXE()
2418 hsmbus->SlaveTxCpltCallback(hsmbus); in SMBUS_SlaveTransmit_TXE()
2420 HAL_SMBUS_SlaveTxCpltCallback(hsmbus); in SMBUS_SlaveTransmit_TXE()
2433 static HAL_StatusTypeDef SMBUS_SlaveTransmit_BTF(SMBUS_HandleTypeDef *hsmbus) in SMBUS_SlaveTransmit_BTF() argument
2435 if (hsmbus->XferCount != 0U) in SMBUS_SlaveTransmit_BTF()
2438 hsmbus->Instance->DR = (*hsmbus->pBuffPtr++); in SMBUS_SlaveTransmit_BTF()
2439 hsmbus->XferCount--; in SMBUS_SlaveTransmit_BTF()
2444hsmbus->XferCount == 0U) && (SMBUS_GET_PEC_MODE(hsmbus) == SMBUS_PEC_ENABLE) && ((hsmbus->XferOpti… in SMBUS_SlaveTransmit_BTF()
2446 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_PEC); in SMBUS_SlaveTransmit_BTF()
2457 static HAL_StatusTypeDef SMBUS_SlaveReceive_RXNE(SMBUS_HandleTypeDef *hsmbus) in SMBUS_SlaveReceive_RXNE() argument
2460 uint32_t CurrentState = hsmbus->State; in SMBUS_SlaveReceive_RXNE()
2462 if (hsmbus->XferCount != 0U) in SMBUS_SlaveReceive_RXNE()
2465 (*hsmbus->pBuffPtr++) = hsmbus->Instance->DR; in SMBUS_SlaveReceive_RXNE()
2466 hsmbus->XferCount--; in SMBUS_SlaveReceive_RXNE()
2468hsmbus->XferCount == 1U) && (SMBUS_GET_PEC_MODE(hsmbus) == SMBUS_PEC_ENABLE) && ((hsmbus->XferOpti… in SMBUS_SlaveReceive_RXNE()
2470 SET_BIT(hsmbus->Instance->CR1, I2C_CR1_PEC); in SMBUS_SlaveReceive_RXNE()
2471 hsmbus->XferPEC = SMBUS_GET_PEC(hsmbus); in SMBUS_SlaveReceive_RXNE()
2473 if ((hsmbus->XferCount == 0U) && (CurrentState == HAL_SMBUS_STATE_BUSY_RX_LISTEN)) in SMBUS_SlaveReceive_RXNE()
2476 __HAL_SMBUS_DISABLE_IT(hsmbus, SMBUS_IT_BUF); in SMBUS_SlaveReceive_RXNE()
2479 hsmbus->PreviousState = SMBUS_STATE_SLAVE_BUSY_RX; in SMBUS_SlaveReceive_RXNE()
2480 hsmbus->State = HAL_SMBUS_STATE_LISTEN; in SMBUS_SlaveReceive_RXNE()
2484 hsmbus->SlaveRxCpltCallback(hsmbus); in SMBUS_SlaveReceive_RXNE()
2486 HAL_SMBUS_SlaveRxCpltCallback(hsmbus); in SMBUS_SlaveReceive_RXNE()
2499 static HAL_StatusTypeDef SMBUS_SlaveReceive_BTF(SMBUS_HandleTypeDef *hsmbus) in SMBUS_SlaveReceive_BTF() argument
2501 if (hsmbus->XferCount != 0U) in SMBUS_SlaveReceive_BTF()
2504 (*hsmbus->pBuffPtr++) = hsmbus->Instance->DR; in SMBUS_SlaveReceive_BTF()
2505 hsmbus->XferCount--; in SMBUS_SlaveReceive_BTF()
2517 static HAL_StatusTypeDef SMBUS_Slave_ADDR(SMBUS_HandleTypeDef *hsmbus) in SMBUS_Slave_ADDR() argument
2523 if (__HAL_SMBUS_GET_FLAG(hsmbus, SMBUS_FLAG_TRA) == RESET) in SMBUS_Slave_ADDR()
2528 if (__HAL_SMBUS_GET_FLAG(hsmbus, SMBUS_FLAG_DUALF) == RESET) in SMBUS_Slave_ADDR()
2530 SlaveAddrCode = hsmbus->Init.OwnAddress1; in SMBUS_Slave_ADDR()
2534 SlaveAddrCode = hsmbus->Init.OwnAddress2; in SMBUS_Slave_ADDR()
2539 hsmbus->AddrCallback(hsmbus, TransferDirection, SlaveAddrCode); in SMBUS_Slave_ADDR()
2541 HAL_SMBUS_AddrCallback(hsmbus, TransferDirection, SlaveAddrCode); in SMBUS_Slave_ADDR()
2553 static HAL_StatusTypeDef SMBUS_Slave_STOPF(SMBUS_HandleTypeDef *hsmbus) in SMBUS_Slave_STOPF() argument
2556 uint32_t CurrentState = hsmbus->State; in SMBUS_Slave_STOPF()
2559 __HAL_SMBUS_DISABLE_IT(hsmbus, SMBUS_IT_EVT | SMBUS_IT_BUF | SMBUS_IT_ERR); in SMBUS_Slave_STOPF()
2562 __HAL_SMBUS_CLEAR_STOPFLAG(hsmbus); in SMBUS_Slave_STOPF()
2565 CLEAR_BIT(hsmbus->Instance->CR1, I2C_CR1_ACK); in SMBUS_Slave_STOPF()
2568 if (hsmbus->XferCount != 0U) in SMBUS_Slave_STOPF()
2571 if (__HAL_SMBUS_GET_FLAG(hsmbus, SMBUS_FLAG_BTF) == SET) in SMBUS_Slave_STOPF()
2574 (*hsmbus->pBuffPtr++) = hsmbus->Instance->DR; in SMBUS_Slave_STOPF()
2576 if (hsmbus->XferCount > 0) in SMBUS_Slave_STOPF()
2578 hsmbus->XferSize--; in SMBUS_Slave_STOPF()
2579 hsmbus->XferCount--; in SMBUS_Slave_STOPF()
2584 if (__HAL_SMBUS_GET_FLAG(hsmbus, SMBUS_FLAG_RXNE) == SET) in SMBUS_Slave_STOPF()
2587 (*hsmbus->pBuffPtr++) = hsmbus->Instance->DR; in SMBUS_Slave_STOPF()
2589 if (hsmbus->XferCount > 0) in SMBUS_Slave_STOPF()
2591 hsmbus->XferSize--; in SMBUS_Slave_STOPF()
2592 hsmbus->XferCount--; in SMBUS_Slave_STOPF()
2597 if (hsmbus->ErrorCode != HAL_SMBUS_ERROR_NONE) in SMBUS_Slave_STOPF()
2600 SMBUS_ITError(hsmbus); in SMBUS_Slave_STOPF()
2607 hsmbus->XferOptions = SMBUS_NO_OPTION_FRAME; in SMBUS_Slave_STOPF()
2608 hsmbus->PreviousState = HAL_SMBUS_STATE_READY; in SMBUS_Slave_STOPF()
2609 hsmbus->State = HAL_SMBUS_STATE_READY; in SMBUS_Slave_STOPF()
2610 hsmbus->Mode = HAL_SMBUS_MODE_NONE; in SMBUS_Slave_STOPF()
2613 hsmbus->ListenCpltCallback(hsmbus); in SMBUS_Slave_STOPF()
2615 HAL_SMBUS_ListenCpltCallback(hsmbus); in SMBUS_Slave_STOPF()
2627 static HAL_StatusTypeDef SMBUS_Slave_AF(SMBUS_HandleTypeDef *hsmbus) in SMBUS_Slave_AF() argument
2630 uint32_t CurrentState = hsmbus->State; in SMBUS_Slave_AF()
2631 uint32_t CurrentXferOptions = hsmbus->XferOptions; in SMBUS_Slave_AF()
2637 hsmbus->XferOptions = SMBUS_NO_OPTION_FRAME; in SMBUS_Slave_AF()
2640 __HAL_SMBUS_DISABLE_IT(hsmbus, SMBUS_IT_EVT | SMBUS_IT_BUF | SMBUS_IT_ERR); in SMBUS_Slave_AF()
2643 __HAL_SMBUS_CLEAR_FLAG(hsmbus, SMBUS_FLAG_AF); in SMBUS_Slave_AF()
2646 CLEAR_BIT(hsmbus->Instance->CR1, I2C_CR1_ACK); in SMBUS_Slave_AF()
2648 hsmbus->PreviousState = HAL_SMBUS_STATE_READY; in SMBUS_Slave_AF()
2649 hsmbus->State = HAL_SMBUS_STATE_READY; in SMBUS_Slave_AF()
2650 hsmbus->Mode = HAL_SMBUS_MODE_NONE; in SMBUS_Slave_AF()
2654 hsmbus->ListenCpltCallback(hsmbus); in SMBUS_Slave_AF()
2656 HAL_SMBUS_ListenCpltCallback(hsmbus); in SMBUS_Slave_AF()
2669 static void SMBUS_ITError(SMBUS_HandleTypeDef *hsmbus) in SMBUS_ITError() argument
2672 uint32_t CurrentState = hsmbus->State; in SMBUS_ITError()
2677 hsmbus->PreviousState = SMBUS_STATE_NONE; in SMBUS_ITError()
2678 hsmbus->State = HAL_SMBUS_STATE_LISTEN; in SMBUS_ITError()
2684 if (hsmbus->State != HAL_SMBUS_STATE_ABORT) in SMBUS_ITError()
2686 hsmbus->State = HAL_SMBUS_STATE_READY; in SMBUS_ITError()
2688 hsmbus->PreviousState = SMBUS_STATE_NONE; in SMBUS_ITError()
2689 hsmbus->Mode = HAL_SMBUS_MODE_NONE; in SMBUS_ITError()
2693 CLEAR_BIT(hsmbus->Instance->CR1, I2C_CR1_POS); in SMBUS_ITError()
2695 if (hsmbus->State == HAL_SMBUS_STATE_ABORT) in SMBUS_ITError()
2697 hsmbus->State = HAL_SMBUS_STATE_READY; in SMBUS_ITError()
2698 hsmbus->ErrorCode = HAL_SMBUS_ERROR_NONE; in SMBUS_ITError()
2701 if (__HAL_SMBUS_GET_FLAG(hsmbus, SMBUS_FLAG_RXNE) == SET) in SMBUS_ITError()
2704 (*hsmbus->pBuffPtr++) = hsmbus->Instance->DR; in SMBUS_ITError()
2708 __HAL_SMBUS_DISABLE(hsmbus); in SMBUS_ITError()
2712 hsmbus->AbortCpltCallback(hsmbus); in SMBUS_ITError()
2714 HAL_SMBUS_AbortCpltCallback(hsmbus); in SMBUS_ITError()
2720 if (__HAL_SMBUS_GET_FLAG(hsmbus, SMBUS_FLAG_RXNE) == SET) in SMBUS_ITError()
2723 (*hsmbus->pBuffPtr++) = hsmbus->Instance->DR; in SMBUS_ITError()
2728 hsmbus->ErrorCallback(hsmbus); in SMBUS_ITError()
2730 HAL_SMBUS_ErrorCallback(hsmbus); in SMBUS_ITError()
2736 …if ((hsmbus->State == HAL_SMBUS_STATE_LISTEN) && ((hsmbus->ErrorCode & HAL_SMBUS_ERROR_AF) == HAL_… in SMBUS_ITError()
2738 hsmbus->XferOptions = SMBUS_NO_OPTION_FRAME; in SMBUS_ITError()
2739 hsmbus->PreviousState = SMBUS_STATE_NONE; in SMBUS_ITError()
2740 hsmbus->State = HAL_SMBUS_STATE_READY; in SMBUS_ITError()
2741 hsmbus->Mode = HAL_SMBUS_MODE_NONE; in SMBUS_ITError()
2745 hsmbus->ListenCpltCallback(hsmbus); in SMBUS_ITError()
2747 HAL_SMBUS_ListenCpltCallback(hsmbus); in SMBUS_ITError()
2762 static HAL_StatusTypeDef SMBUS_WaitOnFlagUntilTimeout(SMBUS_HandleTypeDef *hsmbus, uint32_t Flag, F… in SMBUS_WaitOnFlagUntilTimeout() argument
2767 while (__HAL_SMBUS_GET_FLAG(hsmbus, Flag) == RESET) in SMBUS_WaitOnFlagUntilTimeout()
2774 hsmbus->PreviousState = SMBUS_STATE_NONE; in SMBUS_WaitOnFlagUntilTimeout()
2775 hsmbus->State = HAL_SMBUS_STATE_READY; in SMBUS_WaitOnFlagUntilTimeout()
2776 hsmbus->Mode = HAL_SMBUS_MODE_NONE; in SMBUS_WaitOnFlagUntilTimeout()
2779 __HAL_UNLOCK(hsmbus); in SMBUS_WaitOnFlagUntilTimeout()