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