# 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.
LINUX_FIRMWARE=""
USE=""

# Use Intel WiFi
LINUX_FIRMWARE="${LINUX_FIRMWARE} iwlwifi-9000 iwlwifi-9260"

# Use Intel BT driver
LINUX_FIRMWARE="${LINUX_FIRMWARE} ibt-hw ibt_ax201"

# Google USBPD peripheral firmwares
LINUX_FIRMWARE="${LINUX_FIRMWARE} cros-pd"

# Build kernel with serial driver
# USE="${USE} pcserial"
# USE="${USE} tty_console_ttyS0"

# Add EC logging
USE="${USE} eclog"

# Disable AC ACPI driver
USE="${USE} -acpi_ac"

# Enable serial console
# TTY_CONSOLE="ttyS0"

# Allow Chrome to use Tablet mode
USE="${USE} touchview"

# Enable NVMe utility
USE="${USE} nvme"
