1 /*
2  * Copyright (c) 2024 SILA Embedded Solutions GmbH
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 
6 #ifndef ZEPHYR_INCLUDE_DRIVERS_MFD_BD8LB600FS_H_
7 #define ZEPHYR_INCLUDE_DRIVERS_MFD_BD8LB600FS_H_
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 #include <zephyr/device.h>
14 
15 /**
16  * @defgroup mdf_interface_bd8lb600fs MFD BD8LB600FS interface
17  * @ingroup mfd_interfaces
18  * @{
19  */
20 
21 /**
22  * @brief set outputs
23  *
24  * @param[in] dev instance of BD8LB600FS MFD
25  * @param[in] values values for outputs, one bit per output
26  *
27  * @retval 0 if successful
28  */
29 int mfd_bd8lb600fs_set_outputs(const struct device *dev, uint32_t values);
30 /**
31  * @brief get output diagnostics
32  *
33  * Fetch the current diagnostics from all instances, as multiple
34  * instances might be daisy chained together. Each bit in old
35  * and ocp_or_tsd corresponds to one output. A set bit means that the
36  * function is active, therefore either there is an open load, an over
37  * current or a too high temperature.
38  *
39  * OLD - open load
40  * OCP - over current protection
41  * TSD - thermal shutdown
42  *
43  * @param[in] dev instance of BD8LB600FS MFD
44  * @param[out] old open load values
45  * @param[out] ocp_or_tsd over current protection or thermal shutdown values
46  *
47  * @retval 0 if successful
48  */
49 int mfd_bd8lb600fs_get_output_diagnostics(const struct device *dev, uint32_t *old,
50 					  uint32_t *ocp_or_tsd);
51 
52 /**
53  * @}
54  */
55 
56 #ifdef __cplusplus
57 }
58 #endif
59 
60 #endif /* ZEPHYR_INCLUDE_DRIVERS_MFD_BD8LB600FS_H_ */
61