31 #ifndef VL6180X_PARAM_DEV
33 #define VL6180X_PARAM_DEV I2C_DEV(0)
36 #ifndef VL6180X_PARAM_ADDR
38 #define VL6180X_PARAM_ADDR (VL6180X_I2C_ADDR)
41 #ifndef VL6180X_PARAM_INT_PIN
43 #define VL6180X_PARAM_INT_PIN (GPIO_PIN(0, 1))
46 #ifndef VL6180X_PARAM_SHUTDOWN_PIN
48 #define VL6180X_PARAM_SHUTDOWN_PIN (GPIO_PIN(0, 2))
59 #ifdef CONFIG_VL6180X_ALS_GAIN_1
60 #define CONFIG_VL6180X_ALS_GAIN (VL6180X_ALS_GAIN_1)
61 #elif CONFIG_VL6180X_ALS_GAIN_1_25
62 #define CONFIG_VL6180X_ALS_GAIN (VL6180X_ALS_GAIN_1_25)
63 #elif CONFIG_VL6180X_ALS_GAIN_1_67
64 #define CONFIG_VL6180X_ALS_GAIN (VL6180X_ALS_GAIN_1_67)
65 #elif CONFIG_VL6180X_ALS_GAIN_2_5
66 #define CONFIG_VL6180X_ALS_GAIN (VL6180X_ALS_GAIN_2_5)
67 #elif CONFIG_VL6180X_ALS_GAIN_5
68 #define CONFIG_VL6180X_ALS_GAIN (VL6180X_ALS_GAIN_5)
69 #elif CONFIG_VL6180X_ALS_GAIN_10
70 #define CONFIG_VL6180X_ALS_GAIN (VL6180X_ALS_GAIN_10)
71 #elif CONFIG_VL6180X_ALS_GAIN_20
72 #define CONFIG_VL6180X_ALS_GAIN (VL6180X_ALS_GAIN_20)
73 #elif CONFIG_VL6180X_ALS_GAIN_40
74 #define CONFIG_VL6180X_ALS_GAIN (VL6180X_ALS_GAIN_40)
77 #ifdef CONFIG_VL6180X_RNG_INT_DRDY
78 #define CONFIG_VL6180X_RNG_INT (VL6180X_INT_DRDY)
79 #elif CONFIG_VL6180X_RNG_INT_LOW
80 #define CONFIG_VL6180X_RNG_INT (VL6180X_INT_LOW)
81 #elif CONFIG_VL6180X_RNG_INT_HIGH
82 #define CONFIG_VL6180X_RNG_INT (VL6180X_INT_HIGH)
83 #elif CONFIG_VL6180X_RNG_INT_OUT
84 #define CONFIG_VL6180X_RNG_INT (VL6180X_INT_OUT)
87 #ifdef CONFIG_VL6180X_ALS_INT_DRDY
88 #define CONFIG_VL6180X_ALS_INT (VL6180X_INT_DRDY)
89 #elif CONFIG_VL6180X_ALS_INT_LOW
90 #define CONFIG_VL6180X_ALS_INT (VL6180X_INT_LOW)
91 #elif CONFIG_VL6180X_ALS_INT_HIGH
92 #define CONFIG_VL6180X_ALS_INT (VL6180X_INT_HIGH)
93 #elif CONFIG_VL6180X_ALS_INT_OUT
94 #define CONFIG_VL6180X_ALS_INT (VL6180X_INT_OUT)
99 #ifndef CONFIG_VL6180X_MEAS_PERIOD
101 #define CONFIG_VL6180X_MEAS_PERIOD (20)
104 #ifndef CONFIG_VL6180X_RNG_MAX_TIME
106 #define CONFIG_VL6180X_RNG_MAX_TIME (50)
109 #ifndef CONFIG_VL6180X_RNG_INT
111 #define CONFIG_VL6180X_RNG_INT (VL6180X_INT_DRDY)
114 #ifndef CONFIG_VL6180X_RNG_THRESH_LOW
116 #define CONFIG_VL6180X_RNG_THRESH_LOW (20)
119 #ifndef CONFIG_VL6180X_RNG_THRESH_HIGH
121 #define CONFIG_VL6180X_RNG_THRESH_HIGH (90)
124 #ifndef CONFIG_VL6180X_ALS_INT_TIME
126 #define CONFIG_VL6180X_ALS_INT_TIME (100)
129 #ifndef CONFIG_VL6180X_ALS_GAIN
131 #define CONFIG_VL6180X_ALS_GAIN (VL6180X_ALS_GAIN_1)
134 #ifndef CONFIG_VL6180X_ALS_LUX_RES
136 #define CONFIG_VL6180X_ALS_LUX_RES 320
139 #ifndef CONFIG_VL6180X_ALS_INT
141 #define CONFIG_VL6180X_ALS_INT (VL6180X_INT_DRDY)
144 #ifndef CONFIG_VL6180X_ALS_THRESH_LOW
146 #define CONFIG_VL6180X_ALS_THRESH_LOW (50)
149 #ifndef CONFIG_VL6180X_ALS_THRESH_HIGH
151 #define CONFIG_VL6180X_ALS_THRESH_HIGH (2000)
154 #if IS_USED(MODULE_VL6180X_RNG) || DOXYGEN
156 #define VL6180X_PARAM_RANGE .rng_max_time = CONFIG_VL6180X_RNG_MAX_TIME,
158 #define VL6180X_PARAM_RANGE
161 #if IS_USED(MODULE_VL6180X_ALS) || DOXYGEN
163 #define VL6180X_PARAM_ALS .als_int_time = CONFIG_VL6180X_ALS_INT_TIME, \
164 .als_gain = CONFIG_VL6180X_ALS_GAIN, \
165 .als_lux_res = CONFIG_VL6180X_ALS_LUX_RES,
167 #define VL6180X_PARAM_ALS
170 #if IS_USED(MODULE_VL6180X_SHUTDOWN) || DOXYGEN
172 #define VL6180X_PARAM_SHUTDOWN .shutdown_pin = VL6180X_PARAM_SHUTDOWN_PIN,
174 #define VL6180X_PARAM_SHUTDOWN
177 #if IS_USED(MODULE_VL6180X_IRQ) || DOXYGEN
179 #define VL6180X_PARAM_INT .int_pin = VL6180X_PARAM_INT_PIN,
181 #if IS_USED(MODULE_VL6180X_RNG) || DOXYGEN
183 #define VL6180X_PARAM_INT_RNG_CFG .int_cfg.rng_int = CONFIG_VL6180X_RNG_INT, \
184 .int_thresh.rng_low = CONFIG_VL6180X_RNG_THRESH_LOW, \
185 .int_thresh.rng_high = CONFIG_VL6180X_RNG_THRESH_HIGH,
187 #define VL6180X_PARAM_INT_RNG_CFG
190 #if IS_USED(MODULE_VL6180X_ALS) || DOXYGEN
192 #define VL6180X_PARAM_INT_ALS_CFG .int_cfg.als_int = CONFIG_VL6180X_ALS_INT, \
193 .int_thresh.als_low = CONFIG_VL6180X_ALS_THRESH_LOW, \
194 .int_thresh.als_high = CONFIG_VL6180X_ALS_THRESH_HIGH,
196 #define VL6180X_PARAM_INT_ALS_CFG
200 #define VL6180X_PARAM_INT
201 #define VL6180X_PARAM_INT_RNG_CFG
202 #define VL6180X_PARAM_INT_ALS_CFG
205 #if !VL6180X_PARAMS || DOXYGEN
207 #define VL6180X_PARAMS { \
208 .i2c_dev = VL6180X_PARAM_DEV, \
209 .i2c_addr = VL6180X_PARAM_ADDR, \
210 .period = CONFIG_VL6180X_MEAS_PERIOD, \
211 VL6180X_PARAM_RANGE \
213 VL6180X_PARAM_SHUTDOWN \
215 VL6180X_PARAM_INT_RNG_CFG \
216 VL6180X_PARAM_INT_ALS_CFG \
220 #if !defined(VL6180X_SAUL_INFO) || DOXYGEN
222 #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.