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