wpan: rework bluetooth / wpan and 6lowpan dependencies
[openwrt/openwrt.git] / package / kernel / linux / modules / other.mk
index 199e4573f3b45e02191ecccac757bca4924f08ce..a7084c8d070fb2fc5c29d352cab32a70ab1af132 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2006-2012 OpenWrt.org
+# Copyright (C) 2006-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -10,26 +10,25 @@ OTHER_MENU:=Other modules
 WATCHDOG_DIR:=watchdog
 
 
-define KernelPackage/6lowpan-iphc
-  USBMENU:=$(OTHER_MENU)
-  TITLE:=6lowpan shared code
-  DEPENDS:=@LINUX_3_14
-  KCONFIG:=CONFIG_6LOWPAN_IPHC
-  HIDDEN:=1
-  FILES:=$(LINUX_DIR)/net/ieee802154/6lowpan_iphc.ko
-  AUTOLOAD:=$(call Autoprobe,6lowpan_iphc)
+define KernelPackage/6lowpan
+  SUBMENU:=$(OTHER_MENU)
+  TITLE:=6LoWPAN shared code
+  KCONFIG:=CONFIG_6LOWPAN
+  FILES:=$(LINUX_DIR)/net/6lowpan/6lowpan.ko
+  AUTOLOAD:=$(call AutoProbe,6lowpan)
 endef
 
-define KernelPackage/6lowpan-iphc/description
+define KernelPackage/6lowpan/description
   Shared 6lowpan code for IEEE 802.15.4 and Bluetooth.
 endef
 
-$(eval $(call KernelPackage,6lowpan-iphc))
+$(eval $(call KernelPackage,6lowpan))
+
 
 define KernelPackage/bluetooth
   SUBMENU:=$(OTHER_MENU)
   TITLE:=Bluetooth support
-  DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-crypto-hash +LINUX_3_14:kmod-6lowpan-iphc
+  DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-crypto-hash +kmod-lib-crc16 +kmod-hid
   KCONFIG:= \
        CONFIG_BLUEZ \
        CONFIG_BLUEZ_L2CAP \
@@ -50,8 +49,6 @@ define KernelPackage/bluetooth
        CONFIG_BT_HCIUART_H4 \
        CONFIG_BT_HIDP \
        CONFIG_HID_SUPPORT=y
-  $(call AddDepends/crc16)
-  $(call AddDepends/hid)
   $(call AddDepends/rfkill)
   FILES:= \
        $(LINUX_DIR)/net/bluetooth/bluetooth.ko \
@@ -70,6 +67,22 @@ endef
 $(eval $(call KernelPackage,bluetooth))
 
 
+define KernelPackage/bluetooth_6lowpan
+  SUBMENU:=$(OTHER_MENU)
+  TITLE:=Bluetooth 6LoWPAN support
+  DEPENDS:=+kmod-6lowpan +kmod-bluetooth
+  KCONFIG:=CONFIG_BT_6LOWPAN
+  FILES:=$(LINUX_DIR)/net/bluetooth/bluetooth_6lowpan.ko
+       AUTOLOAD:=$(call AutoProbe,bluetooth)
+endef
+
+define KernelPackage/bluetooth_6lowpan/description
+ Kernel support for 6LoWPAN over Bluetooth Low Energy devices
+endef
+
+$(eval $(call KernelPackage,bluetooth_6lowpan))
+
+
 define KernelPackage/bluetooth-hci-h4p
   SUBMENU:=$(OTHER_MENU)
   TITLE:=HCI driver with H4 Nokia extensions
@@ -211,7 +224,6 @@ $(eval $(call KernelPackage,gpio-pcf857x))
 
 define KernelPackage/iio-core
   SUBMENU:=$(OTHER_MENU)
-  DEPENDS:=@!LINUX_3_3 @!LINUX_3_6
   TITLE:=Industrial IO core
   KCONFIG:= \
        CONFIG_IIO \
@@ -242,11 +254,9 @@ define KernelPackage/iio-ad799x
   KCONFIG:= \
        CONFIG_AD799X_RING_BUFFER=y \
        CONFIG_AD799X
-ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.16.0)),1)
-  FILES:=$(LINUX_DIR)/drivers/iio/adc/ad799x.ko
-else
-  FILES:=$(LINUX_DIR)/drivers/staging/iio/adc/ad799x.ko
-endif
+  FILES:= \
+       $(LINUX_DIR)/drivers/staging/iio/adc/ad799x.ko@lt3.16 \
+       $(LINUX_DIR)/drivers/iio/adc/ad799x.ko@ge3.16
   AUTOLOAD:=$(call AutoLoad,56,ad799x)
 endef
 
