Android.mk 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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 blair pitti volcano niobe anorak61), 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. LOCAL_MODULE_DDK_BUILD := true
  17. LOCAL_MODULE_KO_DIRS := pwr/btpower.ko
  18. LOCAL_MODULE_KO_DIRS += slimbus/bt_fm_slim.ko
  19. LOCAL_MODULE_KO_DIRS += rtc6226/radio-i2c-rtc6226-qca.ko
  20. # This makefile is only for DLKM
  21. ifneq ($(findstring vendor,$(LOCAL_PATH)),)
  22. ifneq ($(findstring opensource,$(LOCAL_PATH)),)
  23. BT_BLD_DIR := $(abspath .)/vendor/qcom/opensource/bt-kernel
  24. endif # opensource
  25. DLKM_DIR := $(TOP)/device/qcom/common/dlkm
  26. ###########################################################
  27. # This is set once per LOCAL_PATH, not per (kernel) module
  28. KBUILD_OPTIONS := BT_KERNEL_ROOT=$(BT_BLD_DIR)
  29. KBUILD_OPTIONS += $(foreach bt_select, \
  30. $(BT_SELECT), \
  31. $(bt_select))
  32. BT_SRC_FILES := \
  33. $(wildcard $(LOCAL_PATH)/*) \
  34. $(wildcard $(LOCAL_PATH)/*/*) \
  35. ifeq ($(TARGET_KERNEL_DLKM_SECURE_MSM_OVERRIDE), true)
  36. ifeq ($(ENABLE_PERIPHERAL_STATE_UTILS), true)
  37. KBUILD_REQUIRED_KOS := smcinvoke_dlkm.ko
  38. endif
  39. endif
  40. # Module.symvers needs to be generated as a intermediate module so that
  41. # other modules which depend on BT platform modules can set local
  42. # dependencies to it.
  43. ########################### Module.symvers ############################
  44. include $(CLEAR_VARS)
  45. LOCAL_SRC_FILES := $(BT_SRC_FILES)
  46. LOCAL_MODULE := bt-kernel-module-symvers
  47. LOCAL_MODULE_STEM := Module.symvers
  48. LOCAL_MODULE_KBUILD_NAME := Module.symvers
  49. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  50. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  51. # Below are for Android build system to recognize each module name, so
  52. # they can be installed properly. Since Kbuild is used to compile these
  53. # modules, invoking any of them will cause other modules to be compiled
  54. # as well if corresponding flags are added in KBUILD_OPTIONS from upper
  55. # level Makefiles.
  56. ################################ pwr ################################
  57. include $(CLEAR_VARS)
  58. LOCAL_SRC_FILES := $(BT_SRC_FILES)
  59. LOCAL_MODULE := btpower.ko
  60. LOCAL_MODULE_KBUILD_NAME := pwr/btpower.ko
  61. LOCAL_MODULE_TAGS := optional
  62. LOCAL_MODULE_DEBUG_ENABLE := true
  63. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  64. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  65. ################################ slimbus ################################
  66. include $(CLEAR_VARS)
  67. LOCAL_SRC_FILES := $(BT_SRC_FILES)
  68. LOCAL_MODULE := bt_fm_slim.ko
  69. LOCAL_MODULE_KBUILD_NAME := slimbus/bt_fm_slim.ko
  70. LOCAL_MODULE_TAGS := optional
  71. LOCAL_MODULE_DEBUG_ENABLE := true
  72. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  73. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  74. ################################ rtc6226 ################################
  75. include $(CLEAR_VARS)
  76. LOCAL_SRC_FILES := $(BT_SRC_FILES)
  77. LOCAL_MODULE := radio-i2c-rtc6226-qca.ko
  78. LOCAL_MODULE_KBUILD_NAME := rtc6226/radio-i2c-rtc6226-qca.ko
  79. LOCAL_MODULE_TAGS := optional
  80. LOCAL_MODULE_DEBUG_ENABLE := true
  81. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  82. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  83. ###########################################################
  84. endif # DLKM check
  85. endif # supported target check