| /* SPDX-License-Identifier: GPL-2.0-only */ | |
| /* | |
| * Copyright (c) 2025, Qualcomm Technologies, Inc. and/or its subsidiaries. | |
| */ | |
| #ifndef __WCD_COMMON_H__ | |
| #define __WCD_COMMON_H__ | |
| struct device; | |
| struct sdw_slave; | |
| struct sdw_bus_params; | |
| struct irq_domain; | |
| enum sdw_slave_status; | |
| #define WCD_MAX_MICBIAS 4 | |
| struct wcd_sdw_ch_info { | |
| int port_num; | |
| unsigned int ch_mask; | |
| unsigned int master_ch_mask; | |
| }; | |
| #define WCD_SDW_CH(id, pn, cmask) \ | |
| [id] = { \ | |
| .port_num = pn, \ | |
| .ch_mask = cmask, \ | |
| .master_ch_mask = cmask, \ | |
| } | |
| struct wcd_common { | |
| struct device *dev; | |
| int max_bias; | |
| u32 micb_mv[WCD_MAX_MICBIAS]; | |
| u32 micb_vout[WCD_MAX_MICBIAS]; | |
| }; | |
| extern const struct component_ops wcd_sdw_component_ops; | |
| int wcd_get_micb_vout_ctl_val(struct device *dev, u32 micb_mv); | |
| int wcd_dt_parse_micbias_info(struct wcd_common *common); | |
| int wcd_update_status(struct sdw_slave *slave, enum sdw_slave_status status); | |
| int wcd_bus_config(struct sdw_slave *slave, struct sdw_bus_params *params); | |
| int wcd_interrupt_callback(struct sdw_slave *slave, struct irq_domain *slave_irq, | |
| unsigned int wcd_intr_status0, unsigned int wcd_intr_status1, | |
| unsigned int wcd_intr_status2); | |
| #endif /* __WCD_COMMON_H__ */ |