# Copyright (C) 2024 BeagleBoard.org Foundation
# Copyright (C) 2024 Dhruv Menon <dhruvmenon1104@gmail.com>

# SPDX-License-Identifier: Apache-2.0

config I2C_OMAP
	bool "TI OMAP I2C Driver"
	default y
	depends on DT_HAS_TI_OMAP_I2C_ENABLED
	select PINCTRL
	help
	  Enable the I2C driver for TI OMAP SoCs.

config I2C_OMAP_BUS_RECOVERY
	bool "Bus recovery support"
	depends on I2C_OMAP
	select I2C_BITBANG
	help
	  Enable OMAP I2C driver bus recovery support via bitbanging.
