Android.mk 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. # Android makefile for BT kernel modules
  2. LOCAL_PATH := $(call my-dir)
  3. # Build/Package only in case of supported target
  4. ifeq ($(call is-board-platform-in-list,taro kalama pineapple), true)
  5. BT_SELECT := CONFIG_MSM_BT_POWER=m
  6. #ifdef CONFIG_SLIMBUS
  7. BT_SELECT += CONFIG_BTFM_SLIM=m
  8. #endif
  9. BT_SELECT += CONFIG_I2C_RTC6226_QCA=m
  10. ifeq ($(TARGET_KERNEL_DLKM_SECURE_MSM_OVERRIDE), true)
  11. ifeq ($(ENABLE_PERIPHERAL_STATE_UTILS), true)
  12. BT_SELECT += CONFIG_BT_HW_SECURE_DISABLE=y
  13. endif
  14. endif
  15. LOCAL_PATH := $(call my-dir)
  16. # This makefile is only for DLKM
  17. ifneq ($(findstring vendor,$(LOCAL_PATH)),)
  18. ifneq ($(findstring opensource,$(LOCAL_PATH)),)
  19. BT_BLD_DIR := $(abspath .)/vendor/qcom/opensource/bt-kernel
  20. endif # opensource
  21. DLKM_DIR := $(TOP)/device/qcom/common/dlkm
  22. ###########################################################
  23. # This is set once per LOCAL_PATH, not per (kernel) module
  24. KBUILD_OPTIONS := BT_KERNEL_ROOT=$(BT_BLD_DIR)
  25. KBUILD_OPTIONS += $(foreach bt_select, \
  26. $(BT_SELECT), \
  27. $(bt_select))
  28. BT_SRC_FILES := \
  29. $(wildcard $(LOCAL_PATH)/*) \
  30. $(wildcard $(LOCAL_PATH)/*/*) \
  31. ifeq ($(TARGET_KERNEL_DLKM_SECURE_MSM_OVERRIDE), true)
  32. ifeq ($(ENABLE_PERIPHERAL_STATE_UTILS), true)
  33. KBUILD_REQUIRED_KOS := smcinvoke_dlkm.ko
  34. endif
  35. endif
  36. # Module.symvers needs to be generated as a intermediate module so that
  37. # other modules which depend on BT platform modules can set local
  38. # dependencies to it.
  39. ########################### Module.symvers ############################
  40. include $(CLEAR_VARS)
  41. LOCAL_SRC_FILES := $(BT_SRC_FILES)
  42. LOCAL_MODULE := bt-kernel-module-symvers
  43. LOCAL_MODULE_STEM := Module.symvers
  44. LOCAL_MODULE_KBUILD_NAME := Module.symvers
  45. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  46. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  47. # Below are for Android build system to recognize each module name, so
  48. # they can be installed properly. Since Kbuild is used to compile these
  49. # modules, invoking any of them will cause other modules to be compiled
  50. # as well if corresponding flags are added in KBUILD_OPTIONS from upper
  51. # level Makefiles.
  52. ################################ pwr ################################
  53. include $(CLEAR_VARS)
  54. LOCAL_SRC_FILES := $(BT_SRC_FILES)
  55. LOCAL_MODULE := btpower.ko
  56. LOCAL_MODULE_KBUILD_NAME := pwr/btpower.ko
  57. LOCAL_MODULE_TAGS := optional
  58. LOCAL_MODULE_DEBUG_ENABLE := true
  59. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  60. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  61. ################################ slimbus ################################
  62. include $(CLEAR_VARS)
  63. LOCAL_SRC_FILES := $(BT_SRC_FILES)
  64. LOCAL_MODULE := bt_fm_slim.ko
  65. LOCAL_MODULE_KBUILD_NAME := slimbus/bt_fm_slim.ko
  66. LOCAL_MODULE_TAGS := optional
  67. LOCAL_MODULE_DEBUG_ENABLE := true
  68. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  69. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  70. ################################ rtc6226 ################################
  71. include $(CLEAR_VARS)
  72. LOCAL_SRC_FILES := $(BT_SRC_FILES)
  73. LOCAL_MODULE := radio-i2c-rtc6226-qca.ko
  74. LOCAL_MODULE_KBUILD_NAME := rtc6226/radio-i2c-rtc6226-qca.ko
  75. LOCAL_MODULE_TAGS := optional
  76. LOCAL_MODULE_DEBUG_ENABLE := true
  77. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  78. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  79. ###########################################################
  80. endif # DLKM check
  81. endif # supported target check