#
# Copyright (c) 2018 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig I2C_QMSI
	bool "QMSI I2C driver"
	depends on QMSI
	select HAS_DTS_I2C
	help
	  This option enable the QMSI I2C driver.

	  This driver is simply a shim driver based on the I2C driver
	  provided by the QMSI BSP.

if I2C_QMSI

config I2C_SDA_SETUP
	int
	help
	  The delay time of clock rising edge relative to i2c data signal
	  change. The unit is i2c module base clock.

config I2C_SDA_TX_HOLD
	int
	help
	  The hold time on the data signal after a negative edge of i2c clock
	  while i2c acts as transmitter. The unit is i2c module base clock.

config I2C_SDA_RX_HOLD
	int
	help
	  The hold time on the data signal after a negative edge of i2c clock
	  while i2c acts as receiver. The unit is i2c module base clock.

endif # I2C_QMSI
