2 # Copyright (C) 2006-2011 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 OTHER_MENU:=Other modules
10 WATCHDOG_DIR:=watchdog
13 define KernelPackage/bluetooth
14 SUBMENU:=$(OTHER_MENU)
15 TITLE:=Bluetooth support
16 DEPENDS:=@USB_SUPPORT +kmod-usb-core
23 CONFIG_BLUEZ_HCIUART \
34 CONFIG_BT_HCIUART_H4 \
36 $(call AddDepends/crc16)
37 $(call AddDepends/hid)
38 $(call AddDepends/rfkill)
40 $(LINUX_DIR)/net/bluetooth/bluetooth.ko \
41 $(LINUX_DIR)/net/bluetooth/rfcomm/rfcomm.ko \
42 $(LINUX_DIR)/net/bluetooth/bnep/bnep.ko \
43 $(LINUX_DIR)/net/bluetooth/hidp/hidp.ko \
44 $(LINUX_DIR)/drivers/bluetooth/hci_uart.ko \
45 $(LINUX_DIR)/drivers/bluetooth/btusb.ko
46 ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,2.6.39)),1)
47 AUTOLOAD:=$(call AutoLoad,90,bluetooth rfcomm bnep hidp hci_uart btusb)
50 $(LINUX_DIR)/net/bluetooth/l2cap.ko \
51 $(LINUX_DIR)/net/bluetooth/sco.ko
52 AUTOLOAD:=$(call AutoLoad,90,bluetooth l2cap sco rfcomm bnep hidp hci_uart btusb)
56 define KernelPackage/bluetooth/description
57 Kernel support for Bluetooth devices
60 $(eval $(call KernelPackage,bluetooth))
63 define KernelPackage/bluetooth-hci-h4p
64 SUBMENU:=$(OTHER_MENU)
65 TITLE:=HCI driver with H4 Nokia extensions
66 DEPENDS:=@TARGET_omap24xx +kmod-bluetooth
67 KCONFIG:=CONFIG_BT_HCIH4P
68 FILES:=$(LINUX_DIR)/drivers/bluetooth/hci_h4p/hci_h4p.ko
69 AUTOLOAD:=$(call AutoLoad,91,hci_h4p)
72 define KernelPackage/bluetooth-hci-h4p/description
73 HCI driver with H4 Nokia extensions
76 $(eval $(call KernelPackage,bluetooth-hci-h4p))
79 define KernelPackage/cpu-msr
80 SUBMENU:=$(OTHER_MENU)
81 TITLE:=x86 CPU MSR support
83 KCONFIG:=CONFIG_X86_MSR
84 FILES:=$(LINUX_DIR)/arch/x86/kernel/msr.ko
85 AUTOLOAD:=$(call AutoLoad,20,msr)
88 define KernelPackage/cpu-msr/description
89 Kernel module for Model Specific Registers support in x86 CPUs
92 $(eval $(call KernelPackage,cpu-msr))
95 define KernelPackage/eeprom-93cx6
96 SUBMENU:=$(OTHER_MENU)
97 TITLE:=EEPROM 93CX6 support
98 KCONFIG:=CONFIG_EEPROM_93CX6
99 FILES:=$(LINUX_DIR)/drivers/misc/eeprom/eeprom_93cx6.ko
100 AUTOLOAD:=$(call AutoLoad,20,eeprom_93cx6)
103 define KernelPackage/eeprom-93cx6/description
104 Kernel module for EEPROM 93CX6 support
107 $(eval $(call KernelPackage,eeprom-93cx6))
110 define KernelPackage/gpio-cs5535
111 SUBMENU:=$(OTHER_MENU)
112 TITLE:=AMD CS5535/CS5536 GPIO driver
113 DEPENDS:=@TARGET_x86 @LINUX_2_6_30||LINUX_2_6_31||LINUX_2_6_32||LINUX_2_6_35||LINUX_2_6_36||LINUX_2_6_37
114 KCONFIG:=CONFIG_CS5535_GPIO
115 FILES:=$(LINUX_DIR)/drivers/char/cs5535_gpio.ko
116 AUTOLOAD:=$(call AutoLoad,50,cs5535_gpio)
119 define KernelPackage/gpio-cs5535/description
120 This package contains the AMD CS5535/CS5536 GPIO driver
123 $(eval $(call KernelPackage,gpio-cs5535))
126 define KernelPackage/gpio-cs5535-new
127 SUBMENU:=$(OTHER_MENU)
128 TITLE:=AMD CS5535/CS5536 GPIO driver with improved sysfs support
129 DEPENDS:=@TARGET_x86 @!(LINUX_2_6_30||LINUX_2_6_31||LINUX_2_6_32)
130 KCONFIG:=CONFIG_GPIO_CS5535
131 FILES:=$(LINUX_DIR)/drivers/gpio/cs5535-gpio.ko
132 AUTOLOAD:=$(call AutoLoad,50,cs5535-gpio)
135 define KernelPackage/gpio-cs5535-new/description
136 This package contains the new AMD CS5535/CS5536 GPIO driver
139 $(eval $(call KernelPackage,gpio-cs5535-new))
142 define KernelPackage/gpio-dev
143 SUBMENU:=$(OTHER_MENU)
144 TITLE:=Generic GPIO char device support
145 DEPENDS:=@GPIO_SUPPORT
146 KCONFIG:=CONFIG_GPIO_DEVICE
147 FILES:=$(LINUX_DIR)/drivers/char/gpio_dev.ko
148 AUTOLOAD:=$(call AutoLoad,40,gpio_dev)
151 define KernelPackage/gpio-dev/description
152 Kernel module to allows control of GPIO pins using a character device.
155 $(eval $(call KernelPackage,gpio-dev))
158 define KernelPackage/gpio-nsc
159 SUBMENU:=$(OTHER_MENU)
160 TITLE:=Natsemi GPIO support
162 KCONFIG:=CONFIG_NSC_GPIO
163 FILES:=$(LINUX_DIR)/drivers/char/nsc_gpio.ko
164 AUTOLOAD:=$(call AutoLoad,40,nsc_gpio)
167 define KernelPackage/gpio-nsc/description
168 Kernel module for Natsemi GPIO
171 $(eval $(call KernelPackage,gpio-nsc))
174 define KernelPackage/gpio-pc8736x
175 SUBMENU:=$(OTHER_MENU)
176 TITLE:=PC8736x GPIO support
178 KCONFIG:=CONFIG_PC8736x_GPIO
179 FILES:=$(LINUX_DIR)/drivers/char/pc8736x_gpio.ko
180 AUTOLOAD:=$(call AutoLoad,40,pc8736x_gpio)
183 define KernelPackage/gpio-pc8736x/description
184 Kernel module for PC8736x GPIO
187 $(eval $(call KernelPackage,gpio-pc8736x))
190 define KernelPackage/gpio-scx200
191 SUBMENU:=$(OTHER_MENU)
192 TITLE:=Natsemi SCX200 GPIO support
193 DEPENDS:=@TARGET_x86 +kmod-gpio-nsc
194 KCONFIG:=CONFIG_SCx200_GPIO
195 FILES:=$(LINUX_DIR)/drivers/char/scx200_gpio.ko
196 AUTOLOAD:=$(call AutoLoad,50,scx200_gpio)
199 define KernelPackage/gpio-scx200/description
200 Kernel module for SCX200 GPIO
203 $(eval $(call KernelPackage,gpio-scx200))
205 define KernelPackage/gpio-nxp-74hc164
206 SUBMENU:=$(OTHER_MENU)
207 TITLE:=NXP 74HC164 GPIO expander support
208 DEPENDS:=@TARGET_brcm63xx
209 KCONFIG:=CONFIG_GPIO_NXP_74HC164
210 FILES:=$(LINUX_DIR)/drivers/gpio/nxp_74hc164.ko
211 AUTOLOAD:=$(call AutoLoad,99,nxp_74hc164)
214 define KernelPackage/gpio-nxp-74hc164/description
215 Kernel module for NXP 74HC164 GPIO expander
218 $(eval $(call KernelPackage,gpio-nxp-74hc164))
220 define KernelPackage/hid
221 SUBMENU:=$(OTHER_MENU)
223 DEPENDS:=+kmod-input-evdev
225 FILES:=$(LINUX_DIR)/drivers/hid/hid.ko
226 AUTOLOAD:=$(call AutoLoad,61,hid)
227 $(call SetDepends/hid)
228 $(call AddDepends/input)
231 define KernelPackage/hid/description
232 Kernel modules for HID devices
235 $(eval $(call KernelPackage,hid))
238 define KernelPackage/input-core
239 SUBMENU:=$(OTHER_MENU)
240 TITLE:=Input device core
241 KCONFIG:=CONFIG_INPUT
242 $(call SetDepends/input)
243 FILES:=$(LINUX_DIR)/drivers/input/input-core.ko
244 AUTOLOAD:=$(call AutoLoad,19,input-core)
247 define KernelPackage/input-core/description
248 Kernel modules for support of input device
251 $(eval $(call KernelPackage,input-core))
254 define KernelPackage/input-evdev
255 SUBMENU:=$(OTHER_MENU)
256 TITLE:=Input event device
257 KCONFIG:=CONFIG_INPUT_EVDEV
258 FILES:=$(LINUX_DIR)/drivers/input/evdev.ko
259 AUTOLOAD:=$(call AutoLoad,60,evdev)
260 $(call AddDepends/input)
263 define KernelPackage/input-evdev/description
264 Kernel modules for support of input device events
267 $(eval $(call KernelPackage,input-evdev))
270 define KernelPackage/input-gpio-buttons
271 SUBMENU:=$(OTHER_MENU)
272 TITLE:=Polled GPIO buttons input device
273 DEPENDS:=@GPIO_SUPPORT +kmod-input-polldev
275 CONFIG_INPUT_GPIO_BUTTONS \
277 FILES:=$(LINUX_DIR)/drivers/input/misc/gpio_buttons.ko
278 AUTOLOAD:=$(call AutoLoad,62,gpio_buttons)
281 define KernelPackage/input-gpio-buttons/description
282 Kernel module for support polled GPIO buttons input device
285 $(eval $(call KernelPackage,input-gpio-buttons))
288 define KernelPackage/input-gpio-keys
289 SUBMENU:=$(OTHER_MENU)
290 TITLE:=GPIO key support
291 DEPENDS:= @GPIO_SUPPORT
293 CONFIG_KEYBOARD_GPIO \
294 CONFIG_INPUT_KEYBOARD=y
295 FILES:=$(LINUX_DIR)/drivers/input/keyboard/gpio_keys.ko
296 AUTOLOAD:=$(call AutoLoad,60,gpio_keys)
297 $(call AddDepends/input)
300 define KernelPackage/input-gpio-keys/description
301 This driver implements support for buttons connected
302 to GPIO pins of various CPUs (and some other chips).
305 $(eval $(call KernelPackage,input-gpio-keys))
308 define KernelPackage/input-gpio-keys-polled
309 SUBMENU:=$(OTHER_MENU)
310 TITLE:=Polled GPIO key support
311 DEPENDS:=@GPIO_SUPPORT @!(LINUX_2_6_30||LINUX_2_6_31||LINUX_2_6_32||LINUX_2_6_34||LINUX_2_6_35||LINUX_2_6_36) +kmod-input-polldev
313 CONFIG_KEYBOARD_GPIO_POLLED \
314 CONFIG_INPUT_KEYBOARD=y
315 FILES:=$(LINUX_DIR)/drivers/input/keyboard/gpio_keys_polled.ko
316 AUTOLOAD:=$(call AutoLoad,62,gpio_keys_polled)
317 $(call AddDepends/input)
320 define KernelPackage/input-gpio-keys-polled/description
321 Kernel module for support polled GPIO keys input device
324 $(eval $(call KernelPackage,input-gpio-keys-polled))
327 define KernelPackage/input-gpio-encoder
328 SUBMENU:=$(OTHER_MENU)
329 TITLE:=GPIO rotay encoder
330 KCONFIG:=CONFIG_INPUT_GPIO_ROTARY_ENCODER
331 FILES:=$(LINUX_DIR)/drivers/input/misc/rotary_encoder.ko
332 AUTOLOAD:=$(call AutoLoad,62,rotary_encoder)
333 $(call AddDepends/input,@GPIO_SUPPORT)
336 define KernelPackage/gpio-encoder/description
337 Kernel module to use rotary encoders connected to GPIO pins
340 $(eval $(call KernelPackage,input-gpio-encoder))
343 define KernelPackage/input-joydev
344 SUBMENU:=$(OTHER_MENU)
345 TITLE:=Joystick device support
346 KCONFIG:=CONFIG_INPUT_JOYDEV
347 FILES:=$(LINUX_DIR)/drivers/input/joydev.ko
348 AUTOLOAD:=$(call AutoLoad,62,joydev)
349 $(call AddDepends/input)
352 define KernelPackage/input-joydev/description
353 Kernel module for joystick support
356 $(eval $(call KernelPackage,input-joydev))
359 define KernelPackage/input-polldev
360 SUBMENU:=$(OTHER_MENU)
361 TITLE:=Polled Input device support
362 KCONFIG:=CONFIG_INPUT_POLLDEV
363 FILES:=$(LINUX_DIR)/drivers/input/input-polldev.ko
364 AUTOLOAD:=$(call AutoLoad,20,input-polldev)
365 $(call AddDepends/input)
368 define KernelPackage/input-polldev/description
369 Kernel module for support of polled input devices
372 $(eval $(call KernelPackage,input-polldev))
375 define KernelPackage/lp
376 SUBMENU:=$(OTHER_MENU)
377 TITLE:=Parallel port and line printer support
384 $(LINUX_DIR)/drivers/parport/parport.ko \
385 $(LINUX_DIR)/drivers/char/lp.ko \
386 $(LINUX_DIR)/drivers/char/ppdev.ko
387 AUTOLOAD:=$(call AutoLoad,50,parport lp)
390 $(eval $(call KernelPackage,lp))
393 define KernelPackage/mmc
394 SUBMENU:=$(OTHER_MENU)
395 TITLE:=MMC/SD Card Support
400 CONFIG_MMC_UNSAFE_RESUME=n \
401 CONFIG_MMC_BLOCK_BOUNCE=y \
403 CONFIG_MMC_TIFM_SD=n \
407 $(LINUX_DIR)/drivers/mmc/core/mmc_core.ko \
408 $(LINUX_DIR)/drivers/mmc/card/mmc_block.ko
409 AUTOLOAD:=$(call AutoLoad,90,mmc_core mmc_block,1)
412 define KernelPackage/mmc/description
413 Kernel support for MMC/SD cards
416 $(eval $(call KernelPackage,mmc))
419 define KernelPackage/mmc-atmelmci
420 SUBMENU:=$(OTHER_MENU)
421 TITLE:=Amtel MMC Support
422 DEPENDS:=@TARGET_avr32 +kmod-mmc
423 KCONFIG:=CONFIG_MMC_ATMELMCI
424 FILES:=$(LINUX_DIR)/drivers/mmc/host/atmel-mci.ko
425 AUTOLOAD:=$(call AutoLoad,90,atmel-mci)
428 define KernelPackage/mmc-atmelmci/description
429 Kernel support for Atmel Multimedia Card Interface.
432 $(eval $(call KernelPackage,mmc-atmelmci,1))
435 define KernelPackage/oprofile
436 SUBMENU:=$(OTHER_MENU)
437 TITLE:=OProfile profiling support
438 KCONFIG:=CONFIG_OPROFILE
439 FILES:=$(LINUX_DIR)/arch/$(LINUX_KARCH)/oprofile/oprofile.ko
440 DEPENDS:=@KERNEL_PROFILING
443 define KernelPackage/oprofile/description
444 Kernel module for support for oprofile system profiling.
447 $(eval $(call KernelPackage,oprofile))
450 define KernelPackage/rfkill
451 SUBMENU:=$(OTHER_MENU)
452 TITLE:=RF switch subsystem support
455 CONFIG_RFKILL_INPUT=y \
457 ifeq ($(CONFIG_LINUX_2_6_30),)
459 $(LINUX_DIR)/net/rfkill/rfkill.ko
460 AUTOLOAD:=$(call AutoLoad,20,rfkill)
463 $(LINUX_DIR)/net/rfkill/rfkill.ko \
464 $(LINUX_DIR)/net/rfkill/rfkill-input.ko
465 AUTOLOAD:=$(call AutoLoad,20,rfkill rfkill-input)
467 $(call SetDepends/rfkill)
470 define KernelPackage/rfkill/description
471 Say Y here if you want to have control over RF switches
472 found on many WiFi and Bluetooth cards.
475 $(eval $(call KernelPackage,rfkill))
478 define KernelPackage/softdog
479 SUBMENU:=$(OTHER_MENU)
480 TITLE:=Software watchdog driver
481 KCONFIG:=CONFIG_SOFT_WATCHDOG
482 FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/softdog.ko
483 AUTOLOAD:=$(call AutoLoad,50,softdog)
486 define KernelPackage/softdog/description
487 Software watchdog driver
490 $(eval $(call KernelPackage,softdog))
493 define KernelPackage/ssb
494 SUBMENU:=$(OTHER_MENU)
495 TITLE:=Silicon Sonics Backplane glue code
496 DEPENDS:=@PCI_SUPPORT @!TARGET_brcm47xx @!TARGET_brcm63xx
499 CONFIG_SSB_B43_PCI_BRIDGE=y \
500 CONFIG_SSB_DRIVER_MIPS=n \
501 CONFIG_SSB_DRIVER_PCICORE=y \
502 CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y \
503 CONFIG_SSB_PCIHOST=y \
504 CONFIG_SSB_PCIHOST_POSSIBLE=y \
505 CONFIG_SSB_POSSIBLE=y \
508 FILES:=$(LINUX_DIR)/drivers/ssb/ssb.ko
509 AUTOLOAD:=$(call AutoLoad,29,ssb)
512 define KernelPackage/ssb/description
513 Silicon Sonics Backplane glue code.
516 $(eval $(call KernelPackage,ssb))
519 define KernelPackage/wdt-geode
520 SUBMENU:=$(OTHER_MENU)
521 TITLE:=Geode/LX Watchdog timer
523 KCONFIG:=CONFIG_GEODE_WDT
524 FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/geodewdt.ko
525 AUTOLOAD:=$(call AutoLoad,50,geodewdt)
528 define KernelPackage/wdt-geode/description
529 Kernel module for Geode watchdog timer.
532 $(eval $(call KernelPackage,wdt-geode))
535 define KernelPackage/wdt-omap
536 SUBMENU:=$(OTHER_MENU)
537 TITLE:=OMAP Watchdog timer
538 DEPENDS:=@(TARGET_omap24xx||TARGET_omap35xx)
539 KCONFIG:=CONFIG_OMAP_WATCHDOG
540 FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/omap_wdt.ko
541 AUTOLOAD:=$(call AutoLoad,50,omap_wdt.ko)
544 define KernelPackage/wdt-omap/description
545 Kernel module for TI omap watchdog timer.
548 $(eval $(call KernelPackage,wdt-omap))
551 define KernelPackage/wdt-orion
552 SUBMENU:=$(OTHER_MENU)
553 TITLE:=Marvell Orion Watchdog timer
554 DEPENDS:=@TARGET_orion
555 KCONFIG:=CONFIG_ORION_WATCHDOG
556 FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/orion_wdt.ko
557 AUTOLOAD:=$(call AutoLoad,50,orion_wdt)
560 define KernelPackage/wdt-orion/description
561 Kernel module for Marvell orion watchdog timer.
564 $(eval $(call KernelPackage,wdt-orion))
567 define KernelPackage/wdt-sc520
568 SUBMENU:=$(OTHER_MENU)
569 TITLE:=Natsemi SC520 Watchdog support
571 KCONFIG:=CONFIG_SC520_WDT
572 FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/sc520_wdt.ko
573 AUTOLOAD:=$(call AutoLoad,50,sc520_wdt)
576 define KernelPackage/wdt-sc520/description
577 Kernel module for SC520 Watchdog
580 $(eval $(call KernelPackage,wdt-sc520))
583 define KernelPackage/wdt-scx200
584 SUBMENU:=$(OTHER_MENU)
585 TITLE:=Natsemi SCX200 Watchdog support
587 KCONFIG:=CONFIG_SCx200_WDT
588 FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/scx200_wdt.ko
589 AUTOLOAD:=$(call AutoLoad,50,scx200_wdt)
592 define KernelPackage/wdt-scx200/description
593 Kernel module for SCX200 Watchdog
596 $(eval $(call KernelPackage,wdt-scx200))
598 define KernelPackage/pwm
599 SUBMENU:=$(OTHER_MENU)
600 TITLE:=PWM generic API
601 KCONFIG:=CONFIG_GENERIC_PWM
602 FILES:=$(LINUX_DIR)/drivers/pwm/pwm.ko
603 AUTOLOAD:=$(call AutoLoad,50,pwm)
606 define KernelPackage/pwm/description
607 Kernel module that implement a generic PWM API
610 $(eval $(call KernelPackage,pwm))
613 define KernelPackage/pwm-gpio
614 SUBMENU:=$(OTHER_MENU)
617 KCONFIG:=CONFIG_GPIO_PWM
618 FILES:=$(LINUX_DIR)/drivers/pwm/gpio-pwm.ko
619 AUTOLOAD:=$(call AutoLoad,51,gpio-pwm)
622 define KernelPackage/pwm-gpio/description
623 Kernel module to models a single-channel PWM device using a timer and a GPIO pin
626 $(eval $(call KernelPackage,pwm-gpio))
628 define KernelPackage/rtc-core
629 SUBMENU:=$(OTHER_MENU)
630 TITLE:=Real Time Clock class support
631 KCONFIG:=CONFIG_RTC_CLASS
632 FILES:=$(LINUX_DIR)/drivers/rtc/rtc-core.ko
633 AUTOLOAD:=$(call AutoLoad,29,rtc-core)
636 define KernelPackage/rtc-core/description
637 Generic RTC class support.
640 $(eval $(call KernelPackage,rtc-core))
642 define KernelPackage/rtc-pcf8563
643 SUBMENU:=$(OTHER_MENU)
644 TITLE:=Philips PCF8563/Epson RTC8564 RTC support
645 DEPENDS:=+kmod-rtc-core
646 KCONFIG:=CONFIG_RTC_DRV_PCF8563
647 FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf8563.ko
648 AUTOLOAD:=$(call AutoLoad,60,rtc-pcf8563)
651 define KernelPackage/rtc-pcf8563/description
652 Kernel module for Philips PCF8563 RTC chip.
653 The Epson RTC8564 should work as well.
656 $(eval $(call KernelPackage,rtc-pcf8563))
659 define KernelPackage/n810bm
660 SUBMENU:=$(OTHER_MENU)
661 TITLE:=Nokia N810 battery management driver
662 DEPENDS:=@TARGET_omap24xx
663 KCONFIG:=CONFIG_N810BM
664 FILES:=$(LINUX_DIR)/drivers/cbus/n810bm.ko
665 AUTOLOAD:=$(call AutoLoad,01,n810bm)
668 define KernelPackage/n810bm/description
669 Nokia N810 battery management driver.
670 Controls battery power management and battery charging.
673 $(eval $(call KernelPackage,n810bm))