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