# Copyright 2018 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2

# Initial value just for style purposes.
LINUX_FIRMWARE=""
USE=""

USE="${USE} nocturne"

# Uncomment these lines to activate the serial port.
# Enable kernel serial drivers
#USE="${USE} pcserial"
# Declare set of enabled consoles
#TTY_CONSOLE="ttyS0"


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

# Indicates biod that fingerprint is physically overlapped on power button.
USE="${USE} fp_on_power_button"

# Fingerprint firmware
FPMCU_FIRMWARE="nocturne"

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

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

# Enable keyboard backlight control
USE="${USE} has_keyboard_backlight"

# Enable touch in Chrome.
USE="${USE} touchview"

USE="${USE} touch_centric_device"

# Building EC
USE="${USE} cros_ec"

# All firmware to build from the EC code base.
EC_FIRMWARE="nocturne"
EC_FIRMWARE_EXTRA="nocturne_fp"

# Enable hammerd for updating base firmware.
USE="${USE} hammerd"

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

# Enable IME native decoder experiment.
USE="${USE} ime_decoder_alpha"

# Enable Intel wifi and bt firmware
LINUX_FIRMWARE="${LINUX_FIRMWARE} iwlwifi-7265D ibt-hw"

# Enable PCI rescan for Intel wifi NIC disappearing from the bus
# See b/117960007 and crbug.com/922232 for details.
USE="${USE} iwlwifi_rescan"

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

# Enable heuristic palm rejection
USE="${USE} enable_heuristic_palm_detection_filter"

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

# Enable chromeos-config.
USE="${USE} unibuild"
