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