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