include: nuttx: sensors: nxstyle fixes

Fix nxstyle violations for headers

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
This commit is contained in:
Alin Jerpelea 2021-01-25 10:51:56 +01:00 committed by Xiang Xiao
parent 4c2920e760
commit 0157f9cc6d
42 changed files with 666 additions and 517 deletions

View file

@ -1,4 +1,4 @@
/********************************************************************************************
/****************************************************************************
* include/nuttx/input/adxl345.h
*
* Copyright (C) 2014-2015 Gregory Nutt. All rights reserved.
@ -31,24 +31,26 @@
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
********************************************************************************************/
****************************************************************************/
#ifndef __INCLUDE_NUTTX_INPUT_ADXL345_H
#define __INCLUDE_NUTTX_INPUT_ADXL345_H
/********************************************************************************************
/****************************************************************************
* Included Files
********************************************************************************************/
****************************************************************************/
#include <nuttx/config.h>
#include <nuttx/irq.h>
#if defined(CONFIG_SENSORS_ADXL345)
/********************************************************************************************
/****************************************************************************
* Pre-processor Definitions
********************************************************************************************/
/* Configuration ****************************************************************************/
****************************************************************************/
/* Configuration ************************************************************/
/* Prerequisites:
*
* CONFIG_SCHED_WORKQUEUE - Work queue support is required
@ -64,15 +66,16 @@
* going high, it will start high and will go low when an interrupt
* is fired. Default: Active high/rising edge.
* CONFIG_ADXL345_REGDEBUG
* Enable very low register-level debug output. Requires CONFIG_DEBUG_FEATURES.
* Enable very low register-level debug output.
* Requires CONFIG_DEBUG_FEATURES.
*/
#ifndef CONFIG_SCHED_WORKQUEUE
# error "Work queue support required. CONFIG_SCHED_WORKQUEUE must be selected."
#endif
/* The ADXL345 interfaces with the target CPU via a I2C or SPI interface. The pin IN_1
* allows the selection of interface protocol at reset state.
/* The ADXL345 interfaces with the target CPU via a I2C or SPI interface.
* The pin IN_1 allows the selection of interface protocol at reset state.
*/
#if !defined(CONFIG_ADXL345_SPI) && !defined(CONFIG_ADXL345_I2C)
@ -93,9 +96,10 @@
# endif
#endif
/* I2C **************************************************************************************/
/* ADXL345 Address: The ADXL345 may have 7-bit address 0x41 or 0x44, depending upon the
* state of the ADDR0 pin.
/* I2C **********************************************************************/
/* ADXL345 Address: The ADXL345 may have 7-bit address 0x41 or 0x44,
* depending upon the state of the ADDR0 pin.
*/
#define ADXL345_I2C_ADDRESS_MASK (0x78) /* Bits 3-7: Invariant part of ADXL345 address */
@ -109,7 +113,8 @@
#define ADXL345_I2C_MAXFREQUENCY 400000 /* 400KHz */
/* SPI **************************************************************************************/
/* SPI **********************************************************************/
/* The device always operates in mode 0 */
#define ADXL345_SPI_MODE SPIDEV_MODE0 /* Mode 0 */
@ -118,11 +123,12 @@
#define ADXL345_SPI_MAXFREQUENCY 500000 /* 5MHz */
/* ADXL345 Registers ************************************************************************/
/* ADXL345 Registers ********************************************************/
/* Register Addresses */
#define ADXL345_DEVID 0x00 /* Device identification (8-bit) */
/* 0x01 to 0x1C Reserved*/
/* 0x01 to 0x1C Reserved */
#define ADXL345_THRESH_TAP 0x1d /* Tap threshold */
#define ADXL345_OFSX 0x1e /* X-axis offset */
#define ADXL345_OFSY 0x1f /* Y-axis offset */
@ -189,9 +195,9 @@
/* Register 0x2C - BW_RATE */
#define BWR_RATE_SHIFT 0 /* Bit 0-3: Rate bits: up to 3200Hz output data rate */
#define BWR_RATE_SHIFT 0 /* Bit 0-3: Rate bits: up to 3200Hz output data rate */
#define BWR_RATE_MASK (15 << RATE_SHIFT) /* Bit 0: Master interrupt enable */
#define BWR_LOW_POWER (1 << 4) /* Bit 4: Set low power operation */
#define BWR_LOW_POWER (1 << 4) /* Bit 4: Set low power operation */
/* Register 0x2d - POWER_CTL */
@ -271,23 +277,27 @@
#define FIFO_STATUS_ENTRIES_MASK (63 << FIFO_STATUS_ENTRIES_SHIFT)
#define FIFO_STATUS_TRIG (1 << 7) /* Bit 7: A 1 reports a trigger event occurred, 0 means no event */
/********************************************************************************************
/****************************************************************************
* Public Types
********************************************************************************************/
****************************************************************************/
/* Form of the GPIO "interrupt handler" callback. Callbacks do not occur from an interrupt
* handler but rather from the context of the worker thread with interrupts enabled.
/* Form of the GPIO "interrupt handler" callback.
* Callbacks do not occur from an interrupt handler but rather from the
* context of the worker thread with interrupts enabled.
*/
typedef CODE void (*adxl345_handler_t)(FAR struct adxl345_config_s *config, FAR void *arg);
typedef CODE void (*adxl345_handler_t)(FAR struct adxl345_config_s *config,
FAR void *arg);
/* A reference to a structure of this type must be passed to the ADXL345 driver when the
* driver is instantiated. This structure provides information about the configuration of the
* ADXL345 and provides some board-specific hooks.
/* A reference to a structure of this type must be passed to the ADXL345
* driver when the driver is instantiated.
* This structure provides information about the configuration of the ADXL345
* and provides some board-specific hooks.
*
* Memory for this structure is provided by the caller. It is not copied by the driver
* and is presumed to persist while the driver is active. The memory must be writeable
* because, under certain circumstances, the driver may modify the frequency.
* Memory for this structure is provided by the caller.
* It is not copied by the driver and is presumed to persist while the driver
* is active. The memory must be writeable because, under certain
* circumstances, the driver may modify the frequency.
*/
struct adxl345_config_s
@ -308,7 +318,8 @@ struct adxl345_config_s
* clear - Acknowledge/clear any pending GPIO interrupt
*/
int (*attach)(FAR struct adxl345_config_s *state, adxl345_handler_t handler,
int (*attach)(FAR struct adxl345_config_s *state,
adxl345_handler_t handler,
FAR void *arg);
void (*enable)(FAR struct adxl345_config_s *state, bool enable);
void (*clear)(FAR struct adxl345_config_s *state);
@ -319,9 +330,9 @@ typedef FAR void *ADXL345_HANDLE;
struct i2c_master_s;
struct spi_dev_s;
/********************************************************************************************
/****************************************************************************
* Public Function Prototypes
********************************************************************************************/
****************************************************************************/
#ifdef __cplusplus
#define EXTERN extern "C"
@ -331,22 +342,23 @@ extern "C"
#define EXTERN extern
#endif
/********************************************************************************************
/****************************************************************************
* Name: adxl345_instantiate
*
* Description:
* Instantiate and configure the ADXL345 device driver to use the provided I2C or SPI
* device instance.
* Instantiate and configure the ADXL345 device driver to use the provided
* I2C or SPI device instance.
*
* Input Parameters:
* dev - An I2C or SPI driver instance
* config - Persistent board configuration data
*
* Returned Value:
* A non-zero handle is returned on success. This handle may then be used to configure
* the ADXL345 driver as necessary. A NULL handle value is returned on failure.
* A non-zero handle is returned on success.
* This handle may then be used to configure the ADXL345 driver as
* necessary. A NULL handle value is returned on failure.
*
********************************************************************************************/
****************************************************************************/
#ifdef CONFIG_ADXL345_SPI
ADXL345_HANDLE adxl345_instantiate(FAR struct spi_dev_s *dev,
@ -356,7 +368,7 @@ ADXL345_HANDLE adxl345_instantiate(FAR struct i2c_master_s *dev,
FAR struct adxl345_config_s *config);
#endif
/********************************************************************************************
/****************************************************************************
* Name: adxl345_register
*
* Description:
@ -368,10 +380,10 @@ ADXL345_HANDLE adxl345_instantiate(FAR struct i2c_master_s *dev,
* minor - The input device minor number
*
* Returned Value:
* Zero is returned on success. Otherwise, a negated errno value is returned to indicate
* the nature of the failure.
* Zero is returned on success. Otherwise, a negated errno value is
* returned to indicate the nature of the failure.
*
********************************************************************************************/
****************************************************************************/
int adxl345_register(ADXL345_HANDLE handle, int minor);

View file

@ -36,11 +36,13 @@
#ifndef __INCLUDE_NUTTX_SENSORS_AK09912_H
#define __INCLUDE_NUTTX_SENSORS_AK09912_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#if defined(CONFIG_I2C) && (defined(CONFIG_SENSORS_AK09912) || defined (CONFIG_SENSORS_AK09912_SCU))
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/

View file

@ -36,6 +36,9 @@
#ifndef __INCLUDE_NUTTX_SENSORS_APDS9930_H
#define __INCLUDE_NUTTX_SENSORS_APDS9930_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#if defined(CONFIG_I2C) && (defined(CONFIG_SENSORS_APDS9930) || defined(CONFIG_SENSORS_APDS9930_SCU))

View file

@ -1,4 +1,4 @@
/********************************************************************************************
/****************************************************************************
* drivers/sensors/apds9960.h
*
* Copyright (C) 2017 Gregory Nutt. All rights reserved.
@ -31,7 +31,7 @@
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
********************************************************************************************/
****************************************************************************/
#ifndef __INCLUDE_NUTTX_SENSORS_APDS9960_H
#define __INCLUDE_NUTTX_SENSORS_APDS9960_H
@ -61,237 +61,247 @@
/* Registers mapping */
#define APDS9960_ENABLE 0x80 /* Power ON, Prox./ALS/Gest (Int.) Enable */
#define APDS9960_ATIME 0x82 /* ALS ADC Integration Time */
#define APDS9960_WTIME 0x83 /* Wait Time */
#define APDS9960_AILTL 0x84 /* ALS Low Threshold, lower byte */
#define APDS9960_AILTH 0x85 /* ALS Low Threshold, higher byte */
#define APDS9960_AIHTL 0x86 /* ALS High Threshold, lower byte */
#define APDS9960_AIHTH 0x87 /* ALS High Threshold, higher byte */
#define APDS9960_PILT 0x89 /* Proximity Low Threshold */
#define APDS9960_PIHT 0x8b /* Proximity High Threshold */
#define APDS9960_PERS 0x8c /* Proximity Persistence */
#define APDS9960_CONFIG1 0x8d /* Wait Long Enable */
#define APDS9960_PPULSE 0x8e /* Proximity Pulse */
#define APDS9960_CONTROL 0x8f /* Gain and LED control */
#define APDS9960_CONFIG2 0x90 /* Saturation interrupt and LED Boost config. */
#define APDS9960_ID 0x92 /* APDS-9960 Identification register */
#define APDS9960_STATUS 0x93 /* Proximity Saturation/Inter/Valid status */
#define APDS9960_CDATAL 0x94 /* Clear Data, Low byte */
#define APDS9960_CDATAH 0x95 /* Clear Data, High byte */
#define APDS9960_RDATAL 0x96 /* Red Data, Low byte */
#define APDS9960_RDATAH 0x97 /* Red Data, High byte */
#define APDS9960_GDATAL 0x98 /* Green Data, Low byte */
#define APDS9960_GDATAH 0x99 /* Green Data, High byte */
#define APDS9960_BDATAL 0x9a /* Blue Data, Low byte */
#define APDS9960_BDATAH 0x9b /* Blue Data, High byte */
#define APDS9960_PDATA 0x9c /* Proximity data */
#define APDS9960_POFFSET_UR 0x9d /* Prox. offset UP/RIGHT */
#define APDS9960_POFFSET_DL 0x9e /* Prox. offset DOWN/LEFT */
#define APDS9960_CONFIG3 0x9f /* Prox. gain compensation U/D/L/R Mask config */
#define APDS9960_GPENTH 0xa0 /* Gesture Prox. Entry Threshold */
#define APDS9960_GEXTH 0xa1 /* Gesture Exit Threshold */
#define APDS9960_GCONFIG1 0xa2 /* Gesture Config1 register */
#define APDS9960_GCONFIG2 0xa3 /* Gesture Config2 register */
#define APDS9960_GOFFSET_U 0xa4 /* Gesture Offset Up */
#define APDS9960_GOFFSET_D 0xa5 /* Gesture Offset Down */
#define APDS9960_GPULSE 0xa6 /* Gesture Pulse config */
#define APDS9960_GOFFSET_L 0xa7 /* Gesture Offset Left */
#define APDS9960_GOFFSET_R 0xa9 /* Gesture Offset Up */
#define APDS9960_GCONFIG3 0xaa /* Gesture Config3 register */
#define APDS9960_GCONFIG4 0xab /* Gesture Config4 register */
#define APDS9960_GFLVL 0xae /* Gesture FIFO level */
#define APDS9960_GSTATUS 0xaf /* Gesture Status */
#define APDS9960_PICLEAR 0xe5 /* Proximity Interrupt Clear */
#define APDS9960_CICLEAR 0xe5 /* Clear Channel Interrupt Clear */
#define APDS9960_AICLEAR 0xe7 /* All Non-Gesture Interrupt Clear */
#define APDS9960_GFIFO_U 0xfc /* Gesture FIFO Data UP */
#define APDS9960_GFIFO_D 0xfd /* Gesture FIFO Data DOWN */
#define APDS9960_GFIFO_L 0xfe /* Gesture FIFO Data LEFT */
#define APDS9960_GFIFO_R 0xff /* Gesture FIFO Data RIGHT */
#define APDS9960_ENABLE 0x80 /* Power ON, Prox./ALS/Gest (Int.) Enable */
#define APDS9960_ATIME 0x82 /* ALS ADC Integration Time */
#define APDS9960_WTIME 0x83 /* Wait Time */
#define APDS9960_AILTL 0x84 /* ALS Low Threshold, lower byte */
#define APDS9960_AILTH 0x85 /* ALS Low Threshold, higher byte */
#define APDS9960_AIHTL 0x86 /* ALS High Threshold, lower byte */
#define APDS9960_AIHTH 0x87 /* ALS High Threshold, higher byte */
#define APDS9960_PILT 0x89 /* Proximity Low Threshold */
#define APDS9960_PIHT 0x8b /* Proximity High Threshold */
#define APDS9960_PERS 0x8c /* Proximity Persistence */
#define APDS9960_CONFIG1 0x8d /* Wait Long Enable */
#define APDS9960_PPULSE 0x8e /* Proximity Pulse */
#define APDS9960_CONTROL 0x8f /* Gain and LED control */
#define APDS9960_CONFIG2 0x90 /* Saturation interrupt and LED Boost config. */
#define APDS9960_ID 0x92 /* APDS-9960 Identification register */
#define APDS9960_STATUS 0x93 /* Proximity Saturation/Inter/Valid status */
#define APDS9960_CDATAL 0x94 /* Clear Data, Low byte */
#define APDS9960_CDATAH 0x95 /* Clear Data, High byte */
#define APDS9960_RDATAL 0x96 /* Red Data, Low byte */
#define APDS9960_RDATAH 0x97 /* Red Data, High byte */
#define APDS9960_GDATAL 0x98 /* Green Data, Low byte */
#define APDS9960_GDATAH 0x99 /* Green Data, High byte */
#define APDS9960_BDATAL 0x9a /* Blue Data, Low byte */
#define APDS9960_BDATAH 0x9b /* Blue Data, High byte */
#define APDS9960_PDATA 0x9c /* Proximity data */
#define APDS9960_POFFSET_UR 0x9d /* Prox. offset UP/RIGHT */
#define APDS9960_POFFSET_DL 0x9e /* Prox. offset DOWN/LEFT */
#define APDS9960_CONFIG3 0x9f /* Prox. gain compensation U/D/L/R Mask config */
#define APDS9960_GPENTH 0xa0 /* Gesture Prox. Entry Threshold */
#define APDS9960_GEXTH 0xa1 /* Gesture Exit Threshold */
#define APDS9960_GCONFIG1 0xa2 /* Gesture Config1 register */
#define APDS9960_GCONFIG2 0xa3 /* Gesture Config2 register */
#define APDS9960_GOFFSET_U 0xa4 /* Gesture Offset Up */
#define APDS9960_GOFFSET_D 0xa5 /* Gesture Offset Down */
#define APDS9960_GPULSE 0xa6 /* Gesture Pulse config */
#define APDS9960_GOFFSET_L 0xa7 /* Gesture Offset Left */
#define APDS9960_GOFFSET_R 0xa9 /* Gesture Offset Up */
#define APDS9960_GCONFIG3 0xaa /* Gesture Config3 register */
#define APDS9960_GCONFIG4 0xab /* Gesture Config4 register */
#define APDS9960_GFLVL 0xae /* Gesture FIFO level */
#define APDS9960_GSTATUS 0xaf /* Gesture Status */
#define APDS9960_PICLEAR 0xe5 /* Proximity Interrupt Clear */
#define APDS9960_CICLEAR 0xe5 /* Clear Channel Interrupt Clear */
#define APDS9960_AICLEAR 0xe7 /* All Non-Gesture Interrupt Clear */
#define APDS9960_GFIFO_U 0xfc /* Gesture FIFO Data UP */
#define APDS9960_GFIFO_D 0xfd /* Gesture FIFO Data DOWN */
#define APDS9960_GFIFO_L 0xfe /* Gesture FIFO Data LEFT */
#define APDS9960_GFIFO_R 0xff /* Gesture FIFO Data RIGHT */
/* ENABLE Register */
#define PON (1 << 0) /* Bit 0: Power ON */
#define AEN (1 << 1) /* Bit 1: ALS Enable ??? */
#define PEN (1 << 2) /* Bit 2: Prox. Enable */
#define WEN (1 << 3) /* Bit 3: Wait Enable */
#define AIEN (1 << 4) /* Bit 4: ALS Int. Enable */
#define PIEN (1 << 5) /* Bit 5: Prox. Int. Enable */
#define GEN (1 << 6) /* Bit 6: Gesture Enable */
#define PON (1 << 0) /* Bit 0: Power ON */
#define AEN (1 << 1) /* Bit 1: ALS Enable ??? */
#define PEN (1 << 2) /* Bit 2: Prox. Enable */
#define WEN (1 << 3) /* Bit 3: Wait Enable */
#define AIEN (1 << 4) /* Bit 4: ALS Int. Enable */
#define PIEN (1 << 5) /* Bit 5: Prox. Int. Enable */
#define GEN (1 << 6) /* Bit 6: Gesture Enable */
/* PERS Register */
#define APERS_SHIFT 0 /* Bits 0-3: ALS Int. Persistence */
#define APERS_MASK (0xf << PERS_APERS_SHIFT)
#define PPERS_SHIFT 4 /* Bits 4-7: Prox. Int. Persistence */
#define PPERS_MASK (0xf << PERS_APERS_SHIFT)
#define APERS_SHIFT 0 /* Bits 0-3: ALS Int. Persistence */
#define APERS_MASK (0xf << PERS_APERS_SHIFT)
#define PPERS_SHIFT 4 /* Bits 4-7: Prox. Int. Persistence */
#define PPERS_MASK (0xf << PERS_APERS_SHIFT)
/* CONFIG1 Register */
#define LOWPOW (1 << 0) /* Bit 0: Low Power (Gesture) */
#define WLONG (1 << 1) /* Bit 1: Wait Long Enable (ALS) */
#define LOWPOW (1 << 0) /* Bit 0: Low Power (Gesture) */
#define WLONG (1 << 1) /* Bit 1: Wait Long Enable (ALS) */
/* PPULSE Register */
#define PPULSE_SHIFT 0 /* Bits 0-5: Prox. Pulse Count (1 up to 64 pulses) */
#define PPULSE_MASK (0x3f << PPULSE_SHIFT)
# define PPULSE_NUM(n) ((n-1) << PPULSE_SHIFT)
#define PPLEN_SHIFT 6 /* Bits 6-7: Prox. Pulse Length */
#define PPLEN_MASK (3 << PPLEN_SHIFT)
# define PPLEN_4US (0 << PPLEN_SHIFT)
# define PPLEN_8US (1 << PPLEN_SHIFT)
# define PPLEN_16US (2 << PPLEN_SHIFT)
# define PPLEN_32US (3 << PPLEN_SHIFT)
#define PPULSE_SHIFT 0 /* Bits 0-5: Prox. Pulse Count (1 up to 64 pulses) */
#define PPULSE_MASK (0x3f << PPULSE_SHIFT)
#define PPULSE_NUM(n) ((n-1) << PPULSE_SHIFT)
#define PPLEN_SHIFT 6 /* Bits 6-7: Prox. Pulse Length */
#define PPLEN_MASK (3 << PPLEN_SHIFT)
#define PPLEN_4US (0 << PPLEN_SHIFT)
#define PPLEN_8US (1 << PPLEN_SHIFT)
#define PPLEN_16US (2 << PPLEN_SHIFT)
#define PPLEN_32US (3 << PPLEN_SHIFT)
/* CONTROL Register */
#define AGAIN_SHIFT 0 /* Bits 0-1: ALS Gain Control */
#define AGAIN_MASK (3 << AGAIN_SHIFT)
# define AGAIN_1X (0 << AGAIN_SHIFT)
# define AGAIN_2X (1 << AGAIN_SHIFT)
# define AGAIN_4X (2 << AGAIN_SHIFT)
# define AGAIN_8X (3 << AGAIN_SHIFT)
#define PGAIN_SHIFT 2 /* Bits 2-3: Proximity Gain Control */
#define PGAIN_MASK (3 << PGAIN_SHIFT)
# define PGAIN_1X (0 << PGAIN_SHIFT)
# define PGAIN_2X (1 << PGAIN_SHIFT)
# define PGAIN_4X (2 << PGAIN_SHIFT)
# define PGAIN_8X (3 << PGAIN_SHIFT)
#define LDRIVE_SHIFT 6 /* Bits 6-7: LED Drive Strength */
#define LDRIVE_MASK (3 << LDRIVE_SHIFT)
# define LDRIVE_100MA (0 << LDRIVE_SHIFT)
# define LDRIVE_50MA (1 << LDRIVE_SHIFT)
# define LDRIVE_25MA (2 << LDRIVE_SHIFT)
# define LDRIVE_12p5MA (3 << LDRIVE_SHIFT)
#define AGAIN_SHIFT 0 /* Bits 0-1: ALS Gain Control */
#define AGAIN_MASK (3 << AGAIN_SHIFT)
#define AGAIN_1X (0 << AGAIN_SHIFT)
#define AGAIN_2X (1 << AGAIN_SHIFT)
#define AGAIN_4X (2 << AGAIN_SHIFT)
#define AGAIN_8X (3 << AGAIN_SHIFT)
#define PGAIN_SHIFT 2 /* Bits 2-3: Proximity Gain Control */
#define PGAIN_MASK (3 << PGAIN_SHIFT)
#define PGAIN_1X (0 << PGAIN_SHIFT)
#define PGAIN_2X (1 << PGAIN_SHIFT)
#define PGAIN_4X (2 << PGAIN_SHIFT)
#define PGAIN_8X (3 << PGAIN_SHIFT)
#define LDRIVE_SHIFT 6 /* Bits 6-7: LED Drive Strength */
#define LDRIVE_MASK (3 << LDRIVE_SHIFT)
#define LDRIVE_100MA (0 << LDRIVE_SHIFT)
#define LDRIVE_50MA (1 << LDRIVE_SHIFT)
#define LDRIVE_25MA (2 << LDRIVE_SHIFT)
#define LDRIVE_12p5MA (3 << LDRIVE_SHIFT)
/* CONFIG2 Register */
#define LEDBOOST_SHIFT 4 /* Bits 4-5: Proximity/Gesture LED Boost */
#define LEDBOOST_MASK (3 << LEDBOOST_SHIFT)
# define LEDBOOST_100 (0 << LEDBOOST_SHIFT) /* Boost LED 100% */
# define LEDBOOST_150 (1 << LEDBOOST_SHIFT) /* Boost LED 150% */
# define LEDBOOST_200 (2 << LEDBOOST_SHIFT) /* Boost LED 200% */
# define LEDBOOST_300 (3 << LEDBOOST_SHIFT) /* Boost LED 300% */
#define CPSIEN (1 << 6) /* Bit 6: Clear diode Saturation Interrupt Enable */
#define PSIEN (1 << 7) /* Bit 7: Proximity Saturation Interrupt Enable */
#define LEDBOOST_SHIFT 4 /* Bits 4-5: Proximity/Gesture LED Boost */
#define LEDBOOST_MASK (3 << LEDBOOST_SHIFT)
#define LEDBOOST_100 (0 << LEDBOOST_SHIFT) /* Boost LED 100% */
#define LEDBOOST_150 (1 << LEDBOOST_SHIFT) /* Boost LED 150% */
#define LEDBOOST_200 (2 << LEDBOOST_SHIFT) /* Boost LED 200% */
#define LEDBOOST_300 (3 << LEDBOOST_SHIFT) /* Boost LED 300% */
#define CPSIEN (1 << 6) /* Bit 6: Clear diode Saturation Interrupt Enable */
#define PSIEN (1 << 7) /* Bit 7: Proximity Saturation Interrupt Enable */
/* STATUS Register */
#define AVALID (1 << 0) /* Bit 0: ALS Valid */
#define PVALID (1 << 1) /* Bit 1: Proximity Valid */
#define AINT (1 << 4) /* Bit 4: ALS Interrupt */
#define PINT (1 << 5) /* Bit 5: Proximity Interrupt */
#define PGSAT (1 << 6) /* Bit 6: Proximity Saturation */
#define CPSAT (1 << 7) /* Bit 7: ALS Interrupt */
#define AVALID (1 << 0) /* Bit 0: ALS Valid */
#define PVALID (1 << 1) /* Bit 1: Proximity Valid */
#define AINT (1 << 4) /* Bit 4: ALS Interrupt */
#define PINT (1 << 5) /* Bit 5: Proximity Interrupt */
#define PGSAT (1 << 6) /* Bit 6: Proximity Saturation */
#define CPSAT (1 << 7) /* Bit 7: ALS Interrupt */
/* CONFIG3 Register */
#define PMSK_R (1 << 0) /* Bit 0: Proximity Mask RIGHT Enable */
#define PMSK_L (1 << 1) /* Bit 1: Proximity Mask LEFT Enable */
#define PMSK_D (1 << 2) /* Bit 2: Proximity Mask DOWN Enable */
#define PMSK_U (1 << 3) /* Bit 3: Proximity Mask UP Enable */
#define PCMP (1 << 5) /* Bit 5: Proximity Gain Compensation Enable */
#define PMSK_R (1 << 0) /* Bit 0: Proximity Mask RIGHT Enable */
#define PMSK_L (1 << 1) /* Bit 1: Proximity Mask LEFT Enable */
#define PMSK_D (1 << 2) /* Bit 2: Proximity Mask DOWN Enable */
#define PMSK_U (1 << 3) /* Bit 3: Proximity Mask UP Enable */
#define PCMP (1 << 5) /* Bit 5: Proximity Gain Compensation Enable */
/* GCONFIG1 Register */
#define GEXPERS_SHIFT 0 /* Bits 0-1: Gesture Exit Persistence */
#define GEXPERS_MASK (3 << GEXPERS_SHIFT)
# define GEXPERS_1ST (0 << GEXPERS_SHIFT) /* 1st 'gesture end' exits */
# define GEXPERS_2ND (1 << GEXPERS_SHIFT) /* 2nd 'gesture end' exits */
# define GEXPERS_4TH (2 << GEXPERS_SHIFT) /* 4th 'gesture end' exits */
# define GEXPERS_7TH (3 << GEXPERS_SHIFT) /* 7th 'gesture end' exits */
#define GEXMSK_SHIFT 2 /* Bits 2-5: Gesture Exit Mask */
#define GEXMSK_MASK (0xf << GEXMSK_SHIFT)
#define GFIFOTH_SHIFT 6 /* Bits 6-7: Gesture FIFO Threshold */
#define GFIFOTH_MASK (3 << GFIFOTH_SHIFT)
# define GFIFOTH_1DS (0 << GFIFOTH_SHIFT) /* Interrupt after 1 dataset */
# define GFIFOTH_4DS (1 << GFIFOTH_SHIFT) /* Interrupt after 4 datasets */
# define GFIFOTH_8DS (2 << GFIFOTH_SHIFT) /* Interrupt after 8 datasets */
# define GFIFOTH_16DS (3 << GFIFOTH_SHIFT) /* Interrupt after 8 datasets */
#define GEXPERS_SHIFT 0 /* Bits 0-1: Gesture Exit Persistence */
#define GEXPERS_MASK (3 << GEXPERS_SHIFT)
#define GEXPERS_1ST (0 << GEXPERS_SHIFT) /* 1st 'gesture end' exits */
#define GEXPERS_2ND (1 << GEXPERS_SHIFT) /* 2nd 'gesture end' exits */
#define GEXPERS_4TH (2 << GEXPERS_SHIFT) /* 4th 'gesture end' exits */
#define GEXPERS_7TH (3 << GEXPERS_SHIFT) /* 7th 'gesture end' exits */
#define GEXMSK_SHIFT 2 /* Bits 2-5: Gesture Exit Mask */
#define GEXMSK_MASK (0xf << GEXMSK_SHIFT)
#define GFIFOTH_SHIFT 6 /* Bits 6-7: Gesture FIFO Threshold */
#define GFIFOTH_MASK (3 << GFIFOTH_SHIFT)
#define GFIFOTH_1DS (0 << GFIFOTH_SHIFT) /* Interrupt after 1 dataset */
#define GFIFOTH_4DS (1 << GFIFOTH_SHIFT) /* Interrupt after 4 datasets */
#define GFIFOTH_8DS (2 << GFIFOTH_SHIFT) /* Interrupt after 8 datasets */
#define GFIFOTH_16DS (3 << GFIFOTH_SHIFT) /* Interrupt after 8 datasets */
/* GCONFIG2 Register */
#define GWTIME_SHIFT 0 /* Bits 0-2: Gesture Wait Time */
#define GWTIME_MASK (7 << GWTIME_SHIFT)
# define GWTIME_0MS (0 << GWTIME_SHIFT)
# define GWTIME_2p8MS (1 << GWTIME_SHIFT)
# define GWTIME_5p6MS (2 << GWTIME_SHIFT)
# define GWTIME_8p4MS (3 << GWTIME_SHIFT)
# define GWTIME_14MS (4 << GWTIME_SHIFT)
# define GWTIME_22p4MS (5 << GWTIME_SHIFT)
# define GWTIME_30p8MS (6 << GWTIME_SHIFT)
# define GWTIME_39p2MS (7 << GWTIME_SHIFT)
#define GLDRIVE_SHIFT 3 /* Bits 3-4: Gesture LED Drive Strength */
#define GLDRIVE_MASK (3 << GLDRIVE_SHIFT)
# define GLDRIVE_100MA (0 << GLDRIVE_SHIFT)
# define GLDRIVE_50MA (1 << GLDRIVE_SHIFT)
# define GLDRIVE_25MA (2 << GLDRIVE_SHIFT)
# define GLDRIVE_12p5MA (3 << GLDRIVE_SHIFT)
#define GGAIN_SHIFT 5 /* Bits 5-6: Gesture Gain Control */
#define GGAIN_MASK (3 << GGAIN_SHIFT)
# define GGAIN_1X (0 << GGAIN_SHIFT)
# define GGAIN_2X (1 << GGAIN_SHIFT)
# define GGAIN_4X (2 << GGAIN_SHIFT)
# define GGAIN_8X (3 << GGAIN_SHIFT)
#define GWTIME_SHIFT 0 /* Bits 0-2: Gesture Wait Time */
#define GWTIME_MASK (7 << GWTIME_SHIFT)
#define GWTIME_0MS (0 << GWTIME_SHIFT)
#define GWTIME_2p8MS (1 << GWTIME_SHIFT)
#define GWTIME_5p6MS (2 << GWTIME_SHIFT)
#define GWTIME_8p4MS (3 << GWTIME_SHIFT)
#define GWTIME_14MS (4 << GWTIME_SHIFT)
#define GWTIME_22p4MS (5 << GWTIME_SHIFT)
#define GWTIME_30p8MS (6 << GWTIME_SHIFT)
#define GWTIME_39p2MS (7 << GWTIME_SHIFT)
#define GLDRIVE_SHIFT 3 /* Bits 3-4: Gesture LED Drive Strength */
#define GLDRIVE_MASK (3 << GLDRIVE_SHIFT)
#define GLDRIVE_100MA (0 << GLDRIVE_SHIFT)
#define GLDRIVE_50MA (1 << GLDRIVE_SHIFT)
#define GLDRIVE_25MA (2 << GLDRIVE_SHIFT)
#define GLDRIVE_12p5MA (3 << GLDRIVE_SHIFT)
#define GGAIN_SHIFT 5 /* Bits 5-6: Gesture Gain Control */
#define GGAIN_MASK (3 << GGAIN_SHIFT)
#define GGAIN_1X (0 << GGAIN_SHIFT)
#define GGAIN_2X (1 << GGAIN_SHIFT)
#define GGAIN_4X (2 << GGAIN_SHIFT)
#define GGAIN_8X (3 << GGAIN_SHIFT)
/* GPULSE Register */
#define GPULSE_SHIFT 0 /* Bits 0-5: Pulse Count */
#define GPULSE_MASK (0x3f << GPULSE_SHIFT)
# define GPULSE_NUM(n) ((n-1) << GPULSE_SHIFT)
#define GPLEN_SHIFT 6 /* Bit 6-7: Gesture Pulse Length */
#define GPLEN_MASK (3 << GPLEN_SHIFT)
# define GPLEN_4US (0 << GPLEN_SHIFT)
# define GPLEN_8US (1 << GPLEN_SHIFT)
# define GPLEN_16US (2 << GPLEN_SHIFT)
# define GPLEN_32US (3 << GPLEN_SHIFT)
#define GPULSE_SHIFT 0 /* Bits 0-5: Pulse Count */
#define GPULSE_MASK (0x3f << GPULSE_SHIFT)
#define GPULSE_NUM(n) ((n-1) << GPULSE_SHIFT)
#define GPLEN_SHIFT 6 /* Bit 6-7: Gesture Pulse Length */
#define GPLEN_MASK (3 << GPLEN_SHIFT)
#define GPLEN_4US (0 << GPLEN_SHIFT)
#define GPLEN_8US (1 << GPLEN_SHIFT)
#define GPLEN_16US (2 << GPLEN_SHIFT)
#define GPLEN_32US (3 << GPLEN_SHIFT)
/* GCONFIG3 Register */
#define GDIMS_SHIFT 0 /* Bits 0-1: Gesture Dimension Select */
#define GDIMS_MASK (3 << GDIMS_SHIFT)
#define GDIMS_SHIFT 0 /* Bits 0-1: Gesture Dimension Select */
#define GDIMS_MASK (3 << GDIMS_SHIFT)
/* GCONFIG4 Register */
#define GMODE (1 << 0) /* Bit 0: Gesture Mode */
#define GIEN (1 << 1) /* Bit 1: Gesture Interrupt Enable */
#define GMODE (1 << 0) /* Bit 0: Gesture Mode */
#define GIEN (1 << 1) /* Bit 1: Gesture Interrupt Enable */
/* GSTATUS Register */
#define GVALID (1 << 0) /* Bit 0: Gesture Valid */
#define GFOV (1 << 1) /* Bit 1: Gesture FIFO Overflow */
#define GVALID (1 << 0) /* Bit 0: Gesture Valid */
#define GFOV (1 << 1) /* Bit 1: Gesture FIFO Overflow */
/* Default values for device initialization */
#define DEFAULT_ATIME 219 /* 103ms */
#define DEFAULT_WTIME 246 /* 27ms */
#define DEFAULT_PPULSE (PPLEN_16US | PPULSE_NUM(8)) /* 16us and 8 pulses */
#define DEFAULT_POFFSET_UR 0 /* 0 offset */
#define DEFAULT_POFFSET_DL 0 /* 0 offset */
#define DEFAULT_CONFIG1 0x60 /* No 12x wait (WTIME) factor */
#define DEFAULT_PILT 0 /* Low proximity threshold */
#define DEFAULT_PIHT 50 /* High proximity threshold */
#define DEFAULT_PERS 0x11 /* 2 consecutive prox or ALS for int. */
#define DEFAULT_CONTROL (AGAIN_4X | PGAIN_4X | LDRIVE_100MA)
#define DEFAULT_CONFIG2 0x01 /* No saturation interrupts or LED boost */
#define DEFAULT_CONFIG3 0 /* Enable all photodiodes, no SAI */
#define DEFAULT_GPENTH 40 /* Threshold for entering gesture mode */
#define DEFAULT_GEXTH 30 /* Threshold for exiting gesture mode */
#define DEFAULT_GCONFIG1 GFIFOTH_8DS /* 8 gesture events for int., 1 for exit */
#define DEFAULT_GCONFIG2 (GGAIN_4X | GLDRIVE_100MA /*| GWTIME_2p8MS*/ )
#define DEFAULT_GOFFSET_U 0 /* No offset scaling for gesture mode */
#define DEFAULT_GOFFSET_D 0 /* No offset scaling for gesture mode */
#define DEFAULT_GOFFSET_L 0 /* No offset scaling for gesture mode */
#define DEFAULT_GOFFSET_R 0 /* No offset scaling for gesture mode */
#define DEFAULT_GPULSE (GPLEN_32US | GPULSE_NUM(10)) /* 32us, 10 pulses */
#define DEFAULT_GCONFIG3 0 /* All photodiodes active during gesture */
#define DEFAULT_GCONFIG4 0 /* Disable gesture interrupts */
#define DEFAULT_AILTL 0xFF /* Force interrupt for calibration */
#define DEFAULT_AILTH 0xFF /* Force interrupt for calibration */
#define DEFAULT_AIHTL 0
#define DEFAULT_AIHTH 0
#define FIFO_PAUSE_TIME 30000 /* Wait period (ms) between FIFO reads */
#define DEFAULT_ATIME 219 /* 103ms */
#define DEFAULT_WTIME 246 /* 27ms */
#define DEFAULT_PPULSE (PPLEN_16US | PPULSE_NUM(8)) /* 16us and 8 pulses */
#define DEFAULT_POFFSET_UR 0 /* 0 offset */
#define DEFAULT_POFFSET_DL 0 /* 0 offset */
#define DEFAULT_CONFIG1 0x60 /* No 12x wait (WTIME) factor */
#define DEFAULT_PILT 0 /* Low proximity threshold */
#define DEFAULT_PIHT 50 /* High proximity threshold */
#define DEFAULT_PERS 0x11 /* 2 consecutive prox or ALS for int. */
#define DEFAULT_CONTROL (AGAIN_4X | PGAIN_4X | LDRIVE_100MA)
#define DEFAULT_CONFIG2 0x01 /* No saturation interrupts or LED boost */
#define DEFAULT_CONFIG3 0 /* Enable all photodiodes, no SAI */
#define DEFAULT_GPENTH 40 /* Threshold for entering gesture mode */
#define DEFAULT_GEXTH 30 /* Threshold for exiting gesture mode */
#define DEFAULT_GCONFIG1 GFIFOTH_8DS /* 8 gesture events for int., 1 for exit */
#define DEFAULT_GCONFIG2 (GGAIN_4X | GLDRIVE_100MA) /* | GWTIME_2p8MS) */
#define DEFAULT_GOFFSET_U 0 /* No offset scaling for gesture mode */
#define DEFAULT_GOFFSET_D 0 /* No offset scaling for gesture mode */
#define DEFAULT_GOFFSET_L 0 /* No offset scaling for gesture mode */
#define DEFAULT_GOFFSET_R 0 /* No offset scaling for gesture mode */
#define DEFAULT_GPULSE (GPLEN_32US | GPULSE_NUM(10)) /* 32us, 10 pulses */
#define DEFAULT_GCONFIG3 0 /* All photodiodes active during gesture */
#define DEFAULT_GCONFIG4 0 /* Disable gesture interrupts */
#define DEFAULT_AILTL 0xFF /* Force interrupt for calibration */
#define DEFAULT_AILTH 0xFF /* Force interrupt for calibration */
#define DEFAULT_AIHTL 0
#define DEFAULT_AIHTH 0
#define FIFO_PAUSE_TIME 30000 /* Wait period (ms) between FIFO reads */
/* Gesture parameters */
@ -300,7 +310,7 @@
#define GESTURE_SENSITIVITY_2 20
/****************************************************************************
* Private Types
* Public Types
****************************************************************************/
/* Direction definitions */

View file

@ -48,6 +48,7 @@
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* Configuration ************************************************************
* Prerequisites:
*
@ -69,6 +70,7 @@
#define AS5048B_MAX 0x3fff /* Maximum value (14 bits) */
/* Register Definitions *****************************************************/
/* Register Addresses */
#define AS5048B_PROG_REG 0x03 /* Programming Control Register */
@ -124,13 +126,15 @@ extern "C"
* addr - The I2C address of the AS5048B.
*
* Returned Value:
* A new lower half quadrature encoder interface for the AS5048B on success;
* A new lower half quadrature encoder interface for the AS5048B
* on success;
* NULL on failure.
*
****************************************************************************/
FAR struct qe_lowerhalf_s *as5048b_initialize(FAR struct i2c_master_s *i2c,
uint8_t addr, uint32_t frequency);
uint8_t addr,
uint32_t frequency);
#undef EXTERN
#ifdef __cplusplus

View file

@ -36,6 +36,10 @@
#ifndef __INCLUDE_NUTTX_SENSORS_BH1721FVC_H
#define __INCLUDE_NUTTX_SENSORS_BH1721FVC_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#if defined(CONFIG_I2C) && defined(CONFIG_SENSORS_BH1721FVC) || defined(CONFIG_SENSORS_BH1721FVC_SCU)
@ -92,10 +96,12 @@ int bh1721fvc_init(FAR struct i2c_master_s *i2c, int port);
* Name: bh1721fvcals_register
*
* Description:
* Register the BH1721FVC ambient light sensor character device as 'devpath'
* Register the BH1721FVC ambient light sensor character device as
* 'devpath'
*
* Input Parameters:
* devpath - The full path to the driver to register. E.g., "/dev/light0"
* devpath - The full path to the driver to register. E.g.,
* "/dev/light0"
* minor - minor device number
* i2c - An instance of the I2C interface to use to communicate with
* BH1721FVC

View file

@ -36,6 +36,10 @@
#ifndef __INCLUDE_NUTTX_SENSORS_BH1745NUC_H
#define __INCLUDE_NUTTX_SENSORS_BH1745NUC_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#if defined(CONFIG_I2C) && (defined(CONFIG_SENSORS_BH1745NUC) || defined(CONFIG_SENSORS_BH1745NUC_SCU))

View file

@ -36,6 +36,10 @@
#ifndef __INCLUDE_NUTTX_SENSORS_BM1383GLV_H
#define __INCLUDE_NUTTX_SENSORS_BM1383GLV_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#if defined(CONFIG_I2C) && defined(CONFIG_SENSORS_BM1383GLV) || defined(CONFIG_SENSORS_BM1383GLV_SCU)

View file

@ -36,6 +36,10 @@
#ifndef __INCLUDE_NUTTX_SENSORS_BM1422GMV_H
#define __INCLUDE_NUTTX_SENSORS_BM1422GMV_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#if defined(CONFIG_I2C) && (defined(CONFIG_SENSORS_BM1422GMV) || defined(CONFIG_SENSORS_BM1422GMV_SCU))

View file

@ -1,4 +1,4 @@
/********************************************************************************************
/****************************************************************************
* include/nuttx/sensors/bmg160.h
*
* Copyright (C) 2016 DS-Automotion GmbH. All rights reserved.
@ -32,14 +32,14 @@
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
********************************************************************************************/
****************************************************************************/
#ifndef __INCLUDE_NUTTX_SENSORS_BMG160_H
#define __INCLUDE_NUTTX_SENSORS_BMG160_H
/********************************************************************************************
/****************************************************************************
* Included Files
********************************************************************************************/
****************************************************************************/
#include <nuttx/irq.h>
#include <nuttx/config.h>
@ -48,11 +48,11 @@
#if defined(CONFIG_SPI) && defined(CONFIG_SENSORS_BMG160)
/********************************************************************************************
/****************************************************************************
* Pre-processor Definitions
********************************************************************************************/
****************************************************************************/
/* BMG160 Register Definitions **************************************************************/
/* BMG160 Register Definitions **********************************************/
/* Chip ID */
@ -140,7 +140,7 @@
* the FIFO-full flag cleared when writing to FIFO_CONFIG_1 register */
#define BMG160_FIFO_DATA_REG (0x3F) /* FIFO data readout register */
/* Control Register Definitions *************************************************************/
/* Control Register Definitions *********************************************/
/* BMG160 RANGE_REG Definitions */
@ -178,8 +178,7 @@
#define BMG160_HBW_REG_DATA_HIGH_BW_bm (1 << 7) /* Enable unfiltered data reading */
#define BMG160_HBW_REG_SHW_DIS_bm (1 << 6) /* Disable shadow mechanism for the rate data output register */
/* Interrupt Status Register Definitions ****************************************************/
/* Interrupt Status Register Definitions ************************************/
/* BMG160 INT_EN_0_REG Definitions */
@ -219,7 +218,7 @@
#define BMG160_INT_ZERO_REG_SLOW_OFF_UN_bm (1 << 5) /* Selects unfiltered data for slow offset compensation */
#define BMG160_INT_ZERO_REG_HIGH_UN_D_bm (1 << 3) /* Selects unfiltered data for high rate interrupt */
#define BMG160_INT_ZERO_REG_ANY_UN_D_bm (1 << 1) /* Selects unfiltered data for any motion interrupt
#define BMG160_INT_ZERO_REG_ANY_UN_D_bm (1 << 1) /* Selects unfiltered data for any motion interrupt */
/* BMG160 INT_ONE_REG Definitions */
@ -233,7 +232,7 @@
/* BMG160 INT_FOUR_REG Definitions */
#define BMG160_INT_FOUR_REG_FIFO_WM_EN_bm (1 << 2) /* Enables fifo water mark level interrupt
#define BMG160_INT_FOUR_REG_FIFO_WM_EN_bm (1 << 2) /* Enables fifo water mark level interrupt */
/* BMG160 INT_RST_LATCH_REG Definitions */
@ -245,7 +244,7 @@
#define BMG160_INT_RST_LATCH_REG_LATCH_INT_1_bm (1 << 1) /* Latch mode selection bit 1 */
#define BMG160_INT_RST_LATCH_REG_LATCH_INT_0_bm (1 << 0) /* Latch mode selection bit 0 */
/* Interrupt High Rate Configuration Register Definitions ************************************/
/* Interrupt High Rate Configuration Register Definitions *******************/
/* BMG160 HIGH_TH_X_REG Definitions */
@ -313,7 +312,7 @@
#define BMG160_HIGH_DUR_Z_REG_1_bm (1 << 1)
#define BMG160_HIGH_DUR_Z_REG_0_bm (1 << 0)
/* Offset Register Definitions **************************************************************/
/* Offset Register Definitions **********************************************/
/* BMG160 SOC_REG */
@ -328,7 +327,7 @@
#define BMG160_FOC_REG_FAST_OFF_EN_Y_bm (1 << 1) /* Enables fast offset compensation for y-axis */
#define BMG160_FOC_REG_FAST_OFF_EN_X_bm (1 << 0) /* Enables fast offset compensation for x-axis */
/* NVM Control Register Definitions *********************************************************/
/* NVM Control Register Definitions *****************************************/
/* BMG160 TRIM_NVM_CTRL_REG */
@ -338,7 +337,7 @@
* the NVM_RDY flag must be '1' prior to triggering the update */
#define BMG160_TRIM_NVM_CTRL_REG_NVM_PROG_MODE_bm (1 << 0) /* unlock NVM write operation */
/* Digital Interface Register Definitions ***************************************************/
/* Digital Interface Register Definitions ***********************************/
/* BMG160 BGW_SPI3_WDT_REG */
@ -346,9 +345,9 @@
#define BMG160_BGW_SPI3_WDT_REG_I2C_WDT_SEL_bm (1 << 1) /* Select an I2C watchdog timer period of 50ms */
#define BMG160_BGW_SPI3_WDT_REG_SPI3_bm (1 << 0) /* Enable 3-wire SPI mode */
/* Offset Configuration Register Definitions ************************************************/
/* Offset Configuration Register Definitions ********************************/
/* FIFO Register Definitions ****************************************************************/
/* FIFO Register Definitions ************************************************/
/* BMG160 FIFO_CONFIG_0_REG */
@ -361,14 +360,14 @@
#define BMG160_FIFO_CONFIG_1_REG_DATA_SEL_1_bm (1 << 1) /* FIFO data selection bit 1 */
#define BMG160_FIFO_CONFIG_1_REG_DATA_SEL_0_bm (1 << 0) /* FIFO data selection bit 0 */
/* SPI BUS PARAMETERS ***********************************************************************/
/* SPI BUS PARAMETERS *******************************************************/
#define BMG160_SPI_FREQUENCY (4000000) /* 4 MHz */
#define BMG160_SPI_MODE (SPIDEV_MODE3) /* Device uses SPI Mode 3: CPOL=1, CPHA=1 */
/********************************************************************************************
/****************************************************************************
* Public Types
********************************************************************************************/
****************************************************************************/
/* A reference to a structure of this type must be passed to the BMG160
* driver. This structure provides information about the configuration
@ -400,9 +399,9 @@ struct bmg160_config_s
int (*attach)(FAR struct bmg160_config_s *, xcpt_t);
};
/********************************************************************************************
/****************************************************************************
* Public Function Prototypes
********************************************************************************************/
****************************************************************************/
#ifdef __cplusplus
#define EXTERN extern "C"
@ -412,7 +411,7 @@ extern "C"
#define EXTERN extern
#endif
/********************************************************************************************
/****************************************************************************
* Name: bmg160_register
*
* Description:
@ -421,12 +420,13 @@ extern "C"
* Input Parameters:
* devpath - The full path to the driver to register. E.g., "/dev/gyr0"
* spi - An instance of the SPI interface to use to communicate with BMG160
* config - configuration for the BMG160 driver. For details see description above.
* config - configuration for the BMG160 driver.
* For details see description above.
*
* Returned Value:
* Zero (OK) on success; a negated errno value on failure.
*
********************************************************************************************/
****************************************************************************/
int bmg160_register(FAR const char *devpath, FAR struct spi_dev_s *spi,
FAR struct bmg160_config_s *config);

View file

@ -36,6 +36,10 @@
#ifndef __INCLUDE_NUTTX_SENSORS_BMI160_H
#define __INCLUDE_NUTTX_SENSORS_BMI160_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include <nuttx/fs/ioctl.h>
@ -89,6 +93,7 @@
/****************************************************************************
* struct 6-axis data
****************************************************************************/
struct accel_t
{
int16_t x;

View file

@ -1,4 +1,4 @@
/********************************************************************************************
/****************************************************************************
* drivers/sensors/bmp180.h
*
* Copyright (C) 2015 Gregory Nutt. All rights reserved.
@ -31,22 +31,27 @@
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
********************************************************************************************/
****************************************************************************/
#ifndef __INCLUDE_NUTTX_SENSORS_BMP180_H
#define __INCLUDE_NUTTX_SENSORS_BMP180_H
#include <nuttx/config.h>
#if defined(CONFIG_I2C) && defined(CONFIG_SENSORS_BMP180)
/********************************************************************************************
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
/****************************************************************************
* Pre-processor Definitions
********************************************************************************************/
****************************************************************************/
#define BMP180_I2C_PORTNO 1
/* Configuration ****************************************************************************/
/* Configuration ************************************************************/
/* Prerequisites:
*
* CONFIG_SENSORS_BMP180
@ -59,9 +64,9 @@
struct i2c_master_s;
/********************************************************************************************
/****************************************************************************
* Public Function Prototypes
********************************************************************************************/
****************************************************************************/
#ifdef __cplusplus
#define EXTERN extern "C"

View file

@ -63,8 +63,8 @@
* interface and is permitted to be called from a kernel task, this function
* is reused. But rather than being called by the board initialization
* function, the cluster drivers registration function is called from the
* board initialization function; and the cluster drivers registration function
* calls the leaf driver's registration function.
* board initialization function; and the cluster drivers registration
* function calls the leaf driver's registration function.
*
* To be "cluster driver interface" enabled the leaf driver's registration
* function must communicate the leaf driver's instance back to the cluster
@ -91,8 +91,8 @@
* leaf_handle (struct spi_dev_s *) field that is also passed as an in/out
* parameter in the leaf driver's registration function.
*
* With the above information, the sensor cluster driver may efficiently access
* multiple sensors and aggregate their data.
* With the above information, the sensor cluster driver may efficiently
* access multiple sensors and aggregate their data.
*
****************************************************************************/
@ -118,9 +118,9 @@ struct sensor_cluster_operations_s
CODE int (*driver_resume)(FAR void *instance_handle, int32_t arg);
};
/**************************************************************************
/****************************************************************************
* Public Function Prototypes
**************************************************************************/
****************************************************************************/
#ifdef __cplusplus
#define EXTERN extern "C"
@ -130,7 +130,7 @@ extern "C"
#define EXTERN extern
#endif
/*****************************************************************************
/****************************************************************************
* Name: xxxxxx_register <-- for a leaf driver.
*
* Description:
@ -149,11 +149,11 @@ extern "C"
* Input Parameters:
* devpath - The full path to the leaf driver to register. E.g.,
* "/dev/acl0"
* spi - An instance of the SPI interface to use to communicate with the
* leaf driver. Or, it could be the I2C driver instance if the
* sensor is on an I2C bus.
* config - configuration struct for the sensor leaf driver. This struct is
* defined in the leaf driver's xxxxxx.h file.
* spi - An instance of the SPI interface to use to communicate with
* the leaf driver. Or, it could be the I2C driver instance if
* the sensor is on an I2C bus.
* config - configuration struct for the sensor leaf driver.
* This struct is defined in the leaf driver's xxxxxx.h file.
*
* For a SPI sensor, this structure must contain:
*

View file

@ -49,7 +49,8 @@
* Pre-processor Definitions
****************************************************************************/
/* INA219 Register Definitions ***********************************************/
/* INA219 Register Definitions **********************************************/
/* INA219 Config Register bits */
#define INA219_CONFIG_SADC_SHIFT 3
@ -116,19 +117,19 @@ extern "C"
* Name: ina219_register
*
* Description:
* Register the ina219 character device as 'devpath'
* Register the ina219 character device as 'devpath'
*
* Input Parameters:
* devpath - The full path to the driver to register. E.g., "/dev/pwrmntr0"
* i2c - An instance of the I2C interface to use to communicate with INA219
* addr - The I2C address of the INA219. The base I2C address of the INA219
* is 0x40. Bits 0-3 can be controlled to get 16 unique addresses from 0x40
* through 0x4f.
* shuntval - resistor value in microohms
* config - a combination of the constants defined earlier in this file
* devpath - The full path to the driver to register. E.g., "/dev/pwrmntr0"
* i2c - An instance of the I2C interface to use to communicate with INA219
* addr - The I2C address of the INA219. The base I2C address of the INA219
* is 0x40. Bits 0-3 can be controlled to get 16 unique addresses from 0x40
* through 0x4f.
* shuntval - resistor value in microohms
* config - a combination of the constants defined earlier in this file
*
* Returned Value:
* Zero (OK) on success; a negated errno value on failure.
* Zero (OK) on success; a negated errno value on failure.
*
****************************************************************************/

View file

@ -50,7 +50,7 @@
* Pre-processor Definitions
****************************************************************************/
/* INA226 Register Definitions ***********************************************/
/* INA226 Register Definitions **********************************************/
#define INA226_REG_CONFIG 0 /* See below */
#define INA226_REG_SHUNT_VOLTAGE 1 /* Shunt voltage in 2.5 uV units */

View file

@ -54,7 +54,8 @@
#define INA3221_I2C_ADDR2 0x42
#define INA3221_I2C_ADDR3 0x43
/* INA3221 Register Definitions ***********************************************/
/* INA3221 Register Definitions *********************************************/
/* INA3221 Config Register bits */
#define INA3221_CONFIG_MODE_POWERDOWN 0x0
@ -137,19 +138,20 @@ extern "C"
* Name: ina3221_register
*
* Description:
* Register the ina3221 character device as 'devpath'
* Register the ina3221 character device as 'devpath'
*
* Input Parameters:
* devpath - The full path to the driver to register. E.g., "/dev/pwrmntr0"
* i2c - An instance of the I2C interface to use to communicate with INA3221
* addr - The I2C address of the INA3221. The base I2C address of the INA3221
* is 0x80. Bits 0-1 can be controlled to get 4 unique addresses from 0x80
* through 0x83.
* shuntval - resistor value in microohms
* config - a combination of the constants defined earlier in this file
* devpath - The full path to the driver to register. E.g., "/dev/pwrmntr0"
* i2c - An instance of the I2C interface to use to communicate with INA3221
* addr - The I2C address of the INA3221.
* The base I2C address of the INA3221 is 0x80.
* Bits 0-1 can be controlled to get 4 unique addresses from 0x80
* through 0x83.
* shuntval - resistor value in microohms
* config - a combination of the constants defined earlier in this file
*
* Returned Value:
* Zero (OK) on success; a negated errno value on failure.
* Zero (OK) on success; a negated errno value on failure.
*
****************************************************************************/

View file

@ -1,4 +1,4 @@
/************************************************************************************
/****************************************************************************
* include/nuttx/sensors/ioctl.h
*
* Copyright (C) 2016-2019 Gregory Nutt. All rights reserved.
@ -31,21 +31,21 @@
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
************************************************************************************/
****************************************************************************/
#ifndef __INCLUDE_NUTTX_SENSORS_IOCTL_H
#define __INCLUDE_NUTTX_SENSORS_IOCTL_H
/************************************************************************************
/****************************************************************************
* Included Files
************************************************************************************/
****************************************************************************/
#include <nuttx/config.h>
#include <nuttx/fs/ioctl.h>
/************************************************************************************
/****************************************************************************
* Pre-processor Definitions
************************************************************************************/
****************************************************************************/
/* IOCTL commands unique to the BH1750FVI */
@ -260,25 +260,30 @@
#define SNIOC_BATCH _SNIOC(0x0069)
/* Command: SNIOC_GET_NEVENTBUF
* Description: the number of sensor events that sensor buffer of upper half holds.
* Description: the number of sensor events that sensor buffer of upper half
* holds.
* Argument: This is the number of events pointer, is output parameter.
* Note: Tell the application layer number of sensor events in sensor buffer.
* This buffer is used to solve the problem that the application layer
* can't read the sensor event in time. Recommend the number of sensor
* events in application layer's buffer is same as result by call this
* function.
* This is number of sensor events rather than the length of buffer.
* Note: Tell the application layer number of sensor events in sensor
* buffer.
* This buffer is used to solve the problem that the
* application layer can't read the sensor event in time.
* Recommend the number of sensor events in application layer's
* buffer is same as result by call this function.
* This is number of sensor events rather than the length of
* buffer.
* See sensor.h(struct sensor_lower_half_s buffer_bytes).
*/
#define SNIOC_GET_NEVENTBUF _SNIOC(0x0070)
/* Command: SNIOC_SET_BUFFER_SIZE
* Description: Set size of intermediate circualr buffer in upper half driver.
* Description: Set size of intermediate circualr buffer in upper half
* driver.
* Argument: This is the size of buffer pointer.
* Note: The application layer can set size of intermediate circualr buffer
* by this ioctl command. The size is in bytes, it should be a multiple
* of an event.
* Note: The application layer can set size of intermediate circualr
* buffer
* by this ioctl command. The size is in bytes, it should be a
* multiple of an event.
*/
#define SNIOC_SET_BUFFER_SIZE _SNIOC(0x0071)

View file

@ -36,6 +36,10 @@
#ifndef __INCLUDE_NUTTX_SENSORS_KX022_H
#define __INCLUDE_NUTTX_SENSORS_KX022_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#if defined(CONFIG_I2C) && (defined(CONFIG_SENSORS_KX022) || defined(CONFIG_SENSORS_KX022_SCU))

View file

@ -10,28 +10,29 @@
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* modification, are permitted provided that the following conditions are
* met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the copyright holder nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/

View file

@ -58,7 +58,7 @@ extern "C"
#define ST_LIS2DH_WHOAMI_VALUE 0x33 /* Valid WHOAMI register value */
/* LIS2DH Internal Registers **********************************************/
/* LIS2DH Internal Registers ************************************************/
#define ST_LIS2DH_WHOAMI_REG 0x0f /* WHOAMI register */
@ -142,7 +142,7 @@ extern "C"
#define ST_LIS2DH_CTRL_REG6 0x25
#define ST_LIS2DH_REFERENCE_REG 0x26
#define ST_LIS2DH_STATUS_REG 0x27 /* Status Register */
#define ST_LIS2DH_STATUS_REG 0x27 /* Status Register */
#define ST_LIS2DH_SR_ZYXOR 0x80 /* OR'ed X,Y and Z data over-run */
#define ST_LIS2DH_SR_ZOR 0x40 /* individual data over-run ... */
#define ST_LIS2DH_SR_YOR 0x20
@ -217,9 +217,9 @@ extern "C"
#define ST_LIS2DH_ACT_DUR_REG 0x3f
/************************************************************************************
/****************************************************************************
* Public Types
************************************************************************************/
****************************************************************************/
enum lis2dh_ouput_data_rate
{
@ -275,7 +275,9 @@ enum lis2dh_interrupt_mode
begin_packed_struct struct lis2dh_vector_s
{
int16_t x, y, z;
int16_t x;
int16_t y;
int16_t z;
} end_packed_struct;
begin_packed_struct struct lis2dh_res_header
@ -389,14 +391,17 @@ struct lis2dh_config_s
* callbacks to isolate the lis2dh driver from differences in GPIO
* interrupt handling by varying boards and MCUs.
*
* irq_attach - Attach the lis2dh interrupt handler to the GPIO interrupt
* irq_enable - Enable or disable the GPIO interrupt
* clear_irq - Acknowledge/clear any pending GPIO interrupt
* irq_attach - Attach the lis2dh interrupt handler to the GPIO interrupt
* irq_enable - Enable or disable the GPIO interrupt
* clear_irq - Acknowledge/clear any pending GPIO interrupt
*
*/
CODE int (*irq_attach)(FAR struct lis2dh_config_s *state, xcpt_t isr, FAR void *arg);
CODE void (*irq_enable)(FAR const struct lis2dh_config_s *state, bool enable);
CODE int (*irq_attach)(FAR struct lis2dh_config_s *state,
xcpt_t isr,
FAR void *arg);
CODE void (*irq_enable)(FAR const struct lis2dh_config_s *state,
bool enable);
CODE void (*irq_clear)(FAR const struct lis2dh_config_s *state);
CODE bool (*read_int1_pin)(void);
CODE bool (*read_int2_pin)(void);
@ -419,15 +424,17 @@ typedef struct lis2dh_raw_data_s lis2dh_raw_data_t;
* Name: lis2dh_register
*
* Description:
* Register the LIS2DH character device as 'devpath'
* Register the LIS2DH character device as 'devpath'
*
* Input Parameters:
* devpath - The full path to the driver to register. E.g., "/dev/acc0"
* i2c - An instance of the I2C interface to use to communicate with LIS2DH
* addr - The I2C address of the LIS2DH. The base I2C address of the LIS2DH
* is 0x18. Bit 0 can be controlled via SA0 pad - when connected to
* voltage supply the address is 0x19.
* config - Pointer to LIS2DH configuration
* devpath - The full path to the driver to register. E.g., "/dev/acc0"
* i2c - An instance of the I2C interface to use to communicate with
* LIS2DH
* addr - The I2C address of the LIS2DH. The base I2C address of the
* LIS2DH is 0x18.
* Bit 0 can be controlled via SA0 pad - when connected to
* voltage supply the address is 0x19.
* config - Pointer to LIS2DH configuration
*
* Returned Value:
* Zero (OK) on success; a negated errno value on failure.

View file

@ -38,14 +38,18 @@
#ifndef __INCLUDE_NUTTX_SENSORS_LIS331DL_H
#define __INCLUDE_NUTTX_SENSORS_LIS331DL_H
#if defined(CONFIG_I2C) && defined(CONFIG_LIS331DL)
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include <stdbool.h>
#if defined(CONFIG_I2C) && defined(CONFIG_LIS331DL)
/************************************************************************************
/****************************************************************************
* Pre-Processor Declarations
************************************************************************************/
****************************************************************************/
#ifndef __ASSEMBLY__
@ -58,9 +62,9 @@ extern "C"
#define EXTERN extern
#endif
/************************************************************************************
/****************************************************************************
* Public Data Types
************************************************************************************/
****************************************************************************/
struct lis331dl_dev_s;
@ -73,11 +77,11 @@ struct lis331dl_vector_s
struct i2c_master_s;
/************************************************************************************
/****************************************************************************
* Public Function Prototypes
************************************************************************************/
****************************************************************************/
/************************************************************************************
/****************************************************************************
* Name: lis331dl_init
*
* Description:
@ -88,58 +92,59 @@ struct i2c_master_s;
* address - I2C Address of the proposed device
*
* Returned Value:
* Pointer to newly allocated ST LIS331DL structure or NULL on error with errno
* set.
* Pointer to newly allocated ST LIS331DL structure or NULL on error with
* errno set.
*
* Possible errno as set by this function on error:
* - ENODEV: When device addressed on given address is not compatible or it is not
* a LIS331DL
* - ENODEV: When device addressed on given address is not compatible or it
* is not a LIS331DL
* - EFAULT: When there is no device at given address.
* - EBUSY: When device is already addressed by other device driver (not yet
* supported by low-level driver)
*
************************************************************************************/
****************************************************************************/
FAR struct lis331dl_dev_s *lis331dl_init(FAR struct i2c_master_s *i2c,
uint16_t address);
/************************************************************************************
/****************************************************************************
* Name: lis331dl_deinit
*
* Description:
* Uninitialize ST LIS331DL Chip
*
* Input Parameters:
* dev - Device to LIS331DL device structure, as returned by the lis331dl_init()
* dev - Device to LIS331DL device structure, as returned by the
* lis331dl_init()
*
* Returned Value:
* OK On success
*
************************************************************************************/
****************************************************************************/
int lis331dl_deinit(FAR struct lis331dl_dev_s *dev);
/************************************************************************************
/****************************************************************************
* Name: lis331dl_powerup
*
* Description:
* Power up device, start conversion
*
************************************************************************************/
****************************************************************************/
int lis331dl_powerup(FAR struct lis331dl_dev_s *dev);
/************************************************************************************
/****************************************************************************
* Name: lis331dl_powerdown
*
* Description:
* Power down device, stop conversion
*
************************************************************************************/
****************************************************************************/
int lis331dl_powerdown(FAR struct lis331dl_dev_s *dev);
/************************************************************************************
/****************************************************************************
* Name: lis331dl_setconversion
*
* Description:
@ -153,11 +158,13 @@ int lis331dl_powerdown(FAR struct lis331dl_dev_s *dev);
* Returned Value:
* OK on success or errno is set
*
************************************************************************************/
****************************************************************************/
int lis331dl_setconversion(FAR struct lis331dl_dev_s *dev, bool full, bool fast);
int lis331dl_setconversion(FAR struct lis331dl_dev_s *dev,
bool full,
bool fast);
/************************************************************************************
/****************************************************************************
* Name: lis331dl_getprecision
*
* Description:
@ -166,11 +173,11 @@ int lis331dl_setconversion(FAR struct lis331dl_dev_s *dev, bool full, bool fast)
* Returned Value:
* Precision of 1 LSB in terms of unit [mg]
*
************************************************************************************/
****************************************************************************/
int lis331dl_getprecision(FAR struct lis331dl_dev_s *dev);
/************************************************************************************
/****************************************************************************
* Name: lis331dl_getsamplerate
*
* Description:
@ -179,11 +186,11 @@ int lis331dl_getprecision(FAR struct lis331dl_dev_s *dev);
* Returned Value:
* Sample rate in units of [Hz]
*
************************************************************************************/
****************************************************************************/
int lis331dl_getsamplerate(FAR struct lis331dl_dev_s *dev);
/************************************************************************************
/****************************************************************************
* Name: lis331dl_getreadings
*
* Description:
@ -193,11 +200,11 @@ int lis331dl_getsamplerate(FAR struct lis331dl_dev_s *dev);
* dev - Device to LIS331DL device structure
*
* Returned Value:
* Ptr to vector acceleration [x,y,z] on success, or NULL on error with errno
* set. If data is not yet ready to be read from the LIS331 then errno is set
* to EAGAIN otherwise errno is set by I2C_TRANSFER().
* Ptr to vector acceleration [x,y,z] on success, or NULL on error with
* errno set. If data is not yet ready to be read from the LIS331 then
* errno is set to EAGAIN otherwise errno is set by I2C_TRANSFER().
*
************************************************************************************/
****************************************************************************/
FAR const struct lis331dl_vector_s *
lis331dl_getreadings(FAR struct lis331dl_dev_s *dev);

View file

@ -100,7 +100,7 @@
#define LIS3DH_ACT_THS (0x3E)
#define LIS3DH_ACT_DUR (0x3F)
/* LIS3DH STATUS_REG_AUX Definitions **********************************************/
/* LIS3DH STATUS_REG_AUX Definitions ****************************************/
#define LIS3DH_STATUS_REG_AUX_321OR (1 << 7)
#define LIS3DH_STATUS_REG_AUX_3OR (1 << 6)
@ -111,16 +111,16 @@
#define LIS3DH_STATUS_REG_AUX_2DA (1 << 1)
#define LIS3DH_STATUS_REG_AUX_1DA (1 << 0)
/* LIS3DH CTRL_REG0 Definitions **********************************************/
/* LIS3DH CTRL_REG0 Definitions *********************************************/
#define LIS3DH_CTRL_REG0_SDO_PU_DISC (1 << 7) /* Disconnect SDO/SA0 pull-up */
/* LIS3DH TEMP_CFG_REG Definitions **********************************************/
/* LIS3DH TEMP_CFG_REG Definitions ******************************************/
#define LIS3DH_TEMP_CFG_REG_ADC_EN (1 << 7) /* ADC enable */
#define LIS3DH_TEMP_CFG_REG_TEMP_EN (1 << 6) /* Temperator sensor enable */
/* LIS3DH CTRL_REG1 Definitions **********************************************/
/* LIS3DH CTRL_REG1 Definitions *********************************************/
#define LIS3DH_CTRL_REG1_ODR_SHIFT (4)
#define LIS3DH_CTRL_REG1_ODR_MASK (0xf << LIS3DH_CTRL_REG1_ODR_SHIFT)
@ -142,9 +142,9 @@
#define LIS3DH_CTRL_REG1_YEN (1 << 1) /* Y axis enable */
#define LIS3DH_CTRL_REG1_XEN (1 << 0) /* X axis enable */
/* LIS3DH CTRL_REG2 Definitions **********************************************/
/* LIS3DH CTRL_REG2 Definitions *********************************************/
/* LIS3DH CTRL_REG3 Definitions **********************************************/
/* LIS3DH CTRL_REG3 Definitions *********************************************/
#define LIS3DH_CTRL_REG3_I1_CLICK (1 << 6) /* Click interrupt on INT1 */
#define LIS3DH_CTRL_REG3_I1_IA1 (1 << 6) /* IA1 interrupt on INT1 */
@ -154,7 +154,7 @@
#define LIS3DH_CTRL_REG3_I1_WTM (1 << 2) /* FIFO watermark interrupt on INT1 */
#define LIS3DH_CTRL_REG3_I1_OVERRUN (1 << 1) /* FIFO overrun interrupt on INT1 */
/* LIS3DH CTRL_REG4 Definitions **********************************************/
/* LIS3DH CTRL_REG4 Definitions *********************************************/
#define LIS3DH_CTRL_REG4_BDU (1 << 7) /* Block data update */
#define LIS3DH_CTRL_REG4_BLE (1 << 6) /* Endian selection. 0: LSB first, 1: MSB first */
@ -167,7 +167,7 @@
#define LIS3DH_CTRL_REG4_ST0 (1 << 1) /* Self test 0 */
#define LIS3DH_CTRL_REG4_SIM (1 << 0) /* SPI serial interface mode selection (0: 4-wire, 1: 3-wire) */
/* LIS3DH CTRL_REG5 Definitions **********************************************/
/* LIS3DH CTRL_REG5 Definitions *********************************************/
#define LIS3DH_CTRL_REG5_BOOT (1 << 7) /* Reboot memory content */
#define LIS3DH_CTRL_REG5_FIFO_EN (1 << 6) /* FIFO enable */
@ -176,7 +176,7 @@
#define LIS3DH_CTRL_REG5_LIR_INT2 (1 << 1) /* Latch interrupt request on INT2_SRC register */
#define LIS3DH_CTRL_REG5_D4D_INT2 (1 << 0) /* 4D detection enable on INT2 */
/* LIS3DH CTRL_REG6 Definitions **********************************************/
/* LIS3DH CTRL_REG6 Definitions *********************************************/
#define LIS3DH_CTRL_REG6_I2_CLICK (1 << 6) /* Click interrupt on INT2 */
#define LIS3DH_CTRL_REG6_I2_IA1 (1 << 6) /* IA1 interrupt on INT2 */
@ -185,7 +185,7 @@
#define LIS3DH_CTRL_REG6_I2_ACT (1 << 3) /* Enable activity interrupt on INT2 */
#define LIS3DH_CTRL_REG6_INT_POLARITY (1 << 1) /* INT1 and INT2 pin polarity */
/* LIS3DH STATUS_REG Definitions **********************************************/
/* LIS3DH STATUS_REG Definitions ********************************************/
#define LIS3DH_STATUS_ZYXOR (1 << 7) /* X,Y,Z axis data overrun */
#define LIS3DH_STATUS_ZOR (1 << 6) /* Z axis data overrun */
@ -196,7 +196,7 @@
#define LIS3DH_STATUS_REG_YDA (1 << 1) /* Y axis data available */
#define LIS3DH_STATUS_REG_XDA (1 << 0) /* X axis data available */
/* LIS3DH FIFO_CTRL_REG Definitions **********************************************/
/* LIS3DH FIFO_CTRL_REG Definitions *****************************************/
#define LIS3DH_FIFO_CTRL_REG_MODE_STREAM2 (3 << 6)
#define LIS3DH_FIFO_CTRL_REG_MODE_STREAM (2 << 6)
@ -204,24 +204,24 @@
#define LIS3DH_FIFO_CTRL_REG_MODE_BYPASS (0 << 6)
#define LIS3DH_FIFO_CTRL_REG_TR (1 << 5)
/* LIS3DH FIFO_SRC_REG Definitions **********************************************/
/* LIS3DH FIFO_SRC_REG Definitions ******************************************/
#define LIS3DH_FIFO_SRC_REG_WTM (1 << 7)
#define LIS3DH_FIFO_SRC_REG_OVRN_FIFO (1 << 6)
#define LIS3DH_FIFO_SRC_REG_EMPTY (1 << 5)
/* SPI parameters ***************************************************************/
/* SPI parameters ***********************************************************/
#define LIS3DH_SPI_FREQUENCY (9600000) /* SPI Clock Frequency */
#define LIS3DH_SPI_MODE (SPIDEV_MODE3) /* Device uses SPI Mode 3: CPOL=1, CPHA=1 */
/* Power Modes ******************************************************************/
/* Power Modes **************************************************************/
#define LIS3DH_POWER_LOW (0x0) /* Lower power 8bit output */
#define LIS3DH_POWER_NORMAL (0x1) /* Normal 10bit */
#define LIS3DH_POWER_HIGH (0x2) /* HR 12bit mode */
/* Output Data Rates ***********************************************************/
/* Output Data Rates *******************************************************/
#define LIS3DH_ODR_POWER_DOWN (0) /* Disable output */
#define LIS3DH_ODR_1HZ (0x1) /* 1Hz in all power modes */

View file

@ -48,7 +48,9 @@
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* Configuration ************************************************************
/* Configuration
*
* CONFIG_I2C - Enables support for I2C drivers
* CONFIG_LM75_I2C - Enables support for the LM-75 driver
*/
@ -64,6 +66,7 @@
#define CONFIG_LM75_ADDR7 (CONFIG_LM75_BASEADDR + 7)
/* LM-75 Register Definitions ***********************************************/
/* LM-75 Registers addresses */
#define LM75_TEMP_REG 0x00 /* Temperature Register */

View file

@ -50,7 +50,9 @@
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* Configuration ************************************************************
/* Configuration
*
* CONFIG_I2C - Enables support for I2C drivers
* CONFIG_SENSORS_LM92 - Enables support for the LM92 driver
*/
@ -61,7 +63,8 @@
#define CONFIG_LM92_ADDR2 (CONFIG_LM92_BASEADDR + 2)
#define CONFIG_LM92_ADDR3 (CONFIG_LM92_BASEADDR + 3)
/* LM92 Register Definitions ***********************************************/
/* LM92 Register Definitions ************************************************/
/* LM92 Register Addresses */
#define LM92_TEMP_REG 0x00 /* Temperature Register */

View file

@ -183,12 +183,12 @@ struct lsm303agr_ops_s
struct lsm303agr_dev_s
{
FAR struct i2c_master_s *i2c; /* I2C interface */
FAR struct i2c_master_s *i2c; /* I2C interface */
uint8_t addr; /* I2C address */
FAR const struct lsm303agr_ops_s *ops;
uint8_t datareg; /* Output data register of X low byte */
uint8_t datareg; /* Output data register of X low byte */
struct lsm303agr_sensor_data_s sensor_data; /* Sensor data container */
};

View file

@ -1,4 +1,4 @@
/****************************************************************************************************
/****************************************************************************
* include/nuttx/sensors/lsm6dsl.h [from the IKS01A2 MEMS board STM]
*
* Copyright (C) 2016 Omni Hoverboards Inc. All rights reserved.
@ -31,25 +31,25 @@
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************************************/
****************************************************************************/
#ifndef __INCLUDE_NUTTX_SENSORS_LSM6DSL
#define __INCLUDE_NUTTX_SENSORS_LSM6DSL
/****************************************************************************************************
/****************************************************************************
* Included Files
****************************************************************************************************/
****************************************************************************/
#include <nuttx/config.h>
#include <nuttx/sensors/ioctl.h>
#if defined(CONFIG_I2C) && defined(CONFIG_SENSORS_LSM6DSL)
/****************************************************************************************************
/****************************************************************************
* Pre-processor Definitions
****************************************************************************************************/
****************************************************************************/
/* I2C Addresses ************************************************************************************/
/* I2C Addresses ************************************************************/
/* Accelerometer addresses */
@ -61,7 +61,7 @@
#define LSM6DSLGYRO_ADDR0 0xd4
#define LSM6DSLGYRO_ADDR1 0xd6
/* Register Addresses *******************************************************************************/
/* Register Addresses *******************************************************/
/* Accelerometer and gyroscope registers */
@ -202,14 +202,17 @@
#define LSM6DSL_A_WRIST_TILT_THS 0x54 /* Absolute Wrist Tilt threshold register (r/w). */
#define LSM6DSL_A_WRIST_TILT_Mask 0x59 /* Absolute Wrist Tilt mask register (r/w). */
/****************************************************************************************************
/****************************************************************************
* Register Bit Definitions
*
* For this sensor it is chosen to not define each pin individually...its set bitwise like:
* 0b000[0]0000 with preferred hex value! Where [] is showing the [not defined in datasheet] bit.
* A complete definition is written below, just not all registers are validated!!
* For this sensor it is chosen to not define each pin individually...its set
* bitwise like:
* 0b000[0]0000 with preferred hex value!
* Where [] is showing the [not defined in datasheet] bit.
* A complete definition is written below, just not all registers are
* validated!!
*
****************************************************************************************************/
****************************************************************************/
#define LSM6DSL_FUNC_CFG_ACCESS_FUNC_CFG_EN (1 << 5)
#define LSM6DSL_FUNC_CFG_ACCESS_FUNC_CFG_EN_B (1 << 7)
@ -245,7 +248,7 @@
#define LSM6DSL_FIFO_CTRL4_DEC_DS3_FIFO_MASK (3 << LSM6DSL_FIFO_CTRL4_DEC_DS3_FIFO_SHIFT)
#define LSM6DSL_FIFO_CTRL4_DEC_DS4_FIFO_SHIFT 3
#define LSM6DSL_FIFO_CTRL4_DEC_DS4_FIFO_MASK (3 << LSM6DSL_FIFO_CTRL4_DEC_DS4_FIFO_SHIFT)
#define LSM6DSL_FIFO_CTRL4_ONLY_HIGH_DATA (1 << 6)/* */
#define LSM6DSL_FIFO_CTRL4_ONLY_HIGH_DATA (1 << 6) /* */
#define LSM6DSL_FIFO_CTRL4_STOP_ON_FTH (1 << 7) /* .*/
#define LSM6DSL_FIFO_CTRL5_FIFO_MODE_SHIFT 0
@ -811,9 +814,9 @@
#define LSM6DSL_A_WRIST_TILT_Mask_SHIFT 2
#define LSM6DSL_A_WRIST_TILT_Mask_MASK (63 << LSM6DSL_A_WRIST_TILT_Mask_SHIFT)
/****************************************************************************************************
/****************************************************************************
* Public Types
****************************************************************************************************/
****************************************************************************/
struct i2c_master_s;
@ -831,9 +834,9 @@ struct lsm6dsl_sensor_data_s
uint16_t timestamp;
};
/****************************************************************************************************
/****************************************************************************
* Public Types
****************************************************************************************************/
****************************************************************************/
struct lsm6dsl_dev_s;
struct lsm6dsl_ops_s
@ -854,20 +857,20 @@ struct lsm6dsl_dev_s
FAR const struct lsm6dsl_ops_s *ops;
uint8_t datareg; /* Output data register of X low byte */
struct lsm6dsl_sensor_data_s sensor_data; /* Sensor data container */
uint8_t datareg; /* Output data register of X low byte */
struct lsm6dsl_sensor_data_s sensor_data; /* Sensor data container */
};
/****************************************************************************************************
/****************************************************************************
* Public Function Prototypes
****************************************************************************************************/
****************************************************************************/
#ifdef __cplusplus
extern "C"
{
#endif
/****************************************************************************************************
/****************************************************************************
* Name: lsm6dslaccel_register
*
* Description:
@ -881,7 +884,7 @@ extern "C"
* Returned Value:
* Zero (OK) on success; a negated errno value on failure.
*
****************************************************************************************************/
****************************************************************************/
int lsm6dsl_sensor_register(FAR const char *devpath,
FAR struct i2c_master_s *i2c,

View file

@ -50,6 +50,7 @@
****************************************************************************/
/* I2C Addresses ************************************************************/
/* Accelerometer addresses */
#define LSM9DS1ACCEL_ADDR0 0x6a
@ -96,7 +97,8 @@ extern "C"
*
****************************************************************************/
int lsm9ds1accel_register(FAR const char *devpath, FAR struct i2c_master_s *i2c,
int lsm9ds1accel_register(FAR const char *devpath,
FAR struct i2c_master_s *i2c,
uint8_t addr);
/****************************************************************************
@ -115,7 +117,8 @@ int lsm9ds1accel_register(FAR const char *devpath, FAR struct i2c_master_s *i2c,
*
****************************************************************************/
int lsm9ds1gyro_register(FAR const char *devpath, FAR struct i2c_master_s *i2c,
int lsm9ds1gyro_register(FAR const char *devpath,
FAR struct i2c_master_s *i2c,
uint8_t addr);
/****************************************************************************
@ -134,7 +137,8 @@ int lsm9ds1gyro_register(FAR const char *devpath, FAR struct i2c_master_s *i2c,
*
****************************************************************************/
int lsm9ds1mag_register(FAR const char *devpath, FAR struct i2c_master_s *i2c,
int lsm9ds1mag_register(FAR const char *devpath,
FAR struct i2c_master_s *i2c,
uint8_t addr);
#ifdef __cplusplus

View file

@ -36,6 +36,10 @@
#ifndef __INCLUDE_NUTTX_SENSORS_LT1PA01_H
#define __INCLUDE_NUTTX_SENSORS_LT1PA01_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#if defined(CONFIG_I2C) && (defined(CONFIG_SENSORS_LT1PA01) || defined(CONFIG_SENSORS_LT1PA01_SCU))

View file

@ -62,7 +62,8 @@
#define CONFIG_LTC4151_ADDR8 (CONFIG_LTC4151_BASEADDR + 8)
#define CONFIG_LTC4151_ADDR9 (CONFIG_LTC4151_BASEADDR + 9)
/* LTC4151 Register Definitions ***********************************************/
/* LTC4151 Register Definitions *********************************************/
/* LTC4151 Registers addresses */
#define LTC4151_CURR_REG 0x00 /* Current Register start address */
@ -103,14 +104,15 @@ extern "C"
* Name: ltc4151_register
*
* Description:
* Register the ltc4151 character device as 'devpath'
* Register the ltc4151 character device as 'devpath'
*
* Input Parameters:
* devpath - The full path to the driver to register. E.g., "/dev/pwrmntr0"
* i2c - An instance of the I2C interface to use to communicate with LTC4151
* addr - The I2C address of the LTC4151. The base I2C address of the LTC4151
* is 0x18. Bits 0-3 can be controlled to get 8 unique addresses from 0x18
* through 0x1f.
* devpath - The full path to the driver to register. E.g., "/dev/pwrmntr0"
* i2c - An instance of the I2C interface to use to communicate with LTC4151
* addr - The I2C address of the LTC4151.
* The base I2C address of the LTC4151 is 0x18.
* Bits 0-3 can be controlled to get 8 unique addresses from 0x18
* through 0x1f.
* shunt_resistor_value - resistor value in ohm
*
* Returned Value:

View file

@ -70,9 +70,13 @@ enum max44009_integration_time_e
struct max44009_config_s
{
CODE int (*irq_attach)(FAR struct max44009_config_s * state, xcpt_t isr, FAR void *arg);
CODE void (*irq_enable)(FAR const struct max44009_config_s * state, bool enable);
CODE int (*set_power)(FAR const struct max44009_config_s * state, bool on);
CODE int (*irq_attach)(FAR struct max44009_config_s * state,
xcpt_t isr,
FAR void *arg);
CODE void (*irq_enable)(FAR const struct max44009_config_s * state,
bool enable);
CODE int (*set_power)(FAR const struct max44009_config_s * state,
bool on);
};
/* Configuration structure for MAX44009 */
@ -87,6 +91,7 @@ struct max44009_init_s
* photodiode current goes to the ADC, true -
* 1/8 (must be used in high-brightness
* situations) */
enum max44009_integration_time_e integr_time; /* Integration time */
};
@ -95,8 +100,9 @@ struct max44009_threshold_s
uint8_t upper_threshold; /* Upper threshold high-byte */
uint8_t lower_threshold; /* Lower threshold high-byte */
uint8_t threshold_timer; /* 0 - interrupt will be triggered as soon as
* the light level exceeds either threshold */
} ;
* the light level exceeds either threshold
*/
};
/* Data transfer structure */

View file

@ -48,6 +48,7 @@
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* Configuration ************************************************************
* Prerequisites:
*
@ -62,6 +63,7 @@
#define MB7040_DEFAULTADDR 0x70 /* Default I2C Address */
/* Register Definitions *****************************************************/
/* Register Addresses */
#define MB7040_RANGE_REG 0x51

View file

@ -103,15 +103,15 @@ extern "C"
* Name: mcp9844_register
*
* Description:
* Register the MCP9844 character device as 'devpath'
* Register the MCP9844 character device as 'devpath'
*
* Input Parameters:
* devpath - The full path to the driver to register. E.g., "/dev/temp0"
* i2c - An instance of the I2C interface to use to communicate with MCP9844
* addr - The I2C address of the MCP9844.
* devpath - The full path to the driver to register. E.g., "/dev/temp0"
* i2c - An instance of the I2C interface to use to communicate with MCP9844
* addr - The I2C address of the MCP9844.
*
* Returned Value:
* Zero (OK) on success; a negated errno value on failure.
* Zero (OK) on success; a negated errno value on failure.
*
****************************************************************************/

View file

@ -91,26 +91,29 @@
/* CONFIG_REG1 */
#define CONFIG_REG1_IIR_SHIFT (0) /* Bits 2:0 - Configure IIR Coefficients */
#define CONFIG_REG1_IIR_SHIFT (0) /* Bits 2:0 - Configure IIR Coefficients */
#define CONFIG_REG1_IIR_MASK (7 << CONFIG_REG1_IIR_SHIFT)
#define CONFIG_REG1_IIR_0p5_0p5 (0 << CONFIG_REG1_IIR_SHIFT) /* a1 = 0.5 and b1 = 0.5 */
#define CONFIG_REG1_IIR_0p57_0p42 (7 << CONFIG_REG1_IIR_SHIFT) /* a1 = 0.571428571 and b1 = 0.428571428 */
#define CONFIG_REG1_IIR_0p66_0p33 (6 << CONFIG_REG1_IIR_SHIFT) /* a1 = 0.666... and b1 = 0.333... */
#define CONFIG_REG1_IIR_0p8_0p2 (5 << CONFIG_REG1_IIR_SHIFT) /* a1 = 0.8 and b1 = 0.2 */
#define CONFIG_REG1_IIR_BYPASS (4 << CONFIG_REG1_IIR_SHIFT) /* a1 = 1 and b1 = 0 => IIR bypassed */
#define CONFIG_REG1_AMB_SENSOR_PTC (1 << 3) /* Ambient temperature sensor: 1 = PTC, 0 = PTAT */
#define CONFIG_REG1_DATA_PWM_SHIFT (4) /* Bits 5:4 - Data transmitted through PWM */
#define CONFIG_REG1_AMB_SENSOR_PTC (1 << 3) /* Ambient temperature sensor: 1 = PTC, 0 = PTAT */
#define CONFIG_REG1_DATA_PWM_SHIFT (4) /* Bits 5:4 - Data transmitted through PWM */
#define CONFIG_REG1_DATA_PWM_MASK (3 << CONFIG_REG1_DATA_PWM_SHIFT)
#define CONFIG_REG1_DATA_PWM_TA_IR1 (0 << CONFIG_REG1_DATA_PWM_SHIFT) /* Data1 = Ta and Data2 = IR1 */
#define CONFIG_REG1_DATA_PWM_TA_IR2 (1 << CONFIG_REG1_DATA_PWM_SHIFT) /* Data1 = Ta and Data2 = IR2 */
#define CONFIG_REG1_DATA_PWM_IR1_IR2 (2 << CONFIG_REG1_DATA_PWM_SHIFT) /* Data1 = IR1 and Data2 = IR2 */
#define CONFIG_REG1_DATA_PWM_IR1_UND (3 << CONFIG_REG1_DATA_PWM_SHIFT) /* Data1 = IR2 and Data2 = Undefined */
#define CONFIG_REG1_NUM_SENSORS (1 << 6) /* Number of sensors: 1 = 2 sensors, 0 = 1 sensor */
#define CONFIG_REG1_KS (1 << 7) /* Define the sign Ks. Factory calibration, do not alter */
#define CONFIG_REG1_FIR_SHIFT (8) /* Bits 10:8 - Configure coefficient N of FIR digital filter */
#define CONFIG_REG1_NUM_SENSORS (1 << 6) /* Number of sensors: 1 = 2 sensors, 0 = 1 sensor */
#define CONFIG_REG1_KS (1 << 7) /* Define the sign Ks. Factory calibration, do not alter */
#define CONFIG_REG1_FIR_SHIFT (8) /* Bits 10:8 - Configure coefficient N of FIR digital filter */
#define CONFIG_REG1_FIR_MASK (7 << CONFIG_REG1_FIR_SHIFT)
#define CONFIG_REG1_FIR_N(n) (((n >> 3) - 1) << CONFIG_REG1_FIR_SHIFT) /* n = 8, 16, 32, 64 ... 1024 */
#define CONFIG_REG1_AMP_GAIN_SHIFT (11) /* Bits 13:11 - Configure the gain of amplifier */
#define CONFIG_REG1_AMP_GAIN_SHIFT (11) /* Bits 13:11 - Configure the gain of amplifier */
#define CONFIG_REG1_AMP_GAIN_MASK (7 << CONFIG_REG1_AMP_GAIN_SHIFT)
#define CONFIG_REG1_AMP_GAIN_1 (0 << CONFIG_REG1_AMP_GAIN_SHIFT) /* Gain = 1 => preamplifier bypassed */
#define CONFIG_REG1_AMP_GAIN_3 (1 << CONFIG_REG1_AMP_GAIN_SHIFT) /* Gain = 3 */
@ -120,6 +123,7 @@
#define CONFIG_REG1_AMP_GAIN_50 (5 << CONFIG_REG1_AMP_GAIN_SHIFT) /* Gain = 50 */
#define CONFIG_REG1_AMP_GAIN_100 (6 << CONFIG_REG1_AMP_GAIN_SHIFT) /* Gain = 100 */
#define CONFIG_REG1_AMP_GAIN_200 (7 << CONFIG_REG1_AMP_GAIN_SHIFT) /* Gain = 200 */
#define CONFIG_REG1_THERMOSHOCK_NEG (1 << 15) /* Define the sign of thermosock: 1 - negative, 0 - positive */
/* MLX90614 RAM Register ****************************************************/

View file

@ -1,4 +1,4 @@
/********************************************************************************************
/****************************************************************************
* drivers/sensors/mpl115a.h
*
* Copyright (C) 2015 Gregory Nutt. All rights reserved.
@ -31,33 +31,42 @@
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
********************************************************************************************/
****************************************************************************/
#ifndef __INCLUDE_NUTTX_SENSORS_MPL115A_H
#define __INCLUDE_NUTTX_SENSORS_MPL115A_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#if defined(CONFIG_SPI) && defined(CONFIG_SENSORS_MPL115A)
/********************************************************************************************
/****************************************************************************
* Pre-processor Definitions
********************************************************************************************/
/* Configuration ****************************************************************************/
****************************************************************************/
/* Configuration ************************************************************/
/* Prerequisites:
*
* CONFIG_SENSORS_MPL115A
* Enables support for the MPL115A driver
* CONFIG_MPL115A_REGDEBUG
* Enable very low register-level debug output. Requires CONFIG_DEBUG_FEATURES.
* Enable very low register-level debug output.
* Requires CONFIG_DEBUG_FEATURES.
*/
/* There are two types of MPL115A chips. The MPL115A1 communicates with the target CPU
* via a SPI interface. The MPL115A2 communicates via I2C interface.
/* There are two types of MPL115A chips.
* The MPL115A1 communicates with the target CPU via a SPI interface.
* The MPL115A2 communicates via I2C interface.
* Note: This driver only supports MPL115A1 (SPI Interface).
*/
/* SPI **************************************************************************************/
/* SPI **********************************************************************/
/* The device always operates in mode 0 */
#define MPL115A_SPI_MODE SPIDEV_MODE0 /* Mode 0 */
@ -66,7 +75,8 @@
#define MPL115A_SPI_MAXFREQUENCY 800000 /* 8MHz */
/* MPL115A Registers ************************************************************************/
/* MPL115A Registers ********************************************************/
/* Register Addresses */
#define MPL115A_BASE_CMD 0x80
@ -85,15 +95,15 @@
/* 0x0c - 0x11 are reserved */
#define MPL115A_CONVERT 0x12 /* Start Pressure and Temperature Conversion */
/********************************************************************************************
/****************************************************************************
* Public Types
********************************************************************************************/
****************************************************************************/
struct spi_dev_s;
/********************************************************************************************
/****************************************************************************
* Public Function Prototypes
********************************************************************************************/
****************************************************************************/
#ifdef __cplusplus
#define EXTERN extern "C"

View file

@ -48,6 +48,7 @@
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* Configuration ************************************************************
* Prerequisites:
*

View file

@ -50,7 +50,8 @@
****************************************************************************/
/* Configuration ************************************************************
* CONFIG_SENSORS_QENCODER - Enables support for the quadrature encoder upper half
* CONFIG_SENSORS_QENCODER - Enables support for the quadrature encoder upper
* half
*/
/* IOCTL Commands ***********************************************************/

View file

@ -36,6 +36,10 @@
#ifndef __INCLUDE_NUTTX_SENSORS_RPR0521RS_H
#define __INCLUDE_NUTTX_SENSORS_RPR0521RS_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#if defined(CONFIG_I2C) && (defined(CONFIG_SENSORS_RPR0521RS) || defined(CONFIG_SENSORS_RPR0521RS_SCU))
@ -100,7 +104,8 @@ int rpr0521rs_init(FAR struct i2c_master_s *i2c, int port);
* Name: rpr0521rsals_register
*
* Description:
* Register the RPR0521RS ambient light sensor character device as 'devpath'
* Register the RPR0521RS ambient light sensor character device as
* 'devpath'
*
* Input Parameters:
* devpath - The full path to the driver to register. E.g., "/dev/light0"

View file

@ -91,7 +91,8 @@ struct sps30_conv_data_s
* Register the SPS30 character device as 'devpath'
*
* Input Parameters:
* devpath - The full path to the driver to register. E.g., "/dev/particle0"
* devpath - The full path to the driver to register. E.g.,
* "/dev/particle0"
* i2c - An instance of the I2C interface to use to communicate with
* the SPS30
* addr - The I2C address of the SPS30. The I2C address of SPS30

View file

@ -64,7 +64,6 @@
* NOTE: The RSV Bit 1 needs to be always 1
*/
#define VEML6070_CMD_SD 0x01 /* Shutdown command */
#define VEML6070_CMD_RSV 0x02
#define VEML6070_CMD_IT_0_5T 0x00 /* IT1=0 : IT0=0 */
@ -72,8 +71,8 @@
#define VEML6070_CMD_IT_2T 0x08 /* IT1=1 : IT0=0 */
#define VEML6070_CMD_IT_4T 0x0c /* IT1=1 : IT0=1 */
#define VEML6070_CMD_ACK_THD 0x10 /* Acknowledge threshold:
0 = 102 steps
1 = 145 steps */
* 0 = 102 steps
* 1 = 145 steps */
#define VEML6070_CMD_ACK 0x20 /* Acknowledge activity */
/****************************************************************************

View file

@ -36,6 +36,9 @@
#ifndef __INCLUDE_NUTTX_SENSORS_VL53L1X_H
#define __INCLUDE_NUTTX_SENSORS_VL53L1X_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#if defined(CONFIG_I2C) && defined(CONFIG_SENSORS_VL53L1X)

View file

@ -1,4 +1,4 @@
/********************************************************************************************
/****************************************************************************
* include/nuttx/input/xen1210.h
*
* Copyright (C) 2016 Gregory Nutt. All rights reserved.
@ -31,25 +31,26 @@
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
********************************************************************************************/
****************************************************************************/
#ifndef __INCLUDE_NUTTX_SENSORS_XEN1210_H
#define __INCLUDE_NUTTX_SENSORS_XEN1210_H
/********************************************************************************************
/****************************************************************************
* Included Files
********************************************************************************************/
****************************************************************************/
#include <nuttx/config.h>
#include <nuttx/irq.h>
#if defined(CONFIG_SENSORS_XEN1210)
/********************************************************************************************
/****************************************************************************
* Pre-processor Definitions
********************************************************************************************/
****************************************************************************/
/* Configuration ************************************************************/
/* Configuration ****************************************************************************/
/* Prerequisites:
*
* CONFIG_SCHED_WORKQUEUE - Work queue support is required
@ -63,7 +64,7 @@
/* The XEN1210 interfaces with the target CPU via a SPI interface. */
/* SPI **************************************************************************************/
/* SPI **********************************************************************/
/* The device always operates in mode 1 */
@ -73,7 +74,8 @@
#define XEN1210_SPI_MAXFREQUENCY 100000 /* 100KHz */
/* XEN1210 Commands ************************************************************************/
/* XEN1210 Commands ********************************************************/
/* Operation Commands */
#define XEN1210_RESET 0x10 /* System-Reset command */
@ -100,24 +102,28 @@
#define XEN1210_TESTVALUE 0x3A00 /* Default value to be used with Test command */
/********************************************************************************************
/****************************************************************************
* Public Types
********************************************************************************************/
****************************************************************************/
/* Form of the GPIO "interrupt handler" callback. Callbacks do not occur from an interrupt
* handler but rather from the context of the worker thread with interrupts enabled.
/* Form of the GPIO "interrupt handler" callback. Callbacks do not occur
* from an interrupt handler but rather from the context of the worker thread
* with interrupts enabled.
*/
struct xen1210_config_s;
typedef CODE void (*xen1210_handler_t)(FAR struct xen1210_config_s *config, FAR void *arg);
typedef CODE void (*xen1210_handler_t)(FAR struct xen1210_config_s *config,
FAR void *arg);
/* A reference to a structure of this type must be passed to the XEN1210 driver when the
* driver is instantiated. This structure provides information about the configuration of
* the XEN1210 and provides some board-specific hooks.
/* A reference to a structure of this type must be passed to the XEN1210
* driver when the driver is instantiated.
* This structure provides information about the configuration of the XEN1210
* and provides some board-specific hooks.
*
* Memory for this structure is provided by the caller. It is not copied by the driver
* and is presumed to persist while the driver is active. The memory must be writeable
* because, under certain circumstances, the driver may modify the frequency.
* Memory for this structure is provided by the caller.
* It is not copied by the driver and is presumed to persist while the driver
* is active. The memory must be writeable because, under certain
* circumstances, the driver may modify the frequency.
*/
struct xen1210_config_s
@ -135,9 +141,11 @@ struct xen1210_config_s
* clear - Acknowledge/clear any pending GPIO interrupt
*/
int (*attach)(FAR struct xen1210_config_s *state, xen1210_handler_t handler,
int (*attach)(FAR struct xen1210_config_s *state,
xen1210_handler_t handler,
FAR void *arg);
void (*enable)(FAR struct xen1210_config_s *state, bool enable);
void (*enable)(FAR struct xen1210_config_s *state,
bool enable);
void (*clear)(FAR struct xen1210_config_s *state);
};
@ -145,9 +153,9 @@ typedef FAR void *XEN1210_HANDLE;
struct spi_dev_s;
/********************************************************************************************
/****************************************************************************
* Public Function Prototypes
********************************************************************************************/
****************************************************************************/
#ifdef __cplusplus
#define EXTERN extern "C"
@ -157,27 +165,29 @@ extern "C"
#define EXTERN extern
#endif
/********************************************************************************************
/****************************************************************************
* Name: xen1210_instantiate
*
* Description:
* Instantiate and configure the XEN1210 device driver to use the provided I2C or SPI
* device instance.
* Instantiate and configure the XEN1210 device driver to use the provided
* I2C or SPI device instance.
*
* Input Parameters:
* dev - A SPI driver instance
* config - Persistent board configuration data
*
* Returned Value:
* A non-zero handle is returned on success. This handle may then be used to configure
* the XEN1210 driver as necessary. A NULL handle value is returned on failure.
* A non-zero handle is returned on success.
* This handle may then be used to configure the XEN1210 driver as
* necessary.
* A NULL handle value is returned on failure.
*
********************************************************************************************/
****************************************************************************/
XEN1210_HANDLE xen1210_instantiate(FAR struct spi_dev_s *dev,
FAR struct xen1210_config_s *config);
/********************************************************************************************
/****************************************************************************
* Name: xen1210_register
*
* Description:
@ -189,10 +199,11 @@ XEN1210_HANDLE xen1210_instantiate(FAR struct spi_dev_s *dev,
* minor - The input device minor number
*
* Returned Value:
* Zero is returned on success. Otherwise, a negated errno value is returned to indicate
* the nature of the failure.
* Zero is returned on success.
* Otherwise, a negated errno value is returned to indicate the nature
* of the failure.
*
********************************************************************************************/
****************************************************************************/
int xen1210_register(XEN1210_HANDLE handle, int minor);

View file

@ -50,9 +50,10 @@
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* Configuration ************************************************************
* CONFIG_SENSORS_ZEROCROSS - Enables support for the zero cross AC detection upper
* half
* CONFIG_SENSORS_ZEROCROSS - Enables support for the zero cross AC detection
* upper half
*/
/* Command: ZCIOC_REGISTER