# 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"

# Inidicates that this board has an internal stylus.
USE="${USE} internal_stylus"

# 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"
