kernel: remove gpio-pwm kmod definition
[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/pwm
499   SUBMENU:=$(OTHER_MENU)
500   TITLE:=PWM generic API
501   KCONFIG:=CONFIG_GENERIC_PWM
502   FILES:=$(LINUX_DIR)/drivers/pwm/pwm.ko
503 endef
504
505 define KernelPackage/pwm/description
506  Kernel module that implement a generic PWM API
507 endef
508
509 $(eval $(call KernelPackage,pwm))
510
511
512 define KernelPackage/rtc-ds1307
513   SUBMENU:=$(OTHER_MENU)
514   TITLE:=Dallas/Maxim DS1307 (and compatible) RTC support
515   $(call AddDepends/rtc)
516   DEPENDS+=+kmod-i2c-core
517   KCONFIG:=CONFIG_RTC_DRV_DS1307
518   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1307.ko
519   AUTOLOAD:=$(call AutoProbe,rtc-ds1307)
520 endef
521
522 define KernelPackage/rtc-ds1307/description
523  Kernel module for Dallas/Maxim DS1307/DS1337/DS1338/DS1340/DS1388/DS3231,
524  Epson RX-8025 and various other compatible RTC chips connected via I2C.
525 endef
526
527 $(eval $(call KernelPackage,rtc-ds1307))
528
529
530 define KernelPackage/rtc-ds1672
531   SUBMENU:=$(OTHER_MENU)
532   TITLE:=Dallas/Maxim DS1672 RTC support
533   $(call AddDepends/rtc)
534   DEPENDS+=+kmod-i2c-core
535   KCONFIG:=CONFIG_RTC_DRV_DS1672
536   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1672.ko
537   AUTOLOAD:=$(call AutoProbe,rtc-ds1672)
538 endef
539
540 define KernelPackage/rtc-ds1672/description
541  Kernel module for Dallas/Maxim DS1672 RTC.
542 endef
543
544 $(eval $(call KernelPackage,rtc-ds1672))
545
546
547 define KernelPackage/rtc-isl1208
548   SUBMENU:=$(OTHER_MENU)
549   TITLE:=Intersil ISL1208 RTC support
550   $(call AddDepends/rtc)
551   DEPENDS+=+kmod-i2c-core
552   KCONFIG:=CONFIG_RTC_DRV_ISL1208
553   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-isl1208.ko
554   AUTOLOAD:=$(call AutoProbe,rtc-isl1208)
555 endef
556
557 define KernelPackage/rtc-isl1208/description
558  Kernel module for Intersil ISL1208 RTC.
559 endef
560
561 $(eval $(call KernelPackage,rtc-isl1208))
562
563
564 define KernelPackage/rtc-marvell
565   SUBMENU:=$(OTHER_MENU)
566   TITLE:=Marvell SoC built-in RTC support
567   $(call AddDepends/rtc)
568   DEPENDS+=@TARGET_kirkwood||TARGET_orion||TARGET_mvebu
569   KCONFIG:=CONFIG_RTC_DRV_MV
570   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-mv.ko
571   AUTOLOAD:=$(call AutoProbe,rtc-mv)
572 endef
573
574 define KernelPackage/rtc-marvell/description
575  Kernel module for Marvell SoC built-in RTC.
576 endef
577
578 $(eval $(call KernelPackage,rtc-marvell))
579
580 define KernelPackage/rtc-pcf8563
581   SUBMENU:=$(OTHER_MENU)
582   TITLE:=Philips PCF8563/Epson RTC8564 RTC support
583   $(call AddDepends/rtc,+kmod-i2c-core)
584   KCONFIG:=CONFIG_RTC_DRV_PCF8563
585   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf8563.ko
586   AUTOLOAD:=$(call AutoProbe,rtc-pcf8563)
587 endef
588
589 define KernelPackage/rtc-pcf8563/description
590  Kernel module for Philips PCF8563 RTC chip.
591  The Epson RTC8564 should work as well.
592 endef
593
594 $(eval $(call KernelPackage,rtc-pcf8563))
595
596
597 define KernelPackage/rtc-pcf2123
598   SUBMENU:=$(OTHER_MENU)
599   TITLE:=Philips PCF2123 RTC support
600   $(call AddDepends/rtc)
601   KCONFIG:=CONFIG_RTC_DRV_PCF2123
602   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf2123.ko
603   AUTOLOAD:=$(call AutoProbe,rtc-pcf2123)
604 endef
605
606 define KernelPackage/rtc-pcf2123/description
607  Kernel module for Philips PCF2123 RTC chip
608 endef
609
610 $(eval $(call KernelPackage,rtc-pcf2123))
611
612 define KernelPackage/rtc-pt7c4338
613   SUBMENU:=$(OTHER_MENU)
614   TITLE:=Pericom PT7C4338 RTC support
615   $(call AddDepends/rtc,+kmod-i2c-core)
616   KCONFIG:=CONFIG_RTC_DRV_PT7C4338
617   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pt7c4338.ko
618   AUTOLOAD:=$(call AutoProbe,rtc-pt7c4338)
619 endef
620
621 define KernelPackage/rtc-pt7c4338/description
622  Kernel module for Pericom PT7C4338 i2c RTC chip
623 endef
624
625 $(eval $(call KernelPackage,rtc-pt7c4338))
626
627
628 define KernelPackage/mtdtests
629   SUBMENU:=$(OTHER_MENU)
630   TITLE:=MTD subsystem tests
631   KCONFIG:=CONFIG_MTD_TESTS
632   DEPENDS:=+kmod-nand
633   FILES:=\
634         $(LINUX_DIR)/drivers/mtd/tests/mtd_nandecctest.ko \
635         $(LINUX_DIR)/drivers/mtd/tests/mtd_oobtest.ko \
636         $(LINUX_DIR)/drivers/mtd/tests/mtd_pagetest.ko \
637         $(LINUX_DIR)/drivers/mtd/tests/mtd_readtest.ko \
638         $(LINUX_DIR)/drivers/mtd/tests/mtd_speedtest.ko \
639         $(LINUX_DIR)/drivers/mtd/tests/mtd_stresstest.ko \
640         $(LINUX_DIR)/drivers/mtd/tests/mtd_subpagetest.ko \
641         $(LINUX_DIR)/drivers/mtd/tests/mtd_torturetest.ko
642 endef
643
644 define KernelPackage/mtdtests/description
645  Kernel modules for MTD subsystem/driver testing
646 endef
647
648 $(eval $(call KernelPackage,mtdtests))
649
650
651 define KernelPackage/nand
652   SUBMENU:=$(OTHER_MENU)
653   TITLE:=NAND flash support
654   KCONFIG:=CONFIG_MTD_NAND \
655         CONFIG_MTD_NAND_IDS \
656         CONFIG_MTD_NAND_ECC
657   FILES:= \
658         $(LINUX_DIR)/drivers/mtd/nand/nand_ids.ko \
659         $(LINUX_DIR)/drivers/mtd/nand/nand_ecc.ko \
660         $(LINUX_DIR)/drivers/mtd/nand/nand.ko
661   AUTOLOAD:=$(call AutoLoad,20,nand_ids nand_ecc nand)
662 endef
663
664 define KernelPackage/nand/description
665  Kernel module for NAND support
666 endef
667
668 $(eval $(call KernelPackage,nand))
669
670
671 define KernelPackage/nandsim
672   SUBMENU:=$(OTHER_MENU)
673   TITLE:=NAND simulator
674   DEPENDS:=+kmod-nand
675   KCONFIG:=CONFIG_MTD_NAND_NANDSIM
676   FILES:=$(LINUX_DIR)/drivers/mtd/nand/nandsim.ko
677 endef
678
679 define KernelPackage/nandsim/description
680  Kernel module for NAND flash simulation.
681 endef
682
683 $(eval $(call KernelPackage,nandsim))
684
685 define KernelPackage/serial-8250
686   SUBMENU:=$(OTHER_MENU)
687   TITLE:=8250 UARTs
688   KCONFIG:= CONFIG_SERIAL_8250 \
689         CONFIG_SERIAL_8250_NR_UARTS=16 \
690         CONFIG_SERIAL_8250_RUNTIME_UARTS=16 \
691         CONFIG_SERIAL_8250_EXTENDED=y \
692         CONFIG_SERIAL_8250_MANY_PORTS=y \
693         CONFIG_SERIAL_8250_SHARE_IRQ=y \
694         CONFIG_SERIAL_8250_DETECT_IRQ=n \
695         CONFIG_SERIAL_8250_RSA=n
696   FILES:=$(LINUX_DIR)/drivers/tty/serial/8250/8250$(if $(call kernel_patchver_ge,3.7),$(if $(call kernel_patchver_le,3.8),_core)).ko
697 endef
698
699 define KernelPackage/serial-8250/description
700  Kernel module for 8250 UART based serial ports
701 endef
702
703 $(eval $(call KernelPackage,serial-8250))
704
705
706 define KernelPackage/regmap
707   SUBMENU:=$(OTHER_MENU)
708   TITLE:=Generic register map support
709   DEPENDS:=+kmod-lib-lzo +kmod-i2c-core
710   KCONFIG:=CONFIG_REGMAP \
711            CONFIG_REGMAP_SPI \
712            CONFIG_REGMAP_I2C \
713            CONFIG_SPI=y
714   FILES:= \
715         $(LINUX_DIR)/drivers/base/regmap/regmap-core.ko \
716         $(LINUX_DIR)/drivers/base/regmap/regmap-i2c.ko \
717         $(if $(CONFIG_SPI),$(LINUX_DIR)/drivers/base/regmap/regmap-spi.ko)
718   AUTOLOAD:=$(call AutoLoad,21,regmap-core regmap-i2c regmap-spi)
719 endef
720
721 define KernelPackage/regmap/description
722  Generic register map support
723 endef
724
725 $(eval $(call KernelPackage,regmap))
726
727 define KernelPackage/ikconfig
728   SUBMENU:=$(OTHER_MENU)
729   TITLE:=Kernel configuration via /proc/config.gz
730   KCONFIG:=CONFIG_IKCONFIG \
731            CONFIG_IKCONFIG_PROC=y
732   FILES:=$(LINUX_DIR)/kernel/configs.ko
733   AUTOLOAD:=$(call AutoLoad,70,configs)
734 endef
735
736 define KernelPackage/ikconfig/description
737  Kernel configuration via /proc/config.gz
738 endef
739
740 $(eval $(call KernelPackage,ikconfig))
741
742
743 define KernelPackage/zram
744   SUBMENU:=$(OTHER_MENU)
745   TITLE:=ZRAM
746   DEPENDS:=@!LINUX_3_3 +kmod-lib-lzo
747   KCONFIG:= \
748         CONFIG_ZSMALLOC \
749         CONFIG_ZRAM \
750         CONFIG_ZRAM_DEBUG=n \
751         CONFIG_PGTABLE_MAPPING=n \
752         CONFIG_ZRAM_LZ4_COMPRESS=y
753 ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.14.0)),1)
754   FILES:=\
755         $(LINUX_DIR)/mm/zsmalloc.ko \
756         $(LINUX_DIR)/drivers/block/zram/zram.ko
757 else
758   FILES:= \
759         $(LINUX_DIR)/drivers/staging/zsmalloc/zsmalloc.ko \
760         $(LINUX_DIR)/drivers/staging/zram/zram.ko
761 endif
762   AUTOLOAD:=$(call AutoLoad,20,zsmalloc zram)
763 endef
764
765 define KernelPackage/zram/description
766  Compressed RAM block device support
767 endef
768
769 $(eval $(call KernelPackage,zram))
770
771
772 define KernelPackage/mvsdio
773   SUBMENU:=$(OTHER_MENU)
774   TITLE:=Marvell SDIO support
775   DEPENDS:=@TARGET_orion||TARGET_kirkwood||TARGET_mvebu +kmod-mmc
776   KCONFIG:=CONFIG_MMC_MVSDIO
777   FILES:=$(LINUX_DIR)/drivers/mmc/host/mvsdio.ko
778   AUTOLOAD:=$(call AutoProbe,mvsdio)
779 endef
780
781 define KernelPackage/mvsdio/description
782  Kernel support for the Marvell SDIO controller
783 endef
784
785 $(eval $(call KernelPackage,mvsdio))
786
787
788 define KernelPackage/pps
789   SUBMENU:=$(OTHER_MENU)
790   TITLE:=PPS support
791   KCONFIG:=CONFIG_PPS
792   FILES:=$(LINUX_DIR)/drivers/pps/pps_core.ko
793   AUTOLOAD:=$(call AutoLoad,17,pps_core,1)
794 endef
795
796 define KernelPackage/pps/description
797  PPS (Pulse Per Second) is a special pulse provided by some GPS
798  antennae. Userland can use it to get a high-precision time
799  reference.
800 endef
801
802 $(eval $(call KernelPackage,pps))
803
804
805 define KernelPackage/pps-gpio
806   SUBMENU:=$(OTHER_MENU)
807   TITLE:=PPS client using GPIO
808   DEPENDS:=+kmod-pps
809   KCONFIG:=CONFIG_PPS_CLIENT_GPIO
810   FILES:=$(LINUX_DIR)/drivers/pps/clients/pps-gpio.ko
811   AUTOLOAD:=$(call AutoLoad,18,pps-gpio,1)
812 endef
813
814 define KernelPackage/pps-gpio/description
815  Support for a PPS source using GPIO. To be useful you must
816  also register a platform device specifying the GPIO pin and
817  other options, usually in your board setup.
818 endef
819
820 $(eval $(call KernelPackage,pps-gpio))
821
822
823 define KernelPackage/ptp
824   SUBMENU:=$(OTHER_MENU)
825   TITLE:=PTP clock support
826   DEPENDS:=+kmod-pps
827   KCONFIG:=CONFIG_PTP_1588_CLOCK
828   FILES:=$(LINUX_DIR)/drivers/ptp/ptp.ko
829   AUTOLOAD:=$(call AutoLoad,18,ptp,1)
830 endef
831
832 define KernelPackage/ptp/description
833  The IEEE 1588 standard defines a method to precisely
834  synchronize distributed clocks over Ethernet networks.
835 endef
836
837 $(eval $(call KernelPackage,ptp))
838
839
840 define KernelPackage/ptp-gianfar
841   SUBMENU:=$(OTHER_MENU)
842   TITLE:=Freescale Gianfar PTP support
843   DEPENDS:=@TARGET_mpc85xx +kmod-gianfar +kmod-ptp
844   KCONFIG:=CONFIG_PTP_1588_CLOCK_GIANFAR
845   FILES:=$(LINUX_DIR)/drivers/net/ethernet/freescale/gianfar_ptp.ko
846   AUTOLOAD:=$(call AutoProbe,gianfar_ptp)
847 endef
848
849 define KernelPackage/ptp-gianfar/description
850  Kernel module for IEEE 1588 support for Freescale
851  Gianfar Ethernet drivers
852 endef
853
854 $(eval $(call KernelPackage,ptp-gianfar))
855
856
857 define KernelPackage/random-core
858   SUBMENU:=$(OTHER_MENU)
859   TITLE:=Hardware Random Number Generator Core support
860   KCONFIG:=CONFIG_HW_RANDOM
861   FILES:=$(LINUX_DIR)/drivers/char/hw_random/rng-core.ko
862 endef
863
864 define KernelPackage/random-core/description
865  Kernel module for the HW random number generator core infrastructure
866 endef
867
868 $(eval $(call KernelPackage,random-core))
869
870
871 define KernelPackage/thermal
872   SUBMENU:=$(OTHER_MENU)
873   TITLE:=Generic Thermal sysfs driver
874   DEPENDS:=+kmod-hwmon-core
875   HIDDEN:=1
876   KCONFIG:= \
877         CONFIG_THERMAL \
878         CONFIG_THERMAL_OF=y \
879         CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y \
880         CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE=n \
881         CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE=n \
882         CONFIG_THERMAL_GOV_FAIR_SHARE=n \
883         CONFIG_THERMAL_GOV_STEP_WISE=y \
884         CONFIG_THERMAL_GOV_USER_SPACE=n \
885         CONFIG_THERMAL_HWMON=y \
886         CONFIG_THERMAL_EMULATION=n
887   FILES:=$(LINUX_DIR)/drivers/thermal/thermal_sys.ko
888   AUTOLOAD:=$(call AutoProbe,thermal_sys)
889 endef
890
891 define KernelPackage/thermal/description
892  Generic Thermal Sysfs driver offers a generic mechanism for thermal
893  management. Usually it's made up of one or more thermal zone and cooling
894  device.
895 endef
896
897 $(eval $(call KernelPackage,thermal))
898
899
900 define KernelPackage/thermal-armada
901   SUBMENU:=$(OTHER_MENU)
902   TITLE:=Armada 370/XP thermal management
903   DEPENDS:=@TARGET_mvebu +kmod-thermal
904   KCONFIG:=CONFIG_ARMADA_THERMAL
905   FILES:=$(LINUX_DIR)/drivers/thermal/armada_thermal.ko
906   AUTOLOAD:=$(call AutoProbe,armada_thermal)
907 endef
908
909 define KernelPackage/thermal-armada/description
910  Enable this module if you want to have support for thermal management
911  controller present in Armada 370 and Armada XP SoC.
912 endef
913
914 $(eval $(call KernelPackage,thermal-armada))
915
916
917 define KernelPackage/thermal-imx
918   SUBMENU:=$(OTHER_MENU)
919   TITLE:=Temperature sensor driver for Freescale i.MX SoCs
920   DEPENDS:=@TARGET_imx6 +kmod-thermal
921   KCONFIG:= \
922         CONFIG_CPU_THERMAL=y \
923         CONFIG_IMX_THERMAL
924   FILES:=$(LINUX_DIR)/drivers/thermal/imx_thermal.ko
925   AUTOLOAD:=$(call AutoProbe,imx_thermal)
926 endef
927
928 define KernelPackage/thermal-imx/description
929  Support for Temperature Monitor (TEMPMON) found on Freescale i.MX SoCs.
930  It supports one critical trip point and one passive trip point. The
931  cpufreq is used as the cooling device to throttle CPUs when the
932  passive trip is crossed.
933 endef
934
935 $(eval $(call KernelPackage,thermal-imx))
936
937
938 define KernelPackage/thermal-kirkwood
939   SUBMENU:=$(OTHER_MENU)
940   TITLE:=Temperature sensor on Marvell Kirkwood SoCs
941   DEPENDS:=@TARGET_kirkwood +kmod-thermal
942   KCONFIG:=CONFIG_KIRKWOOD_THERMAL
943   FILES:=$(LINUX_DIR)/drivers/thermal/kirkwood_thermal.ko
944   AUTOLOAD:=$(call AutoProbe,kirkwood_thermal)
945 endef
946
947 define KernelPackage/thermal-kirkwood/description
948  Support for the Kirkwood thermal sensor driver into the Linux thermal
949  framework. Only kirkwood 88F6282 and 88F6283 have this sensor.
950 endef
951
952 $(eval $(call KernelPackage,thermal-kirkwood))