# Copyright (c) 2020 ITE Corporation. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0

config GPIO_ITE_IT8XXX2
	bool "ITE IT8XXX2 GPIO driver"
	default y
	depends on DT_HAS_ITE_IT8XXX2_GPIO_ENABLED
	help
	  Enable driver for the ite GPIO controller.

config GPIO_KSCAN_ITE_IT8XXX2
	bool "ITE IT8XXX2 GPIO KSCAN driver"
	default y
	depends on DT_HAS_ITE_IT8XXX2_GPIOKSCAN_ENABLED
	help
	  Enable GPIO KSCAN driver for ITE chip it8xxx2.
	  IT8XXX2 support 8 KSI pins and 18 KSO pins, all of them can be configured
	  to GPIO mode.
	  KSI[7:0] and KSO[15:0] pins are configured to GPIO mode by
	  this GPIO_KSCAN_ITE_IT8XXX2 driver.
	  KSO[17:16] corresponds to GPC5 and GPC3 pin, so they can be configured to
	  gpio mode by original GPIO_ITE_IT8XXX2 driver.
