/* SPDX-License-Identifier: GPL-2.0 */ /* * The MIPI SDCA specification is available for public downloads at * https://www.mipi.org/mipi-sdca-v1-0-download * * Copyright (C) 2025 Cirrus Logic, Inc. and * Cirrus Logic International Semiconductor Ltd. */ #ifndef __SDCA_UMP_H__ #define __SDCA_UMP_H__ struct regmap; struct sdca_control; struct sdca_entity; struct sdca_function_data; struct snd_soc_component; struct delayed_work; int sdca_ump_get_owner_host(struct device *dev, struct regmap *function_regmap, struct sdca_function_data *function, struct sdca_entity *entity, struct sdca_control *control); int sdca_ump_set_owner_device(struct device *dev, struct regmap *function_regmap, struct sdca_function_data *function, struct sdca_entity *entity, struct sdca_control *control); int sdca_ump_read_message(struct device *dev, struct regmap *device_regmap, struct regmap *function_regmap, struct sdca_function_data *function, struct sdca_entity *entity, unsigned int offset_sel, unsigned int length_sel, void **msg); int sdca_ump_write_message(struct device *dev, struct regmap *device_regmap, struct regmap *function_regmap, struct sdca_function_data *function, struct sdca_entity *entity, unsigned int offset_sel, unsigned int msg_offset, unsigned int length_sel, void *msg, int msg_len); void sdca_ump_cancel_timeout(struct delayed_work *work); void sdca_ump_schedule_timeout(struct delayed_work *work, unsigned int timeout_us); #endif // __SDCA_UMP_H__