@@ -258,6 +268,26 @@ endef
 
 $(eval $(call KernelPackage,iio-ad799x))
 
+
+define KernelPackage/iio-dht11
+  SUBMENU:=$(OTHER_MENU)
+  DEPENDS:=kmod-iio-core @GPIO_SUPPORT @USES_DEVICETREE
+  TITLE:=DHT11 (and compatible) humidity and temperature sensors
+  KCONFIG:= \
+       CONFIG_DHT11
+  FILES:=$(LINUX_DIR)/drivers/iio/humidity/dht11.ko
+  AUTOLOAD:=$(call AutoLoad,56,dht11)
+endef
+
+define KernelPackage/iio-dht11/description
+ support for DHT11 and DHT22 digitial humidity and temperature sensors
+ attached at GPIO lines. You will need a custom device tree file to
+ specify the GPIO line to use.
+endef
+
+$(eval $(call KernelPackage,iio-dht11))
+
+
 define KernelPackage/lp
   SUBMENU:=$(OTHER_MENU)
   TITLE:=Parallel port and line printer support
@@ -433,7 +463,7 @@ define KernelPackage/wdt-omap
   DEPENDS:=@(TARGET_omap24xx||TARGET_omap35xx)
   KCONFIG:=CONFIG_OMAP_WATCHDOG
   FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/omap_wdt.ko
-  AUTOLOAD:=$(call AutoLoad,50,omap_wdt.ko)
+  AUTOLOAD:=$(call AutoLoad,50,omap_wdt.ko,1)
 endef
 
 define KernelPackage/wdt-omap/description
@@ -449,7 +479,7 @@ define KernelPackage/wdt-orion
   DEPENDS:=@TARGET_orion||TARGET_kirkwood||TARGET_mvebu
   KCONFIG:=CONFIG_ORION_WATCHDOG
   FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/orion_wdt.ko
-  AUTOLOAD:=$(call AutoLoad,50,orion_wdt)
+  AUTOLOAD:=$(call AutoLoad,50,orion_wdt,1)
 endef
 
 define KernelPackage/wdt-orion/description
@@ -465,7 +495,7 @@ define KernelPackage/booke-wdt
   DEPENDS:=@(TARGET_mpc85xx||TARGET_ppc40x||TARGET_ppc44x)
   KCONFIG:=CONFIG_BOOKE_WDT
   FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/booke_wdt.ko
-  AUTOLOAD:=$(call AutoLoad,50,booke_wdt)
+  AUTOLOAD:=$(call AutoLoad,50,booke_wdt,1)
 endef
 
 define KernelPackage/booke-wdt/description
@@ -475,41 +505,27 @@ endef
 $(eval $(call KernelPackage,booke-wdt))
 
 
-define KernelPackage/pwm
-  SUBMENU:=$(OTHER_MENU)
-  TITLE:=PWM generic API
-  KCONFIG:=CONFIG_GENERIC_PWM
-  FILES:=$(LINUX_DIR)/drivers/pwm/pwm.ko
-endef
-
-define KernelPackage/pwm/description
- Kernel module that implement a generic PWM API
-endef
-
-$(eval $(call KernelPackage,pwm))
-
-
-define KernelPackage/pwm-gpio
+define KernelPackage/rtc-ds1307
   SUBMENU:=$(OTHER_MENU)
-  TITLE:=PWM over GPIO
-  DEPENDS:=+kmod-pwm
-  KCONFIG:=CONFIG_GPIO_PWM
-  FILES:=$(LINUX_DIR)/drivers/pwm/gpio-pwm.ko
-  AUTOLOAD:=$(call AutoProbe,gpio-pwm)
+  TITLE:=Dallas/Maxim DS1307 (and compatible) RTC support
+  DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
+  KCONFIG:=CONFIG_RTC_DRV_DS1307
+  FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1307.ko
+  AUTOLOAD:=$(call AutoProbe,rtc-ds1307)
 endef
 
-define KernelPackage/pwm-gpio/description
- Kernel module to models a single-channel PWM device using a timer and a GPIO pin
+define KernelPackage/rtc-ds1307/description
+ Kernel module for Dallas/Maxim DS1307/DS1337/DS1338/DS1340/DS1388/DS3231,
+ Epson RX-8025 and various other compatible RTC chips connected via I2C.
 endef
 
-$(eval $(call KernelPackage,pwm-gpio))
+$(eval $(call KernelPackage,rtc-ds1307))
 
 
 define KernelPackage/rtc-ds1672
   SUBMENU:=$(OTHER_MENU)
   TITLE:=Dallas/Maxim DS1672 RTC support
