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