43 #include "gpio_driver.h" 64 *(pWBuff) = offset & 0x7F;
65 *(pWBuff + 1) = offset & 0x80;
81 *(pWBuff) = offset | 0x80;
82 *(pWBuff + 1) = offset & 0x80;
85 memcpy(pWBuff + FXOS8700_SPI_CMD_LEN, pWritebuffer, size);
101 if ((pSensorHandle == NULL) || (pBus == NULL) || (pSlaveSelect == NULL))
122 pGPIODriver->
set_pin(pSlaveSelect);
126 pGPIODriver->
clr_pin(pSlaveSelect);
132 if ((ARM_DRIVER_OK != status) || (whoAmi != reg))
155 if ((pSensorHandle == NULL) || (pRegWriteList == NULL))
170 if (ARM_DRIVER_OK != status)
178 if (ARM_DRIVER_OK != status)
187 if (ARM_DRIVER_OK != status)
202 if ((pSensorHandle == NULL) || (pReadList == NULL) || (pBuffer == NULL))
216 if (ARM_DRIVER_OK != status)
226 if (pSensorHandle == NULL)
254 if ((pSensorHandle == NULL) || (pBus == NULL))
265 if ((ARM_DRIVER_OK != status) || (whoAmi != reg))
291 if ((pSensorHandle == NULL) || (pRegWriteList == NULL))
306 if (ARM_DRIVER_OK != status)
314 if (ARM_DRIVER_OK != status)
323 if (ARM_DRIVER_OK != status)
338 if ((pSensorHandle == NULL) || (pReadList == NULL) || (pBuffer == NULL))
352 if (ARM_DRIVER_OK != status)
362 if (pSensorHandle == NULL)
#define FXOS8700_CTRL_REG1_ACTIVE_STANDBY_MODE
fpSpiWritePreprocessFn_t pWritePreprocessFN
The fxos8700_drv.h file describes the fxos8700 driver interface and structures.
registeridlefunction_t idleFunction
#define FXOS8700_SPI_CMD_LEN
The size of the Sensor specific SPI Header.
void FXOS8700_I2C_SetIdleTask(fxos8700_i2c_sensorhandle_t *pSensorHandle, registeridlefunction_t idleTask, void *userParam)
: The interface function to set the I2C Idle Task.
registerDeviceInfo_t deviceInfo
void(* pin_init)(pinID_t aPinId, gpio_direction_t dir, void *apPinConfig, gpio_isr_handler_t aIsrHandler, void *apUserData)
ARM_DRIVER_SPI * pCommDrv
uint8_t fxos8700_spiRead_DataBuffer[FXOS8700_SPI_MAX_MSG_SIZE]
void FXOS8700_SPI_ReadPreprocess(void *pCmdOut, uint32_t offset, uint32_t size)
The SPI Read Pre-Process function to generate Sensor specific SPI Message Header. ...
ARM_DRIVER_I2C * pCommDrv
#define FXOS8700_SS_ACTIVE_VALUE
Is the Slave Select Pin Active Low or High.
int32_t Sensor_I2C_Read(ARM_DRIVER_I2C *pCommDrv, registerDeviceInfo_t *devInfo, uint16_t slaveAddress, const registerreadlist_t *pReadList, uint8_t *pOutBuffer)
Read register data from a sensor.
void(* registeridlefunction_t)(void *userParam)
This is the register idle function type.
int32_t FXOS8700_SPI_Deinit(fxos8700_spi_sensorhandle_t *pSensorHandle)
The interface function to De Initialize sensor..
This defines the sensor specific information for I2C.
uint8_t FXOS8700_WHO_AM_I_t
uint8_t fxos8700_spiWrite_CmdDataBuffer[FXOS8700_SPI_MAX_MSG_SIZE]
void FXOS8700_SPI_SetIdleTask(fxos8700_spi_sensorhandle_t *pSensorHandle, registeridlefunction_t idleTask, void *userParam)
: The interface function to set the SPI Idle Task.
int32_t FXOS8700_I2C_Deinit(fxos8700_i2c_sensorhandle_t *pSensorHandle)
The interface function to De Initialize sensor..
spiSlaveSpecificParams_t slaveParams
#define FXOS8700_SPI_MAX_MSG_SIZE
The MAX size of SPI message.
void(* set_pin)(pinID_t aPinId)
void(* clr_pin)(pinID_t aPinId)
#define FXOS8700_CTRL_REG1_ACTIVE_ACTIVE_MODE
int32_t FXOS8700_I2C_Initialize(fxos8700_i2c_sensorhandle_t *pSensorHandle, ARM_DRIVER_I2C *pBus, uint8_t index, uint16_t sAddress, uint8_t whoAmi)
The interface function to initialize the sensor.
The SPI Slave Transfer Command Params SDK2.0 Driver.
uint8_t fxos8700_spiRead_CmdBuffer[FXOS8700_SPI_MAX_MSG_SIZE]
#define SPI_SS_ACTIVE_LOW
int32_t FXOS8700_I2C_ReadData(fxos8700_i2c_sensorhandle_t *pSensorHandle, const registerreadlist_t *pReadList, uint8_t *pBuffer)
The interface function to read the sensor data.
registerDeviceInfo_t deviceInfo
#define FXOS8700_CTRL_REG2_RST_MASK
GENERIC_DRIVER_GPIO * pGPIODriver
int32_t FXOS8700_SPI_ReadData(fxos8700_spi_sensorhandle_t *pSensorHandle, const registerreadlist_t *pReadList, uint8_t *pBuffer)
The interface function to read the sensor data.
int32_t Sensor_SPI_Write(ARM_DRIVER_SPI *pCommDrv, registerDeviceInfo_t *devInfo, void *pWriteParams, const registerwritelist_t *pRegWriteList)
Write register data to a sensor.
GENERIC_DRIVER_GPIO Driver_GPIO_KSDK
int32_t FXOS8700_I2C_Configure(fxos8700_i2c_sensorhandle_t *pSensorHandle, const registerwritelist_t *pRegWriteList)
The interface function to configure he sensor.
Access structure of the GPIO Driver.
int32_t Register_SPI_Read(ARM_DRIVER_SPI *pCommDrv, registerDeviceInfo_t *devInfo, void *pReadParams, uint8_t offset, uint8_t length, uint8_t *pOutBuffer)
The interface function to read a sensor register.
int32_t Register_I2C_Read(ARM_DRIVER_I2C *pCommDrv, registerDeviceInfo_t *devInfo, uint16_t slaveAddress, uint8_t offset, uint8_t length, uint8_t *pOutBuffer)
The interface function to read a sensor register.
void FXOS8700_SPI_WritePreprocess(void *pCmdOut, uint32_t offset, uint32_t size, void *pWritebuffer)
The SPI Write Pre-Process function to generate Sensor specific SPI Message Header.
int32_t Register_I2C_Write(ARM_DRIVER_I2C *pCommDrv, registerDeviceInfo_t *devInfo, uint16_t slaveAddress, uint8_t offset, uint8_t value, uint8_t mask, bool repeatedStart)
The interface function to write a sensor register.
int32_t FXOS8700_SPI_Initialize(fxos8700_spi_sensorhandle_t *pSensorHandle, ARM_DRIVER_SPI *pBus, uint8_t index, void *pSlaveSelect, uint8_t whoAmi)
The interface function to initialize the sensor.
This defines the sensor specific information for SPI.
This structure defines the Write command List.
This structure defines the Read command List.
#define FXOS8700_CTRL_REG1_ACTIVE_MASK
int32_t Sensor_SPI_Read(ARM_DRIVER_SPI *pCommDrv, registerDeviceInfo_t *devInfo, void *pReadParams, const registerreadlist_t *pReadList, uint8_t *pOutBuffer)
Read register data from a sensor.
#define FXOS8700_CTRL_REG2_RST_EN
int32_t FXOS8700_SPI_Configure(fxos8700_spi_sensorhandle_t *pSensorHandle, const registerwritelist_t *pRegWriteList)
The interface function to configure he sensor.
fpSpiReadPreprocessFn_t pReadPreprocessFN
int32_t Register_SPI_Write(ARM_DRIVER_SPI *pCommDrv, registerDeviceInfo_t *devInfo, void *pWriteParams, uint8_t offset, uint8_t value, uint8_t mask)
The interface function to write a sensor register.
int32_t Sensor_I2C_Write(ARM_DRIVER_I2C *pCommDrv, registerDeviceInfo_t *devInfo, uint16_t slaveAddress, const registerwritelist_t *pRegWriteList)
Write register data to a sensor.