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