# 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} ac_only -display_backlight"
USE="${USE} legacy_power_button monroe wireless34"
USE="${USE} bt_unsupported_read_enc_key_size"

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

# Let the touchscreen wake the system when it's suspended.
USE="${USE} touchscreen_wakeup"

# Declare TPM model.
USE="${USE} tpm_slb9655"

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

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

# Non Chromebook device, smart dim is disabled.
USE="${USE} -smartdim"

# Use recovery button to confirm physical presence
USE="${USE} physical_presence_recovery"