-  $(call AddDepends/rtc)
-  DEPENDS+=+kmod-i2c-core
+  DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
   KCONFIG:=CONFIG_RTC_DRV_DS1672
   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1672.ko
   AUTOLOAD:=$(call AutoProbe,rtc-ds1672)
@@ -525,8 +541,7 @@ $(eval $(call KernelPackage,rtc-ds1672))
 define KernelPackage/rtc-isl1208
   SUBMENU:=$(OTHER_MENU)
   TITLE:=Intersil ISL1208 RTC support
-  $(call AddDepends/rtc)
-  DEPENDS+=+kmod-i2c-core
+  DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
   KCONFIG:=CONFIG_RTC_DRV_ISL1208
   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-isl1208.ko
   AUTOLOAD:=$(call AutoProbe,rtc-isl1208)
@@ -542,8 +557,7 @@ $(eval $(call KernelPackage,rtc-isl1208))
 define KernelPackage/rtc-marvell
   SUBMENU:=$(OTHER_MENU)
   TITLE:=Marvell SoC built-in RTC support
-  $(call AddDepends/rtc)
-  DEPENDS+=@TARGET_kirkwood||TARGET_orion||TARGET_mvebu
+  DEPENDS:=@RTC_SUPPORT @TARGET_kirkwood||TARGET_orion||TARGET_mvebu
   KCONFIG:=CONFIG_RTC_DRV_MV
   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-mv.ko
   AUTOLOAD:=$(call AutoProbe,rtc-mv)
@@ -555,10 +569,27 @@ endef
 
 $(eval $(call KernelPackage,rtc-marvell))
 
+
+define KernelPackage/rtc-armada38x
+  SUBMENU:=$(OTHER_MENU)
+  TITLE:=Marvell Armada 38x SoC built-in RTC support
+  DEPENDS:=@RTC_SUPPORT @TARGET_mvebu
+  KCONFIG:=CONFIG_RTC_DRV_ARMADA38X
+  FILES:=$(LINUX_DIR)/drivers/rtc/rtc-armada38x.ko
+  AUTOLOAD:=$(call AutoProbe,rtc-armada38x)
+endef
+
+define KernelPackage/rtc-armada38x/description
+ Kernel module for Marvell Armada 38x SoC built-in RTC.
+endef
+
+$(eval $(call KernelPackage,rtc-armada38x))
+
+
 define KernelPackage/rtc-pcf8563
   SUBMENU:=$(OTHER_MENU)
   TITLE:=Philips PCF8563/Epson RTC8564 RTC support
-  $(call AddDepends/rtc,+kmod-i2c-core)
+  DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
   KCONFIG:=CONFIG_RTC_DRV_PCF8563
   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf8563.ko
   AUTOLOAD:=$(call AutoProbe,rtc-pcf8563)
@@ -575,7 +606,7 @@ $(eval $(call KernelPackage,rtc-pcf8563))
 define KernelPackage/rtc-pcf2123
   SUBMENU:=$(OTHER_MENU)
   TITLE:=Philips PCF2123 RTC support
-  $(call AddDepends/rtc)
+  DEPENDS:=@RTC_SUPPORT
   KCONFIG:=CONFIG_RTC_DRV_PCF2123
   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf2123.ko
   AUTOLOAD:=$(call AutoProbe,rtc-pcf2123)
@@ -590,7 +621,7 @@ $(eval $(call KernelPackage,rtc-pcf2123))
 define KernelPackage/rtc-pt7c4338
   SUBMENU:=$(OTHER_MENU)
   TITLE:=Pericom PT7C4338 RTC support
-  $(call AddDepends/rtc,+kmod-i2c-core)
+  DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
   KCONFIG:=CONFIG_RTC_DRV_PT7C4338
   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pt7c4338.ko
   AUTOLOAD:=$(call AutoProbe,rtc-pt7c4338)
@@ -671,7 +702,7 @@ define KernelPackage/serial-8250
        CONFIG_SERIAL_8250_SHARE_IRQ=y \
        CONFIG_SERIAL_8250_DETECT_IRQ=n \
        CONFIG_SERIAL_8250_RSA=n
-  FILES:=$(LINUX_DIR)/drivers/tty/serial/8250/8250$(if $(call kernel_patchver_ge,3.7),$(if $(call kernel_patchver_le,3.8),_core)).ko
+  FILES:=$(LINUX_DIR)/drivers/tty/serial/8250/8250.ko
 endef
 
 define KernelPackage/serial-8250/description
