kernel: iio: add drivers for st_lsm6dsx IMU MEMS sensors
[oweals/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_accel-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:= \
337         $(LINUX_DIR)/drivers/iio/accel/st_accel_i2c.ko \
338         $(LINUX_DIR)/drivers/iio/common/st_sensors/st_sensors_i2c.ko
339   AUTOLOAD:=$(call AutoLoad,56,st_accel_i2c)
340 endef
341
342 define KernelPackage/iio-st_accel-i2c/description
343  This package adds support for STMicroelectronics I2C based accelerometers
344 endef
345
346 $(eval $(call KernelPackage,iio-st_accel-i2c))
347
348
349 define KernelPackage/iio-st_accel-spi
350   SUBMENU:=$(IIO_MENU)
351   TITLE:=STMicroelectronics accelerometer 3-Axis Driver (SPI)
352   DEPENDS:=+kmod-iio-st_accel +kmod-regmap-spi
353   KCONFIG:= CONFIG_IIO_ST_ACCEL_SPI_3AXIS
354   FILES:= \
355         $(LINUX_DIR)/drivers/iio/accel/st_accel_spi.ko \
356         $(LINUX_DIR)/drivers/iio/common/st_sensors/st_sensors_spi.ko
357   AUTOLOAD:=$(call AutoLoad,56,st_accel_spi)
358 endef
359
360 define KernelPackage/iio-st_accel-spi/description
361  This package adds support for STMicroelectronics SPI based accelerometers
362 endef
363
364 $(eval $(call KernelPackage,iio-st_accel-spi))
365
366
367 define KernelPackage/iio-lsm6dsx
368   SUBMENU:=$(IIO_MENU)
369   DEPENDS:=+kmod-iio-core +kmod-iio-kfifo-buf +kmod-regmap-core
370   TITLE:=ST LSM6DSx driver for IMU MEMS sensors
371   KCONFIG:=CONFIG_IIO_ST_LSM6DSX
372   FILES:=$(LINUX_DIR)/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.ko
373   AUTOLOAD:=$(call AutoProbe,st_lsm6dsx)
374 endef
375
376 define KernelPackage/iio-lsm6dsx/description
377  Support for the ST LSM6DSx and related IMU MEMS sensors.
378 endef
379
380 $(eval $(call KernelPackage,iio-lsm6dsx))
381
382
383 define KernelPackage/iio-lsm6dsx-i2c
384   SUBMENU:=$(IIO_MENU)
385   DEPENDS:=+kmod-iio-lsm6dsx +kmod-i2c-core +kmod-regmap-i2c
386   TITLE:=ST LSM6DSx driver for IMU MEMS sensors (I2C)
387   KCONFIG:=CONFIG_IIO_ST_LSM6DSX
388   FILES:=$(LINUX_DIR)/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.ko
389   AUTOLOAD:=$(call AutoProbe,st_lsm6dsx-i2c)
390 endef
391
392 define KernelPackage/iio-lsm6dsx-i2c/description
393  Support for the ST LSM6DSx and related IMU MEMS I2C sensors.
394 endef
395
396 $(eval $(call KernelPackage,iio-lsm6dsx-i2c))
397
398
399 define KernelPackage/iio-lsm6dsx-spi
400   SUBMENU:=$(IIO_MENU)
401   DEPENDS:=+kmod-iio-lsm6dsx +kmod-regmap-spi
402   TITLE:=ST LSM6DSx driver for IMU MEMS sensors (SPI)
403   KCONFIG:=CONFIG_IIO_ST_LSM6DSX
404   FILES:=$(LINUX_DIR)/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.ko
405   AUTOLOAD:=$(call AutoProbe,st_lsm6dsx-spi)
406 endef
407
408 define KernelPackage/iio-lsm6dsx-spi/description
409  Support for the ST LSM6DSx and related IMU MEMS SPI sensors.
410 endef
411
412 $(eval $(call KernelPackage,iio-lsm6dsx-spi))
413
414
415 define KernelPackage/iio-sps30
416   SUBMENU:=$(IIO_MENU)
417   DEPENDS:=@!LINUX_4_14 +kmod-i2c-core +kmod-iio-core +kmod-industrialio-triggered-buffer +kmod-lib-crc8
418   TITLE:=Sensirion SPS30 particulate matter sensor
419   KCONFIG:=CONFIG_SPS30
420   FILES:=$(LINUX_DIR)/drivers/iio/chemical/sps30.ko
421   AUTOLOAD:=$(call AutoProbe,sps30)
422 endef
423
424 define KernelPackage/iio-sps30/description
425  Support for the Sensirion SPS30 particulate matter sensor.
426 endef
427
428 $(eval $(call KernelPackage,iio-sps30))
429
430
431 define KernelPackage/iio-tsl4531
432   SUBMENU:=$(IIO_MENU)
433   DEPENDS:=+kmod-i2c-core +kmod-iio-core
434   TITLE:=TAOS TSL4531 ambient light sensor
435   KCONFIG:= CONFIG_TSL4531
436   FILES:=$(LINUX_DIR)/drivers/iio/light/tsl4531.ko
437   AUTOLOAD:=$(call AutoLoad,56,tsl4531)
438 endef
439
440 define KernelPackage/iio-tsl4531/description
441  Support for TAOS TSL4531x family of ambient light sensors
442  connected via I2C. Following models are usable:
443  TSL45311, TSL45313, TSL45315, TSL45317.
444 endef
445
446 $(eval $(call KernelPackage,iio-tsl4531))
447
448
449 define KernelPackage/iio-fxos8700
450   SUBMENU:=$(IIO_MENU)
451   TITLE:=Freescale FXOS8700 3-axis accelerometer driver
452   DEPENDS:=+kmod-iio-core +kmod-regmap-core
453   KCONFIG:= CONFIG_FXOS8700
454   FILES:=$(LINUX_DIR)/drivers/iio/imu/fxos8700_core.ko
455   AUTOLOAD:=$(call AutoLoad,56,fxos8700)
456 endef
457
458 define KernelPackage/iio-fxos8700/description
459  Support for Freescale FXOS8700 3-axis accelerometer.
460 endef
461
462 $(eval $(call KernelPackage,iio-fxos8700))
463
464
465 define KernelPackage/iio-fxos8700-i2c
466   SUBMENU:=$(IIO_MENU)
467   TITLE:=Freescale FXOS8700 3-axis acceleromter driver (I2C)
468   DEPENDS:=+kmod-iio-fxos8700 +kmod-i2c-core +kmod-regmap-i2c
469   KCONFIG:= CONFIG_FXOS8700_I2C
470   FILES:=$(LINUX_DIR)/drivers/iio/imu/fxos8700_i2c.ko
471   AUTOLOAD:=$(call AutoLoad,56,fxos8700_i2c)
472 endef
473
474 define KernelPackage/iio-fxos8700-i2c/description
475  Support for Freescale FXOS8700 3-axis accelerometer
476  connected via I2C.
477 endef
478
479
480 $(eval $(call KernelPackage,iio-fxos8700-i2c))
481
482 define KernelPackage/iio-fxos8700-spi
483   SUBMENU:=$(IIO_MENU)
484   DEPENDS:=+kmod-iio-fxos8700 +kmod-regmap-spi
485   TITLE:=Freescale FXOS8700 3-axis accelerometer driver (SPI)
486   KCONFIG:= CONFIG_FXOS8700_SPI
487   FILES:=$(LINUX_DIR)/drivers/iio/imu/fxos8700_spi.ko
488   AUTOLOAD:=$(call AutoLoad,56,fxos8700_spi)
489 endef
490
491 define KernelPackage/iio-fxos8700-spi/description
492  Support for Freescale FXOS8700 3-axis accelerometer
493  connected via SPI.
494 endef
495
496 $(eval $(call KernelPackage,iio-fxos8700-spi))