28#ifndef VL6180X_PARAM_DEV
30#define VL6180X_PARAM_DEV I2C_DEV(0)
33#ifndef VL6180X_PARAM_ADDR
35#define VL6180X_PARAM_ADDR (VL6180X_I2C_ADDR)
38#ifndef VL6180X_PARAM_INT_PIN
40#define VL6180X_PARAM_INT_PIN (GPIO_PIN(0, 1))
43#ifndef VL6180X_PARAM_SHUTDOWN_PIN
45#define VL6180X_PARAM_SHUTDOWN_PIN (GPIO_PIN(0, 2))
56#ifdef CONFIG_VL6180X_ALS_GAIN_1
57#define CONFIG_VL6180X_ALS_GAIN (VL6180X_ALS_GAIN_1)
58#elif CONFIG_VL6180X_ALS_GAIN_1_25
59#define CONFIG_VL6180X_ALS_GAIN (VL6180X_ALS_GAIN_1_25)
60#elif CONFIG_VL6180X_ALS_GAIN_1_67
61#define CONFIG_VL6180X_ALS_GAIN (VL6180X_ALS_GAIN_1_67)
62#elif CONFIG_VL6180X_ALS_GAIN_2_5
63#define CONFIG_VL6180X_ALS_GAIN (VL6180X_ALS_GAIN_2_5)
64#elif CONFIG_VL6180X_ALS_GAIN_5
65#define CONFIG_VL6180X_ALS_GAIN (VL6180X_ALS_GAIN_5)
66#elif CONFIG_VL6180X_ALS_GAIN_10
67#define CONFIG_VL6180X_ALS_GAIN (VL6180X_ALS_GAIN_10)
68#elif CONFIG_VL6180X_ALS_GAIN_20
69#define CONFIG_VL6180X_ALS_GAIN (VL6180X_ALS_GAIN_20)
70#elif CONFIG_VL6180X_ALS_GAIN_40
71#define CONFIG_VL6180X_ALS_GAIN (VL6180X_ALS_GAIN_40)
74#ifdef CONFIG_VL6180X_RNG_INT_DRDY
75#define CONFIG_VL6180X_RNG_INT (VL6180X_INT_DRDY)
76#elif CONFIG_VL6180X_RNG_INT_LOW
77#define CONFIG_VL6180X_RNG_INT (VL6180X_INT_LOW)
78#elif CONFIG_VL6180X_RNG_INT_HIGH
79#define CONFIG_VL6180X_RNG_INT (VL6180X_INT_HIGH)
80#elif CONFIG_VL6180X_RNG_INT_OUT
81#define CONFIG_VL6180X_RNG_INT (VL6180X_INT_OUT)
84#ifdef CONFIG_VL6180X_ALS_INT_DRDY
85#define CONFIG_VL6180X_ALS_INT (VL6180X_INT_DRDY)
86#elif CONFIG_VL6180X_ALS_INT_LOW
87#define CONFIG_VL6180X_ALS_INT (VL6180X_INT_LOW)
88#elif CONFIG_VL6180X_ALS_INT_HIGH
89#define CONFIG_VL6180X_ALS_INT (VL6180X_INT_HIGH)
90#elif CONFIG_VL6180X_ALS_INT_OUT
91#define CONFIG_VL6180X_ALS_INT (VL6180X_INT_OUT)
96#ifndef CONFIG_VL6180X_MEAS_PERIOD
98#define CONFIG_VL6180X_MEAS_PERIOD (20)
101#ifndef CONFIG_VL6180X_RNG_MAX_TIME
103#define CONFIG_VL6180X_RNG_MAX_TIME (50)
106#ifndef CONFIG_VL6180X_RNG_INT
108#define CONFIG_VL6180X_RNG_INT (VL6180X_INT_DRDY)
111#ifndef CONFIG_VL6180X_RNG_THRESH_LOW
113#define CONFIG_VL6180X_RNG_THRESH_LOW (20)
116#ifndef CONFIG_VL6180X_RNG_THRESH_HIGH
118#define CONFIG_VL6180X_RNG_THRESH_HIGH (90)
121#ifndef CONFIG_VL6180X_ALS_INT_TIME
123#define CONFIG_VL6180X_ALS_INT_TIME (100)
126#ifndef CONFIG_VL6180X_ALS_GAIN
128#define CONFIG_VL6180X_ALS_GAIN (VL6180X_ALS_GAIN_1)
131#ifndef CONFIG_VL6180X_ALS_LUX_RES
133#define CONFIG_VL6180X_ALS_LUX_RES 320
136#ifndef CONFIG_VL6180X_ALS_INT
138#define CONFIG_VL6180X_ALS_INT (VL6180X_INT_DRDY)
141#ifndef CONFIG_VL6180X_ALS_THRESH_LOW
143#define CONFIG_VL6180X_ALS_THRESH_LOW (50)
146#ifndef CONFIG_VL6180X_ALS_THRESH_HIGH
148#define CONFIG_VL6180X_ALS_THRESH_HIGH (2000)
151#if IS_USED(MODULE_VL6180X_RNG) || DOXYGEN
153#define VL6180X_PARAM_RANGE .rng_max_time = CONFIG_VL6180X_RNG_MAX_TIME,
155#define VL6180X_PARAM_RANGE
158#if IS_USED(MODULE_VL6180X_ALS) || DOXYGEN
160#define VL6180X_PARAM_ALS .als_int_time = CONFIG_VL6180X_ALS_INT_TIME, \
161 .als_gain = CONFIG_VL6180X_ALS_GAIN, \
162 .als_lux_res = CONFIG_VL6180X_ALS_LUX_RES,
164#define VL6180X_PARAM_ALS
167#if IS_USED(MODULE_VL6180X_SHUTDOWN) || DOXYGEN
169#define VL6180X_PARAM_SHUTDOWN .shutdown_pin = VL6180X_PARAM_SHUTDOWN_PIN,
171#define VL6180X_PARAM_SHUTDOWN
174#if IS_USED(MODULE_VL6180X_IRQ) || DOXYGEN
176#define VL6180X_PARAM_INT .int_pin = VL6180X_PARAM_INT_PIN,
178#if IS_USED(MODULE_VL6180X_RNG) || DOXYGEN
180#define VL6180X_PARAM_INT_RNG_CFG .int_cfg.rng_int = CONFIG_VL6180X_RNG_INT, \
181 .int_thresh.rng_low = CONFIG_VL6180X_RNG_THRESH_LOW, \
182 .int_thresh.rng_high = CONFIG_VL6180X_RNG_THRESH_HIGH,
184#define VL6180X_PARAM_INT_RNG_CFG
187#if IS_USED(MODULE_VL6180X_ALS) || DOXYGEN
189#define VL6180X_PARAM_INT_ALS_CFG .int_cfg.als_int = CONFIG_VL6180X_ALS_INT, \
190 .int_thresh.als_low = CONFIG_VL6180X_ALS_THRESH_LOW, \
191 .int_thresh.als_high = CONFIG_VL6180X_ALS_THRESH_HIGH,
193#define VL6180X_PARAM_INT_ALS_CFG
197#define VL6180X_PARAM_INT
198#define VL6180X_PARAM_INT_RNG_CFG
199#define VL6180X_PARAM_INT_ALS_CFG
202#if !VL6180X_PARAMS || DOXYGEN
204#define VL6180X_PARAMS { \
205 .i2c_dev = VL6180X_PARAM_DEV, \
206 .i2c_addr = VL6180X_PARAM_ADDR, \
207 .period = CONFIG_VL6180X_MEAS_PERIOD, \
208 VL6180X_PARAM_RANGE \
210 VL6180X_PARAM_SHUTDOWN \
212 VL6180X_PARAM_INT_RNG_CFG \
213 VL6180X_PARAM_INT_ALS_CFG \
217#if !defined(VL6180X_SAUL_INFO) || DOXYGEN
219#define VL6180X_SAUL_INFO { .name = "vl6180x" }
SAUL registry interface definition.
Additional data to collect for each entry.
VL6180X device configuration.
static const vl6180x_params_t vl6180x_params[]
Allocate some memory to store the actual configuration.
#define VL6180X_PARAMS
Default configuration parameter set.
#define VL6180X_SAUL_INFO
Default SAUL information.
static const saul_reg_info_t vl6180x_saul_info[]
Additional meta information to keep in the SAUL registry.