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