kernel/modules: add kmod-switch-rtl8367b
[lede.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_4_4: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/bluetooth-hci-h4p
118   SUBMENU:=$(OTHER_MENU)
119   TITLE:=HCI driver with H4 Nokia extensions
120   DEPENDS:=@TARGET_omap24xx +kmod-bluetooth
121   KCONFIG:=CONFIG_BT_HCIH4P
122   FILES:=$(LINUX_DIR)/drivers/bluetooth/hci_h4p/hci_h4p.ko
123   AUTOLOAD:=$(call AutoProbe,hci_h4p)
124 endef
125
126 define KernelPackage/bluetooth-hci-h4p/description
127  HCI driver with H4 Nokia extensions
128 endef
129
130 $(eval $(call KernelPackage,bluetooth-hci-h4p))
131
132
133 define KernelPackage/dma-buf
134   TITLE:=DMA shared buffer support
135   HIDDEN:=1
136   KCONFIG:=CONFIG_DMA_SHARED_BUFFER
137   FILES:=$(LINUX_DIR)/drivers/dma-buf/dma-shared-buffer.ko
138   AUTOLOAD:=$(call AutoLoad,20,dma-shared-buffer)
139 endef
140 $(eval $(call KernelPackage,dma-buf))
141
142
143 define KernelPackage/eeprom-93cx6
144   SUBMENU:=$(OTHER_MENU)
145   TITLE:=EEPROM 93CX6 support
146   KCONFIG:=CONFIG_EEPROM_93CX6
147   FILES:=$(LINUX_DIR)/drivers/misc/eeprom/eeprom_93cx6.ko
148   AUTOLOAD:=$(call AutoLoad,20,eeprom_93cx6)
149 endef
150
151 define KernelPackage/eeprom-93cx6/description
152  Kernel module for EEPROM 93CX6 support
153 endef
154
155 $(eval $(call KernelPackage,eeprom-93cx6))
156
157
158 define KernelPackage/eeprom-at24
159   SUBMENU:=$(OTHER_MENU)
160   TITLE:=EEPROM AT24 support
161   KCONFIG:=CONFIG_EEPROM_AT24
162   DEPENDS:=+kmod-i2c-core
163   FILES:=$(LINUX_DIR)/drivers/misc/eeprom/at24.ko
164   AUTOLOAD:=$(call AutoProbe,at24)
165 endef
166
167 define KernelPackage/eeprom-at24/description
168  Kernel module for most I2C EEPROMs
169 endef
170
171 $(eval $(call KernelPackage,eeprom-at24))
172
173
174 define KernelPackage/eeprom-at25
175   SUBMENU:=$(OTHER_MENU)
176   TITLE:=EEPROM AT25 support
177   KCONFIG:=CONFIG_EEPROM_AT25
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 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/wdt-omap
485   SUBMENU:=$(OTHER_MENU)
486   TITLE:=OMAP Watchdog timer
487   DEPENDS:=@(TARGET_omap24xx||TARGET_omap35xx)
488   KCONFIG:=CONFIG_OMAP_WATCHDOG
489   FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/omap_wdt.ko
490   AUTOLOAD:=$(call AutoLoad,50,omap_wdt,1)
491 endef
492
493 define KernelPackage/wdt-omap/description
494  Kernel module for TI omap watchdog timer
495 endef
496
497 $(eval $(call KernelPackage,wdt-omap))
498
499
500 define KernelPackage/wdt-orion
501   SUBMENU:=$(OTHER_MENU)
502   TITLE:=Marvell Orion Watchdog timer
503   DEPENDS:=@TARGET_orion||TARGET_kirkwood
504   KCONFIG:=CONFIG_ORION_WATCHDOG
505   FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/orion_wdt.ko
506   AUTOLOAD:=$(call AutoLoad,50,orion_wdt,1)
507 endef
508
509 define KernelPackage/wdt-orion/description
510  Kernel module for Marvell Orion, Kirkwood and Armada XP/370 watchdog timer
511 endef
512
513 $(eval $(call KernelPackage,wdt-orion))
514
515
516 define KernelPackage/rtc-ds1307
517   SUBMENU:=$(OTHER_MENU)
518   TITLE:=Dallas/Maxim DS1307 (and compatible) RTC support
519   DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
520   KCONFIG:=CONFIG_RTC_DRV_DS1307 \
521         CONFIG_RTC_CLASS=y
522   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1307.ko
523   AUTOLOAD:=$(call AutoProbe,rtc-ds1307)
524 endef
525
526 define KernelPackage/rtc-ds1307/description
527  Kernel module for Dallas/Maxim DS1307/DS1337/DS1338/DS1340/DS1388/DS3231,
528  Epson RX-8025 and various other compatible RTC chips connected via I2C.
529 endef
530
531 $(eval $(call KernelPackage,rtc-ds1307))
532
533
534 define KernelPackage/rtc-ds1374
535   SUBMENU:=$(OTHER_MENU)
536   TITLE:=Dallas/Maxim DS1374 RTC support
537   DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
538   KCONFIG:=CONFIG_RTC_DRV_DS1374 \
539         CONFIG_RTC_DRV_DS1374_WDT=n \
540         CONFIG_RTC_CLASS=y
541   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1374.ko
542   AUTOLOAD:=$(call AutoProbe,rtc-ds1374)
543 endef
544
545 define KernelPackage/rtc-ds1374/description
546  Kernel module for Dallas/Maxim DS1374.
547 endef
548
549 $(eval $(call KernelPackage,rtc-ds1374))
550
551
552 define KernelPackage/rtc-ds1672
553   SUBMENU:=$(OTHER_MENU)
554   TITLE:=Dallas/Maxim DS1672 RTC support
555   DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
556   KCONFIG:=CONFIG_RTC_DRV_DS1672 \
557         CONFIG_RTC_CLASS=y
558   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1672.ko
559   AUTOLOAD:=$(call AutoProbe,rtc-ds1672)
560 endef
561
562 define KernelPackage/rtc-ds1672/description
563  Kernel module for Dallas/Maxim DS1672 RTC.
564 endef
565
566 $(eval $(call KernelPackage,rtc-ds1672))
567
568
569 define KernelPackage/rtc-isl1208
570   SUBMENU:=$(OTHER_MENU)
571   TITLE:=Intersil ISL1208 RTC support
572   DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
573   KCONFIG:=CONFIG_RTC_DRV_ISL1208 \
574         CONFIG_RTC_CLASS=y
575   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-isl1208.ko
576   AUTOLOAD:=$(call AutoProbe,rtc-isl1208)
577 endef
578
579 define KernelPackage/rtc-isl1208/description
580  Kernel module for Intersil ISL1208 RTC.
581 endef
582
583 $(eval $(call KernelPackage,rtc-isl1208))
584
585
586 define KernelPackage/rtc-marvell
587   SUBMENU:=$(OTHER_MENU)
588   TITLE:=Marvell SoC built-in RTC support
589   DEPENDS:=@RTC_SUPPORT @TARGET_kirkwood||TARGET_orion
590   KCONFIG:=CONFIG_RTC_DRV_MV \
591         CONFIG_RTC_CLASS=y
592   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-mv.ko
593   AUTOLOAD:=$(call AutoProbe,rtc-mv)
594 endef
595
596 define KernelPackage/rtc-marvell/description
597  Kernel module for Marvell SoC built-in RTC.
598 endef
599
600 $(eval $(call KernelPackage,rtc-marvell))
601
602
603 define KernelPackage/rtc-pcf8563
604   SUBMENU:=$(OTHER_MENU)
605   TITLE:=Philips PCF8563/Epson RTC8564 RTC support
606   DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
607   KCONFIG:=CONFIG_RTC_DRV_PCF8563 \
608         CONFIG_RTC_CLASS=y
609   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf8563.ko
610   AUTOLOAD:=$(call AutoProbe,rtc-pcf8563)
611 endef
612
613 define KernelPackage/rtc-pcf8563/description
614  Kernel module for Philips PCF8563 RTC chip.
615  The Epson RTC8564 should work as well.
616 endef
617
618 $(eval $(call KernelPackage,rtc-pcf8563))
619
620
621 define KernelPackage/rtc-pcf2123
622   SUBMENU:=$(OTHER_MENU)
623   TITLE:=Philips PCF2123 RTC support
624   DEPENDS:=@RTC_SUPPORT
625   KCONFIG:=CONFIG_RTC_DRV_PCF2123 \
626         CONFIG_RTC_CLASS=y
627   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf2123.ko
628   AUTOLOAD:=$(call AutoProbe,rtc-pcf2123)
629 endef
630
631 define KernelPackage/rtc-pcf2123/description
632  Kernel module for Philips PCF2123 RTC chip
633 endef
634
635 $(eval $(call KernelPackage,rtc-pcf2123))
636
637 define KernelPackage/rtc-pt7c4338
638   SUBMENU:=$(OTHER_MENU)
639   TITLE:=Pericom PT7C4338 RTC support
640   DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
641   KCONFIG:=CONFIG_RTC_DRV_PT7C4338 \
642         CONFIG_RTC_CLASS=y
643   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pt7c4338.ko
644   AUTOLOAD:=$(call AutoProbe,rtc-pt7c4338)
645 endef
646
647 define KernelPackage/rtc-pt7c4338/description
648  Kernel module for Pericom PT7C4338 i2c RTC chip
649 endef
650
651 $(eval $(call KernelPackage,rtc-pt7c4338))
652
653 define KernelPackage/rtc-snvs
654   SUBMENU:=$(OTHER_MENU)
655   TITLE:=Freescale SNVS RTC support
656   DEPENDS:=@TARGET_imx6 @RTC_SUPPORT
657   KCONFIG:=CONFIG_RTC_DRV_SNVS \
658         CONFIG_RTC_CLASS=y
659   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-snvs.ko
660   AUTOLOAD:=$(call AutoLoad,50,rtc-snvs,1)
661 endef
662
663 define KernelPackage/rtc-snvs/description
664  Kernel module for Freescale SNVS RTC on chip module
665 endef
666
667 $(eval $(call KernelPackage,rtc-snvs))
668
669
670 define KernelPackage/mtdtests
671   SUBMENU:=$(OTHER_MENU)
672   TITLE:=MTD subsystem tests
673   KCONFIG:=CONFIG_MTD_TESTS
674   FILES:=\
675         $(LINUX_DIR)/drivers/mtd/tests/mtd_nandecctest.ko \
676         $(LINUX_DIR)/drivers/mtd/tests/mtd_oobtest.ko \
677         $(LINUX_DIR)/drivers/mtd/tests/mtd_pagetest.ko \
678         $(LINUX_DIR)/drivers/mtd/tests/mtd_readtest.ko \
679         $(LINUX_DIR)/drivers/mtd/tests/mtd_speedtest.ko \
680         $(LINUX_DIR)/drivers/mtd/tests/mtd_stresstest.ko \
681         $(LINUX_DIR)/drivers/mtd/tests/mtd_subpagetest.ko \
682         $(LINUX_DIR)/drivers/mtd/tests/mtd_torturetest.ko
683 endef
684
685 define KernelPackage/mtdtests/description
686  Kernel modules for MTD subsystem/driver testing
687 endef
688
689 $(eval $(call KernelPackage,mtdtests))
690
691
692 define KernelPackage/serial-8250
693   SUBMENU:=$(OTHER_MENU)
694   TITLE:=8250 UARTs
695   KCONFIG:= CONFIG_SERIAL_8250 \
696         CONFIG_SERIAL_8250_NR_UARTS=16 \
697         CONFIG_SERIAL_8250_RUNTIME_UARTS=16 \
698         CONFIG_SERIAL_8250_EXTENDED=y \
699         CONFIG_SERIAL_8250_MANY_PORTS=y \
700         CONFIG_SERIAL_8250_SHARE_IRQ=y \
701         CONFIG_SERIAL_8250_DETECT_IRQ=n \
702         CONFIG_SERIAL_8250_RSA=n
703   FILES:= \
704         $(LINUX_DIR)/drivers/tty/serial/8250/8250.ko \
705         $(LINUX_DIR)/drivers/tty/serial/8250/8250_base.ko@ge4.4
706 endef
707
708 define KernelPackage/serial-8250/description
709  Kernel module for 8250 UART based serial ports
710 endef
711
712 $(eval $(call KernelPackage,serial-8250))
713
714
715 define KernelPackage/regmap
716   SUBMENU:=$(OTHER_MENU)
717   TITLE:=Generic register map support
718   DEPENDS:=+kmod-lib-lzo +kmod-i2c-core
719   KCONFIG:=CONFIG_REGMAP \
720            CONFIG_REGMAP_MMIO \
721            CONFIG_REGMAP_SPI \
722            CONFIG_REGMAP_I2C \
723            CONFIG_SPI=y
724   FILES:= \
725         $(LINUX_DIR)/drivers/base/regmap/regmap-core.ko \
726         $(LINUX_DIR)/drivers/base/regmap/regmap-i2c.ko \
727         $(LINUX_DIR)/drivers/base/regmap/regmap-mmio.ko \
728         $(if $(CONFIG_SPI),$(LINUX_DIR)/drivers/base/regmap/regmap-spi.ko)
729   AUTOLOAD:=$(call AutoLoad,21,regmap-core regmap-i2c regmap-mmio regmap-spi)
730 endef
731
732 define KernelPackage/regmap/description
733  Generic register map support
734 endef
735
736 $(eval $(call KernelPackage,regmap))
737
738 define KernelPackage/ikconfig
739   SUBMENU:=$(OTHER_MENU)
740   TITLE:=Kernel configuration via /proc/config.gz
741   KCONFIG:=CONFIG_IKCONFIG \
742            CONFIG_IKCONFIG_PROC=y
743   FILES:=$(LINUX_DIR)/kernel/configs.ko
744   AUTOLOAD:=$(call AutoLoad,70,configs)
745 endef
746
747 define KernelPackage/ikconfig/description
748  Kernel configuration via /proc/config.gz
749 endef
750
751 $(eval $(call KernelPackage,ikconfig))
752
753
754 define KernelPackage/zram
755   SUBMENU:=$(OTHER_MENU)
756   TITLE:=ZRAM
757   DEPENDS:=+kmod-lib-lzo +kmod-lib-lz4
758   KCONFIG:= \
759         CONFIG_ZSMALLOC \
760         CONFIG_ZRAM \
761         CONFIG_ZRAM_DEBUG=n \
762         CONFIG_PGTABLE_MAPPING=n \
763         CONFIG_ZSMALLOC_STAT=n \
764         CONFIG_ZRAM_LZ4_COMPRESS=y
765   FILES:= \
766         $(LINUX_DIR)/mm/zsmalloc.ko \
767         $(LINUX_DIR)/drivers/block/zram/zram.ko
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 +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/pps-ldisc
830   SUBMENU:=$(OTHER_MENU)
831   TITLE:=PPS line discipline
832   DEPENDS:=+kmod-pps
833   KCONFIG:=CONFIG_PPS_CLIENT_LDISC
834   FILES:=$(LINUX_DIR)/drivers/pps/clients/pps-ldisc.ko
835   AUTOLOAD:=$(call AutoLoad,18,pps-ldisc,1)
836 endef
837
838 define KernelPackage/pps-ldisc/description
839  Support for a PPS source connected with the CD (Carrier
840  Detect) pin of your serial port.
841 endef
842
843 $(eval $(call KernelPackage,pps-ldisc))
844
845
846 define KernelPackage/ptp
847   SUBMENU:=$(OTHER_MENU)
848   TITLE:=PTP clock support
849   DEPENDS:=+kmod-pps
850   KCONFIG:= \
851         CONFIG_PTP_1588_CLOCK \
852         CONFIG_NET_PTP_CLASSIFY=y
853   FILES:=$(LINUX_DIR)/drivers/ptp/ptp.ko
854   AUTOLOAD:=$(call AutoLoad,18,ptp,1)
855 endef
856
857 define KernelPackage/ptp/description
858  The IEEE 1588 standard defines a method to precisely
859  synchronize distributed clocks over Ethernet networks.
860 endef
861
862 $(eval $(call KernelPackage,ptp))
863
864
865 define KernelPackage/ptp-gianfar
866   SUBMENU:=$(OTHER_MENU)
867   TITLE:=Freescale Gianfar PTP support
868   DEPENDS:=@TARGET_mpc85xx +kmod-gianfar +kmod-ptp
869   KCONFIG:=CONFIG_PTP_1588_CLOCK_GIANFAR
870   FILES:=$(LINUX_DIR)/drivers/net/ethernet/freescale/gianfar_ptp.ko
871   AUTOLOAD:=$(call AutoProbe,gianfar_ptp)
872 endef
873
874 define KernelPackage/ptp-gianfar/description
875  Kernel module for IEEE 1588 support for Freescale
876  Gianfar Ethernet drivers
877 endef
878
879 $(eval $(call KernelPackage,ptp-gianfar))
880
881
882 define KernelPackage/random-core
883   SUBMENU:=$(OTHER_MENU)
884   TITLE:=Hardware Random Number Generator Core support
885   KCONFIG:=CONFIG_HW_RANDOM
886   FILES:=$(LINUX_DIR)/drivers/char/hw_random/rng-core.ko
887 endef
888
889 define KernelPackage/random-core/description
890  Kernel module for the HW random number generator core infrastructure
891 endef
892
893 $(eval $(call KernelPackage,random-core))
894
895 define KernelPackage/random-omap
896   SUBMENU:=$(OTHER_MENU)
897   TITLE:=Hardware Random Number Generator OMAP support
898   KCONFIG:=CONFIG_HW_RANDOM_OMAP
899   FILES:=$(LINUX_DIR)/drivers/char/hw_random/omap-rng.ko
900   DEPENDS:=@(TARGET_omap24xx||TARGET_omap) +kmod-random-core
901   AUTOLOAD:=$(call AutoProbe,random-omap)
902 endef
903
904 define KernelPackage/random-omap/description
905  Kernel module for the OMAP Random Number Generator
906  found on OMAP16xx, OMAP2/3/4/5 and AM33xx/AM43xx multimedia processors.
907 endef
908
909 $(eval $(call KernelPackage,random-omap))
910
911 define KernelPackage/thermal
912   SUBMENU:=$(OTHER_MENU)
913   TITLE:=Generic Thermal sysfs driver
914   DEPENDS:=+kmod-hwmon-core
915   HIDDEN:=1
916   KCONFIG:= \
917         CONFIG_THERMAL \
918         CONFIG_THERMAL_OF=y \
919         CONFIG_CPU_THERMAL=y \
920         CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y \
921         CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE=n \
922         CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE=n \
923         CONFIG_THERMAL_GOV_FAIR_SHARE=n \
924         CONFIG_THERMAL_GOV_STEP_WISE=y \
925         CONFIG_THERMAL_GOV_USER_SPACE=n \
926         CONFIG_THERMAL_HWMON=y \
927         CONFIG_THERMAL_EMULATION=n
928   FILES:=$(LINUX_DIR)/drivers/thermal/thermal_sys.ko
929   AUTOLOAD:=$(call AutoProbe,thermal_sys)
930 endef
931
932 define KernelPackage/thermal/description
933  Generic Thermal Sysfs driver offers a generic mechanism for thermal
934  management. Usually it's made up of one or more thermal zone and cooling
935  device.
936 endef
937
938 $(eval $(call KernelPackage,thermal))
939
940
941 define KernelPackage/thermal-imx
942   SUBMENU:=$(OTHER_MENU)
943   TITLE:=Temperature sensor driver for Freescale i.MX SoCs
944   DEPENDS:=@TARGET_imx6 +kmod-thermal
945   KCONFIG:= \
946         CONFIG_IMX_THERMAL
947   FILES:=$(LINUX_DIR)/drivers/thermal/imx_thermal.ko
948   AUTOLOAD:=$(call AutoProbe,imx_thermal)
949 endef
950
951 define KernelPackage/thermal-imx/description
952  Support for Temperature Monitor (TEMPMON) found on Freescale i.MX SoCs.
953  It supports one critical trip point and one passive trip point. The
954  cpufreq is used as the cooling device to throttle CPUs when the
955  passive trip is crossed.
956 endef
957
958 $(eval $(call KernelPackage,thermal-imx))
959
960
961 define KernelPackage/thermal-kirkwood
962   SUBMENU:=$(OTHER_MENU)
963   TITLE:=Temperature sensor on Marvell Kirkwood SoCs
964   DEPENDS:=@TARGET_kirkwood +kmod-thermal
965   KCONFIG:=CONFIG_KIRKWOOD_THERMAL
966   FILES:=$(LINUX_DIR)/drivers/thermal/kirkwood_thermal.ko
967   AUTOLOAD:=$(call AutoProbe,kirkwood_thermal)
968 endef
969
970 define KernelPackage/thermal-kirkwood/description
971  Support for the Kirkwood thermal sensor driver into the Linux thermal
972  framework. Only kirkwood 88F6282 and 88F6283 have this sensor.
973 endef
974
975 $(eval $(call KernelPackage,thermal-kirkwood))
976
977
978 define KernelPackage/gpio-beeper
979   SUBMENU:=$(OTHER_MENU)
980   TITLE:=GPIO beeper support
981   DEPENDS:=+kmod-input-core
982   KCONFIG:= \
983         CONFIG_INPUT_MISC=y \
984         CONFIG_INPUT_GPIO_BEEPER
985   FILES:= \
986         $(LINUX_DIR)/drivers/input/misc/gpio-beeper.ko
987   AUTOLOAD:=$(call AutoLoad,50,gpio-beeper)
988 endef
989
990 define KernelPackage/gpio-beeper/description
991  This enables playing beeps through an GPIO-connected buzzer
992 endef
993
994 $(eval $(call KernelPackage,gpio-beeper))
995
996
997 define KernelPackage/echo
998   SUBMENU:=$(OTHER_MENU)
999   TITLE:=Line Echo Canceller
1000   KCONFIG:=CONFIG_ECHO
1001   FILES:=$(LINUX_DIR)/drivers/misc/echo/echo.ko
1002   AUTOLOAD:=$(call AutoLoad,50,echo)
1003 endef
1004
1005 define KernelPackage/echo/description
1006  This driver provides line echo cancelling support for mISDN and
1007  DAHDI drivers
1008 endef
1009
1010 $(eval $(call KernelPackage,echo))
1011
1012
1013 define KernelPackage/bmp085
1014   SUBMENU:=$(OTHER_MENU)
1015   TITLE:=BMP085/BMP18x pressure sensor
1016   DEPENDS:= +kmod-regmap @!LINUX_3_18 @!LINUX_4_1
1017   KCONFIG:= CONFIG_BMP085
1018   FILES:= $(LINUX_DIR)/drivers/misc/bmp085.ko
1019 endef
1020
1021 define KernelPackage/bmp085/description
1022  This driver adds support for Bosch Sensortec's digital pressure
1023  sensors BMP085 and BMP18x.
1024 endef
1025
1026 $(eval $(call KernelPackage,bmp085))
1027
1028
1029 define KernelPackage/bmp085-i2c
1030   SUBMENU:=$(OTHER_MENU)
1031   TITLE:=BMP085/BMP18x pressure sensor I2C
1032   DEPENDS:= +kmod-bmp085
1033   KCONFIG:= CONFIG_BMP085_I2C
1034   FILES:= $(LINUX_DIR)/drivers/misc/bmp085-i2c.ko
1035   AUTOLOAD:=$(call AutoProbe,bmp085-i2c)
1036 endef
1037 define KernelPackage/bmp085-i2c/description
1038  This driver adds support for Bosch Sensortec's digital pressure
1039  sensor connected via I2C.
1040 endef
1041
1042 $(eval $(call KernelPackage,bmp085-i2c))
1043
1044
1045 define KernelPackage/bmp085-spi
1046   SUBMENU:=$(OTHER_MENU)
1047   TITLE:=BMP085/BMP18x pressure sensor SPI
1048   DEPENDS:= +kmod-bmp085
1049   KCONFIG:= CONFIG_BMP085_SPI
1050   FILES:= $(LINUX_DIR)/drivers/misc/bmp085-spi.ko
1051   AUTOLOAD:=$(call AutoProbe,bmp085-spi)
1052 endef
1053 define KernelPackage/bmp085-spi/description
1054  This driver adds support for Bosch Sensortec's digital pressure
1055  sensor connected via SPI.
1056 endef
1057
1058 $(eval $(call KernelPackage,bmp085-spi))