@@ -721,21 +752,17 @@ $(eval $(call KernelPackage,ikconfig))
 define KernelPackage/zram
   SUBMENU:=$(OTHER_MENU)
   TITLE:=ZRAM
-  DEPENDS:=@!LINUX_3_3 +kmod-lib-lzo
+  DEPENDS:=+kmod-lib-lzo +kmod-lib-lz4
   KCONFIG:= \
        CONFIG_ZSMALLOC \
        CONFIG_ZRAM \
        CONFIG_ZRAM_DEBUG=n \
-       CONFIG_PGTABLE_MAPPING=n
-ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.14.0)),1)
-  FILES:=\
+       CONFIG_PGTABLE_MAPPING=n \
+       CONFIG_ZSMALLOC_STAT=n \
+       CONFIG_ZRAM_LZ4_COMPRESS=y
+  FILES:= \
        $(LINUX_DIR)/mm/zsmalloc.ko \
        $(LINUX_DIR)/drivers/block/zram/zram.ko
-else
-  FILES:= \
-       $(LINUX_DIR)/drivers/staging/zsmalloc/zsmalloc.ko \
-       $(LINUX_DIR)/drivers/staging/zram/zram.ko
-endif
   AUTOLOAD:=$(call AutoLoad,20,zsmalloc zram)
 endef
 
@@ -755,7 +782,7 @@ define KernelPackage/mvsdio
   AUTOLOAD:=$(call AutoProbe,mvsdio)
 endef
 
-define KernelPacakge/mvsdio/description
+define KernelPackage/mvsdio/description
  Kernel support for the Marvell SDIO controller
 endef
 
@@ -770,7 +797,7 @@ define KernelPackage/pps
   AUTOLOAD:=$(call AutoLoad,17,pps_core,1)
 endef
 
-define KernelPacakge/pps/description
+define KernelPackage/pps/description
  PPS (Pulse Per Second) is a special pulse provided by some GPS
  antennae. Userland can use it to get a high-precision time
  reference.
@@ -788,7 +815,7 @@ define KernelPackage/pps-gpio
   AUTOLOAD:=$(call AutoLoad,18,pps-gpio,1)
 endef
 
-define KernelPacakge/pps-gpio/description
+define KernelPackage/pps-gpio/description
  Support for a PPS source using GPIO. To be useful you must
  also register a platform device specifying the GPIO pin and
  other options, usually in your board setup.
@@ -806,7 +833,7 @@ define KernelPackage/ptp
   AUTOLOAD:=$(call AutoLoad,18,ptp,1)
 endef
 
-define KernelPacakge/ptp/description
+define KernelPackage/ptp/description
  The IEEE 1588 standard defines a method to precisely
  synchronize distributed clocks over Ethernet networks.
 endef
@@ -823,7 +850,7 @@ define KernelPackage/ptp-gianfar
   AUTOLOAD:=$(call AutoProbe,gianfar_ptp)
 endef
 
-define KernelPacakge/ptp-gianfar/description
+define KernelPackage/ptp-gianfar/description
  Kernel module for IEEE 1588 support for Freescale
  Gianfar Ethernet drivers
 endef
@@ -927,3 +954,38 @@ define KernelPackage/thermal-kirkwood/description
 endef
 
 $(eval $(call KernelPackage,thermal-kirkwood))
+
+
+define KernelPackage/gpio-beeper
+  SUBMENU:=$(OTHER_MENU)
+  TITLE:=GPIO beeper support
+  DEPENDS:=+kmod-input-core
+  KCONFIG:= \
+       CONFIG_INPUT_MISC=y \
+       CONFIG_INPUT_GPIO_BEEPER
+  FILES:= \
+       $(LINUX_DIR)/drivers/input/misc/gpio-beeper.ko
+  AUTOLOAD:=$(call AutoLoad,50,gpio-beeper)
+endef
+
+define KernelPackage/gpio-beeper/description
+ This enables playing beeps through an GPIO-connected buzzer
+endef
+
+$(eval $(call KernelPackage,gpio-beeper))
+
+
+define KernelPackage/echo
+  SUBMENU:=$(OTHER_MENU)
+  TITLE:=Line Echo Canceller
+  KCONFIG:=CONFIG_ECHO
+  FILES:=$(LINUX_DIR)/drivers/misc/echo/echo.ko
+  AUTOLOAD:=$(call AutoLoad,50,echo)
+endef
+
+define KernelPackage/echo/description
+ This driver provides line echo cancelling support for mISDN and
+ DAHDI drivers
+endef
+
+$(eval $(call KernelPackage,echo))