1# Copyright (c) 2018 Intel Corporation
2# SPDX-License-Identifier: Apache-2.0
3
4menuconfig I2C_STM32
5	bool "STM32 I2C driver"
6	default y
7	depends on DT_HAS_ST_STM32_I2C_V1_ENABLED || DT_HAS_ST_STM32_I2C_V2_ENABLED
8	help
9	  Enable I2C support on the STM32 SoCs
10
11if I2C_STM32
12
13config I2C_STM32_V1
14	bool
15	default y
16	depends on DT_HAS_ST_STM32_I2C_V1_ENABLED
17	select USE_STM32_LL_I2C
18	select I2C_STM32_INTERRUPT if I2C_TARGET
19	help
20	  Driver variant matching `st,stm32-i2c-v1` compatible.
21
22config I2C_STM32_V2
23	bool
24	default y
25	depends on DT_HAS_ST_STM32_I2C_V2_ENABLED
26	select USE_STM32_LL_I2C
27	select USE_STM32_LL_RCC if SOC_SERIES_STM32F0X || SOC_SERIES_STM32F3X
28	select I2C_STM32_INTERRUPT if I2C_TARGET
29	help
30	  Driver variant matching `st,stm32-i2c-v2` compatible.
31	  If I2C_TARGET is enabled it selects I2C_STM32_INTERRUPT, since target mode
32	  is only supported by this driver with interrupts enabled.
33
34config I2C_STM32_INTERRUPT
35	bool "STM32 MCU I2C Interrupt Support"
36	depends on I2C_STM32_V1 || I2C_STM32_V2
37	default y
38	help
39	  Enable Interrupt support for the I2C Driver
40
41config I2C_STM32_COMBINED_INTERRUPT
42	bool
43	depends on I2C_STM32_INTERRUPT
44	default y if SOC_SERIES_STM32C0X || SOC_SERIES_STM32F0X || \
45		     SOC_SERIES_STM32G0X || SOC_SERIES_STM32L0X
46
47config I2C_STM32_BUS_RECOVERY
48	bool "Bus recovery support"
49	select I2C_BITBANG
50	help
51	  Enable STM32 driver bus recovery support via GPIO bitbanging.
52
53config I2C_STM32_V2_TIMING
54	bool "compute the I2C V2 bus timing"
55	depends on I2C_STM32_V2
56	help
57	  Enable STM32 driver bus to calculate the Timing.
58
59endif # I2C_STM32
60