1 /*
2  * Copyright (c) 2023 SILA Embedded Solutions GmbH
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  */
7 
8 #ifndef ZEPHYR_INCLUDE_DRIVERS_I2C_STM32_H_
9 #define ZEPHYR_INCLUDE_DRIVERS_I2C_STM32_H_
10 
11 #include <zephyr/device.h>
12 
13 enum i2c_stm32_mode {
14 	I2CSTM32MODE_I2C,
15 	I2CSTM32MODE_SMBUSHOST,
16 	I2CSTM32MODE_SMBUSDEVICE,
17 	I2CSTM32MODE_SMBUSDEVICEARP,
18 };
19 
20 void i2c_stm32_set_smbus_mode(const struct device *dev, enum i2c_stm32_mode mode);
21 
22 #ifdef CONFIG_SMBUS_STM32_SMBALERT
23 typedef void (*i2c_stm32_smbalert_cb_func_t)(const struct device *dev);
24 
25 void i2c_stm32_smbalert_set_callback(const struct device *dev, i2c_stm32_smbalert_cb_func_t func,
26 				     const struct device *cb_dev);
27 void i2c_stm32_smbalert_enable(const struct device *dev);
28 void i2c_stm32_smbalert_disable(const struct device *dev);
29 #endif /* CONFIG_SMBUS_STM32_SMBALERT */
30 
31 #endif /* ZEPHYR_INCLUDE_DRIVERS_I2C_STM32_H_ */
32