kernel: add nlmon kernel module
[lede.git] / package / kernel / linux / modules / other.mk
1 #
2 # Copyright (C) 2006-2015 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 OTHER_MENU:=Other modules
9
10 WATCHDOG_DIR:=watchdog
11
12
13 define KernelPackage/6lowpan
14   SUBMENU:=$(OTHER_MENU)
15   TITLE:=6LoWPAN shared code
16   KCONFIG:= \
17         CONFIG_6LOWPAN \
18         CONFIG_6LOWPAN_NHC=n
19   FILES:=$(LINUX_DIR)/net/6lowpan/6lowpan.ko
20   AUTOLOAD:=$(call AutoProbe,6lowpan)
21 endef
22
23 define KernelPackage/6lowpan/description
24   Shared 6lowpan code for IEEE 802.15.4 and Bluetooth.
25 endef
26
27 $(eval $(call KernelPackage,6lowpan))
28
29
30 define KernelPackage/bluetooth
31   SUBMENU:=$(OTHER_MENU)
32   TITLE:=Bluetooth support
33   DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-crypto-hash +kmod-crypto-ecb +kmod-lib-crc16 +kmod-hid +!LINUX_3_18:kmod-crypto-cmac +LINUX_4_4:kmod-regmap
34   KCONFIG:= \
35         CONFIG_BLUEZ \
36         CONFIG_BLUEZ_L2CAP \
37         CONFIG_BLUEZ_SCO \
38         CONFIG_BLUEZ_RFCOMM \
39         CONFIG_BLUEZ_BNEP \
40         CONFIG_BLUEZ_HCIUART \
41         CONFIG_BLUEZ_HCIUSB \
42         CONFIG_BLUEZ_HIDP \
43         CONFIG_BT \
44         CONFIG_BT_BREDR=y \
45         CONFIG_BT_DEBUGFS=n \
46         CONFIG_BT_L2CAP=y \
47         CONFIG_BT_LE=y \
48         CONFIG_BT_SCO=y \
49         CONFIG_BT_RFCOMM \
50         CONFIG_BT_BNEP \
51         CONFIG_BT_HCIBTUSB \
52         CONFIG_BT_HCIBTUSB_BCM=n \
53         CONFIG_BT_HCIUSB \
54         CONFIG_BT_HCIUART \
55         CONFIG_BT_HCIUART_BCM=n \
56         CONFIG_BT_HCIUART_INTEL=n \
57         CONFIG_BT_HCIUART_H4 \
58         CONFIG_BT_HIDP \
59         CONFIG_HID_SUPPORT=y
60   $(call AddDepends/rfkill)
61   FILES:= \
62         $(LINUX_DIR)/net/bluetooth/bluetooth.ko \
63         $(LINUX_DIR)/net/bluetooth/rfcomm/rfcomm.ko \
64         $(LINUX_DIR)/net/bluetooth/bnep/bnep.ko \
65         $(LINUX_DIR)/net/bluetooth/hidp/hidp.ko \
66         $(LINUX_DIR)/drivers/bluetooth/hci_uart.ko \
67         $(LINUX_DIR)/drivers/bluetooth/btusb.ko
68 ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,4.1.0)),1)
69   FILES+= \
70         $(LINUX_DIR)/drivers/bluetooth/btintel.ko
71 endif
72   AUTOLOAD:=$(call AutoProbe,bluetooth rfcomm bnep hidp hci_uart btusb)
73 endef
74
75 define KernelPackage/bluetooth/description
76  Kernel support for Bluetooth devices
77 endef
78
79 $(eval $(call KernelPackage,bluetooth))
80
81 define KernelPackage/ath3k
82   SUBMENU:=$(OTHER_MENU)
83   TITLE:=ATH3K Kernel Module support
84   DEPENDS:=+kmod-bluetooth +ar3k-firmware
85   KCONFIG:= \
86         CONFIG_BT_ATH3K \
87         CONFIG_BT_HCIUART_ATH3K=y
88   $(call AddDepends/bluetooth)
89   FILES:= \
90         $(LINUX_DIR)/drivers/bluetooth/ath3k.ko
91   AUTOLOAD:=$(call AutoProbe,ath3k)
92 endef
93
94 define KernelPackage/ath3k/description
95  Kernel support for ATH3K Module
96 endef
97
98 $(eval $(call KernelPackage,ath3k))
99
100
101 define KernelPackage/bluetooth_6lowpan
102   SUBMENU:=$(OTHER_MENU)
103   TITLE:=Bluetooth 6LoWPAN support
104   DEPENDS:=+kmod-6lowpan +kmod-bluetooth
105   KCONFIG:=CONFIG_BT_6LOWPAN
106   FILES:=$(LINUX_DIR)/net/bluetooth/bluetooth_6lowpan.ko
107   AUTOLOAD:=$(call AutoProbe,bluetooth_6lowpan)
108 endef
109
110 define KernelPackage/bluetooth_6lowpan/description
111  Kernel support for 6LoWPAN over Bluetooth Low Energy devices
112 endef
113
114 $(eval $(call KernelPackage,bluetooth_6lowpan))
115
116
117 define KernelPackage/bluetooth-hci-h4p
118   SUBMENU:=$(OTHER_MENU)
119   TITLE:=HCI driver with H4 Nokia extensions
120   DEPENDS:=@TARGET_omap24xx +kmod-bluetooth
121   KCONFIG:=CONFIG_BT_HCIH4P
122   FILES:=$(LINUX_DIR)/drivers/bluetooth/hci_h4p/hci_h4p.ko
123   AUTOLOAD:=$(call AutoProbe,hci_h4p)
124 endef
125
126 define KernelPackage/bluetooth-hci-h4p/description
127  HCI driver with H4 Nokia extensions
128 endef
129
130 $(eval $(call KernelPackage,bluetooth-hci-h4p))
131
132
133 define KernelPackage/dma-buf
134   TITLE:=DMA shared buffer support
135   HIDDEN:=1
136   KCONFIG:=CONFIG_DMA_SHARED_BUFFER
137   FILES:=$(LINUX_DIR)/drivers/dma-buf/dma-shared-buffer.ko
138   AUTOLOAD:=$(call AutoLoad,20,dma-shared-buffer)
139 endef
140 $(eval $(call KernelPackage,dma-buf))
141
142
143 define KernelPackage/eeprom-93cx6
144   SUBMENU:=$(OTHER_MENU)
145   TITLE:=EEPROM 93CX6 support
146   KCONFIG:=CONFIG_EEPROM_93CX6
147   FILES:=$(LINUX_DIR)/drivers/misc/eeprom/eeprom_93cx6.ko
148   AUTOLOAD:=$(call AutoLoad,20,eeprom_93cx6)
149 endef
150
151 define KernelPackage/eeprom-93cx6/description
152  Kernel module for EEPROM 93CX6 support
153 endef
154
155 $(eval $(call KernelPackage,eeprom-93cx6))
156
157
158 define KernelPackage/eeprom-at24
159   SUBMENU:=$(OTHER_MENU)
160   TITLE:=EEPROM AT24 support
161   KCONFIG:=CONFIG_EEPROM_AT24
162   DEPENDS:=+kmod-i2c-core
163   FILES:=$(LINUX_DIR)/drivers/misc/eeprom/at24.ko
164   AUTOLOAD:=$(call AutoProbe,at24)
165 endef
166
167 define KernelPackage/eeprom-at24/description
168  Kernel module for most I2C EEPROMs
169 endef
170
171 $(eval $(call KernelPackage,eeprom-at24))
172
173
174 define KernelPackage/eeprom-at25
175   SUBMENU:=$(OTHER_MENU)
176   TITLE:=EEPROM AT25 support
177   KCONFIG:=CONFIG_EEPROM_AT25
178   FILES:=$(LINUX_DIR)/drivers/misc/eeprom/at25.ko
179   AUTOLOAD:=$(call AutoProbe,at25)
180 endef
181
182 define KernelPackage/eeprom-at25/description
183  Kernel module for most SPI EEPROMs
184 endef
185
186 $(eval $(call KernelPackage,eeprom-at25))
187
188
189 define KernelPackage/gpio-dev
190   SUBMENU:=$(OTHER_MENU)
191   TITLE:=Generic GPIO char device support
192   DEPENDS:=@GPIO_SUPPORT
193   KCONFIG:=CONFIG_GPIO_DEVICE
194   FILES:=$(LINUX_DIR)/drivers/char/gpio_dev.ko
195   AUTOLOAD:=$(call AutoLoad,40,gpio_dev)
196 endef
197
198 define KernelPackage/gpio-dev/description
199  Kernel module to allows control of GPIO pins using a character device.
200 endef
201
202 $(eval $(call KernelPackage,gpio-dev))
203
204
205 define KernelPackage/gpio-mcp23s08
206   SUBMENU:=$(OTHER_MENU)
207   TITLE:=Microchip MCP23xxx I/O expander
208   DEPENDS:=@GPIO_SUPPORT +PACKAGE_kmod-i2c-core:kmod-i2c-core
209   KCONFIG:=CONFIG_GPIO_MCP23S08
210   FILES:=$(LINUX_DIR)/drivers/gpio/gpio-mcp23s08.ko
211   AUTOLOAD:=$(call AutoLoad,40,gpio-mcp23s08)
212 endef
213
214 define KernelPackage/gpio-mcp23s08/description
215  Kernel module for Microchip MCP23xxx SPI/I2C I/O expander
216 endef
217
218 $(eval $(call KernelPackage,gpio-mcp23s08))
219
220
221 define KernelPackage/gpio-nxp-74hc164
222   SUBMENU:=$(OTHER_MENU)
223   TITLE:=NXP 74HC164 GPIO expander support
224   KCONFIG:=CONFIG_GPIO_NXP_74HC164
225   FILES:=$(LINUX_DIR)/drivers/gpio/nxp_74hc164.ko
226   AUTOLOAD:=$(call AutoProbe,nxp_74hc164)
227 endef
228
229 define KernelPackage/gpio-nxp-74hc164/description
230  Kernel module for NXP 74HC164 GPIO expander
231 endef
232
233 $(eval $(call KernelPackage,gpio-nxp-74hc164))
234
235 define KernelPackage/gpio-pca953x
236   SUBMENU:=$(OTHER_MENU)
237   DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core
238   TITLE:=PCA95xx, TCA64xx, and MAX7310 I/O ports
239   KCONFIG:=CONFIG_GPIO_PCA953X
240   FILES:=$(LINUX_DIR)/drivers/gpio/gpio-pca953x.ko
241   AUTOLOAD:=$(call AutoLoad,55,gpio-pca953x)
242 endef
243
244 define KernelPackage/gpio-pca953x/description
245  Kernel module for MAX731{0,2,3,5}, PCA6107, PCA953{4-9}, PCA955{4-7},
246  PCA957{4,5} and TCA64{08,16} I2C GPIO expanders
247 endef
248
249 $(eval $(call KernelPackage,gpio-pca953x))
250
251 define KernelPackage/gpio-pcf857x
252   SUBMENU:=$(OTHER_MENU)
253   DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core
254   TITLE:=PCX857x, PCA967x and MAX732X I2C GPIO expanders
255   KCONFIG:=CONFIG_GPIO_PCF857X
256   FILES:=$(LINUX_DIR)/drivers/gpio/gpio-pcf857x.ko
257   AUTOLOAD:=$(call AutoLoad,55,gpio-pcf857x)
258 endef
259
260 define KernelPackage/gpio-pcf857x/description
261  Kernel module for PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders
262 endef
263
264 $(eval $(call KernelPackage,gpio-pcf857x))
265
266 define KernelPackage/iio-core
267   SUBMENU:=$(OTHER_MENU)
268   TITLE:=Industrial IO core
269   KCONFIG:= \
270         CONFIG_IIO \
271         CONFIG_IIO_BUFFER=y \
272         CONFIG_IIO_KFIFO_BUF \
273         CONFIG_IIO_TRIGGER=y \
274         CONFIG_IIO_TRIGGERED_BUFFER
275   FILES:= \
276         $(LINUX_DIR)/drivers/iio/industrialio.ko \
277         $(if $(CONFIG_IIO_TRIGGERED_BUFFER),$(LINUX_DIR)/drivers/iio/industrialio-triggered-buffer.ko@lt4.4) \
278         $(if $(CONFIG_IIO_TRIGGERED_BUFFER),$(LINUX_DIR)/drivers/iio/buffer/industrialio-triggered-buffer.ko@ge4.4) \
279         $(LINUX_DIR)/drivers/iio/kfifo_buf.ko@lt4.4 \
280         $(LINUX_DIR)/drivers/iio/buffer/kfifo_buf.ko@ge4.4
281   AUTOLOAD:=$(call AutoLoad,55,industrialio kfifo_buf industrialio-triggered-buffer)
282 endef
283
284 define KernelPackage/iio-core/description
285  The industrial I/O subsystem provides a unified framework for
286  drivers for many different types of embedded sensors using a
287  number of different physical interfaces (i2c, spi, etc)
288 endef
289
290 $(eval $(call KernelPackage,iio-core))
291
292
293 define KernelPackage/iio-ad799x
294   SUBMENU:=$(OTHER_MENU)
295   DEPENDS:=kmod-i2c-core kmod-iio-core
296   TITLE:=Analog Devices AD799x ADC driver
297   KCONFIG:= \
298         CONFIG_AD799X_RING_BUFFER=y \
299         CONFIG_AD799X
300   FILES:=$(LINUX_DIR)/drivers/iio/adc/ad799x.ko
301   AUTOLOAD:=$(call AutoLoad,56,ad799x)
302 endef
303
304 define KernelPackage/iio-ad799x/description
305  support for Analog Devices:
306  ad7991, ad7995, ad7999, ad7992, ad7993, ad7994, ad7997, ad7998
307  i2c analog to digital converters (ADC).
308 endef
309
310 $(eval $(call KernelPackage,iio-ad799x))
311
312
313 define KernelPackage/iio-dht11
314   SUBMENU:=$(OTHER_MENU)
315   DEPENDS:=kmod-iio-core @GPIO_SUPPORT @USES_DEVICETREE
316   TITLE:=DHT11 (and compatible) humidity and temperature sensors
317   KCONFIG:= \
318         CONFIG_DHT11
319   FILES:=$(LINUX_DIR)/drivers/iio/humidity/dht11.ko
320   AUTOLOAD:=$(call AutoLoad,56,dht11)
321 endef
322
323 define KernelPackage/iio-dht11/description
324  support for DHT11 and DHT22 digitial humidity and temperature sensors
325  attached at GPIO lines. You will need a custom device tree file to
326  specify the GPIO line to use.
327 endef
328
329 $(eval $(call KernelPackage,iio-dht11))
330
331
332 define KernelPackage/lp
333   SUBMENU:=$(OTHER_MENU)
334   TITLE:=Parallel port and line printer support
335   KCONFIG:= \
336         CONFIG_PARPORT \
337         CONFIG_PRINTER \
338         CONFIG_PPDEV
339   FILES:= \
340         $(LINUX_DIR)/drivers/parport/parport.ko \
341         $(LINUX_DIR)/drivers/char/lp.ko \
342         $(LINUX_DIR)/drivers/char/ppdev.ko
343   AUTOLOAD:=$(call AutoLoad,50,parport lp ppdev)
344 endef
345
346 $(eval $(call KernelPackage,lp))
347
348
349 define KernelPackage/mmc
350   SUBMENU:=$(OTHER_MENU)
351   TITLE:=MMC/SD Card Support
352   KCONFIG:= \
353         CONFIG_MMC \
354         CONFIG_MMC_BLOCK \
355         CONFIG_MMC_DEBUG=n \
356         CONFIG_MMC_UNSAFE_RESUME=n \
357         CONFIG_MMC_BLOCK_BOUNCE=y \
358         CONFIG_MMC_TIFM_SD=n \
359         CONFIG_MMC_WBSD=n \
360         CONFIG_SDIO_UART=n
361   FILES:= \
362         $(LINUX_DIR)/drivers/mmc/core/mmc_core.ko \
363         $(LINUX_DIR)/drivers/mmc/card/mmc_block.ko
364   AUTOLOAD:=$(call AutoProbe,mmc_core mmc_block,1)
365 endef
366
367 define KernelPackage/mmc/description
368  Kernel support for MMC/SD cards
369 endef
370
371 $(eval $(call KernelPackage,mmc))
372
373
374 define KernelPackage/sdhci
375   SUBMENU:=$(OTHER_MENU)
376   TITLE:=Secure Digital Host Controller Interface support
377   DEPENDS:=+kmod-mmc
378   KCONFIG:= \
379         CONFIG_MMC_SDHCI \
380         CONFIG_MMC_SDHCI_PLTFM \
381         CONFIG_MMC_SDHCI_PCI=n
382   FILES:= \
383         $(LINUX_DIR)/drivers/mmc/host/sdhci.ko \
384         $(LINUX_DIR)/drivers/mmc/host/sdhci-pltfm.ko
385
386   AUTOLOAD:=$(call AutoProbe,sdhci sdhci-pltfm,1)
387 endef
388
389 define KernelPackage/sdhci/description
390  Kernel support for SDHCI Hosts
391 endef
392
393 $(eval $(call KernelPackage,sdhci))
394
395
396 define KernelPackage/rfkill
397   SUBMENU:=$(OTHER_MENU)
398   TITLE:=RF switch subsystem support
399   DEPENDS:=@USE_RFKILL +kmod-input-core
400   KCONFIG:= \
401     CONFIG_RFKILL \
402     CONFIG_RFKILL_INPUT=y \
403     CONFIG_RFKILL_LEDS=y \
404     CONFIG_RFKILL_GPIO=y
405   FILES:= \
406     $(LINUX_DIR)/net/rfkill/rfkill.ko
407   AUTOLOAD:=$(call AutoLoad,20,rfkill)
408 endef
409
410 define KernelPackage/rfkill/description
411  Say Y here if you want to have control over RF switches
412  found on many WiFi and Bluetooth cards
413 endef
414
415 $(eval $(call KernelPackage,rfkill))
416
417
418 define KernelPackage/softdog
419   SUBMENU:=$(OTHER_MENU)
420   TITLE:=Software watchdog driver
421   KCONFIG:=CONFIG_SOFT_WATCHDOG
422   FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/softdog.ko
423   AUTOLOAD:=$(call AutoLoad,50,softdog,1)
424 endef
425
426 define KernelPackage/softdog/description
427  Software watchdog driver
428 endef
429
430 $(eval $(call KernelPackage,softdog))
431
432
433 define KernelPackage/ssb
434   SUBMENU:=$(OTHER_MENU)
435   TITLE:=Silicon Sonics Backplane glue code
436   DEPENDS:=@PCI_SUPPORT @!TARGET_brcm47xx @!TARGET_brcm63xx
437   KCONFIG:=\
438         CONFIG_SSB \
439         CONFIG_SSB_B43_PCI_BRIDGE=y \
440         CONFIG_SSB_DRIVER_MIPS=n \
441         CONFIG_SSB_DRIVER_PCICORE=y \
442         CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y \
443         CONFIG_SSB_PCIHOST=y \
444         CONFIG_SSB_PCIHOST_POSSIBLE=y \
445         CONFIG_SSB_POSSIBLE=y \
446         CONFIG_SSB_SPROM=y \
447         CONFIG_SSB_SILENT=y
448   FILES:=$(LINUX_DIR)/drivers/ssb/ssb.ko
449   AUTOLOAD:=$(call AutoLoad,18,ssb,1)
450 endef
451
452 define KernelPackage/ssb/description
453  Silicon Sonics Backplane glue code.
454 endef
455
456 $(eval $(call KernelPackage,ssb))
457
458
459 define KernelPackage/bcma
460   SUBMENU:=$(OTHER_MENU)
461   TITLE:=BCMA support
462   DEPENDS:=@PCI_SUPPORT @!TARGET_brcm47xx @!TARGET_bcm53xx
463   KCONFIG:=\
464         CONFIG_BCMA \
465         CONFIG_BCMA_POSSIBLE=y \
466         CONFIG_BCMA_BLOCKIO=y \
467         CONFIG_BCMA_HOST_PCI_POSSIBLE=y \
468         CONFIG_BCMA_HOST_PCI=y \
469         CONFIG_BCMA_HOST_SOC=n \
470         CONFIG_BCMA_DRIVER_MIPS=n \
471         CONFIG_BCMA_DRIVER_PCI_HOSTMODE=n \
472         CONFIG_BCMA_DRIVER_GMAC_CMN=n \
473         CONFIG_BCMA_DEBUG=n
474   FILES:=$(LINUX_DIR)/drivers/bcma/bcma.ko
475   AUTOLOAD:=$(call AutoLoad,29,bcma)
476 endef
477
478 define KernelPackage/bcma/description
479  Bus driver for Broadcom specific Advanced Microcontroller Bus Architecture
480 endef
481
482 $(eval $(call KernelPackage,bcma))
483
484
485 define KernelPackage/wdt-omap
486   SUBMENU:=$(OTHER_MENU)
487   TITLE:=OMAP Watchdog timer
488   DEPENDS:=@(TARGET_omap24xx||TARGET_omap35xx)
489   KCONFIG:=CONFIG_OMAP_WATCHDOG
490   FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/omap_wdt.ko
491   AUTOLOAD:=$(call AutoLoad,50,omap_wdt,1)
492 endef
493
494 define KernelPackage/wdt-omap/description
495  Kernel module for TI omap watchdog timer
496 endef
497
498 $(eval $(call KernelPackage,wdt-omap))
499
500
501 define KernelPackage/wdt-orion
502   SUBMENU:=$(OTHER_MENU)
503   TITLE:=Marvell Orion Watchdog timer
504   DEPENDS:=@TARGET_orion||TARGET_kirkwood
505   KCONFIG:=CONFIG_ORION_WATCHDOG
506   FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/orion_wdt.ko
507   AUTOLOAD:=$(call AutoLoad,50,orion_wdt,1)
508 endef
509
510 define KernelPackage/wdt-orion/description
511  Kernel module for Marvell Orion, Kirkwood and Armada XP/370 watchdog timer
512 endef
513
514 $(eval $(call KernelPackage,wdt-orion))
515
516
517 define KernelPackage/rtc-ds1307
518   SUBMENU:=$(OTHER_MENU)
519   TITLE:=Dallas/Maxim DS1307 (and compatible) RTC support
520   DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
521   KCONFIG:=CONFIG_RTC_DRV_DS1307 \
522         CONFIG_RTC_CLASS=y
523   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1307.ko
524   AUTOLOAD:=$(call AutoProbe,rtc-ds1307)
525 endef
526
527 define KernelPackage/rtc-ds1307/description
528  Kernel module for Dallas/Maxim DS1307/DS1337/DS1338/DS1340/DS1388/DS3231,
529  Epson RX-8025 and various other compatible RTC chips connected via I2C.
530 endef
531
532 $(eval $(call KernelPackage,rtc-ds1307))
533
534
535 define KernelPackage/rtc-ds1672
536   SUBMENU:=$(OTHER_MENU)
537   TITLE:=Dallas/Maxim DS1672 RTC support
538   DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
539   KCONFIG:=CONFIG_RTC_DRV_DS1672 \
540         CONFIG_RTC_CLASS=y
541   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1672.ko
542   AUTOLOAD:=$(call AutoProbe,rtc-ds1672)
543 endef
544
545 define KernelPackage/rtc-ds1672/description
546  Kernel module for Dallas/Maxim DS1672 RTC.
547 endef
548
549 $(eval $(call KernelPackage,rtc-ds1672))
550
551
552 define KernelPackage/rtc-isl1208
553   SUBMENU:=$(OTHER_MENU)
554   TITLE:=Intersil ISL1208 RTC support
555   DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
556   KCONFIG:=CONFIG_RTC_DRV_ISL1208 \
557         CONFIG_RTC_CLASS=y
558   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-isl1208.ko
559   AUTOLOAD:=$(call AutoProbe,rtc-isl1208)
560 endef
561
562 define KernelPackage/rtc-isl1208/description
563  Kernel module for Intersil ISL1208 RTC.
564 endef
565
566 $(eval $(call KernelPackage,rtc-isl1208))
567
568
569 define KernelPackage/rtc-marvell
570   SUBMENU:=$(OTHER_MENU)
571   TITLE:=Marvell SoC built-in RTC support
572   DEPENDS:=@RTC_SUPPORT @TARGET_kirkwood||TARGET_orion
573   KCONFIG:=CONFIG_RTC_DRV_MV \
574         CONFIG_RTC_CLASS=y
575   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-mv.ko
576   AUTOLOAD:=$(call AutoProbe,rtc-mv)
577 endef
578
579 define KernelPackage/rtc-marvell/description
580  Kernel module for Marvell SoC built-in RTC.
581 endef
582
583 $(eval $(call KernelPackage,rtc-marvell))
584
585
586 define KernelPackage/rtc-pcf8563
587   SUBMENU:=$(OTHER_MENU)
588   TITLE:=Philips PCF8563/Epson RTC8564 RTC support
589   DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
590   KCONFIG:=CONFIG_RTC_DRV_PCF8563 \
591         CONFIG_RTC_CLASS=y
592   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf8563.ko
593   AUTOLOAD:=$(call AutoProbe,rtc-pcf8563)
594 endef
595
596 define KernelPackage/rtc-pcf8563/description
597  Kernel module for Philips PCF8563 RTC chip.
598  The Epson RTC8564 should work as well.
599 endef
600
601 $(eval $(call KernelPackage,rtc-pcf8563))
602
603
604 define KernelPackage/rtc-pcf2123
605   SUBMENU:=$(OTHER_MENU)
606   TITLE:=Philips PCF2123 RTC support
607   DEPENDS:=@RTC_SUPPORT
608   KCONFIG:=CONFIG_RTC_DRV_PCF2123 \
609         CONFIG_RTC_CLASS=y
610   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf2123.ko
611   AUTOLOAD:=$(call AutoProbe,rtc-pcf2123)
612 endef
613
614 define KernelPackage/rtc-pcf2123/description
615  Kernel module for Philips PCF2123 RTC chip
616 endef
617
618 $(eval $(call KernelPackage,rtc-pcf2123))
619
620 define KernelPackage/rtc-pt7c4338
621   SUBMENU:=$(OTHER_MENU)
622   TITLE:=Pericom PT7C4338 RTC support
623   DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
624   KCONFIG:=CONFIG_RTC_DRV_PT7C4338 \
625         CONFIG_RTC_CLASS=y
626   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pt7c4338.ko
627   AUTOLOAD:=$(call AutoProbe,rtc-pt7c4338)
628 endef
629
630 define KernelPackage/rtc-pt7c4338/description
631  Kernel module for Pericom PT7C4338 i2c RTC chip
632 endef
633
634 $(eval $(call KernelPackage,rtc-pt7c4338))
635
636 define KernelPackage/rtc-snvs
637   SUBMENU:=$(OTHER_MENU)
638   TITLE:=Freescale SNVS RTC support
639   DEPENDS:=@TARGET_imx6 @RTC_SUPPORT
640   KCONFIG:=CONFIG_RTC_DRV_SNVS \
641         CONFIG_RTC_CLASS=y
642   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-snvs.ko
643   AUTOLOAD:=$(call AutoLoad,50,rtc-snvs,1)
644 endef
645
646 define KernelPackage/rtc-snvs/description
647  Kernel module for Freescale SNVS RTC on chip module
648 endef
649
650 $(eval $(call KernelPackage,rtc-snvs))
651
652
653 define KernelPackage/mtdtests
654   SUBMENU:=$(OTHER_MENU)
655   TITLE:=MTD subsystem tests
656   KCONFIG:=CONFIG_MTD_TESTS
657   FILES:=\
658         $(LINUX_DIR)/drivers/mtd/tests/mtd_nandecctest.ko \
659         $(LINUX_DIR)/drivers/mtd/tests/mtd_oobtest.ko \
660         $(LINUX_DIR)/drivers/mtd/tests/mtd_pagetest.ko \
661         $(LINUX_DIR)/drivers/mtd/tests/mtd_readtest.ko \
662         $(LINUX_DIR)/drivers/mtd/tests/mtd_speedtest.ko \
663         $(LINUX_DIR)/drivers/mtd/tests/mtd_stresstest.ko \
664         $(LINUX_DIR)/drivers/mtd/tests/mtd_subpagetest.ko \
665         $(LINUX_DIR)/drivers/mtd/tests/mtd_torturetest.ko
666 endef
667
668 define KernelPackage/mtdtests/description
669  Kernel modules for MTD subsystem/driver testing
670 endef
671
672 $(eval $(call KernelPackage,mtdtests))
673
674
675 define KernelPackage/serial-8250
676   SUBMENU:=$(OTHER_MENU)
677   TITLE:=8250 UARTs
678   KCONFIG:= CONFIG_SERIAL_8250 \
679         CONFIG_SERIAL_8250_NR_UARTS=16 \
680         CONFIG_SERIAL_8250_RUNTIME_UARTS=16 \
681         CONFIG_SERIAL_8250_EXTENDED=y \
682         CONFIG_SERIAL_8250_MANY_PORTS=y \
683         CONFIG_SERIAL_8250_SHARE_IRQ=y \
684         CONFIG_SERIAL_8250_DETECT_IRQ=n \
685         CONFIG_SERIAL_8250_RSA=n
686   FILES:= \
687         $(LINUX_DIR)/drivers/tty/serial/8250/8250.ko \
688         $(LINUX_DIR)/drivers/tty/serial/8250/8250_base.ko@ge4.4
689 endef
690
691 define KernelPackage/serial-8250/description
692  Kernel module for 8250 UART based serial ports
693 endef
694
695 $(eval $(call KernelPackage,serial-8250))
696
697
698 define KernelPackage/regmap
699   SUBMENU:=$(OTHER_MENU)
700   TITLE:=Generic register map support
701   DEPENDS:=+kmod-lib-lzo +kmod-i2c-core
702   KCONFIG:=CONFIG_REGMAP \
703            CONFIG_REGMAP_MMIO \
704            CONFIG_REGMAP_SPI \
705            CONFIG_REGMAP_I2C \
706            CONFIG_SPI=y
707   FILES:= \
708         $(LINUX_DIR)/drivers/base/regmap/regmap-core.ko \
709         $(LINUX_DIR)/drivers/base/regmap/regmap-i2c.ko \
710         $(LINUX_DIR)/drivers/base/regmap/regmap-mmio.ko \
711         $(if $(CONFIG_SPI),$(LINUX_DIR)/drivers/base/regmap/regmap-spi.ko)
712   AUTOLOAD:=$(call AutoLoad,21,regmap-core regmap-i2c regmap-mmio regmap-spi)
713 endef
714
715 define KernelPackage/regmap/description
716  Generic register map support
717 endef
718
719 $(eval $(call KernelPackage,regmap))
720
721 define KernelPackage/ikconfig
722   SUBMENU:=$(OTHER_MENU)
723   TITLE:=Kernel configuration via /proc/config.gz
724   KCONFIG:=CONFIG_IKCONFIG \
725            CONFIG_IKCONFIG_PROC=y
726   FILES:=$(LINUX_DIR)/kernel/configs.ko
727   AUTOLOAD:=$(call AutoLoad,70,configs)
728 endef
729
730 define KernelPackage/ikconfig/description
731  Kernel configuration via /proc/config.gz
732 endef
733
734 $(eval $(call KernelPackage,ikconfig))
735
736
737 define KernelPackage/zram
738   SUBMENU:=$(OTHER_MENU)
739   TITLE:=ZRAM
740   DEPENDS:=+kmod-lib-lzo +kmod-lib-lz4
741   KCONFIG:= \
742         CONFIG_ZSMALLOC \
743         CONFIG_ZRAM \
744         CONFIG_ZRAM_DEBUG=n \
745         CONFIG_PGTABLE_MAPPING=n \
746         CONFIG_ZSMALLOC_STAT=n \
747         CONFIG_ZRAM_LZ4_COMPRESS=y
748   FILES:= \
749         $(LINUX_DIR)/mm/zsmalloc.ko \
750         $(LINUX_DIR)/drivers/block/zram/zram.ko
751   AUTOLOAD:=$(call AutoLoad,20,zsmalloc zram)
752 endef
753
754 define KernelPackage/zram/description
755  Compressed RAM block device support
756 endef
757
758 $(eval $(call KernelPackage,zram))
759
760
761 define KernelPackage/mvsdio
762   SUBMENU:=$(OTHER_MENU)
763   TITLE:=Marvell SDIO support
764   DEPENDS:=@TARGET_orion||TARGET_kirkwood +kmod-mmc
765   KCONFIG:=CONFIG_MMC_MVSDIO
766   FILES:=$(LINUX_DIR)/drivers/mmc/host/mvsdio.ko
767   AUTOLOAD:=$(call AutoProbe,mvsdio)
768 endef
769
770 define KernelPackage/mvsdio/description
771  Kernel support for the Marvell SDIO controller
772 endef
773
774 $(eval $(call KernelPackage,mvsdio))
775
776
777 define KernelPackage/pps
778   SUBMENU:=$(OTHER_MENU)
779   TITLE:=PPS support
780   KCONFIG:=CONFIG_PPS
781   FILES:=$(LINUX_DIR)/drivers/pps/pps_core.ko
782   AUTOLOAD:=$(call AutoLoad,17,pps_core,1)
783 endef
784
785 define KernelPackage/pps/description
786  PPS (Pulse Per Second) is a special pulse provided by some GPS
787  antennae. Userland can use it to get a high-precision time
788  reference.
789 endef
790
791 $(eval $(call KernelPackage,pps))
792
793
794 define KernelPackage/pps-gpio
795   SUBMENU:=$(OTHER_MENU)
796   TITLE:=PPS client using GPIO
797   DEPENDS:=+kmod-pps
798   KCONFIG:=CONFIG_PPS_CLIENT_GPIO
799   FILES:=$(LINUX_DIR)/drivers/pps/clients/pps-gpio.ko
800   AUTOLOAD:=$(call AutoLoad,18,pps-gpio,1)
801 endef
802
803 define KernelPackage/pps-gpio/description
804  Support for a PPS source using GPIO. To be useful you must
805  also register a platform device specifying the GPIO pin and
806  other options, usually in your board setup.
807 endef
808
809 $(eval $(call KernelPackage,pps-gpio))
810
811
812 define KernelPackage/pps-ldisc
813   SUBMENU:=$(OTHER_MENU)
814   TITLE:=PPS line discipline
815   DEPENDS:=+kmod-pps
816   KCONFIG:=CONFIG_PPS_CLIENT_LDISC
817   FILES:=$(LINUX_DIR)/drivers/pps/clients/pps-ldisc.ko
818   AUTOLOAD:=$(call AutoLoad,18,pps-ldisc,1)
819 endef
820
821 define KernelPackage/pps-ldisc/description
822  Support for a PPS source connected with the CD (Carrier
823  Detect) pin of your serial port.
824 endef
825
826 $(eval $(call KernelPackage,pps-ldisc))
827
828
829 define KernelPackage/ptp
830   SUBMENU:=$(OTHER_MENU)
831   TITLE:=PTP clock support
832   DEPENDS:=+kmod-pps
833   KCONFIG:= \
834         CONFIG_PTP_1588_CLOCK \
835         CONFIG_NET_PTP_CLASSIFY=y
836   FILES:=$(LINUX_DIR)/drivers/ptp/ptp.ko
837   AUTOLOAD:=$(call AutoLoad,18,ptp,1)
838 endef
839
840 define KernelPackage/ptp/description
841  The IEEE 1588 standard defines a method to precisely
842  synchronize distributed clocks over Ethernet networks.
843 endef
844
845 $(eval $(call KernelPackage,ptp))
846
847
848 define KernelPackage/ptp-gianfar
849   SUBMENU:=$(OTHER_MENU)
850   TITLE:=Freescale Gianfar PTP support
851   DEPENDS:=@TARGET_mpc85xx +kmod-gianfar +kmod-ptp
852   KCONFIG:=CONFIG_PTP_1588_CLOCK_GIANFAR
853   FILES:=$(LINUX_DIR)/drivers/net/ethernet/freescale/gianfar_ptp.ko
854   AUTOLOAD:=$(call AutoProbe,gianfar_ptp)
855 endef
856
857 define KernelPackage/ptp-gianfar/description
858  Kernel module for IEEE 1588 support for Freescale
859  Gianfar Ethernet drivers
860 endef
861
862 $(eval $(call KernelPackage,ptp-gianfar))
863
864
865 define KernelPackage/random-core
866   SUBMENU:=$(OTHER_MENU)
867   TITLE:=Hardware Random Number Generator Core support
868   KCONFIG:=CONFIG_HW_RANDOM
869   FILES:=$(LINUX_DIR)/drivers/char/hw_random/rng-core.ko
870 endef
871
872 define KernelPackage/random-core/description
873  Kernel module for the HW random number generator core infrastructure
874 endef
875
876 $(eval $(call KernelPackage,random-core))
877
878 define KernelPackage/random-omap
879   SUBMENU:=$(OTHER_MENU)
880   TITLE:=Hardware Random Number Generator OMAP support
881   KCONFIG:=CONFIG_HW_RANDOM_OMAP
882   FILES:=$(LINUX_DIR)/drivers/char/hw_random/omap-rng.ko
883   DEPENDS:=@(TARGET_omap24xx||TARGET_omap) +kmod-random-core
884   AUTOLOAD:=$(call AutoProbe,random-omap)
885 endef
886
887 define KernelPackage/random-omap/description
888  Kernel module for the OMAP Random Number Generator
889  found on OMAP16xx, OMAP2/3/4/5 and AM33xx/AM43xx multimedia processors.
890 endef
891
892 $(eval $(call KernelPackage,random-omap))
893
894 define KernelPackage/thermal
895   SUBMENU:=$(OTHER_MENU)
896   TITLE:=Generic Thermal sysfs driver
897   DEPENDS:=+kmod-hwmon-core
898   HIDDEN:=1
899   KCONFIG:= \
900         CONFIG_THERMAL \
901         CONFIG_THERMAL_OF=y \
902         CONFIG_CPU_THERMAL=y \
903         CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y \
904         CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE=n \
905         CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE=n \
906         CONFIG_THERMAL_GOV_FAIR_SHARE=n \
907         CONFIG_THERMAL_GOV_STEP_WISE=y \
908         CONFIG_THERMAL_GOV_USER_SPACE=n \
909         CONFIG_THERMAL_HWMON=y \
910         CONFIG_THERMAL_EMULATION=n
911   FILES:=$(LINUX_DIR)/drivers/thermal/thermal_sys.ko
912   AUTOLOAD:=$(call AutoProbe,thermal_sys)
913 endef
914
915 define KernelPackage/thermal/description
916  Generic Thermal Sysfs driver offers a generic mechanism for thermal
917  management. Usually it's made up of one or more thermal zone and cooling
918  device.
919 endef
920
921 $(eval $(call KernelPackage,thermal))
922
923
924 define KernelPackage/thermal-imx
925   SUBMENU:=$(OTHER_MENU)
926   TITLE:=Temperature sensor driver for Freescale i.MX SoCs
927   DEPENDS:=@TARGET_imx6 +kmod-thermal
928   KCONFIG:= \
929         CONFIG_IMX_THERMAL
930   FILES:=$(LINUX_DIR)/drivers/thermal/imx_thermal.ko
931   AUTOLOAD:=$(call AutoProbe,imx_thermal)
932 endef
933
934 define KernelPackage/thermal-imx/description
935  Support for Temperature Monitor (TEMPMON) found on Freescale i.MX SoCs.
936  It supports one critical trip point and one passive trip point. The
937  cpufreq is used as the cooling device to throttle CPUs when the
938  passive trip is crossed.
939 endef
940
941 $(eval $(call KernelPackage,thermal-imx))
942
943
944 define KernelPackage/thermal-kirkwood
945   SUBMENU:=$(OTHER_MENU)
946   TITLE:=Temperature sensor on Marvell Kirkwood SoCs
947   DEPENDS:=@TARGET_kirkwood +kmod-thermal
948   KCONFIG:=CONFIG_KIRKWOOD_THERMAL
949   FILES:=$(LINUX_DIR)/drivers/thermal/kirkwood_thermal.ko
950   AUTOLOAD:=$(call AutoProbe,kirkwood_thermal)
951 endef
952
953 define KernelPackage/thermal-kirkwood/description
954  Support for the Kirkwood thermal sensor driver into the Linux thermal
955  framework. Only kirkwood 88F6282 and 88F6283 have this sensor.
956 endef
957
958 $(eval $(call KernelPackage,thermal-kirkwood))
959
960
961 define KernelPackage/gpio-beeper
962   SUBMENU:=$(OTHER_MENU)
963   TITLE:=GPIO beeper support
964   DEPENDS:=+kmod-input-core
965   KCONFIG:= \
966         CONFIG_INPUT_MISC=y \
967         CONFIG_INPUT_GPIO_BEEPER
968   FILES:= \
969         $(LINUX_DIR)/drivers/input/misc/gpio-beeper.ko
970   AUTOLOAD:=$(call AutoLoad,50,gpio-beeper)
971 endef
972
973 define KernelPackage/gpio-beeper/description
974  This enables playing beeps through an GPIO-connected buzzer
975 endef
976
977 $(eval $(call KernelPackage,gpio-beeper))
978
979
980 define KernelPackage/echo
981   SUBMENU:=$(OTHER_MENU)
982   TITLE:=Line Echo Canceller
983   KCONFIG:=CONFIG_ECHO
984   FILES:=$(LINUX_DIR)/drivers/misc/echo/echo.ko
985   AUTOLOAD:=$(call AutoLoad,50,echo)
986 endef
987
988 define KernelPackage/echo/description
989  This driver provides line echo cancelling support for mISDN and
990  DAHDI drivers
991 endef
992
993 $(eval $(call KernelPackage,echo))
994
995
996 define KernelPackage/bmp085
997   SUBMENU:=$(OTHER_MENU)
998   TITLE:=BMP085/BMP18x pressure sensor
999   DEPENDS:= +kmod-regmap @!LINUX_3_18 @!LINUX_4_1
1000   KCONFIG:= CONFIG_BMP085
1001   FILES:= $(LINUX_DIR)/drivers/misc/bmp085.ko
1002 endef
1003
1004 define KernelPackage/bmp085/description
1005  This driver adds support for Bosch Sensortec's digital pressure
1006  sensors BMP085 and BMP18x.
1007 endef
1008
1009 $(eval $(call KernelPackage,bmp085))
1010
1011
1012 define KernelPackage/bmp085-i2c
1013   SUBMENU:=$(OTHER_MENU)
1014   TITLE:=BMP085/BMP18x pressure sensor I2C
1015   DEPENDS:= +kmod-bmp085
1016   KCONFIG:= CONFIG_BMP085_I2C
1017   FILES:= $(LINUX_DIR)/drivers/misc/bmp085-i2c.ko
1018   AUTOLOAD:=$(call AutoProbe,bmp085-i2c)
1019 endef
1020 define KernelPackage/bmp085-i2c/description
1021  This driver adds support for Bosch Sensortec's digital pressure
1022  sensor connected via I2C.
1023 endef
1024
1025 $(eval $(call KernelPackage,bmp085-i2c))
1026
1027
1028 define KernelPackage/bmp085-spi
1029   SUBMENU:=$(OTHER_MENU)
1030   TITLE:=BMP085/BMP18x pressure sensor SPI
1031   DEPENDS:= +kmod-bmp085
1032   KCONFIG:= CONFIG_BMP085_SPI
1033   FILES:= $(LINUX_DIR)/drivers/misc/bmp085-spi.ko
1034   AUTOLOAD:=$(call AutoProbe,bmp085-spi)
1035 endef
1036 define KernelPackage/bmp085-spi/description
1037  This driver adds support for Bosch Sensortec's digital pressure
1038  sensor connected via SPI.
1039 endef
1040
1041 $(eval $(call KernelPackage,bmp085-spi))