1 /* 2 * Copyright 2020, 2024 NXP 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef _I3C_COMPONENT_ADAPTER_H_ 8 #define _I3C_COMPONENT_ADAPTER_H_ 9 10 #include "fsl_component_i3c.h" 11 #include "fsl_i3c.h" 12 /*! 13 * @addtogroup I3C_Bus_Component 14 * @{ 15 */ 16 17 /******************************************************************************* 18 * Definitions 19 ******************************************************************************/ 20 21 /*! @brief I3C master transfer mode. */ 22 typedef enum _i3c_master_transfer_mode 23 { 24 kI3C_MasterTransferInterruptMode = 0, /*!< I3C master do transfer in interrupt mode. */ 25 kI3C_MasterTransferInterruptDMAMode, /*!< I3C master do transfer in DMA mode. */ 26 } i3c_master_transfer_mode_t; 27 28 /*! @brief I3C master adapter internal resource*/ 29 typedef struct _i3c_master_adapter_resource 30 { 31 I3C_Type *base; /*!< I3C master base address. */ 32 uint32_t clockInHz; /*!< I3C module clock frequency. */ 33 #if !(defined(FSL_FEATURE_I3C_HAS_NO_SCONFIG_BAMATCH) && FSL_FEATURE_I3C_HAS_NO_SCONFIG_BAMATCH) 34 uint32_t slowClockInHz; /*!< I3C slow clock frequency. */ 35 #endif 36 i3c_master_transfer_mode_t transMode; /*!< I3C master transfer mode. */ 37 } i3c_master_adapter_resource_t; 38 39 /*! @brief I3C device adapter internal resource*/ 40 typedef struct _i3c_device_adapter_resource 41 { 42 I3C_Type *base; /*!< I3C device base address. */ 43 uint32_t clockInHz; /*!< I3C device clock frequency. */ 44 i3c_slave_transfer_callback_t callback; /*!< I3C device transfer callback function. */ 45 } i3c_device_adapter_resource_t; 46 47 /******************************************************************************* 48 * Variables 49 ******************************************************************************/ 50 /*! @brief I3C device master operation pointers structure */ 51 extern const i3c_device_hw_ops_t master_ops; 52 /*! @brief I3C device slave operation pointers structure */ 53 extern const i3c_device_hw_ops_t slave_ops; 54 55 #endif 56