1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (c) 2025, Qualcomm Technologies, Inc. and/or its subsidiaries. 4 */ 5 6 #ifndef __WCD_COMMON_H__ 7 #define __WCD_COMMON_H__ 8 9 struct device; 10 struct sdw_slave; 11 struct sdw_bus_params; 12 struct irq_domain; 13 enum sdw_slave_status; 14 15 #define WCD_MAX_MICBIAS 4 16 17 struct wcd_sdw_ch_info { 18 int port_num; 19 unsigned int ch_mask; 20 unsigned int master_ch_mask; 21 }; 22 23 #define WCD_SDW_CH(id, pn, cmask) \ 24 [id] = { \ 25 .port_num = pn, \ 26 .ch_mask = cmask, \ 27 .master_ch_mask = cmask, \ 28 } 29 30 struct wcd_common { 31 struct device *dev; 32 int max_bias; 33 u32 micb_mv[WCD_MAX_MICBIAS]; 34 u32 micb_vout[WCD_MAX_MICBIAS]; 35 }; 36 37 int wcd_get_micb_vout_ctl_val(struct device *dev, u32 micb_mv); 38 int wcd_dt_parse_micbias_info(struct wcd_common *common); 39 40 #endif /* __WCD_COMMON_H__ */ 41