# 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.
LINUX_FIRMWARE=""
USE=""

USE="${USE} cros_ec eclog mosys_eventlog -opengl"
USE="${USE} opengles touchview watchdog"
USE="${USE} wifi_force_powersave"

# Breakpad doesn't work on arm64/arm. Override normal experiment / dogfood
# setups and always use the new crashpad.
USE="${USE} force_crashpad"

# Enable TPM2 for H1
USE="${USE} -tpm tpm2"

# Include prebuilt (&signed) CR50 FW
USE="${USE} cr50_onboard"

# Enable KVM
USE="${USE} kvm_host"

# ath10k firmware for WCN3990 Wifi
LINUX_FIRMWARE="${LINUX_FIRMWARE} ath10k_wcn3990"

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

# Firmware for WCN3990 Bluetooth
LINUX_FIRMWARE="${LINUX_FIRMWARE} qca-wcn3990-bt"

# Venus codec firmware
LINUX_FIRMWARE="${LINUX_FIRMWARE} venus-52"

# Adreno 630 firmware
LINUX_FIRMWARE="${LINUX_FIRMWARE} adreno-630"

# For minigbm, mesa driver selected by virtuals
VIDEO_CARDS="msm"

# Declare set of enabled consoles
TTY_CONSOLE="ttyMSM0"
