# Kconfig - QMSI drivers configuration options

#
# Copyright (c) 2015 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

config HAS_QMSI
	bool

menuconfig QMSI
	bool "QMSI driver support"
	depends on HAS_QMSI
	help
	  automatically set when either of QMSI_LIBRARY or QMSI_BUILTIN
	  is selected.

if HAS_QMSI

config QMSI_BUILTIN
	bool "Enable QMSI drivers through integrated sources"
	select QMSI
	help
	  Link with local QMSI sources instead of external library.

config QMSI_LIBRARY
	bool "Enable QMSI drivers using external library"
	select QMSI
	help
	  This option enables QMSI device drivers. These drivers are actually shim
	  drivers based on drivers provided by QMSI BSP. The BSP provides a static
	  library (libqmsi) which implements several drivers for peripherals from
	  Intel MCUs (e.g. Quark SE and Quark D2000).

config QMSI_INSTALL_PATH
	depends on QMSI_LIBRARY
	string "QMSI install path"
	help
	  This option holds the path where the QMSI library and headers are
	  installed. Make sure this option is properly set when QMSI_LIBRARY
	  is enabled otherwise the build will fail.

endif
