# SPDX-License-Identifier: GPL-2.0+
#
# Copyright (C) 2015 Google, Inc

config INTEL_BAYTRAIL
	bool
	select HAVE_FSP if !EFI
	select ARCH_MISC_INIT if !EFI
	select CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED
	imply HAVE_INTEL_ME if !EFI
	imply ENABLE_MRC_CACHE
	imply AHCI_PCI
	imply ICH_SPI
	imply INTEL_ICH6_GPIO
	imply MMC
	imply MMC_PCI
	imply MMC_SDHCI
	imply MMC_SDHCI_SDMA
	imply SCSI
	imply SCSI_AHCI
	imply SPI_FLASH
	imply SYS_NS16550
	imply USB
	imply USB_EHCI_HCD
	imply USB_XHCI_HCD
	imply VIDEO_VESA

if INTEL_BAYTRAIL
config INTERNAL_UART
	bool "Enable the SoC integrated legacy UART"
	help
	  There is a legacy UART integrated into the Bay Trail SoC.
	  A maximum baud rate of 115200 bps is supported. For this
	  reason, it is recommended that the UART port be used for
	  debug purposes only, eg: U-Boot console.

config DEBUG_UART
	bool
	select DEBUG_UART_BOARD_INIT

endif
