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