23 #define I2C_MASTER_ADAPTER_LOCK_DEFAULT (0)
45 MUTEX_ATTR_STRUCT mutexattr;
59 if (MQX_OK == _mutatr_init(&mutexattr)) {
60 _mutatr_set_sched_protocol(&mutexattr, MUTEX_PRIO_INHERIT);
65 if(MQX_OK != _mutex_init(apBusHandle->
pLock, &mutexattr)){
73 apBusHandle->
pHandle = pBusHandle;
88 if((apBusHandle == NULL) || (apBusConfig == NULL)){
97 ret = bus_lock(apBusHandle, pBusConfig->
timeout);
104 bus_unlock(apBusHandle);
115 if(apBusHandle == NULL){
130 if((apBusHandle == NULL) || (apBusConfig == NULL)){
147 if(apBusHandle == NULL){
164 if(apBusHandle == NULL){
168 ret = bus_unlock(apBusHandle);
180 if(apBusHandle == NULL){
189 bus_unlock(apBusHandle);
201 if(apBusHandle == NULL){
209 bus_unlock(apBusHandle);
225 if((apBusHandle == NULL) || (apEndpointHandle == NULL)){
242 bus_unlock(apBusHandle);
245 pEndpoint->
device = *pDevice;
247 *apEndpointHandle = pEndpoint;
264 if(apEndpoint == NULL){
267 _lwmem_free(apEndpoint);
279 if((NULL == apEndpointHandle) || (NULL == pWriteBuffer)){
282 if(buffsize < nByteWrite){
315 if((NULL == apEndpointHandle) || (NULL == pReadBuffer)){
318 if(buffsize < nByteRead){
352 if (NULL == apBusHandle->
pLock){
358 if(MQX_OK != _mutex_lock ((MUTEX_STRUCT*)apBusHandle->
pLock)){
362 apBusHandle->
nLock++;
376 if(NULL == apBusHandle->
pLock){
380 if(0 == apBusHandle->
nLock){
384 _mutex_unlock((MUTEX_STRUCT*)apBusHandle->
pLock);
ISF board support header files.
unsigned char uint8
This defines uint8 as unsigned char.
fsl_i2c_master_driver.h defines structures and types for the i2c master driver.
isf_status_t i2c_master_adapter_read(void *apEndpointHandle, int32 offset, void *pReadBuffer, uint32 buffsize, uint32 nByteRead, i2c_readFlags_t aFlags)
This function reads from a i2c device.
isf_status_t i2c_master_adapter_release_lock(busHandle_t *apBusHandle)
This function releases exclusive bus access.
isf_status_t i2c_master_adapter_init(comm_Id_t aBusId, busHandle_t *apBusHandle)
This function initializes a i2c bus.
This structure defines the data bus handle.
isf_status_t i2c_master_adapter_configure(busHandle_t *apBusHandle, void *apBusConfig)
This function reconfigures an already initialized bus.
isf_status_t i2c_master_adapter_acquire_lock(busHandle_t *apBusHandle, isf_duration_t aTimeout)
This function locks the bus for exclusive access.
Information necessary to communicate with an I2C slave device.
uint32 comm_Id_t
This type is for a numeric channel identifier- index into an array of channels in the system...
i2c_Master_BusConfig_t busConfig
This structure defines a device endpoint encapsulation for i2c handler.
isf_status_t i2c_master_adapter_start(busHandle_t *apBusHandle)
This function starts a bus.
unsigned long uint32
This defines uint32 as unsigned long.
i2c_status_t i2c_master_configure_bus(i2c_master_t *master, const i2c_device_t *device)
Configure the I2C bus to access a device.
MUTEX_STRUCT i2c_Master_mutexHandler[]
#define I2C_MASTER_ADAPTER_LOCK_DEFAULT
isf_protocol_adapter.h defines the general interface definition for the protocol adapter.
void i2c_hal_disable(uint32 instance)
This function disables the HAL.
isf_status_t i2c_master_adapter_release_endpoint(i2c_Endpoint_t *apEndpoint)
This function closes a particular endpoint.
The isf_util.h file contains the utility method declarations and macros.
isf_i2c_master_adapter.h defines the API definitions and types for the i2c master protocol adapter...
This structure is a declaration of a BusHandle type.
comm_Flags_t i2c_readFlags_t
isf_status_t i2c_master_adapter_write(void *apEndpointHandle, int32 offset, void *pWriteBuffer, uint32 buffsize, uint32 nByteWrite, i2c_writeFlags_t aFlags)
This function writes to a i2c device.
isf_status_t i2c_master_adapter_stop(busHandle_t *apBusHandle)
This function stops the given i2c bus.
comm_State_t i2c_master_adapter_get_state(busHandle_t *apBusHandle)
This function returns the current bus state.
uint32 isf_duration_t
ISF time duration in microseconds.
long int32
This defines int32 as long.
i2c_Master_busHandle_t i2c_master_busHandle[]
Main ISF header file. Contains code common to all ISF components.
void i2c_master_init(uint32_t instance, i2c_master_t *master)
Initialize the I2C master mode driver.
isf_status_t i2c_master_adapter_get_endpoint(busHandle_t *apBusHandle, void *apDevice, void **apEndpointHandle)
This function creates a endpoint for a device at a specified bus address.
i2c_status_t i2c_master_transfer(i2c_master_t *master, const i2c_device_t *device, i2c_direction_t direction, bool stopAfterTransfer, uint32_t subaddress, size_t subaddressLength, uint8_t *data, size_t dataLength, size_t *actualLengthTransferred, uint32_t timeout_ms)
Perform a blocking read or write transaction on the I2C bus.
int32 isf_status_t
ISF return status type.
uint32_t lastBaudRate_kbps
enum comm_State_vals comm_State_t
This enum holds an enumerated value describing the state of a channel.
#define INVALID_OFFSET
This macro defines the invalid offset for the read and write functions.
comm_Flags_t i2c_writeFlags_t
isf_devmsg.h defines the API definitions and types for the Intelligent Sensing (ISF) Device Messaging...
isf_status_t i2c_master_adapter_get_config(busHandle_t *apBusHandle, void *apBusConfig)
This function returns the current bus configuration.
void i2c_hal_enable(uint32 instance)
This function enables the HAL.