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

USE="${USE} als cave touchview has_keyboard_backlight"

# Allow consumer kiosk.
# NOTE: Deprecating feature. New board should NOT have it.
USE="${USE} allow_consumer_kiosk"

USE="${USE} direncryption"

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

# Disable touchpad wakeup since it can't be turned off dynamically when the
# system is converted to tablet mode while it's suspended.
USE="${USE} -touchpad_wakeup"

# Disable unibuild on this legacy board. This is only for existing (as of Jan 2019)
# boards as all new boards must be unibuild enabled moving forward. Do not copy this
# to new boards as it will be rejected. See
# https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/chromeos-config/README.md
# for further details about chromeos-config, which is the required entry point for
# unified builds.
USE="${USE} -unibuild"

# Uncomment this line to activate the serial port.
#TTY_CONSOLE="ttyS0"
AFDO_PROFILE_SOURCE='broadwell'

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