47 lines
1.2 KiB
C
47 lines
1.2 KiB
C
/* 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__ */
|