aboutsummaryrefslogtreecommitdiff
path: root/thirdparty/nRF5_SDK_15.0.0_a53641a/external/infineon/include/ifx_i2c_physical_layer.h
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/nRF5_SDK_15.0.0_a53641a/external/infineon/include/ifx_i2c_physical_layer.h')
-rw-r--r--thirdparty/nRF5_SDK_15.0.0_a53641a/external/infineon/include/ifx_i2c_physical_layer.h110
1 files changed, 110 insertions, 0 deletions
diff --git a/thirdparty/nRF5_SDK_15.0.0_a53641a/external/infineon/include/ifx_i2c_physical_layer.h b/thirdparty/nRF5_SDK_15.0.0_a53641a/external/infineon/include/ifx_i2c_physical_layer.h
new file mode 100644
index 0000000..18366f7
--- /dev/null
+++ b/thirdparty/nRF5_SDK_15.0.0_a53641a/external/infineon/include/ifx_i2c_physical_layer.h
@@ -0,0 +1,110 @@
+/**
+* \copyright
+* Copyright (c) 2018, Infineon Technologies AG
+* All rights reserved.
+*
+* This software is provided with terms and conditions as specified in OPTIGA(TM) Trust X Evaluation Kit License Agreement.
+* \endcopyright
+*
+* \author Infineon AG
+*
+* \file ifx_i2c_physical_layer.h
+*
+* \brief This file defines the API prototype for physical layer of the Infineon I2C Protocol Stack library.
+*
+* \addtogroup grIFXI2C
+* @{
+*/
+
+#ifndef _IFX_I2C_PHYSICAL_LAYER_H_
+#define _IFX_I2C_PHYSICAL_LAYER_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/***********************************************************************************************************************
+* HEADER FILES
+**********************************************************************************************************************/
+#include "ifx_i2c_config.h"
+
+/***********************************************************************************************************************
+* MACROS
+**********************************************************************************************************************/
+/***********************************************************************************************************************
+* ENUMS
+**********************************************************************************************************************/
+/***********************************************************************************************************************
+* DATA STRUCTURES
+***********************************************************************************************************************/
+/***********************************************************************************************************************
+* API PROTOTYPES
+**********************************************************************************************************************/
+/**
+ * @brief Function for initializing the module.
+ *
+ * Function initializes and enables the module and registers
+ * an event handler to receive events from this module.
+ * @attention This function must be called before using the module.
+ *
+ * @param[in,out] p_ctx Pointer to ifx i2c context.
+ * @param[in] handler Function pointer to the event handler of the upper layer.
+ *
+ * @retval IFX_I2C_STACK_SUCCESS If initialization was successful.
+ * @retval IFX_I2C_STACK_ERROR If the module is already initialized.
+ */
+host_lib_status_t ifx_i2c_pl_init(ifx_i2c_context_t *p_ctx,ifx_i2c_event_handler_t handler);
+
+/**
+ * @brief Function for sending a frame.
+ *
+ * Asynchronous function to send a frame. The function returns immediately.
+ * One of the following events is propagated to the event handler registered
+ * with @ref ifx_i2c_pl_init
+ *
+ * @param[in,out] p_ctx Pointer to ifx i2c context.
+ * @param[in] p_frame Buffer containing the frame.
+ * @param[in] frame_len Frame length.
+ *
+ * @retval IFX_I2C_STACK_SUCCESS If function was successful.
+ * @retval IFX_I2C_STACK_ERROR If the module is busy.
+ */
+host_lib_status_t ifx_i2c_pl_send_frame(ifx_i2c_context_t *p_ctx,uint8_t* p_frame, uint16_t frame_len);
+
+/**
+ * @brief Function for receiving a frame.
+ *
+ * Asynchronous function to receive a frame. The function returns immediately.
+ * One of the following events is propagated to the event handler registered
+ * with @ref ifx_i2c_pl_init
+ *
+ * @param[in] p_ctx Pointer to ifx i2c context.
+ *
+ * @retval IFX_I2C_STACK_SUCCESS If function was successful.
+ * @retval IFX_I2C_STACK_ERROR If the module is busy.
+ */
+host_lib_status_t ifx_i2c_pl_receive_frame(ifx_i2c_context_t *p_ctx);
+
+
+/**
+ * @brief Function for setting slave address.
+ *
+ * Synchronous function to set slave address.
+ *
+ * @param[in] p_ctx Pointer to ifx i2c context.
+ * @param[in] slave_address Holds new slave address[7 Bit] to be set.
+ * @param[in] storage_type 0 - To set the Slave address until next reset.<br>
+ * Non-zero - To set the slave address to persistent memory.
+ *
+ * @retval IFX_I2C_STACK_SUCCESS If function was successful.
+ * @retval IFX_I2C_STACK_ERROR If setting slave address fails.
+ */
+host_lib_status_t ifx_i2c_pl_write_slave_address(ifx_i2c_context_t *p_ctx, uint8_t slave_address, uint8_t storage_type);
+/**
+ * @}
+ **/
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* _IFX_I2C_PHYSICAL_LAYER_H_ */