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