# Copyright 2019 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=""
INPUT_DEVICES=""


USE="${USE} cros_ec"
USE="${USE} mushu"

# Enable unibuild
USE="${USE} unibuild"

# TODO: Bring in the diagnostics package, which includes the diagnostics
# daemon and diagnostics processor.
#USE="${USE} diagnostics"

# Enable Ambient Light Sensor
USE="${USE} als"

# Enable biometrics support
USE="${USE} biod"

# Include the goodix firmware updating tool
INPUT_DEVICES="${INPUT_DEVICES} goodix"

# Include the g2touch firmware updating tool
INPUT_DEVICES="${INPUT_DEVICES} g2touch"

# Include the elan_i2chid firmware updating tool
INPUT_DEVICES="${INPUT_DEVICES} elan_i2chid"

# Include the wacom firmware updating tool
INPUT_DEVICES="${INPUT_DEVICES} wacom"

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

# Enable background blur.
USE="${USE} background_blur"

# Intel HrP2 wifi firmware
LINUX_FIRMWARE="${LINUX_FIRMWARE} iwlwifi-QuZ"

# LLVM is required to build the radeon and amdgpu drivers.
USE="${USE} llvm"

# Use LLVM amdgpu target when building LLVM.
LLVM_TARGETS="${LLVM_TARGETS} AMDGPU"

# Add the video card this board uses.
VIDEO_CARDS="${VIDEO_CARDS} radeon amdgpu"

# Add firmware we need for GPU.
USE="${USE} builtin_fw_vega12"

# Add kernel driver.
USE="${USE} builtin_driver_amdgpu"

# Build kernel with serial driver
USE="${USE} pcserial"
USE="${USE} tty_console_ttyS0"

# Fix crosvm with radeonsi Mesa driver.
USE="${USE} -crosvm-wl-dmabuf"
