/*================================================================================================== * Project : RTD AUTOSAR 4.4 * Platform : CORTEXM * Peripheral : LPI2C * Dependencies : none * * Autosar Version : 4.4.0 * Autosar Revision : ASR_REL_4_4_REV_0000 * Autosar Conf.Variant : * SW Version : 0.9.0 * Build Version : S32K3_RTD_0_9_0__ASR_REL_4_4_REV_0000_20210326 * * (c) Copyright 2020 - 2021 NXP Semiconductors * All Rights Reserved. * * NXP Confidential. This software is owned or controlled by NXP and may only be * used strictly in accordance with the applicable license terms. By expressly * accepting such terms or by downloading, installing, activating and/or otherwise * using the software, you are agreeing that you have read, and that you agree to * comply with and are bound by, such license terms. If you do not agree to be * bound by the applicable license terms, then you may not retain, install, * activate or otherwise use the software. ==================================================================================================*/ #ifndef LPI2C_IP_CALLBACKS_H_ #define LPI2C_IP_CALLBACKS_H_ /** * @file * * @addtogroup LPI2C_DRIVER Lpi2c Driver * @{ */ #include "Lpi2c_Ip_Cfg.h" #include "Mcal.h" /*================================================================================================== * SOURCE FILE VERSION INFORMATION ==================================================================================================*/ #define LPI2C_IP_CALLBACKS_VENDOR_ID 43 #define LPI2C_IP_CALLBACKS_AR_RELEASE_MAJOR_VERSION 4 #define LPI2C_IP_CALLBACKS_AR_RELEASE_MINOR_VERSION 4 #define LPI2C_IP_CALLBACKS_AR_RELEASE_REVISION_VERSION 0 #define LPI2C_IP_CALLBACKS_SW_MAJOR_VERSION 0 #define LPI2C_IP_CALLBACKS_SW_MINOR_VERSION 9 #define LPI2C_IP_CALLBACKS_SW_PATCH_VERSION 0 /*================================================================================================== * FILE VERSION CHECKS ==================================================================================================*/ /* Checks against LPI2C_Ip_Cfg.h */ #if ( LPI2C_IP_CALLBACKS_VENDOR_ID != LPI2C_IP_CFG_VENDOR_ID) #error "LPI2C_Ip.h and LPI2C_Ip_Cfg.h have different vendor ids" #endif #if (( LPI2C_IP_CALLBACKS_AR_RELEASE_MAJOR_VERSION != LPI2C_IP_CFG_AR_RELEASE_MAJOR_VERSION) || \ ( LPI2C_IP_CALLBACKS_AR_RELEASE_MINOR_VERSION != LPI2C_IP_CFG_AR_RELEASE_MINOR_VERSION) || \ ( LPI2C_IP_CALLBACKS_AR_RELEASE_REVISION_VERSION != LPI2C_IP_CFG_AR_RELEASE_REVISION_VERSION)) #error "AUTOSAR Version Numbers of I2c_Ip_Callbacks.h and LPI2C_Ip_Cfg.h are different" #endif #if (( LPI2C_IP_CALLBACKS_SW_MAJOR_VERSION != LPI2C_IP_CFG_SW_MAJOR_VERSION) || \ ( LPI2C_IP_CALLBACKS_SW_MINOR_VERSION != LPI2C_IP_CFG_SW_MINOR_VERSION) || \ ( LPI2C_IP_CALLBACKS_SW_PATCH_VERSION != LPI2C_IP_CFG_SW_PATCH_VERSION)) #error "Software Version Numbers of I2c_Ip_Callbacks.h and LPI2C_Ip_Cfg.h are different" #endif /******************************************************************************* * Definitions ******************************************************************************/ /** * @brief Define the enum of the events which can trigger I2C slave callback * * This enum should include the events for all platforms * implements Lpi2c_Ip_SlaveEventType_enum */ typedef enum { #if (STD_ON == LPI2C_IP_EVENT_ERROR_DETECT) I2C_SLAVE_EVENT_ERROR_BIT = 0x00U, I2C_SLAVE_EVENT_UNDERRUN = 0x01U, I2C_SLAVE_EVENT_OVERRUN = 0x02U, #endif I2C_SLAVE_EVENT_RX_FULL = 0x03U, I2C_SLAVE_EVENT_TX_EMPTY = 0x04U, I2C_SLAVE_EVENT_TX_REQ = 0x05U, I2C_SLAVE_EVENT_RX_REQ = 0x06U, I2C_SLAVE_EVENT_STOP = 0x07U }Lpi2c_Ip_SlaveEventType; /** * @brief Define the enum of the events which can trigger I2C master callback * * This enum should include the events for all platforms * implements Lpi2c_Ip_MasterEventType_enum */ typedef enum { #if (STD_ON == LPI2C_IP_EVENT_ERROR_DETECT) I2C_MASTER_EVENT_NACK = 0x08U, I2C_MASTER_EVENT_ARBITRATION_LOST = 0x09U, I2C_MASTER_EVENT_ERROR_FIFO = 0x0AU, #endif I2C_MASTER_EVENT_END_TRANSFER = 0x0BU, I2C_MASTER_EVENT_PIN_LOW_TIMEOUT = 0x0CU }Lpi2c_Ip_MasterEventType; /* Callback for all peripherals which supports I2C features for slave mode */ /* implements Lpi2c_Ip_SlaveCallbackType_typedef */ typedef void (*Lpi2c_Ip_SlaveCallbackType)(Lpi2c_Ip_SlaveEventType event, uint8 userData); /* Callback for all peripherals which supports I2C features for master mode */ /* implements Lpi2c_Ip_MasterCallbackType_typedef */ typedef void (*Lpi2c_Ip_MasterCallbackType)(Lpi2c_Ip_MasterEventType event, uint8 userData); #endif /* LPI2C_IP_CALLBACKS_H_ */ /** @}*/ /******************************************************************************* * EOF ******************************************************************************/