#
# Copyright 2015 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# Select the SoC
$(call set_soc, qcom, msm8916)

# Add wifi controlller
$(call add_peripheral, qcom, wifi/wcn3620)

BOARD_SYSTEMIMAGE_PARTITION_SIZE := 268435456
BOARD_USERDATAIMAGE_PARTITION_SIZE := 134217728
BOARD_CACHEIMAGE_PARTITION_SIZE := 268435456

TARGET_BOARD_INFO_FILE := device/qcom/dragonboard/board-info.txt

PRODUCT_COPY_FILES += \
    device/qcom/dragonboard/fstab:root/fstab.${soc_name} \
    device/qcom/dragonboard/provision-device:provision-device

# Install DragonBoard-specific audio policy, audio effects config and mixer path files.
PRODUCT_COPY_FILES += \
  device/qcom/dragonboard/base_product/audio_policy.conf:system/etc/audio_policy.conf \
  device/qcom/dragonboard/base_product/audio_effects.conf:system/etc/audio_effects.conf \
  device/qcom/dragonboard/base_product/mixer_paths_sbc.xml:system/etc/mixer_paths_sbc.xml

BOARD_SEPOLICY_DIRS += \
    device/qcom/dragonboard/sepolicy

TARGET_BOARD_PLATFORM := msm8916

# Audio feature flags
BOARD_USES_ALSA_AUDIO := true
AUDIO_FEATURE_ENABLED_EXTN_RESAMPLER := true
AUDIO_FEATURE_ENABLED_HFP := true
AUDIO_FEATURE_ENABLED_MULTI_VOICE_SESSIONS := true
AUDIO_FEATURE_ENABLED_VOICE_CONCURRENCY := true
AUDIO_FEATURE_ENABLED_WFD_CONCURRENCY := true
BOARD_USES_SRS_TRUEMEDIA := true
AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := true
AUDIO_FEATURE_ENABLED_ACDB_LICENSE := true
DOLBY_DAP_HW_QDSP_HAL_API := true
DOLBY_UDC_MULTICHANNEL_PCM_OFFLOAD := false
MM_AUDIO_ENABLED_FTM := true
MM_AUDIO_ENABLED_SAFX := true
TARGET_USES_QCOM_MM_AUDIO := true

# Enable bluetooth
BOARD_HAVE_BLUETOOTH_QCOM := true
QCOM_BT_USE_SMD_TTY := true
BLUETOOTH_HCI_USE_MCT := true
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/qcom/dragonboard/bluetooth

# Must be defined at the end of the file
$(call add_device_packages)
