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