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