openwrt/package/kernel/linux/modules/wpan.mk
Hauke Mehrtens fd5c168701 kernel: Build: Split kmod-regmap
This reduces the needed modifications to the mainline Linux kernel and
also makes the regmap package work with an out of tree kernel which
does not have these modifications.

The regmap-core is only added when it is really build as a module.
The regmap-core is normally bool so it cannot be built as a module in an
unmodified kernel. When it is selected by on other kernel module it will
always be selected as build in and it also does not show up in
$(LINUX_DIR)/modules.builtin as it is not supposed to be a kernel module.
When it is not in $(LINUX_DIR)/modules.builtin the build system expects
it to be built as a .ko file.
Just check if the module is really there and only add it in that case.

This splits the regmap package into multiple packages, one for each bus type.
This way only the bus maps which are really needed have to be added.
This also splits the I2C, SPI and MMIO regmap into separate packages to not
require all these subsystems to build them, on an unmodified upstream kernel
this also causes problems in some situations.

Signed-off-by: Hauke Mehrtens <hauke.mehrtens@intel.com>
2019-01-27 00:16:13 +01:00

125 lines
3.6 KiB
Makefile

#
# Copyright (C) 2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
WPAN_MENU:=WPAN 802.15.4 Support
define KernelPackage/ieee802154
SUBMENU:=$(WPAN_MENU)
TITLE:=IEEE-802.15.4 support
DEPENDS:=@!LINUX_3_18
KCONFIG:= \
CONFIG_IEEE802154 \
CONFIG_IEEE802154_SOCKET=y \
CONFIG_IEEE802154_NL802154_EXPERIMENTAL=n
FILES:= \
$(LINUX_DIR)/net/ieee802154/ieee802154.ko \
$(LINUX_DIR)/net/ieee802154/ieee802154_socket.ko@ge4.0
AUTOLOAD:=$(call AutoLoad,90,ieee802154 ieee802154_socket)
endef
define KernelPackage/ieee802154/description
IEEE Std 802.15.4 defines a low data rate, low power and low
complexity short range wireless personal area networks. It was
designed to organise networks of sensors, switches, etc automation
devices. Maximum allowed data rate is 250 kb/s and typical personal
operating space around 10m.
endef
$(eval $(call KernelPackage,ieee802154))
define KernelPackage/mac802154
SUBMENU:=$(WPAN_MENU)
TITLE:=MAC-802.15.4 support
DEPENDS:=+kmod-ieee802154 +kmod-crypto-aead +kmod-lib-crc-ccitt @!LINUX_3_18
KCONFIG:= \
CONFIG_MAC802154 \
CONFIG_IEEE802154_DRIVERS=y
FILES:=$(LINUX_DIR)/net/mac802154/mac802154.ko
AUTOLOAD:=$(call AutoLoad,91,mac802154)
endef
define KernelPackage/mac802154/description
This option enables the hardware independent IEEE 802.15.4
networking stack for SoftMAC devices (the ones implementing
only PHY level of IEEE 802.15.4 standard).
Note: this implementation is neither certified, nor feature
complete! Compatibility with other implementations hasn't
been tested yet!
endef
$(eval $(call KernelPackage,mac802154))
define KernelPackage/fakelb
SUBMENU:=$(WPAN_MENU)
TITLE:=Fake LR-WPAN driver
DEPENDS:=+kmod-mac802154 @!LINUX_3_18
KCONFIG:=CONFIG_IEEE802154_FAKELB
FILES:=$(LINUX_DIR)/drivers/net/ieee802154/fakelb.ko
AUTOLOAD:=$(call AutoLoad,92,fakelb)
endef
define KernelPackage/fakelb/description
Say Y here to enable the fake driver that can emulate a net
of several interconnected radio devices.
endef
$(eval $(call KernelPackage,fakelb))
define KernelPackage/at86rf230
SUBMENU:=$(WPAN_MENU)
TITLE:=AT86RF230 transceiver driver
DEPENDS:=+kmod-mac802154 +kmod-regmap-spi
KCONFIG:=CONFIG_IEEE802154_AT86RF230 \
CONFIG_IEEE802154_AT86RF230_DEBUGFS=n \
CONFIG_SPI=y \
CONFIG_SPI_MASTER=y
FILES:=$(LINUX_DIR)/drivers/net/ieee802154/at86rf230.ko
endef
$(eval $(call KernelPackage,at86rf230))
define KernelPackage/mrf24j40
SUBMENU:=$(WPAN_MENU)
TITLE:=MRF24J40 transceiver driver
DEPENDS:=+kmod-mac802154 +kmod-regmap-spi
KCONFIG:=CONFIG_IEEE802154_MRF24J40 \
CONFIG_SPI=y \
CONFIG_SPI_MASTER=y
FILES:=$(LINUX_DIR)/drivers/net/ieee802154/mrf24j40.ko
endef
$(eval $(call KernelPackage,mrf24j40))
define KernelPackage/cc2520
SUBMENU:=$(WPAN_MENU)
TITLE:=CC2520 transceiver driver
DEPENDS:=+kmod-mac802154
KCONFIG:=CONFIG_IEEE802154_CC2520 \
CONFIG_SPI=y \
CONFIG_SPI_MASTER=y
FILES:=$(LINUX_DIR)/drivers/net/ieee802154/cc2520.ko
endef
$(eval $(call KernelPackage,cc2520))
define KernelPackage/ieee802154_6lowpan
SUBMENU:=$(WPAN_MENU)
TITLE:= 6LoWPAN support over IEEE-802.15.4
DEPENDS:=@!LINUX_3_18 +kmod-6lowpan +kmod-ieee802154
KCONFIG:=CONFIG_IEEE802154_6LOWPAN
FILES:= \
$(LINUX_DIR)/net/ieee802154/6lowpan/ieee802154_6lowpan.ko@ge4.0 \
$(LINUX_DIR)/net/ieee802154/ieee802154_6lowpan.ko@lt4.0
AUTOLOAD:=$(call AutoLoad,91,ieee802154_6lowpan)
endef
define KernelPackage/ieee802154_6lowpan/description
IPv6 compression over IEEE 802.15.4
endef
$(eval $(call KernelPackage,ieee802154_6lowpan))