
The haptics module in some PMICs has SWR slave data port which connects to Bolero SWR RX port and it can receive PCM data from that port and use it as the pattern source to play the vibration. Add the driver to support it. Change-Id: I5e6811ac8d81a60c3cd226029ef22ee12ed46f1d Signed-off-by: Fenglin Wu <fenglinw@codeaurora.org>
283 lines
7.6 KiB
Makefile
283 lines
7.6 KiB
Makefile
# We can build either as part of a standalone Kernel build or as
|
|
# an external module. Determine which mechanism is being used
|
|
ifeq ($(MODNAME),)
|
|
KERNEL_BUILD := 1
|
|
else
|
|
KERNEL_BUILD := 0
|
|
endif
|
|
|
|
ifeq ($(KERNEL_BUILD), 1)
|
|
# These are configurable via Kconfig for kernel-based builds
|
|
# Need to explicitly configure for Android-based builds
|
|
AUDIO_BLD_DIR := $(shell pwd)/kernel/msm-5.4
|
|
AUDIO_ROOT := $(AUDIO_BLD_DIR)/techpack/audio
|
|
endif
|
|
|
|
ifeq ($(KERNEL_BUILD), 0)
|
|
ifeq ($(CONFIG_ARCH_SM8150), y)
|
|
ifdef CONFIG_SND_SOC_SA8155
|
|
include $(AUDIO_ROOT)/config/sa8155auto.conf
|
|
export
|
|
INCS += -include $(AUDIO_ROOT)/config/sa8155autoconf.h
|
|
else
|
|
include $(AUDIO_ROOT)/config/sm8150auto.conf
|
|
export
|
|
INCS += -include $(AUDIO_ROOT)/config/sm8150autoconf.h
|
|
endif
|
|
endif
|
|
ifeq ($(CONFIG_ARCH_SM6150), y)
|
|
ifdef CONFIG_SND_SOC_SA6155
|
|
include $(AUDIO_ROOT)/config/sa6155auto.conf
|
|
export
|
|
INCS += -include $(AUDIO_ROOT)/config/sa6155autoconf.h
|
|
else
|
|
include $(AUDIO_ROOT)/config/sm6150auto.conf
|
|
export
|
|
INCS += -include $(AUDIO_ROOT)/config/sm6150autoconf.h
|
|
endif
|
|
endif
|
|
ifeq ($(CONFIG_ARCH_TRINKET), y)
|
|
include $(AUDIO_ROOT)/config/sm6150auto.conf
|
|
export
|
|
INCS += -include $(AUDIO_ROOT)/config/sm6150autoconf.h
|
|
endif
|
|
ifeq ($(CONFIG_ARCH_KONA), y)
|
|
include $(AUDIO_ROOT)/config/konaauto.conf
|
|
INCS += -include $(AUDIO_ROOT)/config/konaautoconf.h
|
|
endif
|
|
ifeq ($(CONFIG_ARCH_LITO), y)
|
|
include $(AUDIO_ROOT)/config/litoauto.conf
|
|
export
|
|
INCS += -include $(AUDIO_ROOT)/config/litoautoconf.h
|
|
endif
|
|
ifeq ($(CONFIG_ARCH_BENGAL), y)
|
|
include $(AUDIO_ROOT)/config/bengalauto.conf
|
|
export
|
|
INCS += -include $(AUDIO_ROOT)/config/bengalautoconf.h
|
|
endif
|
|
ifeq ($(CONFIG_ARCH_SDMSHRIKE), y)
|
|
include $(AUDIO_ROOT)/config/sm8150auto.conf
|
|
export
|
|
INCS += -include $(AUDIO_ROOT)/config/sm8150autoconf.h
|
|
endif
|
|
ifeq ($(CONFIG_ARCH_QCS405), y)
|
|
include $(AUDIO_ROOT)/config/qcs405auto.conf
|
|
export
|
|
INCS += -include $(AUDIO_ROOT)/config/qcs405autoconf.h
|
|
endif
|
|
ifeq ($(CONFIG_QTI_GVM), y)
|
|
include $(AUDIO_ROOT)/config/gvmauto.conf
|
|
export
|
|
INCS += -include $(AUDIO_ROOT)/config/gvmautoconf.h
|
|
endif
|
|
endif
|
|
|
|
# As per target team, build is done as follows:
|
|
# Defconfig : build with default flags
|
|
# Slub : defconfig + CONFIG_SLUB_DEBUG := y +
|
|
# CONFIG_SLUB_DEBUG_ON := y + CONFIG_PAGE_POISONING := y
|
|
# Perf : Using appropriate msmXXXX-perf_defconfig
|
|
#
|
|
# Shipment builds (user variants) should not have any debug feature
|
|
# enabled. This is identified using 'TARGET_BUILD_VARIANT'. Slub builds
|
|
# are identified using the CONFIG_SLUB_DEBUG_ON configuration. Since
|
|
# there is no other way to identify defconfig builds, QTI internal
|
|
# representation of perf builds (identified using the string 'perf'),
|
|
# is used to identify if the build is a slub or defconfig one. This
|
|
# way no critical debug feature will be enabled for perf and shipment
|
|
# builds. Other OEMs are also protected using the TARGET_BUILD_VARIANT
|
|
# config.
|
|
|
|
############ UAPI ############
|
|
UAPI_DIR := uapi/audio
|
|
UAPI_INC := -I$(AUDIO_ROOT)/include/$(UAPI_DIR)
|
|
|
|
############ COMMON ############
|
|
COMMON_DIR := include
|
|
COMMON_INC := -I$(AUDIO_ROOT)/$(COMMON_DIR)
|
|
|
|
############ ASoC Codecs ############
|
|
ifdef CONFIG_WCD9XXX_CODEC_CORE
|
|
CORE_OBJS += wcd9xxx-rst.o
|
|
CORE_OBJS += wcd9xxx-core-init.o
|
|
CORE_OBJS += wcd9xxx-core.o
|
|
CORE_OBJS += wcd9xxx-irq.o
|
|
CORE_OBJS += wcd9xxx-slimslave.o
|
|
CORE_OBJS += wcd9xxx-utils.o
|
|
CORE_OBJS += wcd9335-regmap.o
|
|
CORE_OBJS += wcd9335-tables.o
|
|
CORE_OBJS += msm-cdc-pinctrl.o
|
|
CORE_OBJS += msm-cdc-supply.o
|
|
CORE_OBJS += wcd934x/wcd934x-regmap.o
|
|
CORE_OBJS += wcd934x/wcd934x-tables.o
|
|
endif
|
|
|
|
ifdef CONFIG_WCD9XXX_CODEC_CORE_V2
|
|
CORE_OBJS += wcd9xxx-core-init.o
|
|
CORE_OBJS += msm-cdc-pinctrl.o
|
|
CORE_OBJS += msm-cdc-supply.o
|
|
endif
|
|
|
|
ifdef CONFIG_SND_SOC_WCD9XXX_V2
|
|
ifdef CONFIG_WCD9XXX_CODEC_CORE
|
|
WCD9XXX_OBJS += wcd9xxx-common-v2.o
|
|
WCD9XXX_OBJS += wcd9xxx-resmgr-v2.o
|
|
WCD9XXX_OBJS += wcd-dsp-utils.o
|
|
WCD9XXX_OBJS += wcd-dsp-mgr.o
|
|
else
|
|
WCD9XXX_OBJS += wcd-clsh.o
|
|
endif
|
|
WCD9XXX_OBJS += wcdcal-hwdep.o
|
|
WCD9XXX_OBJS += wcd9xxx-soc-init.o
|
|
WCD9XXX_OBJS += audio-ext-clk-up.o
|
|
endif
|
|
|
|
ifdef CONFIG_SND_SOC_WCD9335
|
|
WCD9335_OBJS += wcd9335.o
|
|
endif
|
|
|
|
ifdef CONFIG_SND_SOC_WSA881X
|
|
WSA881X_OBJS += wsa881x.o
|
|
WSA881X_OBJS += wsa881x-tables.o
|
|
WSA881X_OBJS += wsa881x-regmap.o
|
|
WSA881X_OBJS += wsa881x-temp-sensor.o
|
|
endif
|
|
|
|
ifdef CONFIG_SND_SOC_SWR_DMIC
|
|
SWR_DMIC_OBJS += swr-dmic.o
|
|
endif
|
|
|
|
ifdef CONFIG_SND_SOC_WSA881X_ANALOG
|
|
WSA881X_ANALOG_OBJS += wsa881x-analog.o
|
|
WSA881X_ANALOG_OBJS += wsa881x-tables-analog.o
|
|
WSA881X_ANALOG_OBJS += wsa881x-regmap-analog.o
|
|
WSA881X_ANALOG_OBJS += wsa881x-temp-sensor.o
|
|
endif
|
|
ifdef CONFIG_SND_SOC_MSM_STUB
|
|
STUB_OBJS += msm_stub.o
|
|
endif
|
|
ifdef CONFIG_SND_SOC_WCD_SPI
|
|
SPI_OBJS += wcd-spi.o
|
|
endif
|
|
|
|
ifdef CONFIG_SND_SOC_WCD_CPE
|
|
WCD_CPE_OBJS += wcd_cpe_core.o
|
|
WCD_CPE_OBJS += wcd_cpe_services.o
|
|
endif
|
|
|
|
ifdef CONFIG_SND_SOC_WCD_MBHC
|
|
MBHC_OBJS += wcd-mbhc-v2.o
|
|
endif
|
|
|
|
ifdef CONFIG_SND_SOC_WCD_MBHC_ADC
|
|
MBHC_OBJS += wcd-mbhc-adc.o
|
|
endif
|
|
|
|
ifdef CONFIG_SND_SOC_WCD_MBHC_LEGACY
|
|
MBHC_OBJS += wcd-mbhc-legacy.o
|
|
endif
|
|
|
|
ifdef CONFIG_SND_SOC_MSM_HDMI_CODEC_RX
|
|
ifdef CONFIG_AUDIO_QGKI
|
|
HDMICODEC_OBJS += msm_hdmi_codec_rx.o
|
|
endif
|
|
endif
|
|
|
|
ifdef CONFIG_SND_SOC_WCD_IRQ
|
|
CORE_OBJS += wcd-irq.o
|
|
endif
|
|
|
|
ifdef CONFIG_SND_SWR_HAPTICS
|
|
SWR_HAP_OBJS += swr-haptics.o
|
|
endif
|
|
|
|
LINUX_INC += -Iinclude/linux
|
|
|
|
INCS += $(COMMON_INC) \
|
|
$(UAPI_INC)
|
|
|
|
|
|
EXTRA_CFLAGS += $(INCS)
|
|
|
|
|
|
CDEFINES += -DANI_LITTLE_BYTE_ENDIAN \
|
|
-DANI_LITTLE_BIT_ENDIAN \
|
|
-DDOT11F_LITTLE_ENDIAN_HOST \
|
|
-DANI_COMPILER_TYPE_GCC \
|
|
-DANI_OS_TYPE_ANDROID=6 \
|
|
-DPTT_SOCK_SVC_ENABLE \
|
|
-Wall\
|
|
-Werror\
|
|
-D__linux__
|
|
|
|
KBUILD_CPPFLAGS += $(CDEFINES)
|
|
|
|
# Currently, for versions of gcc which support it, the kernel Makefile
|
|
# is disabling the maybe-uninitialized warning. Re-enable it for the
|
|
# AUDIO driver. Note that we must use EXTRA_CFLAGS here so that it
|
|
# will override the kernel settings.
|
|
ifeq ($(call cc-option-yn, -Wmaybe-uninitialized),y)
|
|
EXTRA_CFLAGS += -Wmaybe-uninitialized
|
|
endif
|
|
#EXTRA_CFLAGS += -Wmissing-prototypes
|
|
|
|
ifeq ($(call cc-option-yn, -Wheader-guard),y)
|
|
EXTRA_CFLAGS += -Wheader-guard
|
|
endif
|
|
|
|
|
|
ifeq ($(KERNEL_BUILD), 0)
|
|
KBUILD_EXTRA_SYMBOLS +=$(OUT)/obj/vendor/qcom/opensource/audio-kernel/dsp/Module.symvers
|
|
KBUILD_EXTRA_SYMBOLS +=$(OUT)/obj/vendor/qcom/opensource/audio-kernel/soc/Module.symvers
|
|
endif
|
|
|
|
ifeq ($(KERNEL_BUILD), 1)
|
|
obj-y += wcd934x/
|
|
obj-y += wcd937x/
|
|
obj-y += wcd938x/
|
|
obj-y += bolero/
|
|
obj-y += wsa883x/
|
|
endif
|
|
# Module information used by KBuild framework
|
|
obj-$(CONFIG_WCD9XXX_CODEC_CORE) += wcd_core_dlkm.o
|
|
obj-$(CONFIG_WCD9XXX_CODEC_CORE_V2) += wcd_core_dlkm.o
|
|
wcd_core_dlkm-y := $(CORE_OBJS)
|
|
|
|
obj-$(CONFIG_SND_SOC_WCD9XXX_V2) += wcd9xxx_dlkm.o
|
|
wcd9xxx_dlkm-y := $(WCD9XXX_OBJS)
|
|
|
|
obj-$(CONFIG_SND_SOC_WCD9335) += wcd9335_dlkm.o
|
|
wcd9335_dlkm-y := $(WCD9335_OBJS)
|
|
|
|
obj-$(CONFIG_SND_SOC_WSA881X) += wsa881x_dlkm.o
|
|
wsa881x_dlkm-y := $(WSA881X_OBJS)
|
|
|
|
obj-$(CONFIG_SND_SOC_SWR_DMIC) += swr_dmic_dlkm.o
|
|
swr_dmic_dlkm-y := $(SWR_DMIC_OBJS)
|
|
|
|
obj-$(CONFIG_SND_SOC_WSA881X_ANALOG) += wsa881x_analog_dlkm.o
|
|
wsa881x_analog_dlkm-y := $(WSA881X_ANALOG_OBJS)
|
|
|
|
obj-$(CONFIG_SND_SOC_MSM_STUB) += stub_dlkm.o
|
|
stub_dlkm-y := $(STUB_OBJS)
|
|
|
|
obj-$(CONFIG_SND_SOC_WCD_CPE) += wcd_cpe_dlkm.o
|
|
wcd_cpe_dlkm-y := $(WCD_CPE_OBJS)
|
|
|
|
obj-$(CONFIG_SND_SOC_WCD_SPI) += wcd_spi_dlkm.o
|
|
wcd_spi_dlkm-y := $(SPI_OBJS)
|
|
|
|
obj-$(CONFIG_SND_SOC_WCD_MBHC) += mbhc_dlkm.o
|
|
mbhc_dlkm-y := $(MBHC_OBJS)
|
|
|
|
ifdef CONFIG_AUDIO_QGKI
|
|
obj-$(CONFIG_SND_SOC_MSM_HDMI_CODEC_RX) += hdmi_dlkm.o
|
|
hdmi_dlkm-y := $(HDMICODEC_OBJS)
|
|
endif
|
|
|
|
obj-$(CONFIG_SND_SWR_HAPTICS) += swr_haptics_dlkm.o
|
|
swr_haptics_dlkm-y := $(SWR_HAP_OBJS)
|
|
|
|
# inject some build related information
|
|
DEFINES += -DBUILD_TIMESTAMP=\"$(shell date -u +'%Y-%m-%dT%H:%M:%SZ')\"
|