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