generic: add linux 4.1 support
[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
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)
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   DEPENDS:=@BROKEN
305   KCONFIG:= \
306         CONFIG_PARPORT \
307         CONFIG_PRINTER \
308         CONFIG_PPDEV
309   FILES:= \
310         $(LINUX_DIR)/drivers/parport/parport.ko \
311         $(LINUX_DIR)/drivers/char/lp.ko \
312         $(LINUX_DIR)/drivers/char/ppdev.ko
313   AUTOLOAD:=$(call AutoLoad,50,parport lp)
314 endef
315
316 $(eval $(call KernelPackage,lp))
317
318
319 define KernelPackage/mmc
320   SUBMENU:=$(OTHER_MENU)
321   TITLE:=MMC/SD Card Support
322   KCONFIG:= \
323         CONFIG_MMC \
324         CONFIG_MMC_BLOCK \
325         CONFIG_MMC_DEBUG=n \
326         CONFIG_MMC_UNSAFE_RESUME=n \
327         CONFIG_MMC_BLOCK_BOUNCE=y \
328         CONFIG_MMC_TIFM_SD=n \
329         CONFIG_MMC_WBSD=n \
330         CONFIG_SDIO_UART=n
331   FILES:= \
332         $(LINUX_DIR)/drivers/mmc/core/mmc_core.ko \
333         $(LINUX_DIR)/drivers/mmc/card/mmc_block.ko
334   AUTOLOAD:=$(call AutoProbe,mmc_core mmc_block,1)
335 endef
336
337 define KernelPackage/mmc/description
338  Kernel support for MMC/SD cards
339 endef
340
341 $(eval $(call KernelPackage,mmc))
342
343
344 define KernelPackage/sdhci
345   SUBMENU:=$(OTHER_MENU)
346   TITLE:=Secure Digital Host Controller Interface support
347   DEPENDS:=+kmod-mmc
348   KCONFIG:= \
349         CONFIG_MMC_SDHCI \
350         CONFIG_MMC_SDHCI_PLTFM \
351         CONFIG_MMC_SDHCI_PCI=n
352   FILES:= \
353         $(LINUX_DIR)/drivers/mmc/host/sdhci.ko \
354         $(LINUX_DIR)/drivers/mmc/host/sdhci-pltfm.ko
355
356   AUTOLOAD:=$(call AutoProbe,sdhci sdhci-pltfm,1)
357 endef
358
359 define KernelPackage/sdhci/description
360  Kernel support for SDHCI Hosts
361 endef
362
363 $(eval $(call KernelPackage,sdhci))
364
365
366 define KernelPackage/oprofile
367   SUBMENU:=$(OTHER_MENU)
368   TITLE:=OProfile profiling support
369   KCONFIG:=CONFIG_OPROFILE
370   FILES:=$(LINUX_DIR)/arch/$(LINUX_KARCH)/oprofile/oprofile.ko
371   DEPENDS:=@KERNEL_PROFILING
372 endef
373
374 define KernelPackage/oprofile/description
375  Kernel module for support for oprofile system profiling
376 endef
377
378 $(eval $(call KernelPackage,oprofile))
379
380
381 define KernelPackage/rfkill
382   SUBMENU:=$(OTHER_MENU)
383   TITLE:=RF switch subsystem support
384   DEPENDS:=@USE_RFKILL +kmod-input-core
385   KCONFIG:= \
386     CONFIG_RFKILL \
387     CONFIG_RFKILL_INPUT=y \
388     CONFIG_RFKILL_LEDS=y \
389     CONFIG_RFKILL_GPIO=y
390   FILES:= \
391     $(LINUX_DIR)/net/rfkill/rfkill.ko
392   AUTOLOAD:=$(call AutoLoad,20,rfkill)
393 endef
394
395 define KernelPackage/rfkill/description
396  Say Y here if you want to have control over RF switches
397  found on many WiFi and Bluetooth cards
398 endef
399
400 $(eval $(call KernelPackage,rfkill))
401
402
403 define KernelPackage/softdog
404   SUBMENU:=$(OTHER_MENU)
405   TITLE:=Software watchdog driver
406   KCONFIG:=CONFIG_SOFT_WATCHDOG
407   FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/softdog.ko
408   AUTOLOAD:=$(call AutoLoad,50,softdog)
409 endef
410
411 define KernelPackage/softdog/description
412  Software watchdog driver
413 endef
414
415 $(eval $(call KernelPackage,softdog))
416
417
418 define KernelPackage/ssb
419   SUBMENU:=$(OTHER_MENU)
420   TITLE:=Silicon Sonics Backplane glue code
421   DEPENDS:=@PCI_SUPPORT @!TARGET_brcm47xx @!TARGET_brcm63xx
422   KCONFIG:=\
423         CONFIG_SSB \
424         CONFIG_SSB_B43_PCI_BRIDGE=y \
425         CONFIG_SSB_DRIVER_MIPS=n \
426         CONFIG_SSB_DRIVER_PCICORE=y \
427         CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y \
428         CONFIG_SSB_PCIHOST=y \
429         CONFIG_SSB_PCIHOST_POSSIBLE=y \
430         CONFIG_SSB_POSSIBLE=y \
431         CONFIG_SSB_SPROM=y \
432         CONFIG_SSB_SILENT=y
433   FILES:=$(LINUX_DIR)/drivers/ssb/ssb.ko
434   AUTOLOAD:=$(call AutoLoad,18,ssb,1)
435 endef
436
437 define KernelPackage/ssb/description
438  Silicon Sonics Backplane glue code.
439 endef
440
441 $(eval $(call KernelPackage,ssb))
442
443
444 define KernelPackage/bcma
445   SUBMENU:=$(OTHER_MENU)
446   TITLE:=BCMA support
447   DEPENDS:=@PCI_SUPPORT @!TARGET_brcm47xx @!TARGET_bcm53xx
448   KCONFIG:=\
449         CONFIG_BCMA \
450         CONFIG_BCMA_POSSIBLE=y \
451         CONFIG_BCMA_BLOCKIO=y \
452         CONFIG_BCMA_HOST_PCI_POSSIBLE=y \
453         CONFIG_BCMA_HOST_PCI=y \
454         CONFIG_BCMA_HOST_SOC=n \
455         CONFIG_BCMA_DRIVER_MIPS=n \
456         CONFIG_BCMA_DRIVER_PCI_HOSTMODE=n \
457         CONFIG_BCMA_DRIVER_GMAC_CMN=n \
458         CONFIG_BCMA_DEBUG=n
459   FILES:=$(LINUX_DIR)/drivers/bcma/bcma.ko
460   AUTOLOAD:=$(call AutoLoad,29,bcma)
461 endef
462
463 define KernelPackage/bcma/description
464  Bus driver for Broadcom specific Advanced Microcontroller Bus Architecture
465 endef
466
467 $(eval $(call KernelPackage,bcma))
468
469
470 define KernelPackage/wdt-omap
471   SUBMENU:=$(OTHER_MENU)
472   TITLE:=OMAP Watchdog timer
473   DEPENDS:=@(TARGET_omap24xx||TARGET_omap35xx)
474   KCONFIG:=CONFIG_OMAP_WATCHDOG
475   FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/omap_wdt.ko
476   AUTOLOAD:=$(call AutoLoad,50,omap_wdt.ko,1)
477 endef
478
479 define KernelPackage/wdt-omap/description
480  Kernel module for TI omap watchdog timer
481 endef
482
483 $(eval $(call KernelPackage,wdt-omap))
484
485
486 define KernelPackage/wdt-orion
487   SUBMENU:=$(OTHER_MENU)
488   TITLE:=Marvell Orion Watchdog timer
489   DEPENDS:=@TARGET_orion||TARGET_kirkwood||TARGET_mvebu
490   KCONFIG:=CONFIG_ORION_WATCHDOG
491   FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/orion_wdt.ko
492   AUTOLOAD:=$(call AutoLoad,50,orion_wdt,1)
493 endef
494
495 define KernelPackage/wdt-orion/description
496  Kernel module for Marvell Orion, Kirkwood and Armada XP/370 watchdog timer
497 endef
498
499 $(eval $(call KernelPackage,wdt-orion))
500
501
502 define KernelPackage/booke-wdt
503   SUBMENU:=$(OTHER_MENU)
504   TITLE:=PowerPC Book-E Watchdog Timer
505   DEPENDS:=@(TARGET_mpc85xx||TARGET_ppc40x||TARGET_ppc44x)
506   KCONFIG:=CONFIG_BOOKE_WDT
507   FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/booke_wdt.ko
508   AUTOLOAD:=$(call AutoLoad,50,booke_wdt,1)
509 endef
510
511 define KernelPackage/booke-wdt/description
512  Kernel module for PowerPC Book-E Watchdog Timer
513 endef
514
515 $(eval $(call KernelPackage,booke-wdt))
516
517
518 define KernelPackage/rtc-ds1307
519   SUBMENU:=$(OTHER_MENU)
520   TITLE:=Dallas/Maxim DS1307 (and compatible) RTC support
521   DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
522   KCONFIG:=CONFIG_RTC_DRV_DS1307
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   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1672.ko
541   AUTOLOAD:=$(call AutoProbe,rtc-ds1672)
542 endef
543
544 define KernelPackage/rtc-ds1672/description
545  Kernel module for Dallas/Maxim DS1672 RTC.
546 endef
547
548 $(eval $(call KernelPackage,rtc-ds1672))
549
550
551 define KernelPackage/rtc-isl1208
552   SUBMENU:=$(OTHER_MENU)
553   TITLE:=Intersil ISL1208 RTC support
554   DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
555   KCONFIG:=CONFIG_RTC_DRV_ISL1208
556   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-isl1208.ko
557   AUTOLOAD:=$(call AutoProbe,rtc-isl1208)
558 endef
559
560 define KernelPackage/rtc-isl1208/description
561  Kernel module for Intersil ISL1208 RTC.
562 endef
563
564 $(eval $(call KernelPackage,rtc-isl1208))
565
566
567 define KernelPackage/rtc-marvell
568   SUBMENU:=$(OTHER_MENU)
569   TITLE:=Marvell SoC built-in RTC support
570   DEPENDS:=@RTC_SUPPORT @TARGET_kirkwood||TARGET_orion||TARGET_mvebu
571   KCONFIG:=CONFIG_RTC_DRV_MV
572   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-mv.ko
573   AUTOLOAD:=$(call AutoProbe,rtc-mv)
574 endef
575
576 define KernelPackage/rtc-marvell/description
577  Kernel module for Marvell SoC built-in RTC.
578 endef
579
580 $(eval $(call KernelPackage,rtc-marvell))
581
582
583 define KernelPackage/rtc-armada38x
584   SUBMENU:=$(OTHER_MENU)
585   TITLE:=Marvell Armada 38x SoC built-in RTC support
586   DEPENDS:=@RTC_SUPPORT @TARGET_mvebu
587   KCONFIG:=CONFIG_RTC_DRV_ARMADA38X
588   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-armada38x.ko
589   AUTOLOAD:=$(call AutoProbe,rtc-armada38x)
590 endef
591
592 define KernelPackage/rtc-armada38x/description
593  Kernel module for Marvell Armada 38x SoC built-in RTC.
594 endef
595
596 $(eval $(call KernelPackage,rtc-armada38x))
597
598
599 define KernelPackage/rtc-pcf8563
600   SUBMENU:=$(OTHER_MENU)
601   TITLE:=Philips PCF8563/Epson RTC8564 RTC support
602   DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
603   KCONFIG:=CONFIG_RTC_DRV_PCF8563
604   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf8563.ko
605   AUTOLOAD:=$(call AutoProbe,rtc-pcf8563)
606 endef
607
608 define KernelPackage/rtc-pcf8563/description
609  Kernel module for Philips PCF8563 RTC chip.
610  The Epson RTC8564 should work as well.
611 endef
612
613 $(eval $(call KernelPackage,rtc-pcf8563))
614
615
616 define KernelPackage/rtc-pcf2123
617   SUBMENU:=$(OTHER_MENU)
618   TITLE:=Philips PCF2123 RTC support
619   DEPENDS:=@RTC_SUPPORT
620   KCONFIG:=CONFIG_RTC_DRV_PCF2123
621   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf2123.ko
622   AUTOLOAD:=$(call AutoProbe,rtc-pcf2123)
623 endef
624
625 define KernelPackage/rtc-pcf2123/description
626  Kernel module for Philips PCF2123 RTC chip
627 endef
628
629 $(eval $(call KernelPackage,rtc-pcf2123))
630
631 define KernelPackage/rtc-pt7c4338
632   SUBMENU:=$(OTHER_MENU)
633   TITLE:=Pericom PT7C4338 RTC support
634   DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
635   KCONFIG:=CONFIG_RTC_DRV_PT7C4338
636   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pt7c4338.ko
637   AUTOLOAD:=$(call AutoProbe,rtc-pt7c4338)
638 endef
639
640 define KernelPackage/rtc-pt7c4338/description
641  Kernel module for Pericom PT7C4338 i2c RTC chip
642 endef
643
644 $(eval $(call KernelPackage,rtc-pt7c4338))
645
646
647 define KernelPackage/mtdtests
648   SUBMENU:=$(OTHER_MENU)
649   TITLE:=MTD subsystem tests
650   KCONFIG:=CONFIG_MTD_TESTS
651   FILES:=\
652         $(LINUX_DIR)/drivers/mtd/tests/mtd_nandecctest.ko \
653         $(LINUX_DIR)/drivers/mtd/tests/mtd_oobtest.ko \
654         $(LINUX_DIR)/drivers/mtd/tests/mtd_pagetest.ko \
655         $(LINUX_DIR)/drivers/mtd/tests/mtd_readtest.ko \
656         $(LINUX_DIR)/drivers/mtd/tests/mtd_speedtest.ko \
657         $(LINUX_DIR)/drivers/mtd/tests/mtd_stresstest.ko \
658         $(LINUX_DIR)/drivers/mtd/tests/mtd_subpagetest.ko \
659         $(LINUX_DIR)/drivers/mtd/tests/mtd_torturetest.ko
660 endef
661
662 define KernelPackage/mtdtests/description
663  Kernel modules for MTD subsystem/driver testing
664 endef
665
666 $(eval $(call KernelPackage,mtdtests))
667
668
669 define KernelPackage/serial-8250
670   SUBMENU:=$(OTHER_MENU)
671   TITLE:=8250 UARTs
672   KCONFIG:= CONFIG_SERIAL_8250 \
673         CONFIG_SERIAL_8250_NR_UARTS=16 \
674         CONFIG_SERIAL_8250_RUNTIME_UARTS=16 \
675         CONFIG_SERIAL_8250_EXTENDED=y \
676         CONFIG_SERIAL_8250_MANY_PORTS=y \
677         CONFIG_SERIAL_8250_SHARE_IRQ=y \
678         CONFIG_SERIAL_8250_DETECT_IRQ=n \
679         CONFIG_SERIAL_8250_RSA=n
680   FILES:=$(LINUX_DIR)/drivers/tty/serial/8250/8250.ko
681 endef
682
683 define KernelPackage/serial-8250/description
684  Kernel module for 8250 UART based serial ports
685 endef
686
687 $(eval $(call KernelPackage,serial-8250))
688
689
690 define KernelPackage/regmap
691   SUBMENU:=$(OTHER_MENU)
692   TITLE:=Generic register map support
693   DEPENDS:=+kmod-lib-lzo +kmod-i2c-core
694   KCONFIG:=CONFIG_REGMAP \
695            CONFIG_REGMAP_SPI \
696            CONFIG_REGMAP_I2C \
697            CONFIG_SPI=y
698   FILES:= \
699         $(LINUX_DIR)/drivers/base/regmap/regmap-core.ko \
700         $(LINUX_DIR)/drivers/base/regmap/regmap-i2c.ko \
701         $(if $(CONFIG_SPI),$(LINUX_DIR)/drivers/base/regmap/regmap-spi.ko)
702   AUTOLOAD:=$(call AutoLoad,21,regmap-core regmap-i2c regmap-spi)
703 endef
704
705 define KernelPackage/regmap/description
706  Generic register map support
707 endef
708
709 $(eval $(call KernelPackage,regmap))
710
711 define KernelPackage/ikconfig
712   SUBMENU:=$(OTHER_MENU)
713   TITLE:=Kernel configuration via /proc/config.gz
714   KCONFIG:=CONFIG_IKCONFIG \
715            CONFIG_IKCONFIG_PROC=y
716   FILES:=$(LINUX_DIR)/kernel/configs.ko
717   AUTOLOAD:=$(call AutoLoad,70,configs)
718 endef
719
720 define KernelPackage/ikconfig/description
721  Kernel configuration via /proc/config.gz
722 endef
723
724 $(eval $(call KernelPackage,ikconfig))
725
726
727 define KernelPackage/zram
728   SUBMENU:=$(OTHER_MENU)
729   TITLE:=ZRAM
730   DEPENDS:=+kmod-lib-lzo +kmod-lib-lz4
731   KCONFIG:= \
732         CONFIG_ZSMALLOC \
733         CONFIG_ZRAM \
734         CONFIG_ZRAM_DEBUG=n \
735         CONFIG_PGTABLE_MAPPING=n \
736         CONFIG_ZSMALLOC_STAT=n \
737         CONFIG_ZRAM_LZ4_COMPRESS=y
738   FILES:= \
739         $(LINUX_DIR)/mm/zsmalloc.ko \
740         $(LINUX_DIR)/drivers/block/zram/zram.ko
741   AUTOLOAD:=$(call AutoLoad,20,zsmalloc zram)
742 endef
743
744 define KernelPackage/zram/description
745  Compressed RAM block device support
746 endef
747
748 $(eval $(call KernelPackage,zram))
749
750
751 define KernelPackage/mvsdio
752   SUBMENU:=$(OTHER_MENU)
753   TITLE:=Marvell SDIO support
754   DEPENDS:=@TARGET_orion||TARGET_kirkwood||TARGET_mvebu +kmod-mmc
755   KCONFIG:=CONFIG_MMC_MVSDIO
756   FILES:=$(LINUX_DIR)/drivers/mmc/host/mvsdio.ko
757   AUTOLOAD:=$(call AutoProbe,mvsdio)
758 endef
759
760 define KernelPackage/mvsdio/description
761  Kernel support for the Marvell SDIO controller
762 endef
763
764 $(eval $(call KernelPackage,mvsdio))
765
766
767 define KernelPackage/pps
768   SUBMENU:=$(OTHER_MENU)
769   TITLE:=PPS support
770   KCONFIG:=CONFIG_PPS
771   FILES:=$(LINUX_DIR)/drivers/pps/pps_core.ko
772   AUTOLOAD:=$(call AutoLoad,17,pps_core,1)
773 endef
774
775 define KernelPackage/pps/description
776  PPS (Pulse Per Second) is a special pulse provided by some GPS
777  antennae. Userland can use it to get a high-precision time
778  reference.
779 endef
780
781 $(eval $(call KernelPackage,pps))
782
783
784 define KernelPackage/pps-gpio
785   SUBMENU:=$(OTHER_MENU)
786   TITLE:=PPS client using GPIO
787   DEPENDS:=+kmod-pps
788   KCONFIG:=CONFIG_PPS_CLIENT_GPIO
789   FILES:=$(LINUX_DIR)/drivers/pps/clients/pps-gpio.ko
790   AUTOLOAD:=$(call AutoLoad,18,pps-gpio,1)
791 endef
792
793 define KernelPackage/pps-gpio/description
794  Support for a PPS source using GPIO. To be useful you must
795  also register a platform device specifying the GPIO pin and
796  other options, usually in your board setup.
797 endef
798
799 $(eval $(call KernelPackage,pps-gpio))
800
801
802 define KernelPackage/ptp
803   SUBMENU:=$(OTHER_MENU)
804   TITLE:=PTP clock support
805   DEPENDS:=+kmod-pps
806   KCONFIG:=CONFIG_PTP_1588_CLOCK
807   FILES:=$(LINUX_DIR)/drivers/ptp/ptp.ko
808   AUTOLOAD:=$(call AutoLoad,18,ptp,1)
809 endef
810
811 define KernelPackage/ptp/description
812  The IEEE 1588 standard defines a method to precisely
813  synchronize distributed clocks over Ethernet networks.
814 endef
815
816 $(eval $(call KernelPackage,ptp))
817
818
819 define KernelPackage/ptp-gianfar
820   SUBMENU:=$(OTHER_MENU)
821   TITLE:=Freescale Gianfar PTP support
822   DEPENDS:=@TARGET_mpc85xx +kmod-gianfar +kmod-ptp
823   KCONFIG:=CONFIG_PTP_1588_CLOCK_GIANFAR
824   FILES:=$(LINUX_DIR)/drivers/net/ethernet/freescale/gianfar_ptp.ko
825   AUTOLOAD:=$(call AutoProbe,gianfar_ptp)
826 endef
827
828 define KernelPackage/ptp-gianfar/description
829  Kernel module for IEEE 1588 support for Freescale
830  Gianfar Ethernet drivers
831 endef
832
833 $(eval $(call KernelPackage,ptp-gianfar))
834
835
836 define KernelPackage/random-core
837   SUBMENU:=$(OTHER_MENU)
838   TITLE:=Hardware Random Number Generator Core support
839   KCONFIG:=CONFIG_HW_RANDOM
840   FILES:=$(LINUX_DIR)/drivers/char/hw_random/rng-core.ko
841 endef
842
843 define KernelPackage/random-core/description
844  Kernel module for the HW random number generator core infrastructure
845 endef
846
847 $(eval $(call KernelPackage,random-core))
848
849
850 define KernelPackage/thermal
851   SUBMENU:=$(OTHER_MENU)
852   TITLE:=Generic Thermal sysfs driver
853   DEPENDS:=+kmod-hwmon-core
854   HIDDEN:=1
855   KCONFIG:= \
856         CONFIG_THERMAL \
857         CONFIG_THERMAL_OF=y \
858         CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y \
859         CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE=n \
860         CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE=n \
861         CONFIG_THERMAL_GOV_FAIR_SHARE=n \
862         CONFIG_THERMAL_GOV_STEP_WISE=y \
863         CONFIG_THERMAL_GOV_USER_SPACE=n \
864         CONFIG_THERMAL_HWMON=y \
865         CONFIG_THERMAL_EMULATION=n
866   FILES:=$(LINUX_DIR)/drivers/thermal/thermal_sys.ko
867   AUTOLOAD:=$(call AutoProbe,thermal_sys)
868 endef
869
870 define KernelPackage/thermal/description
871  Generic Thermal Sysfs driver offers a generic mechanism for thermal
872  management. Usually it's made up of one or more thermal zone and cooling
873  device.
874 endef
875
876 $(eval $(call KernelPackage,thermal))
877
878
879 define KernelPackage/thermal-armada
880   SUBMENU:=$(OTHER_MENU)
881   TITLE:=Armada 370/XP thermal management
882   DEPENDS:=@TARGET_mvebu +kmod-thermal
883   KCONFIG:=CONFIG_ARMADA_THERMAL
884   FILES:=$(LINUX_DIR)/drivers/thermal/armada_thermal.ko
885   AUTOLOAD:=$(call AutoProbe,armada_thermal)
886 endef
887
888 define KernelPackage/thermal-armada/description
889  Enable this module if you want to have support for thermal management
890  controller present in Armada 370 and Armada XP SoC.
891 endef
892
893 $(eval $(call KernelPackage,thermal-armada))
894
895
896 define KernelPackage/thermal-imx
897   SUBMENU:=$(OTHER_MENU)
898   TITLE:=Temperature sensor driver for Freescale i.MX SoCs
899   DEPENDS:=@TARGET_imx6 +kmod-thermal
900   KCONFIG:= \
901         CONFIG_CPU_THERMAL=y \
902         CONFIG_IMX_THERMAL
903   FILES:=$(LINUX_DIR)/drivers/thermal/imx_thermal.ko
904   AUTOLOAD:=$(call AutoProbe,imx_thermal)
905 endef
906
907 define KernelPackage/thermal-imx/description
908  Support for Temperature Monitor (TEMPMON) found on Freescale i.MX SoCs.
909  It supports one critical trip point and one passive trip point. The
910  cpufreq is used as the cooling device to throttle CPUs when the
911  passive trip is crossed.
912 endef
913
914 $(eval $(call KernelPackage,thermal-imx))
915
916
917 define KernelPackage/thermal-kirkwood
918   SUBMENU:=$(OTHER_MENU)
919   TITLE:=Temperature sensor on Marvell Kirkwood SoCs
920   DEPENDS:=@TARGET_kirkwood +kmod-thermal
921   KCONFIG:=CONFIG_KIRKWOOD_THERMAL
922   FILES:=$(LINUX_DIR)/drivers/thermal/kirkwood_thermal.ko
923   AUTOLOAD:=$(call AutoProbe,kirkwood_thermal)
924 endef
925
926 define KernelPackage/thermal-kirkwood/description
927  Support for the Kirkwood thermal sensor driver into the Linux thermal
928  framework. Only kirkwood 88F6282 and 88F6283 have this sensor.
929 endef
930
931 $(eval $(call KernelPackage,thermal-kirkwood))
932
933
934 define KernelPackage/gpio-beeper
935   SUBMENU:=$(OTHER_MENU)
936   TITLE:=GPIO beeper support
937   DEPENDS:=+kmod-input-core
938   KCONFIG:= \
939         CONFIG_INPUT_MISC=y \
940         CONFIG_INPUT_GPIO_BEEPER
941   FILES:= \
942         $(LINUX_DIR)/drivers/input/misc/gpio-beeper.ko
943   AUTOLOAD:=$(call AutoLoad,50,gpio-beeper)
944 endef
945
946 define KernelPackage/gpio-beeper/description
947  This enables playing beeps through an GPIO-connected buzzer
948 endef
949
950 $(eval $(call KernelPackage,gpio-beeper))
951
952
953 define KernelPackage/echo
954   SUBMENU:=$(OTHER_MENU)
955   TITLE:=Line Echo Canceller
956   KCONFIG:=CONFIG_ECHO
957   FILES:=$(LINUX_DIR)/drivers/misc/echo/echo.ko
958   AUTOLOAD:=$(call AutoLoad,50,echo)
959 endef
960
961 define KernelPackage/echo/description
962  This driver provides line echo cancelling support for mISDN and
963  DAHDI drivers
964 endef
965
966 $(eval $(call KernelPackage,echo))