package/kernel: add support for industrial-io and AD799x
[oweals/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
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         $(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_SDHCI=n \
269         CONFIG_MMC_TIFM_SD=n \
270         CONFIG_MMC_WBSD=n \
271         CONFIG_SDIO_UART=n
272   FILES:= \
273         $(LINUX_DIR)/drivers/mmc/core/mmc_core.ko \
274         $(LINUX_DIR)/drivers/mmc/card/mmc_block.ko
275   AUTOLOAD:=$(call AutoProbe,mmc_core mmc_block,1)
276 endef
277
278 define KernelPackage/mmc/description
279  Kernel support for MMC/SD cards
280 endef
281
282 $(eval $(call KernelPackage,mmc))
283
284
285 define KernelPackage/oprofile
286   SUBMENU:=$(OTHER_MENU)
287   TITLE:=OProfile profiling support
288   KCONFIG:=CONFIG_OPROFILE
289   FILES:=$(LINUX_DIR)/arch/$(LINUX_KARCH)/oprofile/oprofile.ko
290   DEPENDS:=@KERNEL_PROFILING
291 endef
292
293 define KernelPackage/oprofile/description
294  Kernel module for support for oprofile system profiling
295 endef
296
297 $(eval $(call KernelPackage,oprofile))
298
299
300 define KernelPackage/rfkill
301   SUBMENU:=$(OTHER_MENU)
302   TITLE:=RF switch subsystem support
303   DEPENDS:=@USE_RFKILL +kmod-input-core
304   KCONFIG:= \
305     CONFIG_RFKILL \
306     CONFIG_RFKILL_INPUT=y \
307     CONFIG_RFKILL_LEDS=y \
308     CONFIG_RFKILL_GPIO=y
309   FILES:= \
310     $(LINUX_DIR)/net/rfkill/rfkill.ko
311   AUTOLOAD:=$(call AutoLoad,20,rfkill)
312 endef
313
314 define KernelPackage/rfkill/description
315  Say Y here if you want to have control over RF switches
316  found on many WiFi and Bluetooth cards
317 endef
318
319 $(eval $(call KernelPackage,rfkill))
320
321
322 define KernelPackage/softdog
323   SUBMENU:=$(OTHER_MENU)
324   TITLE:=Software watchdog driver
325   KCONFIG:=CONFIG_SOFT_WATCHDOG
326   FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/softdog.ko
327   AUTOLOAD:=$(call AutoLoad,50,softdog)
328 endef
329
330 define KernelPackage/softdog/description
331  Software watchdog driver
332 endef
333
334 $(eval $(call KernelPackage,softdog))
335
336
337 define KernelPackage/ssb
338   SUBMENU:=$(OTHER_MENU)
339   TITLE:=Silicon Sonics Backplane glue code
340   DEPENDS:=@PCI_SUPPORT @!TARGET_brcm47xx @!TARGET_brcm63xx
341   KCONFIG:=\
342         CONFIG_SSB \
343         CONFIG_SSB_B43_PCI_BRIDGE=y \
344         CONFIG_SSB_DRIVER_MIPS=n \
345         CONFIG_SSB_DRIVER_PCICORE=y \
346         CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y \
347         CONFIG_SSB_PCIHOST=y \
348         CONFIG_SSB_PCIHOST_POSSIBLE=y \
349         CONFIG_SSB_POSSIBLE=y \
350         CONFIG_SSB_SPROM=y \
351         CONFIG_SSB_SILENT=y
352   FILES:=$(LINUX_DIR)/drivers/ssb/ssb.ko
353   AUTOLOAD:=$(call AutoLoad,18,ssb,1)
354 endef
355
356 define KernelPackage/ssb/description
357  Silicon Sonics Backplane glue code.
358 endef
359
360 $(eval $(call KernelPackage,ssb))
361
362
363 define KernelPackage/bcma
364   SUBMENU:=$(OTHER_MENU)
365   TITLE:=BCMA support
366   DEPENDS:=@PCI_SUPPORT @!TARGET_brcm47xx
367   KCONFIG:=\
368         CONFIG_BCMA \
369         CONFIG_BCMA_POSSIBLE=y \
370         CONFIG_BCMA_BLOCKIO=y \
371         CONFIG_BCMA_HOST_PCI_POSSIBLE=y \
372         CONFIG_BCMA_HOST_PCI=y \
373         CONFIG_BCMA_HOST_SOC=n \
374         CONFIG_BCMA_DRIVER_MIPS=n \
375         CONFIG_BCMA_DRIVER_PCI_HOSTMODE=n \
376         CONFIG_BCMA_DRIVER_GMAC_CMN=n \
377         CONFIG_BCMA_DEBUG=n
378   FILES:=$(LINUX_DIR)/drivers/bcma/bcma.ko
379   AUTOLOAD:=$(call AutoLoad,29,bcma)
380 endef
381
382 define KernelPackage/bcma/description
383  Bus driver for Broadcom specific Advanced Microcontroller Bus Architecture
384 endef
385
386 $(eval $(call KernelPackage,bcma))
387
388
389 define KernelPackage/wdt-omap
390   SUBMENU:=$(OTHER_MENU)
391   TITLE:=OMAP Watchdog timer
392   DEPENDS:=@(TARGET_omap24xx||TARGET_omap35xx)
393   KCONFIG:=CONFIG_OMAP_WATCHDOG
394   FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/omap_wdt.ko
395   AUTOLOAD:=$(call AutoLoad,50,omap_wdt.ko)
396 endef
397
398 define KernelPackage/wdt-omap/description
399  Kernel module for TI omap watchdog timer
400 endef
401
402 $(eval $(call KernelPackage,wdt-omap))
403
404
405 define KernelPackage/wdt-orion
406   SUBMENU:=$(OTHER_MENU)
407   TITLE:=Marvell Orion Watchdog timer
408   DEPENDS:=@TARGET_orion||TARGET_kirkwood||TARGET_mvebu
409   KCONFIG:=CONFIG_ORION_WATCHDOG
410   FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/orion_wdt.ko
411   AUTOLOAD:=$(call AutoLoad,50,orion_wdt)
412 endef
413
414 define KernelPackage/wdt-orion/description
415  Kernel module for Marvell Orion, Kirkwood and Armada XP/370 watchdog timer
416 endef
417
418 $(eval $(call KernelPackage,wdt-orion))
419
420
421 define KernelPackage/booke-wdt
422   SUBMENU:=$(OTHER_MENU)
423   TITLE:=PowerPC Book-E Watchdog Timer
424   DEPENDS:=@(TARGET_mpc85xx||TARGET_ppc40x||TARGET_ppc44x)
425   KCONFIG:=CONFIG_BOOKE_WDT
426   FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/booke_wdt.ko
427   AUTOLOAD:=$(call AutoLoad,50,booke_wdt)
428 endef
429
430 define KernelPackage/booke-wdt/description
431  Kernel module for PowerPC Book-E Watchdog Timer
432 endef
433
434 $(eval $(call KernelPackage,booke-wdt))
435
436
437 define KernelPackage/pwm
438   SUBMENU:=$(OTHER_MENU)
439   TITLE:=PWM generic API
440   KCONFIG:=CONFIG_GENERIC_PWM
441   FILES:=$(LINUX_DIR)/drivers/pwm/pwm.ko
442 endef
443
444 define KernelPackage/pwm/description
445  Kernel module that implement a generic PWM API
446 endef
447
448 $(eval $(call KernelPackage,pwm))
449
450
451 define KernelPackage/pwm-gpio
452   SUBMENU:=$(OTHER_MENU)
453   TITLE:=PWM over GPIO
454   DEPENDS:=+kmod-pwm
455   KCONFIG:=CONFIG_GPIO_PWM
456   FILES:=$(LINUX_DIR)/drivers/pwm/gpio-pwm.ko
457   AUTOLOAD:=$(call AutoProbe,gpio-pwm)
458 endef
459
460 define KernelPackage/pwm-gpio/description
461  Kernel module to models a single-channel PWM device using a timer and a GPIO pin
462 endef
463
464 $(eval $(call KernelPackage,pwm-gpio))
465
466
467 define KernelPackage/rtc-isl1208
468   SUBMENU:=$(OTHER_MENU)
469   TITLE:=Intersil ISL1208 RTC support
470   $(call AddDepends/rtc)
471   DEPENDS+=+kmod-i2c-core
472   KCONFIG:=CONFIG_RTC_DRV_ISL1208
473   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-isl1208.ko
474   AUTOLOAD:=$(call AutoProbe,rtc-isl1208)
475 endef
476
477 define KernelPackage/rtc-isl1208/description
478  Kernel module for Intersil ISL1208 RTC.
479 endef
480
481 $(eval $(call KernelPackage,rtc-isl1208))
482
483
484 define KernelPackage/rtc-marvell
485   SUBMENU:=$(OTHER_MENU)
486   TITLE:=Marvell SoC built-in RTC support
487   $(call AddDepends/rtc)
488   DEPENDS+=@TARGET_kirkwood||TARGET_orion||TARGET_mvebu
489   KCONFIG:=CONFIG_RTC_DRV_MV
490   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-mv.ko
491   AUTOLOAD:=$(call AutoProbe,rtc-mv)
492 endef
493
494 define KernelPackage/rtc-marvell/description
495  Kernel module for Marvell SoC built-in RTC.
496 endef
497
498 $(eval $(call KernelPackage,rtc-marvell))
499
500 define KernelPackage/rtc-pcf8563
501   SUBMENU:=$(OTHER_MENU)
502   TITLE:=Philips PCF8563/Epson RTC8564 RTC support
503   $(call AddDepends/rtc,+kmod-i2c-core)
504   KCONFIG:=CONFIG_RTC_DRV_PCF8563
505   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf8563.ko
506   AUTOLOAD:=$(call AutoProbe,rtc-pcf8563)
507 endef
508
509 define KernelPackage/rtc-pcf8563/description
510  Kernel module for Philips PCF8563 RTC chip.
511  The Epson RTC8564 should work as well.
512 endef
513
514 $(eval $(call KernelPackage,rtc-pcf8563))
515
516
517 define KernelPackage/rtc-pcf2123
518   SUBMENU:=$(OTHER_MENU)
519   TITLE:=Philips PCF2123 RTC support
520   $(call AddDepends/rtc)
521   KCONFIG:=CONFIG_RTC_DRV_PCF2123
522   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf2123.ko
523   AUTOLOAD:=$(call AutoProbe,rtc-pcf2123)
524 endef
525
526 define KernelPackage/rtc-pcf2123/description
527  Kernel module for Philips PCF2123 RTC chip
528 endef
529
530 $(eval $(call KernelPackage,rtc-pcf2123))
531
532 define KernelPackage/rtc-pt7c4338
533   SUBMENU:=$(OTHER_MENU)
534   TITLE:=Pericom PT7C4338 RTC support
535   $(call AddDepends/rtc,+kmod-i2c-core)
536   KCONFIG:=CONFIG_RTC_DRV_PT7C4338
537   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pt7c4338.ko
538   AUTOLOAD:=$(call AutoProbe,rtc-pt7c4338)
539 endef
540
541 define KernelPackage/rtc-pt7c4338/description
542  Kernel module for Pericom PT7C4338 i2c RTC chip
543 endef
544
545 $(eval $(call KernelPackage,rtc-pt7c4338))
546
547
548 define KernelPackage/mtdtests
549   SUBMENU:=$(OTHER_MENU)
550   TITLE:=MTD subsystem tests
551   KCONFIG:=CONFIG_MTD_TESTS
552   DEPENDS:=+kmod-nand
553   FILES:=\
554         $(LINUX_DIR)/drivers/mtd/tests/mtd_nandecctest.ko \
555         $(LINUX_DIR)/drivers/mtd/tests/mtd_oobtest.ko \
556         $(LINUX_DIR)/drivers/mtd/tests/mtd_pagetest.ko \
557         $(LINUX_DIR)/drivers/mtd/tests/mtd_readtest.ko \
558         $(LINUX_DIR)/drivers/mtd/tests/mtd_speedtest.ko \
559         $(LINUX_DIR)/drivers/mtd/tests/mtd_stresstest.ko \
560         $(LINUX_DIR)/drivers/mtd/tests/mtd_subpagetest.ko \
561         $(LINUX_DIR)/drivers/mtd/tests/mtd_torturetest.ko
562 endef
563
564 define KernelPackage/mtdtests/description
565  Kernel modules for MTD subsystem/driver testing
566 endef
567
568 $(eval $(call KernelPackage,mtdtests))
569
570
571 define KernelPackage/nand
572   SUBMENU:=$(OTHER_MENU)
573   TITLE:=NAND flash support
574   KCONFIG:=CONFIG_MTD_NAND \
575         CONFIG_MTD_NAND_IDS \
576         CONFIG_MTD_NAND_ECC
577   FILES:= \
578         $(LINUX_DIR)/drivers/mtd/nand/nand_ids.ko \
579         $(LINUX_DIR)/drivers/mtd/nand/nand_ecc.ko \
580         $(LINUX_DIR)/drivers/mtd/nand/nand.ko
581   AUTOLOAD:=$(call AutoLoad,20,nand_ids nand_ecc nand)
582 endef
583
584 define KernelPackage/nand/description
585  Kernel module for NAND support
586 endef
587
588 $(eval $(call KernelPackage,nand))
589
590
591 define KernelPackage/nandsim
592   SUBMENU:=$(OTHER_MENU)
593   TITLE:=NAND simulator
594   DEPENDS:=+kmod-nand
595   KCONFIG:=CONFIG_MTD_NAND_NANDSIM
596   FILES:=$(LINUX_DIR)/drivers/mtd/nand/nandsim.ko
597 endef
598
599 define KernelPackage/nandsim/description
600  Kernel module for NAND flash simulation.
601 endef
602
603 $(eval $(call KernelPackage,nandsim))
604
605 define KernelPackage/serial-8250
606   SUBMENU:=$(OTHER_MENU)
607   TITLE:=8250 UARTs
608   KCONFIG:= CONFIG_SERIAL_8250 \
609         CONFIG_SERIAL_8250_NR_UARTS=16 \
610         CONFIG_SERIAL_8250_RUNTIME_UARTS=16 \
611         CONFIG_SERIAL_8250_EXTENDED=y \
612         CONFIG_SERIAL_8250_MANY_PORTS=y \
613         CONFIG_SERIAL_8250_SHARE_IRQ=y \
614         CONFIG_SERIAL_8250_DETECT_IRQ=n \
615         CONFIG_SERIAL_8250_RSA=n
616   FILES:=$(LINUX_DIR)/drivers/tty/serial/8250/8250$(if $(call kernel_patchver_ge,3.7),$(if $(call kernel_patchver_le,3.8),_core)).ko
617 endef
618
619 define KernelPackage/serial-8250/description
620  Kernel module for 8250 UART based serial ports
621 endef
622
623 $(eval $(call KernelPackage,serial-8250))
624
625
626 define KernelPackage/regmap
627   SUBMENU:=$(OTHER_MENU)
628   TITLE:=Generic register map support
629   DEPENDS:=+kmod-lib-lzo +kmod-i2c-core
630   KCONFIG:=CONFIG_REGMAP \
631            CONFIG_REGMAP_SPI \
632            CONFIG_REGMAP_I2C \
633            CONFIG_SPI=y
634   FILES:= \
635         $(LINUX_DIR)/drivers/base/regmap/regmap-core.ko \
636         $(LINUX_DIR)/drivers/base/regmap/regmap-i2c.ko \
637         $(LINUX_DIR)/drivers/base/regmap/regmap-spi.ko
638   AUTOLOAD:=$(call AutoLoad,21,regmap-core regmap-i2c regmap-spi)
639 endef
640
641 define KernelPackage/regmap/description
642  Generic register map support
643 endef
644
645 $(eval $(call KernelPackage,regmap))
646
647 define KernelPackage/ikconfig
648   SUBMENU:=$(OTHER_MENU)
649   TITLE:=Kernel configuration via /proc/config.gz
650   KCONFIG:=CONFIG_IKCONFIG \
651            CONFIG_IKCONFIG_PROC=y
652   FILES:=$(LINUX_DIR)/kernel/configs.ko
653   AUTOLOAD:=$(call AutoLoad,70,configs)
654 endef
655
656 define KernelPackage/ikconfig/description
657  Kernel configuration via /proc/config.gz
658 endef
659
660 $(eval $(call KernelPackage,ikconfig))
661
662
663 define KernelPackage/zram
664   SUBMENU:=$(OTHER_MENU)
665   TITLE:=ZRAM
666   DEPENDS:=@!LINUX_3_3 +kmod-lib-lzo
667   KCONFIG:= \
668         CONFIG_ZSMALLOC \
669         CONFIG_ZRAM \
670         CONFIG_ZRAM_DEBUG=n
671   FILES:= \
672         $(LINUX_DIR)/drivers/staging/zsmalloc/zsmalloc.ko \
673         $(LINUX_DIR)/drivers/staging/zram/zram.ko
674   AUTOLOAD:=$(call AutoLoad,20,zsmalloc zram)
675 endef
676
677 define KernelPackage/zram/description
678  Compressed RAM block device support
679 endef
680
681 $(eval $(call KernelPackage,zram))
682
683
684 define KernelPackage/mvsdio
685   SUBMENU:=$(OTHER_MENU)
686   TITLE:=Marvell SDIO support
687   DEPENDS:=@TARGET_orion||TARGET_kirkwood||TARGET_mvebu +kmod-mmc
688   KCONFIG:=CONFIG_MMC_MVSDIO
689   FILES:=$(LINUX_DIR)/drivers/mmc/host/mvsdio.ko
690   AUTOLOAD:=$(call AutoProbe,mvsdio)
691 endef
692
693 define KernelPacakge/mvsdio/description
694  Kernel support for the Marvell SDIO controller
695 endef
696
697 $(eval $(call KernelPackage,mvsdio))
698
699
700 define KernelPackage/pps
701   SUBMENU:=$(OTHER_MENU)
702   TITLE:=PPS support
703   KCONFIG:=CONFIG_PPS
704   FILES:=$(LINUX_DIR)/drivers/pps/pps_core.ko
705   AUTOLOAD:=$(call AutoLoad,17,pps_core,1)
706 endef
707
708 define KernelPacakge/pps/description
709  PPS (Pulse Per Second) is a special pulse provided by some GPS
710  antennae. Userland can use it to get a high-precision time
711  reference.
712 endef
713
714 $(eval $(call KernelPackage,pps))
715
716
717 define KernelPackage/ptp
718   SUBMENU:=$(OTHER_MENU)
719   TITLE:=PTP clock support
720   DEPENDS:=+kmod-pps
721   KCONFIG:=CONFIG_PTP_1588_CLOCK
722   FILES:=$(LINUX_DIR)/drivers/ptp/ptp.ko
723   AUTOLOAD:=$(call AutoLoad,18,ptp,1)
724 endef
725
726 define KernelPacakge/ptp/description
727  The IEEE 1588 standard defines a method to precisely
728  synchronize distributed clocks over Ethernet networks.
729 endef
730
731 $(eval $(call KernelPackage,ptp))
732
733
734 define KernelPackage/ptp-gianfar
735   SUBMENU:=$(OTHER_MENU)
736   TITLE:=Freescale Gianfar PTP support
737   DEPENDS:=@TARGET_mpc85xx +kmod-gianfar +kmod-ptp
738   KCONFIG:=CONFIG_PTP_1588_CLOCK_GIANFAR
739   FILES:=$(LINUX_DIR)/drivers/net/ethernet/freescale/gianfar_ptp.ko
740   AUTOLOAD:=$(call AutoProbe,gianfar_ptp)
741 endef
742
743 define KernelPacakge/ptp-gianfar/description
744  Kernel module for IEEE 1588 support for Freescale
745  Gianfar Ethernet drivers
746 endef
747
748 $(eval $(call KernelPackage,ptp-gianfar))
749
750
751 define KernelPackage/random-core
752   SUBMENU:=$(OTHER_MENU)
753   TITLE:=Hardware Random Number Generator Core support
754   KCONFIG:=CONFIG_HW_RANDOM
755   FILES:=$(LINUX_DIR)/drivers/char/hw_random/rng-core.ko
756 endef
757
758 define KernelPackage/random-core/description
759  Kernel module for the HW random number generator core infrastructure
760 endef
761
762 $(eval $(call KernelPackage,random-core))