| /* 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__ |