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