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