# NPCX PS2 configuration options

# Copyright (c) 2021 Nuvoton Technology Corporation.
# SPDX-License-Identifier: Apache-2.0

menuconfig PS2_NPCX
	bool "Nuvoton NPCX embedded controller (EC) PS2 driver"
	depends on DT_HAS_NUVOTON_NPCX_PS2_CHANNEL_ENABLED
	select PINCTRL
	default y
	help
	  Enable the NPCX family PS2 driver. It provides four PS/2 channels.
	  Each channel has two quasi-bidirectional signals that serve as
	  direct interfaces to an external keyboard, mouse or any other
	  PS/2-compatible pointing device.The driver also depends on the KBC
	  8042 keyboard controller.

if PS2_NPCX

config PS2_CHANNEL_INIT_PRIORITY
	int "PS/2 channel driver init priority"
	default 41
	help
	  PS/2 channel device driver initialization priority.
	  This should be lower than the PS2_INIT_PRIORITY as
	  NPCX PS/2 controller device driver should initialize
	  prior to channel device driver.

endif # PS2_NPCX
