# SPDX-License-Identifier: GPL-2.0
#
# Unisys visorinput configuration
#

config UNISYS_VISORINPUT
	tristate "Unisys visorinput driver"
	depends on UNISYSSPAR && UNISYS_VISORBUS && INPUT
	help
		The Unisys s-Par visorinput driver provides a virtualized system
		console (keyboard and mouse) that is accessible through the
		s-Par firmware's user interface. s-Par provides video using the EFI
		GOP protocol, so If this driver is not present, the Linux guest should
		still boot with visible output in the partition desktop, but keyboard
		and mouse interaction will not be available.

