kernel: add kernel module for Sensirion SPS30 PMS
[openwrt/openwrt.git] / package / kernel / linux / modules / iio.mk
1 #
2 # This is free software, licensed under the GNU General Public License v2.
3 # See /LICENSE for more information.
4 #
5
6 IIO_MENU:=Industrial I/O Modules
7
8
9 define KernelPackage/iio-core
10 SUBMENU:=$(IIO_MENU)
11 TITLE:=Industrial IO core
12 KCONFIG:= \
13 CONFIG_IIO \
14 CONFIG_IIO_BUFFER=y \
15 CONFIG_IIO_TRIGGER=y
16 FILES:=$(LINUX_DIR)/drivers/iio/industrialio.ko
17 AUTOLOAD:=$(call AutoLoad,55,industrialio)
18 endef
19
20 define KernelPackage/iio-core/description
21 The industrial I/O subsystem provides a unified framework for
22 drivers for many different types of embedded sensors using a
23 number of different physical interfaces (i2c, spi, etc)
24 endef
25
26 $(eval $(call KernelPackage,iio-core))
27
28
29 define KernelPackage/iio-kfifo-buf
30 SUBMENU:=$(IIO_MENU)
31 TITLE:=Industrial I/O buffering based on kfifo
32 DEPENDS:=+kmod-iio-core
33 KCONFIG:=CONFIG_IIO_KFIFO_BUF
34 FILES:=$(LINUX_DIR)/drivers/iio/buffer/kfifo_buf.ko
35 AUTOLOAD:=$(call AutoLoad,55,kfifo_buf)
36 endef
37
38 define KernelPackage/iio-kfifo-buf/description
39 A simple fifo based on kfifo. Note that this currently provides no buffer
40 events so it is up to userspace to work out how often to read from the buffer.
41 endef
42
43 $(eval $(call KernelPackage,iio-kfifo-buf))
44
45
46 define KernelPackage/industrialio-triggered-buffer
47 SUBMENU:=$(IIO_MENU)
48 TITLE:=Provides helper functions for setting up triggered buffers.
49 DEPENDS:=+kmod-iio-core +kmod-iio-kfifo-buf
50 KCONFIG:=CONFIG_IIO_TRIGGERED_BUFFER
51 FILES:=$(LINUX_DIR)/drivers/iio/buffer/industrialio-triggered-buffer.ko
52 AUTOLOAD:=$(call AutoLoad,55,industrialio-triggered-buffer)
53 endef
54
55 define KernelPackage/industrialio-triggered-buffer/description
56 Provides helper functions for setting up triggered buffers.
57 endef
58
59 $(eval $(call KernelPackage,industrialio-triggered-buffer))
60
61
62 define KernelPackage/iio-ad799x
63 SUBMENU:=$(IIO_MENU)
64 DEPENDS:=+kmod-i2c-core +kmod-iio-core +kmod-industrialio-triggered-buffer
65 TITLE:=Analog Devices AD799x ADC driver
66 KCONFIG:= \
67 CONFIG_AD799X_RING_BUFFER=y \
68 CONFIG_AD799X
69 FILES:=$(LINUX_DIR)/drivers/iio/adc/ad799x.ko
70 AUTOLOAD:=$(call AutoLoad,56,ad799x)
71 endef
72
73 define KernelPackage/iio-ad799x/description
74 support for Analog Devices:
75 ad7991, ad7995, ad7999, ad7992, ad7993, ad7994, ad7997, ad7998
76 i2c analog to digital converters (ADC).
77 endef
78
79 $(eval $(call KernelPackage,iio-ad799x))
80
81 define KernelPackage/iio-hmc5843
82 SUBMENU:=$(IIO_MENU)
83 DEPENDS:=+kmod-i2c-core +kmod-iio-core +kmod-regmap-i2c +kmod-industrialio-triggered-buffer
84 TITLE:=Honeywell HMC58x3 Magnetometer
85 KCONFIG:= CONFIG_SENSORS_HMC5843_I2C
86 FILES:= \
87 $(LINUX_DIR)/drivers/iio/magnetometer/hmc5843_i2c.ko \
88 $(LINUX_DIR)/drivers/iio/magnetometer/hmc5843_core.ko
89 AUTOLOAD:=$(call AutoLoad,56,hmc5843)
90 endef
91
92 define KernelPackage/iio-hmc5843/description
93 Honeywell HMC5843/5883/5883L 3-Axis Magnetometer
94 endef
95
96 $(eval $(call KernelPackage,iio-hmc5843))
97
98 define KernelPackage/iio-bh1750
99 SUBMENU:=$(IIO_MENU)
100 DEPENDS:=+kmod-i2c-core +kmod-iio-core
101 TITLE:=ROHM BH1750 ambient light sensor
102 KCONFIG:= CONFIG_BH1750
103 FILES:=$(LINUX_DIR)/drivers/iio/light/bh1750.ko
104 AUTOLOAD:=$(call AutoLoad,56,bh1750)
105 endef
106 define KernelPackage/iio-bh1750/description
107 ROHM BH1750 ambient light sensor (i2c bus)
108 endef
109 $(eval $(call KernelPackage,iio-bh1750))
110
111 define KernelPackage/iio-am2315
112 SUBMENU:=$(IIO_MENU)
113 DEPENDS:=+kmod-i2c-core +kmod-iio-core +kmod-industrialio-triggered-buffer
114 TITLE:=Asong AM2315 humidity/temperature sensor
115 KCONFIG:= CONFIG_AM2315
116 FILES:=$(LINUX_DIR)/drivers/iio/humidity/am2315.ko
117 AUTOLOAD:=$(call AutoLoad,56,am2315)
118 endef
119 define KernelPackage/iio-am2315/description
120 Aosong AM2315 humidity/temperature sensor (I2C bus)
121 endef
122 $(eval $(call KernelPackage,iio-am2315))
123
124 define KernelPackage/iio-mxs-lradc
125 SUBMENU:=$(IIO_MENU)
126 DEPENDS:=@TARGET_mxs +kmod-iio-core +kmod-industrialio-triggered-buffer
127 TITLE:=Freescale i.MX23/i.MX28 LRADC ADC driver
128 KCONFIG:= \
129 CONFIG_MXS_LRADC_ADC
130 FILES:=$(LINUX_DIR)/drivers/iio/adc/mxs-lradc-adc.ko
131 AUTOLOAD:=$(call AutoLoad,56,mxs-lradc-adc)
132 endef
133
134 define KernelPackage/iio-mxs-lradc/description
135 Support for Freescale's i.MX23/i.MX28 SoC internal Low-Resolution ADC
136 endef
137
138 $(eval $(call KernelPackage,iio-mxs-lradc))
139
140 define KernelPackage/iio-dht11
141 SUBMENU:=$(IIO_MENU)
142 DEPENDS:=+kmod-iio-core @GPIO_SUPPORT @USES_DEVICETREE
143 TITLE:=DHT11 (and compatible) humidity and temperature sensors
144 KCONFIG:= \
145 CONFIG_DHT11
146 FILES:=$(LINUX_DIR)/drivers/iio/humidity/dht11.ko
147 AUTOLOAD:=$(call AutoLoad,56,dht11)
148 endef
149
150 define KernelPackage/iio-dht11/description
151 support for DHT11 and DHT22 digitial humidity and temperature sensors
152 attached at GPIO lines. You will need a custom device tree file to
153 specify the GPIO line to use.
154 endef
155
156 $(eval $(call KernelPackage,iio-dht11))
157
158
159 define KernelPackage/iio-bme680
160 SUBMENU:=$(IIO_MENU)
161 TITLE:=BME680 gas/humidity/pressure/temperature sensor
162 DEPENDS:=@!LINUX_4_14 +kmod-iio-core +kmod-regmap-core
163 KCONFIG:=CONFIG_BME680
164 FILES:=$(LINUX_DIR)/drivers/iio/chemical/bme680_core.ko
165 endef
166
167 define KernelPackage/iio-bme680/description
168 This driver adds support for Bosch Sensortec BME680 sensor with gas,
169 humidity, pressure and temperatue sensing capability.
170 endef
171
172 $(eval $(call KernelPackage,iio-bme680))
173
174 define KernelPackage/iio-bme680-i2c
175 SUBMENU:=$(IIO_MENU)
176 TITLE:=BME680 gas/humidity/pressure/temperature sensor (I2C)
177 DEPENDS:=+kmod-iio-bme680 +kmod-regmap-i2c
178 KCONFIG:=CONFIG_BME680_I2C
179 FILES:=$(LINUX_DIR)/drivers/iio/chemical/bme680_i2c.ko
180 AUTOLOAD:=$(call AutoProbe,bme680-i2c)
181 endef
182 define KernelPackage/iio-bme680-i2c/description
183 This driver adds support for Bosch Sensortec's BME680 connected via I2C.
184 endef
185
186 $(eval $(call KernelPackage,iio-bme680-i2c))
187
188 define KernelPackage/iio-bme680-spi
189 SUBMENU:=$(IIO_MENU)
190 TITLE:=BME680 gas/humidity/pressure/temperature sensor (SPI)
191 DEPENDS:=+kmod-iio-bme680 +kmod-regmap-spi
192 KCONFIG:=CONFIG_BME680_SPI
193 FILES:=$(LINUX_DIR)/drivers/iio/chemical/bme680_spi.ko
194 AUTOLOAD:=$(call AutoProbe,bme680-spi)
195 endef
196 define KernelPackage/iio-bme680-spi/description
197 This driver adds support for Bosch Sensortec's BME680 connected via SPI.
198 endef
199
200 $(eval $(call KernelPackage,iio-bme680-spi))
201
202
203 define KernelPackage/iio-bmp280
204 SUBMENU:=$(IIO_MENU)
205 TITLE:=BMP180/BMP280/BME280 pressure/temperatur sensor
206 DEPENDS:=+kmod-iio-core +kmod-regmap-core
207 KCONFIG:=CONFIG_BMP280
208 FILES:=$(LINUX_DIR)/drivers/iio/pressure/bmp280.ko
209 endef
210
211 define KernelPackage/iio-bmp280/description
212 This driver adds support for Bosch Sensortec BMP180 and BMP280 pressure and
213 temperature sensors. Also supports the BME280 with an additional humidity
214 sensor channel.
215 endef
216
217 $(eval $(call KernelPackage,iio-bmp280))
218
219
220 define KernelPackage/iio-bmp280-i2c
221 SUBMENU:=$(IIO_MENU)
222 TITLE:=BMP180/BMP280/BME280 pressure/temperatur sensor (I2C)
223 DEPENDS:=+kmod-iio-bmp280 +kmod-i2c-core +kmod-regmap-i2c
224 KCONFIG:=CONFIG_BMP280_I2C
225 FILES:=$(LINUX_DIR)/drivers/iio/pressure/bmp280-i2c.ko
226 AUTOLOAD:=$(call AutoProbe,bmp280-i2c)
227 endef
228 define KernelPackage/iio-bmp280-i2c/description
229 This driver adds support for Bosch Sensortec's digital pressure and
230 temperature sensor connected via I2C.
231 endef
232
233 $(eval $(call KernelPackage,iio-bmp280-i2c))
234
235
236 define KernelPackage/iio-bmp280-spi
237 SUBMENU:=$(IIO_MENU)
238 TITLE:=BMP180/BMP280/BME280 pressure/temperatur sensor (SPI)
239 DEPENDS:=+kmod-iio-bmp280 +kmod-spi-bitbang
240 KCONFIG:=CONFIG_BMP280_SPI
241 FILES:=$(LINUX_DIR)/drivers/iio/pressure/bmp280-spi.ko
242 AUTOLOAD:=$(call AutoProbe,bmp280-spi)
243 endef
244 define KernelPackage/iio-bmp280-spi/description
245 This driver adds support for Bosch Sensortec's digital pressure and
246 temperature sensor connected via SPI.
247 endef
248
249 $(eval $(call KernelPackage,iio-bmp280-spi))
250
251 define KernelPackage/iio-htu21
252 SUBMENU:=$(IIO_MENU)
253 DEPENDS:=+kmod-i2c-core +kmod-iio-core
254 TITLE:=HTU21 humidity & temperature sensor
255 KCONFIG:= \
256 CONFIG_HTU21 \
257 CONFIG_IIO_MS_SENSORS_I2C
258 FILES:= \
259 $(LINUX_DIR)/drivers/iio/humidity/htu21.ko \
260 $(LINUX_DIR)/drivers/iio/common/ms_sensors/ms_sensors_i2c.ko
261 AUTOLOAD:=$(call AutoLoad,56,htu21)
262 endef
263
264 define KernelPackage/iio-htu21/description
265 support for the Measurement Specialties HTU21 humidity and
266 temperature sensor.
267 This driver is also used for MS8607 temperature, pressure & humidity
268 sensor
269 endef
270
271 $(eval $(call KernelPackage,iio-htu21))
272
273
274 define KernelPackage/iio-ccs811
275 SUBMENU:=$(IIO_MENU)
276 DEPENDS:=+kmod-i2c-core +kmod-iio-core +kmod-industrialio-triggered-buffer
277 TITLE:=AMS CCS811 VOC sensor
278 KCONFIG:= \
279 CONFIG_CCS811
280 FILES:= $(LINUX_DIR)/drivers/iio/chemical/ccs811.ko
281 AUTOLOAD:=$(call AutoLoad,56,ccs811)
282 endef
283
284 define KernelPackage/iio-ccs811/description
285 Support for the AMS CCS811 VOC (Volatile Organic Compounds) sensor
286 endef
287
288 $(eval $(call KernelPackage,iio-ccs811))
289
290
291 define KernelPackage/iio-si7020
292 SUBMENU:=$(IIO_MENU)
293 DEPENDS:=+kmod-i2c-core +kmod-iio-core
294 TITLE:=Silicon Labs Si7020 sensor
295 KCONFIG:= CONFIG_SI7020
296 FILES:=$(LINUX_DIR)/drivers/iio/humidity/si7020.ko
297 AUTOLOAD:=$(call AutoLoad,56,si7020)
298 endef
299
300 define KernelPackage/iio-si7020/description
301 Support for Silicon Labs Si7020 family of relative humidity and
302 temperature sensors connected via I2C. Following models are usable:
303 Si7013, Si7020, Si7021, Hoperf TH06.
304 endef
305
306 $(eval $(call KernelPackage,iio-si7020))
307
308
309 define KernelPackage/iio-st_accel
310 SUBMENU:=$(IIO_MENU)
311 TITLE:=STMicroelectronics accelerometer 3-Axis Driver
312 DEPENDS:=+kmod-iio-core +kmod-regmap-core +kmod-industrialio-triggered-buffer
313 KCONFIG:= \
314 CONFIG_IIO_ST_ACCEL_3AXIS \
315 CONFIG_IIO_ST_SENSORS_CORE
316 FILES:= \
317 $(LINUX_DIR)/drivers/iio/accel/st_accel.ko \
318 $(LINUX_DIR)/drivers/iio/common/st_sensors/st_sensors.ko
319 endef
320
321 define KernelPackage/iio-st_accel/description
322 This package adds support for STMicroelectronics accelerometers:
323 LSM303DLH, LSM303DLHC, LIS3DH, LSM330D, LSM330DL, LSM330DLC,
324 LIS331DLH, LSM303DL, LSM303DLM, LSM330, LIS2DH12, H3LIS331DL,
325 LNG2DM, LIS3DE, LIS2DE12
326 endef
327
328 $(eval $(call KernelPackage,iio-st_accel))
329
330
331 define KernelPackage/iio-st_sensors-i2c
332 SUBMENU:=$(IIO_MENU)
333 TITLE:=STMicroelectronics accelerometer 3-Axis Driver (I2C)
334 DEPENDS:=+kmod-iio-st_accel +kmod-i2c-core +kmod-regmap-i2c
335 KCONFIG:= CONFIG_IIO_ST_ACCEL_I2C_3AXIS
336 FILES:=$(LINUX_DIR)/drivers/iio/common/st_sensors/st_sensors_i2c.ko
337 AUTOLOAD:=$(call AutoLoad,56,st_sensors_i2c)
338 endef
339
340 define KernelPackage/iio-st_sensors-i2c/description
341 This package adds support for STMicroelectronics I2C based accelerometers
342 endef
343
344 $(eval $(call KernelPackage,iio-st_sensors-i2c))
345
346
347 define KernelPackage/iio-sps30
348 SUBMENU:=$(IIO_MENU)
349 DEPENDS:=@!LINUX_4_14 +kmod-i2c-core +kmod-iio-core +kmod-industrialio-triggered-buffer +kmod-lib-crc8
350 TITLE:=Sensirion SPS30 particulate matter sensor
351 KCONFIG:=CONFIG_SPS30
352 FILES:=$(LINUX_DIR)/drivers/iio/chemical/sps30.ko
353 AUTOLOAD:=$(call AutoProbe,sps30)
354 endef
355
356 define KernelPackage/iio-sps30/description
357 Support for the Sensirion SPS30 particulate matter sensor.
358 endef
359
360 $(eval $(call KernelPackage,iio-sps30))
361
362
363 define KernelPackage/iio-st_sensors-spi
364 SUBMENU:=$(IIO_MENU)
365 TITLE:=STMicroelectronics accelerometer 3-Axis Driver (SPI)
366 DEPENDS:=+kmod-iio-st_accel +kmod-regmap-spi
367 KCONFIG:= CONFIG_IIO_ST_ACCEL_SPI_3AXIS
368 FILES:=$(LINUX_DIR)/drivers/iio/common/st_sensors/st_sensors_spi.ko
369 AUTOLOAD:=$(call AutoLoad,56,st_sensors_spi)
370 endef
371
372 define KernelPackage/iio-st_sensors-spi/description
373 This package adds support for STMicroelectronics SPI based accelerometers
374 endef
375
376 $(eval $(call KernelPackage,iio-st_sensors-spi))
377
378
379 define KernelPackage/iio-tsl4531
380 SUBMENU:=$(IIO_MENU)
381 DEPENDS:=+kmod-i2c-core +kmod-iio-core
382 TITLE:=TAOS TSL4531 ambient light sensor
383 KCONFIG:= CONFIG_TSL4531
384 FILES:=$(LINUX_DIR)/drivers/iio/light/tsl4531.ko
385 AUTOLOAD:=$(call AutoLoad,56,tsl4531)
386 endef
387
388 define KernelPackage/iio-tsl4531/description
389 Support for TAOS TSL4531x family of ambient light sensors
390 connected via I2C. Following models are usable:
391 TSL45311, TSL45313, TSL45315, TSL45317.
392 endef
393
394 $(eval $(call KernelPackage,iio-tsl4531))
395
396
397 define KernelPackage/iio-fxos8700
398 SUBMENU:=$(IIO_MENU)
399 TITLE:=Freescale FXOS8700 3-axis accelerometer driver
400 DEPENDS:=+kmod-iio-core +kmod-regmap-core
401 KCONFIG:= CONFIG_FXOS8700
402 FILES:=$(LINUX_DIR)/drivers/iio/imu/fxos8700_core.ko
403 AUTOLOAD:=$(call AutoLoad,56,fxos8700)
404 endef
405
406 define KernelPackage/iio-fxos8700/description
407 Support for Freescale FXOS8700 3-axis accelerometer.
408 endef
409
410 $(eval $(call KernelPackage,iio-fxos8700))
411
412
413 define KernelPackage/iio-fxos8700-i2c
414 SUBMENU:=$(IIO_MENU)
415 TITLE:=Freescale FXOS8700 3-axis acceleromter driver (I2C)
416 DEPENDS:=+kmod-iio-fxos8700 +kmod-i2c-core +kmod-regmap-i2c
417 KCONFIG:= CONFIG_FXOS8700_I2C
418 FILES:=$(LINUX_DIR)/drivers/iio/imu/fxos8700_i2c.ko
419 AUTOLOAD:=$(call AutoLoad,56,fxos8700_i2c)
420 endef
421
422 define KernelPackage/iio-fxos8700-i2c/description
423 Support for Freescale FXOS8700 3-axis accelerometer
424 connected via I2C.
425 endef
426
427
428 $(eval $(call KernelPackage,iio-fxos8700-i2c))
429
430 define KernelPackage/iio-fxos8700-spi
431 SUBMENU:=$(IIO_MENU)
432 DEPENDS:=+kmod-iio-fxos8700 +kmod-regmap-spi
433 TITLE:=Freescale FXOS8700 3-axis accelerometer driver (SPI)
434 KCONFIG:= CONFIG_FXOS8700_SPI
435 FILES:=$(LINUX_DIR)/drivers/iio/imu/fxos8700_spi.ko
436 AUTOLOAD:=$(call AutoLoad,56,fxos8700_spi)
437 endef
438
439 define KernelPackage/iio-fxos8700-spi/description
440 Support for Freescale FXOS8700 3-axis accelerometer
441 connected via SPI.
442 endef
443
444 $(eval $(call KernelPackage,iio-fxos8700-spi))