#ifndef __RT712_H__
#define __RT712_H__
#include <linux/pm.h>
#include <linux/regmap.h>
#include <linux/soundwire/sdw.h>
#include <linux/soundwire/sdw_type.h>
#include <sound/soc.h>
#include <linux/workqueue.h>
struct rt712_sdca_priv { … };
struct rt712_dmic_kctrl_priv { … };
#define CH_01 …
#define CH_02 …
#define CH_03 …
#define CH_04 …
#define RT712_VENDOR_REG …
#define RT712_EQ_CTRL …
#define RT712_CHARGE_PUMP …
#define RT712_VENDOR_CALI …
#define RT712_ULTRA_SOUND_DET …
#define RT712_VENDOR_IMS_DRE …
#define RT712_VENDOR_ANALOG_CTL …
#define RT712_VENDOR_HDA_CTL …
#define RT712_JD_PRODUCT_NUM …
#define RT712_ANALOG_BIAS_CTL3 …
#define RT712_JD_CTL1 …
#define RT712_IO_CTL …
#define RT712_LDO2_3_CTL1 …
#define RT712_PARA_VERB_CTL …
#define RT712_CC_DET1 …
#define RT712_CLASSD_AMP_CTL1 …
#define RT712_CLASSD_AMP_CTL6 …
#define RT712_COMBO_JACK_AUTO_CTL1 …
#define RT712_COMBO_JACK_AUTO_CTL2 …
#define RT712_COMBO_JACK_AUTO_CTL3 …
#define RT712_DIGITAL_MISC_CTRL4 …
#define RT712_FSM_CTL …
#define RT712_SW_CONFIG1 …
#define RT712_SW_CONFIG2 …
#define RT712_HP_DET_CTL3 …
#define RT712_DAC_DC_CALI_CTL1 …
#define RT712_DAC_DC_CALI_CTL2 …
#define RT712_ULTRA_SOUND_DETECTOR6 …
#define RT712_IMS_DIGITAL_CTL1 …
#define RT712_IMS_DIGITAL_CTL5 …
#define RT712_SEL_VEE2_HP_CTL1 …
#define RT712_HP_DETECT_RLDET_CTL1 …
#define RT712_HP_DETECT_RLDET_CTL2 …
#define RT712_MISC_POWER_CTL0 …
#define RT712_MISC_POWER_CTL7 …
#define RT712_HDA_LEGACY_MUX_CTL0 …
#define RT712_HDA_LEGACY_CONFIG_CTL0 …
#define RT712_HDA_LEGACY_RESET_CTL …
#define RT712_HDA_LEGACY_GPIO_WAKE_EN_CTL …
#define RT712_DMIC_ENT_FLOAT_CTL …
#define RT712_DMIC_GAIN_ENT_FLOAT_CTL0 …
#define RT712_DMIC_GAIN_ENT_FLOAT_CTL2 …
#define RT712_ADC_ENT_FLOAT_CTL …
#define RT712_ADC_VOL_CH_FLOAT_CTL2 …
#define RT712_DAC03_HP_PDE_FLOAT_CTL …
#define RT712_MIC2_LINE2_PDE_FLOAT_CTL …
#define RT712_ADC0A_08_PDE_FLOAT_CTL …
#define RT712_ADC0B_11_PDE_FLOAT_CTL …
#define RT712_DMIC1_2_PDE_FLOAT_CTL …
#define RT712_AMP_PDE_FLOAT_CTL …
#define RT712_I2S_IN_OUT_PDE_FLOAT_CTL …
#define RT712_GE_RELATED_CTL1 …
#define RT712_GE_RELATED_CTL2 …
#define RT712_MIXER_CTL0 …
#define RT712_MIXER_CTL1 …
#define RT712_EAPD_CTL …
#define RT712_UMP_HID_CTL0 …
#define RT712_UMP_HID_CTL1 …
#define RT712_UMP_HID_CTL2 …
#define RT712_UMP_HID_CTL3 …
#define RT712_UMP_HID_CTL4 …
#define RT712_UMP_HID_CTL5 …
#define RT712_UMP_HID_CTL6 …
#define RT712_UMP_HID_CTL7 …
#define RT712_UMP_HID_CTL8 …
#define RT712_MISC_CTL_FOR_UAJ …
#define RT712_ADC0A_CS_ADC0B_FU_FLOAT_CTL …
#define RT712_DMIC2_FU_IT_FLOAT_CTL …
#define RT712_ADC0B_FU_CH12_FLOAT_CTL …
#define RT712_DMIC2_FU_CH12_FLOAT_CTL …
#define RT712_HIDDEN_REG_SW_RESET …
#define RT712_COMBOJACK_AUTO_DET_STATUS …
#define RT712_COMBOJACK_AUTO_DET_TRS …
#define RT712_COMBOJACK_AUTO_DET_CTIA …
#define RT712_COMBOJACK_AUTO_DET_OMTP …
#define RT712_DAC_DC_CALI_TRIGGER …
#define RT712_EAPD_HIGH …
#define RT712_EAPD_LOW …
#define RT712_RC_CAL …
#define RT712_BUF_ADDR_HID1 …
#define RT712_BUF_ADDR_HID2 …
#define FUNC_NUM_JACK_CODEC …
#define FUNC_NUM_MIC_ARRAY …
#define FUNC_NUM_HID …
#define FUNC_NUM_AMP …
#define RT712_SDCA_ENT0 …
#define RT712_SDCA_ENT_HID01 …
#define RT712_SDCA_ENT_GE49 …
#define RT712_SDCA_ENT_USER_FU05 …
#define RT712_SDCA_ENT_USER_FU06 …
#define RT712_SDCA_ENT_USER_FU0F …
#define RT712_SDCA_ENT_USER_FU10 …
#define RT712_SDCA_ENT_USER_FU1E …
#define RT712_SDCA_ENT_FU15 …
#define RT712_SDCA_ENT_PDE23 …
#define RT712_SDCA_ENT_PDE40 …
#define RT712_SDCA_ENT_PDE11 …
#define RT712_SDCA_ENT_PDE12 …
#define RT712_SDCA_ENT_CS01 …
#define RT712_SDCA_ENT_CS11 …
#define RT712_SDCA_ENT_CS1F …
#define RT712_SDCA_ENT_CS1C …
#define RT712_SDCA_ENT_CS31 …
#define RT712_SDCA_ENT_OT23 …
#define RT712_SDCA_ENT_IT11 …
#define RT712_SDCA_ENT_IT26 …
#define RT712_SDCA_ENT_IT09 …
#define RT712_SDCA_ENT_PLATFORM_FU15 …
#define RT712_SDCA_ENT_PLATFORM_FU44 …
#define RT712_SDCA_CTL_SAMPLE_FREQ_INDEX …
#define RT712_SDCA_CTL_FU_MUTE …
#define RT712_SDCA_CTL_FU_VOLUME …
#define RT712_SDCA_CTL_HIDTX_CURRENT_OWNER …
#define RT712_SDCA_CTL_HIDTX_SET_OWNER_TO_DEVICE …
#define RT712_SDCA_CTL_HIDTX_MESSAGE_OFFSET …
#define RT712_SDCA_CTL_HIDTX_MESSAGE_LENGTH …
#define RT712_SDCA_CTL_SELECTED_MODE …
#define RT712_SDCA_CTL_DETECTED_MODE …
#define RT712_SDCA_CTL_REQ_POWER_STATE …
#define RT712_SDCA_CTL_VENDOR_DEF …
#define RT712_SDCA_CTL_FU_CH_GAIN …
#define RT712_SDCA_CTL_FUNC_STATUS …
#define FUNCTION_NEEDS_INITIALIZATION …
#define FUNCTION_HAS_BEEN_RESET …
#define FUNCTION_BUSY …
#define RT712_SDCA_RATE_16000HZ …
#define RT712_SDCA_RATE_32000HZ …
#define RT712_SDCA_RATE_44100HZ …
#define RT712_SDCA_RATE_48000HZ …
#define RT712_SDCA_RATE_96000HZ …
#define RT712_SDCA_RATE_192000HZ …
enum { … };
enum rt712_sdca_jd_src { … };
enum rt712_sdca_hw_id { … };
#define RT712_PART_ID_713 …
enum rt712_sdca_version { … };
int rt712_sdca_io_init(struct device *dev, struct sdw_slave *slave);
int rt712_sdca_init(struct device *dev, struct regmap *regmap,
struct regmap *mbq_regmap, struct sdw_slave *slave);
int rt712_sdca_jack_detect(struct rt712_sdca_priv *rt712, bool *hp, bool *mic);
#endif