# Infineon XMC4 I2C configuration options

# Copyright (c) 2023 Cypress Semiconductor Corporation (an Infineon company) or
# an affiliate of Cypress Semiconductor Corporation
#
# SPDX-License-Identifier: Apache-2.0

menuconfig I2C_INFINEON_XMC4
	bool "Infineon XMC4 I2C driver"
	default y
	depends on DT_HAS_INFINEON_XMC4_I2C_ENABLED
	help
	  This option enables the I2C driver for Infineon XMC4 family.

if I2C_INFINEON_XMC4

config I2C_INFINEON_XMC4_TARGET_BUF
	int "I2C Target data buffer length"
	depends on I2C_INFINEON_XMC4
	range 1 1024
	default 64
	help
	  Buffer to receive data as an I2C Target.

endif # I2C_INFINEON_XMC4
