# SPDX-License-Identifier: GPL-2.0-only
#
# GNSS receiver configuration
#

menuconfig GNSS
	tristate "GNSS receiver support"
	---help---
	  Say Y here if you have a GNSS receiver (e.g. a GPS receiver).

	  To compile this driver as a module, choose M here: the module will
	  be called gnss.

if GNSS

config GNSS_SERIAL
	tristate

config GNSS_MTK_SERIAL
	tristate "Mediatek GNSS receiver support"
	depends on SERIAL_DEV_BUS
	select GNSS_SERIAL
	help
	  Say Y here if you have a Mediatek-based GNSS receiver which uses a
	  serial interface.

	  To compile this driver as a module, choose M here: the module will
	  be called gnss-mtk.

	  If unsure, say N.

config GNSS_SIRF_SERIAL
	tristate "SiRFstar GNSS receiver support"
	depends on SERIAL_DEV_BUS
	---help---
	  Say Y here if you have a SiRFstar-based GNSS receiver which uses a
	  serial interface.

	  To compile this driver as a module, choose M here: the module will
	  be called gnss-sirf.

	  If unsure, say N.

config GNSS_UBX_SERIAL
	tristate "u-blox GNSS receiver support"
	depends on SERIAL_DEV_BUS
	select GNSS_SERIAL
	---help---
	  Say Y here if you have a u-blox GNSS receiver which uses a serial
	  interface.

	  To compile this driver as a module, choose M here: the module will
	  be called gnss-ubx.

	  If unsure, say N.

config GNSS_CMDLINE_SERIAL
	tristate "Command line test driver for GNSS"
	depends on SERIAL_DEV_BUS
	select GNSS_SERIAL
	---help---
	  Say Y here if you want to test the GNSS subsystem but do not have a
	  way to communicate a binding through firmware such as DT or ACPI.
	  The correct serdev device and protocol type must be specified on
	  the module command line.

	  To compile this driver as a module, choose M here: the module will
	  be called gnss-cmdline.

	  If unsure, say N.

endif # GNSS
