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

USE="${USE} cros_ec"
USE="${USE} hatch"

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

# Enable diagnostics for cros_healthd
USE="${USE} diagnostics"

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

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

# Include the goodix firmware updating tool
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"

# Enable Display port DPCD driver
USE="${USE} drm_dp_aux_chardev"

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

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

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

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

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

# Enable support for modem firmware updates
USE="${USE} modemfwd"

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

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

