# Copyright 2017 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Initial value just for style purposes.
USE=""
LINUX_FIRMWARE=""

USE="${USE} containers"

USE="${USE} eve cros_ec"
USE="${USE} -tpm tpm2"
USE="${USE} cr50_onboard"
USE="${USE} touchview"
USE="${USE} has_keyboard_backlight als"
USE="${USE} background_blur"
USE="${USE} eve_bt_hacks"
USE="${USE} eve_wifi_etsi"

# Disable ACPI AC device and use USB PD power supply driver
USE="${USE} -acpi_ac"

# Use ext4 crypto
USE="${USE} direncryption"

# Avoid inhibiting the keyboard (which reports events from side buttons).
USE="${USE} keyboard_includes_side_buttons"

# Google USBPD peripheral firmwares
LINUX_FIRMWARE="${LINUX_FIRMWARE} cros-pd"

# Intel Wifi and BT
LINUX_FIRMWARE="${LINUX_FIRMWARE} iwlwifi-7265D ibt-hw"

# Allow the option to use QCA Wifi and BT
LINUX_FIRMWARE="${LINUX_FIRMWARE} ath10k_qca6174a-5 qca6174a-5-bt"

# Load GuC/HuC Binaries
USE="${USE} builtin_fw_guc_g9"
USE="${USE} builtin_fw_huc_g9"

INPUT_DEVICES="st wacom"

# For debug images, disable for production
#TTY_CONSOLE="ttyS0"
#USE="${USE} pcserial"

# Add EC logging
USE="${USE} eclog"

# Add NVMe support.
USE="${USE} nvme"

# Ability to run guest VMs.
USE="${USE} kvm_host crosvm-gpu virtio_gpu"

# Enable Intel media-driver
# When you disable this, you have to remove special autotest-capability settings
# for eve, which is merged in https://crrev.com/c/1469567.
USE="${USE} -video_cards_i965 video_cards_iHD"

AFDO_PROFILE_SOURCE='broadwell'

# Add IME addons for some optional IME features.
USE="${USE} ime_addons"

# Enable IME native decoder experiment.
USE="${USE} ime_decoder_alpha"

# Enable Downloadable Content (DLC)
USE="${USE} dlc"

# Enable Downloadable Content (DLC) Test
USE="${USE} dlc_test"

BOARD_COMPILER_FLAGS="-march=skylake"

# Enable CPU zero-copy for Chrome camera stack.
USE="${USE} video_capture_use_gpu_memory_buffer"

# Enable building of Cryptohome UserDataAuth interface.
# Note that this USE flag only enables building the interface but doesn't
# actually enable it on the system. Enabling it on the system is controlled by
# cryptohome_userdataauth_interface.conf
USE="${USE} cryptohome_userdataauth_interface"

# this indicates that this board has a -kernelnext overlay
USE="${USE} has-kernelnext"

# Enable on-device handwriting recognition
USE="${USE} ondevice_handwriting"

# Enable chromeos-config.
USE="${USE} unibuild"
