# ITE tachometer sensor configuration options

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

config TACH_IT8XXX2
	bool "ITE it8xxx2 Tachometer sensor"
	default y
	depends on DT_HAS_ITE_IT8XXX2_TACH_ENABLED
	depends on SOC_IT8XXX2
	help
	  Enable the ITE it8xxx2 tachometer sensor,
	  it8xxx2 supports two 16-bit tachometer sensor, each sensor has two
	  input channel and we can select one input from two channel.
