// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2023, Linaro Limited
 */

#include <linux/module.h>
#include <linux/slab.h>
#include <linux/platform_device.h>
#include <linux/device.h>
#include <linux/kernel.h>
#include <linux/component.h>
#include <linux/pm_runtime.h>
#include <linux/irq.h>
#include <linux/irqdomain.h>
#include <linux/of.h>
#include <linux/soundwire/sdw.h>
#include <linux/soundwire/sdw_type.h>
#include <linux/soundwire/sdw_registers.h>
#include <linux/regmap.h>
#include <sound/soc.h>
#include <sound/soc-dapm.h>
#include "wcd939x.h"
#include "wcd-common.h"

static const struct wcd_sdw_ch_info wcd939x_sdw_rx_ch_info[] = {
	WCD_SDW_CH(WCD939X_HPH_L, WCD939X_HPH_PORT, BIT(0)),
	WCD_SDW_CH(WCD939X_HPH_R, WCD939X_HPH_PORT, BIT(1)),
	WCD_SDW_CH(WCD939X_CLSH, WCD939X_CLSH_PORT, BIT(0)),
	WCD_SDW_CH(WCD939X_COMP_L, WCD939X_COMP_PORT, BIT(0)),
	WCD_SDW_CH(WCD939X_COMP_R, WCD939X_COMP_PORT, BIT(1)),
	WCD_SDW_CH(WCD939X_LO, WCD939X_LO_PORT, BIT(0)),
	WCD_SDW_CH(WCD939X_DSD_L, WCD939X_DSD_PORT, BIT(0)),
	WCD_SDW_CH(WCD939X_DSD_R, WCD939X_DSD_PORT, BIT(1)),
	WCD_SDW_CH(WCD939X_HIFI_PCM_L, WCD939X_HIFI_PCM_PORT, BIT(0)),
	WCD_SDW_CH(WCD939X_HIFI_PCM_R, WCD939X_HIFI_PCM_PORT, BIT(1)),
};

static const struct wcd_sdw_ch_info wcd939x_sdw_tx_ch_info[] = {
	WCD_SDW_CH(WCD939X_ADC1, WCD939X_ADC_1_4_PORT, BIT(0)),
	WCD_SDW_CH(WCD939X_ADC2, WCD939X_ADC_1_4_PORT, BIT(1)),
	WCD_SDW_CH(WCD939X_ADC3, WCD939X_ADC_1_4_PORT, BIT(2)),
	WCD_SDW_CH(WCD939X_ADC4, WCD939X_ADC_1_4_PORT, BIT(3)),
	WCD_SDW_CH(WCD939X_DMIC0, WCD939X_DMIC_0_3_MBHC_PORT, BIT(0)),
	WCD_SDW_CH(WCD939X_DMIC1, WCD939X_DMIC_0_3_MBHC_PORT, BIT(1)),
	WCD_SDW_CH(WCD939X_MBHC, WCD939X_DMIC_0_3_MBHC_PORT, BIT(2)),
	WCD_SDW_CH(WCD939X_DMIC2, WCD939X_DMIC_0_3_MBHC_PORT, BIT(2)),
	WCD_SDW_CH(WCD939X_DMIC3, WCD939X_DMIC_0_3_MBHC_PORT, BIT(3)),
	WCD_SDW_CH(WCD939X_DMIC4, WCD939X_DMIC_3_7_PORT, BIT(0)),
	WCD_SDW_CH(WCD939X_DMIC5, WCD939X_DMIC_3_7_PORT, BIT(1)),
	WCD_SDW_CH(WCD939X_DMIC6, WCD939X_DMIC_3_7_PORT, BIT(2)),
	WCD_SDW_CH(WCD939X_DMIC7, WCD939X_DMIC_3_7_PORT, BIT(3)),
};

static struct sdw_dpn_prop wcd939x_rx_dpn_prop[WCD939X_MAX_RX_SWR_PORTS] = {
	{
		.num = WCD939X_HPH_PORT,
		.type = SDW_DPN_SIMPLE,
		.min_ch = 1,
		.max_ch = 2,
		.simple_ch_prep_sm = true,
	},
	{
		.num = WCD939X_CLSH_PORT,
		.type = SDW_DPN_SIMPLE,
		.min_ch = 1,
		.max_ch = 1,
		.simple_ch_prep_sm = true,
	},
	{
		.num = WCD939X_COMP_PORT,
		.type = SDW_DPN_SIMPLE,
		.min_ch = 1,
		.max_ch = 2,
		.simple_ch_prep_sm = true,
	},
	{
		.num = WCD939X_LO_PORT,
		.type = SDW_DPN_SIMPLE,
		.min_ch = 1,
		.max_ch = 1,
		.simple_ch_prep_sm = true,
	},
	{
		.num = WCD939X_DSD_PORT,
		.type = SDW_DPN_SIMPLE,
		.min_ch = 1,
		.max_ch = 2,
		.simple_ch_prep_sm = true,
	},
	{
		.num = WCD939X_HIFI_PCM_PORT,
		.type = SDW_DPN_SIMPLE,
		.min_ch = 1,
		.max_ch = 2,
		.simple_ch_prep_sm = true,
	}
};

static struct sdw_dpn_prop wcd939x_tx_dpn_prop[WCD939X_MAX_TX_SWR_PORTS] = {
	{
		.num = WCD939X_ADC_1_4_PORT,
		.type = SDW_DPN_SIMPLE,
		.min_ch = 1,
		.max_ch = 4,
		.simple_ch_prep_sm = true,
	},
	{
		.num = WCD939X_ADC_DMIC_1_2_PORT,
		.type = SDW_DPN_SIMPLE,
		.min_ch = 1,
		.max_ch = 4,
		.simple_ch_prep_sm = true,
	},
	{
		.num = WCD939X_DMIC_0_3_MBHC_PORT,
		.type = SDW_DPN_SIMPLE,
		.min_ch = 1,
		.max_ch = 4,
		.simple_ch_prep_sm = true,
	},
	{
		.num = WCD939X_DMIC_3_7_PORT,
		.type = SDW_DPN_SIMPLE,
		.min_ch = 1,
		.max_ch = 4,
		.simple_ch_prep_sm = true,
	}
};

int wcd939x_sdw_hw_params(struct wcd939x_sdw_priv *wcd,
			  struct snd_pcm_substream *substream,
			  struct snd_pcm_hw_params *params,
			  struct snd_soc_dai *dai)
{
	struct sdw_port_config port_config[WCD939X_MAX_SWR_PORTS];
	unsigned long ch_mask;
	int i, j;

	wcd->sconfig.ch_count = 1;
	wcd->active_ports = 0;
	for (i = 0; i < WCD939X_MAX_SWR_PORTS; i++) {
		ch_mask = wcd->port_config[i].ch_mask;

		if (!ch_mask)
			continue;

		for_each_set_bit(j, &ch_mask, 4)
			wcd->sconfig.ch_count++;

		port_config[wcd->active_ports] = wcd->port_config[i];
		wcd->active_ports++;
	}

	wcd->sconfig.bps = 1;
	wcd->sconfig.frame_rate = params_rate(params);
	if (wcd->is_tx)
		wcd->sconfig.direction = SDW_DATA_DIR_TX;
	else
		wcd->sconfig.direction = SDW_DATA_DIR_RX;

	wcd->sconfig.type = SDW_STREAM_PCM;

	return sdw_stream_add_slave(wcd->sdev, &wcd->sconfig, &port_config[0],
				    wcd->active_ports, wcd->sruntime);
}
EXPORT_SYMBOL_GPL(wcd939x_sdw_hw_params);

int wcd939x_sdw_free(struct wcd939x_sdw_priv *wcd,
		     struct snd_pcm_substream *substream,
		     struct snd_soc_dai *dai)
{
	sdw_stream_remove_slave(wcd->sdev, wcd->sruntime);

	return 0;
}
EXPORT_SYMBOL_GPL(wcd939x_sdw_free);

int wcd939x_sdw_set_sdw_stream(struct wcd939x_sdw_priv *wcd,
			       struct snd_soc_dai *dai, void *stream,
			       int direction)
{
	wcd->sruntime = stream;

	return 0;
}
EXPORT_SYMBOL_GPL(wcd939x_sdw_set_sdw_stream);

/*
 * Handle Soundwire out-of-band interrupt event by triggering
 * the first irq of the slave_irq irq domain, which then will
 * be handled by the regmap_irq threaded irq.
 * Looping is to ensure no interrupts were missed in the process.
 */
static int wcd9390_interrupt_callback(struct sdw_slave *slave,
				      struct sdw_slave_intr_status *status)
{
	struct wcd939x_sdw_priv *wcd = dev_get_drvdata(&slave->dev);

	return wcd_interrupt_callback(slave, wcd->slave_irq, WCD939X_DIGITAL_INTR_STATUS_0,
			WCD939X_DIGITAL_INTR_STATUS_1, WCD939X_DIGITAL_INTR_STATUS_2);
}

static const struct reg_default wcd939x_defaults[] = {
	/* Default values except for Read-Only & Volatile registers */
	{ WCD939X_ANA_PAGE, 0x00 },
	{ WCD939X_ANA_BIAS, 0x00 },
	{ WCD939X_ANA_RX_SUPPLIES, 0x00 },
	{ WCD939X_ANA_HPH, 0x0c },
	{ WCD939X_ANA_EAR, 0x00 },
	{ WCD939X_ANA_EAR_COMPANDER_CTL, 0x02 },
	{ WCD939X_ANA_TX_CH1, 0x20 },
	{ WCD939X_ANA_TX_CH2, 0x00 },
	{ WCD939X_ANA_TX_CH3, 0x20 },
	{ WCD939X_ANA_TX_CH4, 0x00 },
	{ WCD939X_ANA_MICB1_MICB2_DSP_EN_LOGIC, 0x00 },
	{ WCD939X_ANA_MICB3_DSP_EN_LOGIC, 0x00 },
	{ WCD939X_ANA_MBHC_MECH, 0x39 },
	{ WCD939X_ANA_MBHC_ELECT, 0x08 },
	{ WCD939X_ANA_MBHC_ZDET, 0x00 },
	{ WCD939X_ANA_MBHC_BTN0, 0x00 },
	{ WCD939X_ANA_MBHC_BTN1, 0x10 },
	{ WCD939X_ANA_MBHC_BTN2, 0x20 },
	{ WCD939X_ANA_MBHC_BTN3, 0x30 },
	{ WCD939X_ANA_MBHC_BTN4, 0x40 },
	{ WCD939X_ANA_MBHC_BTN5, 0x50 },
	{ WCD939X_ANA_MBHC_BTN6, 0x60 },
	{ WCD939X_ANA_MBHC_BTN7, 0x70 },
	{ WCD939X_ANA_MICB1, 0x10 },
	{ WCD939X_ANA_MICB2, 0x10 },
	{ WCD939X_ANA_MICB2_RAMP, 0x00 },
	{ WCD939X_ANA_MICB3, 0x00 },
	{ WCD939X_ANA_MICB4, 0x00 },
	{ WCD939X_BIAS_CTL, 0x2a },
	{ WCD939X_BIAS_VBG_FINE_ADJ, 0x55 },
	{ WCD939X_LDOL_VDDCX_ADJUST, 0x01 },
	{ WCD939X_LDOL_DISABLE_LDOL, 0x00 },
	{ WCD939X_MBHC_CTL_CLK, 0x00 },
	{ WCD939X_MBHC_CTL_ANA, 0x00 },
	{ WCD939X_MBHC_ZDET_VNEG_CTL, 0x00 },
	{ WCD939X_MBHC_ZDET_BIAS_CTL, 0x46 },
	{ WCD939X_MBHC_CTL_BCS, 0x00 },
	{ WCD939X_MBHC_TEST_CTL, 0x00 },
	{ WCD939X_LDOH_MODE, 0x2b },
	{ WCD939X_LDOH_BIAS, 0x68 },
	{ WCD939X_LDOH_STB_LOADS, 0x00 },
	{ WCD939X_LDOH_SLOWRAMP, 0x50 },
	{ WCD939X_MICB1_TEST_CTL_1, 0x1a },
	{ WCD939X_MICB1_TEST_CTL_2, 0x00 },
	{ WCD939X_MICB1_TEST_CTL_3, 0xa4 },
	{ WCD939X_MICB2_TEST_CTL_1, 0x1a },
	{ WCD939X_MICB2_TEST_CTL_2, 0x00 },
	{ WCD939X_MICB2_TEST_CTL_3, 0x24 },
	{ WCD939X_MICB3_TEST_CTL_1, 0x9a },
	{ WCD939X_MICB3_TEST_CTL_2, 0x80 },
	{ WCD939X_MICB3_TEST_CTL_3, 0x24 },
	{ WCD939X_MICB4_TEST_CTL_1, 0x1a },
	{ WCD939X_MICB4_TEST_CTL_2, 0x80 },
	{ WCD939X_MICB4_TEST_CTL_3, 0x24 },
	{ WCD939X_TX_COM_ADC_VCM, 0x39 },
	{ WCD939X_TX_COM_BIAS_ATEST, 0xe0 },
	{ WCD939X_TX_COM_SPARE1, 0x00 },
	{ WCD939X_TX_COM_SPARE2, 0x00 },
	{ WCD939X_TX_COM_TXFE_DIV_CTL, 0x22 },
	{ WCD939X_TX_COM_TXFE_DIV_START, 0x00 },
	{ WCD939X_TX_COM_SPARE3, 0x00 },
	{ WCD939X_TX_COM_SPARE4, 0x00 },
	{ WCD939X_TX_1_2_TEST_EN, 0xcc },
	{ WCD939X_TX_1_2_ADC_IB, 0xe9 },
	{ WCD939X_TX_1_2_ATEST_REFCTL, 0x0b },
	{ WCD939X_TX_1_2_TEST_CTL, 0x38 },
	{ WCD939X_TX_1_2_TEST_BLK_EN1, 0xff },
	{ WCD939X_TX_1_2_TXFE1_CLKDIV, 0x00 },
	{ WCD939X_TX_3_4_TEST_EN, 0xcc },
	{ WCD939X_TX_3_4_ADC_IB, 0xe9 },
	{ WCD939X_TX_3_4_ATEST_REFCTL, 0x0b },
	{ WCD939X_TX_3_4_TEST_CTL, 0x38 },
	{ WCD939X_TX_3_4_TEST_BLK_EN3, 0xff },
	{ WCD939X_TX_3_4_TXFE3_CLKDIV, 0x00 },
	{ WCD939X_TX_3_4_TEST_BLK_EN2, 0xfb },
	{ WCD939X_TX_3_4_TXFE2_CLKDIV, 0x00 },
	{ WCD939X_TX_3_4_SPARE1, 0x00 },
	{ WCD939X_TX_3_4_TEST_BLK_EN4, 0xfb },
	{ WCD939X_TX_3_4_TXFE4_CLKDIV, 0x00 },
	{ WCD939X_TX_3_4_SPARE2, 0x00 },
	{ WCD939X_CLASSH_MODE_1, 0x40 },
	{ WCD939X_CLASSH_MODE_2, 0x3a },
	{ WCD939X_CLASSH_MODE_3, 0xf0 },
	{ WCD939X_CLASSH_CTRL_VCL_1, 0x7c },
	{ WCD939X_CLASSH_CTRL_VCL_2, 0x82 },
	{ WCD939X_CLASSH_CTRL_CCL_1, 0x31 },
	{ WCD939X_CLASSH_CTRL_CCL_2, 0x80 },
	{ WCD939X_CLASSH_CTRL_CCL_3, 0x80 },
	{ WCD939X_CLASSH_CTRL_CCL_4, 0x51 },
	{ WCD939X_CLASSH_CTRL_CCL_5, 0x00 },
	{ WCD939X_CLASSH_BUCK_TMUX_A_D, 0x00 },
	{ WCD939X_CLASSH_BUCK_SW_DRV_CNTL, 0x77 },
	{ WCD939X_CLASSH_SPARE, 0x80 },
	{ WCD939X_FLYBACK_EN, 0x4e },
	{ WCD939X_FLYBACK_VNEG_CTRL_1, 0x0b },
	{ WCD939X_FLYBACK_VNEG_CTRL_2, 0x45 },
	{ WCD939X_FLYBACK_VNEG_CTRL_3, 0x14 },
	{ WCD939X_FLYBACK_VNEG_CTRL_4, 0xdb },
	{ WCD939X_FLYBACK_VNEG_CTRL_5, 0x83 },
	{ WCD939X_FLYBACK_VNEG_CTRL_6, 0x98 },
	{ WCD939X_FLYBACK_VNEG_CTRL_7, 0xa9 },
	{ WCD939X_FLYBACK_VNEG_CTRL_8, 0x68 },
	{ WCD939X_FLYBACK_VNEG_CTRL_9, 0x66 },
	{ WCD939X_FLYBACK_VNEGDAC_CTRL_1, 0xed },
	{ WCD939X_FLYBACK_VNEGDAC_CTRL_2, 0xf8 },
	{ WCD939X_FLYBACK_VNEGDAC_CTRL_3, 0xa6 },
	{ WCD939X_FLYBACK_CTRL_1, 0x65 },
	{ WCD939X_FLYBACK_TEST_CTL, 0x02 },
	{ WCD939X_RX_AUX_SW_CTL, 0x00 },
	{ WCD939X_RX_PA_AUX_IN_CONN, 0x01 },
	{ WCD939X_RX_TIMER_DIV, 0x32 },
	{ WCD939X_RX_OCP_CTL, 0x1f },
	{ WCD939X_RX_OCP_COUNT, 0x77 },
	{ WCD939X_RX_BIAS_EAR_DAC, 0xa0 },
	{ WCD939X_RX_BIAS_EAR_AMP, 0xaa },
	{ WCD939X_RX_BIAS_HPH_LDO, 0xa9 },
	{ WCD939X_RX_BIAS_HPH_PA, 0xaa },
	{ WCD939X_RX_BIAS_HPH_RDACBUFF_CNP2, 0xca },
	{ WCD939X_RX_BIAS_HPH_RDAC_LDO, 0x88 },
	{ WCD939X_RX_BIAS_HPH_CNP1, 0x82 },
	{ WCD939X_RX_BIAS_HPH_LOWPOWER, 0x82 },
	{ WCD939X_RX_BIAS_AUX_DAC, 0xa0 },
	{ WCD939X_RX_BIAS_AUX_AMP, 0xaa },
	{ WCD939X_RX_BIAS_VNEGDAC_BLEEDER, 0x50 },
	{ WCD939X_RX_BIAS_MISC, 0x00 },
	{ WCD939X_RX_BIAS_BUCK_RST, 0x08 },
	{ WCD939X_RX_BIAS_BUCK_VREF_ERRAMP, 0x44 },
	{ WCD939X_RX_BIAS_FLYB_ERRAMP, 0x40 },
	{ WCD939X_RX_BIAS_FLYB_BUFF, 0xaa },
	{ WCD939X_RX_BIAS_FLYB_MID_RST, 0x14 },
	{ WCD939X_HPH_CNP_EN, 0x80 },
	{ WCD939X_HPH_CNP_WG_CTL, 0x9a },
	{ WCD939X_HPH_CNP_WG_TIME, 0x14 },
	{ WCD939X_HPH_OCP_CTL, 0x28 },
	{ WCD939X_HPH_AUTO_CHOP, 0x56 },
	{ WCD939X_HPH_CHOP_CTL, 0x83 },
	{ WCD939X_HPH_PA_CTL1, 0x46 },
	{ WCD939X_HPH_PA_CTL2, 0x50 },
	{ WCD939X_HPH_L_EN, 0x80 },
	{ WCD939X_HPH_L_TEST, 0xe0 },
	{ WCD939X_HPH_L_ATEST, 0x50 },
	{ WCD939X_HPH_R_EN, 0x80 },
	{ WCD939X_HPH_R_TEST, 0xe0 },
	{ WCD939X_HPH_R_ATEST, 0x50 },
	{ WCD939X_HPH_RDAC_CLK_CTL1, 0x80 },
	{ WCD939X_HPH_RDAC_CLK_CTL2, 0x0b },
	{ WCD939X_HPH_RDAC_LDO_CTL, 0x33 },
	{ WCD939X_HPH_RDAC_CHOP_CLK_LP_CTL, 0x00 },
	{ WCD939X_HPH_REFBUFF_UHQA_CTL, 0x00 },
	{ WCD939X_HPH_REFBUFF_LP_CTL, 0x8e },
	{ WCD939X_HPH_L_DAC_CTL, 0x20 },
	{ WCD939X_HPH_R_DAC_CTL, 0x20 },
	{ WCD939X_HPH_SURGE_COMP_SEL, 0x55 },
	{ WCD939X_HPH_SURGE_EN, 0x19 },
	{ WCD939X_HPH_SURGE_MISC1, 0xa0 },
	{ WCD939X_EAR_EN, 0x22 },
	{ WCD939X_EAR_PA_CON, 0x44 },
	{ WCD939X_EAR_SP_CON, 0xdb },
	{ WCD939X_EAR_DAC_CON, 0x80 },
	{ WCD939X_EAR_CNP_FSM_CON, 0xb2 },
	{ WCD939X_EAR_TEST_CTL, 0x00 },
	{ WCD939X_FLYBACK_NEW_CTRL_2, 0x00 },
	{ WCD939X_FLYBACK_NEW_CTRL_3, 0x00 },
	{ WCD939X_FLYBACK_NEW_CTRL_4, 0x44 },
	{ WCD939X_ANA_NEW_PAGE, 0x00 },
	{ WCD939X_HPH_NEW_ANA_HPH2, 0x00 },
	{ WCD939X_HPH_NEW_ANA_HPH3, 0x00 },
	{ WCD939X_SLEEP_CTL, 0x18 },
	{ WCD939X_SLEEP_WATCHDOG_CTL, 0x00 },
	{ WCD939X_MBHC_NEW_ELECT_REM_CLAMP_CTL, 0x00 },
	{ WCD939X_MBHC_NEW_CTL_1, 0x02 },
	{ WCD939X_MBHC_NEW_CTL_2, 0x05 },
	{ WCD939X_MBHC_NEW_PLUG_DETECT_CTL, 0xe9 },
	{ WCD939X_MBHC_NEW_ZDET_ANA_CTL, 0x0f },
	{ WCD939X_MBHC_NEW_ZDET_RAMP_CTL, 0x00 },
	{ WCD939X_TX_NEW_CH12_MUX, 0x11 },
	{ WCD939X_TX_NEW_CH34_MUX, 0x23 },
	{ WCD939X_DIE_CRACK_DET_EN, 0x00 },
	{ WCD939X_HPH_NEW_INT_RDAC_GAIN_CTL, 0x00 },
	{ WCD939X_HPH_NEW_INT_PA_GAIN_CTL_L, 0x00 },
	{ WCD939X_HPH_NEW_INT_RDAC_VREF_CTL, 0x08 },
	{ WCD939X_HPH_NEW_INT_RDAC_OVERRIDE_CTL, 0x00 },
	{ WCD939X_HPH_NEW_INT_PA_GAIN_CTL_R, 0x00 },
	{ WCD939X_HPH_NEW_INT_PA_MISC1, 0x32 },
	{ WCD939X_HPH_NEW_INT_PA_MISC2, 0x00 },
	{ WCD939X_HPH_NEW_INT_PA_RDAC_MISC, 0x00 },
	{ WCD939X_HPH_NEW_INT_TIMER1, 0xfe },
	{ WCD939X_HPH_NEW_INT_TIMER2, 0x02 },
	{ WCD939X_HPH_NEW_INT_TIMER3, 0x4e },
	{ WCD939X_HPH_NEW_INT_TIMER4, 0x54 },
	{ WCD939X_HPH_NEW_INT_PA_RDAC_MISC2, 0x0b },
	{ WCD939X_HPH_NEW_INT_PA_RDAC_MISC3, 0x00 },
	{ WCD939X_HPH_NEW_INT_RDAC_HD2_CTL_L, 0xa0 },
	{ WCD939X_HPH_NEW_INT_RDAC_HD2_CTL_R, 0xa0 },
	{ WCD939X_RX_NEW_INT_HPH_RDAC_BIAS_LOHIFI, 0x64 },
	{ WCD939X_RX_NEW_INT_HPH_RDAC_BIAS_ULP, 0x01 },
	{ WCD939X_RX_NEW_INT_HPH_RDAC_LDO_LP, 0x11 },
	{ WCD939X_MBHC_NEW_INT_MOISTURE_DET_DC_CTRL, 0x57 },
	{ WCD939X_MBHC_NEW_INT_MOISTURE_DET_POLLING_CTRL, 0x01 },
	{ WCD939X_MBHC_NEW_INT_MECH_DET_CURRENT, 0x00 },
	{ WCD939X_MBHC_NEW_INT_ZDET_CLK_AND_MOISTURE_CTL_NEW, 0x47 },
	{ WCD939X_EAR_INT_NEW_CHOPPER_CON, 0xa8 },
	{ WCD939X_EAR_INT_NEW_CNP_VCM_CON1, 0x42 },
	{ WCD939X_EAR_INT_NEW_CNP_VCM_CON2, 0x22 },
	{ WCD939X_EAR_INT_NEW_DYNAMIC_BIAS, 0x00 },
	{ WCD939X_SLEEP_INT_WATCHDOG_CTL_1, 0x0a },
	{ WCD939X_SLEEP_INT_WATCHDOG_CTL_2, 0x0a },
	{ WCD939X_DIE_CRACK_INT_DET_INT1, 0x02 },
	{ WCD939X_DIE_CRACK_INT_DET_INT2, 0x60 },
	{ WCD939X_TX_COM_NEW_INT_FE_DIVSTOP_L2, 0xff },
	{ WCD939X_TX_COM_NEW_INT_FE_DIVSTOP_L1, 0x7f },
	{ WCD939X_TX_COM_NEW_INT_FE_DIVSTOP_L0, 0x3f },
	{ WCD939X_TX_COM_NEW_INT_FE_DIVSTOP_ULP1P2M, 0x1f },
	{ WCD939X_TX_COM_NEW_INT_FE_DIVSTOP_ULP0P6M, 0x0f },
	{ WCD939X_TX_COM_NEW_INT_FE_ICTRL_STG1_L2L1, 0xd7 },
	{ WCD939X_TX_COM_NEW_INT_FE_ICTRL_STG1_L0, 0xc8 },
	{ WCD939X_TX_COM_NEW_INT_FE_ICTRL_STG1_ULP, 0xc6 },
	{ WCD939X_TX_COM_NEW_INT_FE_ICTRL_STG2MAIN_L2L1, 0x95 },
	{ WCD939X_TX_COM_NEW_INT_FE_ICTRL_STG2MAIN_L0, 0x6a },
	{ WCD939X_TX_COM_NEW_INT_FE_ICTRL_STG2MAIN_ULP, 0x05 },
	{ WCD939X_TX_COM_NEW_INT_FE_ICTRL_STG2CASC_L2L1L0, 0xa5 },
	{ WCD939X_TX_COM_NEW_INT_FE_ICTRL_STG2CASC_ULP, 0x13 },
	{ WCD939X_TX_COM_NEW_INT_ADC_SCBIAS_L2L1, 0x88 },
	{ WCD939X_TX_COM_NEW_INT_ADC_SCBIAS_L0ULP, 0x42 },
	{ WCD939X_TX_COM_NEW_INT_ADC_INT_L2, 0xff },
	{ WCD939X_TX_COM_NEW_INT_ADC_INT_L1, 0x64 },
	{ WCD939X_TX_COM_NEW_INT_ADC_INT_L0, 0x64 },
	{ WCD939X_TX_COM_NEW_INT_ADC_INT_ULP, 0x77 },
	{ WCD939X_DIGITAL_PAGE, 0x00 },
	{ WCD939X_DIGITAL_SWR_TX_CLK_RATE, 0x00 },
	{ WCD939X_DIGITAL_CDC_RST_CTL, 0x03 },
	{ WCD939X_DIGITAL_TOP_CLK_CFG, 0x00 },
	{ WCD939X_DIGITAL_CDC_ANA_CLK_CTL, 0x00 },
	{ WCD939X_DIGITAL_CDC_DIG_CLK_CTL, 0xf0 },
	{ WCD939X_DIGITAL_SWR_RST_EN, 0x00 },
	{ WCD939X_DIGITAL_CDC_PATH_MODE, 0x55 },
	{ WCD939X_DIGITAL_CDC_RX_RST, 0x00 },
	{ WCD939X_DIGITAL_CDC_RX0_CTL, 0xfc },
	{ WCD939X_DIGITAL_CDC_RX1_CTL, 0xfc },
	{ WCD939X_DIGITAL_CDC_RX2_CTL, 0xfc },
	{ WCD939X_DIGITAL_CDC_TX_ANA_MODE_0_1, 0x00 },
	{ WCD939X_DIGITAL_CDC_TX_ANA_MODE_2_3, 0x00 },
	{ WCD939X_DIGITAL_CDC_COMP_CTL_0, 0x00 },
	{ WCD939X_DIGITAL_CDC_ANA_TX_CLK_CTL, 0x1e },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_A1_0, 0x00 },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_A1_1, 0x01 },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_A2_0, 0x63 },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_A2_1, 0x04 },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_A3_0, 0xac },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_A3_1, 0x04 },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_A4_0, 0x1a },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_A4_1, 0x03 },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_A5_0, 0xbc },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_A5_1, 0x02 },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_A6_0, 0xc7 },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_A7_0, 0xf8 },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_C_0, 0x47 },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_C_1, 0x43 },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_C_2, 0xb1 },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_C_3, 0x17 },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_R1, 0x4d },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_R2, 0x29 },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_R3, 0x34 },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_R4, 0x59 },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_R5, 0x66 },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_R6, 0x87 },
	{ WCD939X_DIGITAL_CDC_HPH_DSM_R7, 0x64 },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_A1_0, 0x00 },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_A1_1, 0x01 },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_A2_0, 0x96 },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_A2_1, 0x09 },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_A3_0, 0xab },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_A3_1, 0x05 },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_A4_0, 0x1c },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_A4_1, 0x02 },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_A5_0, 0x17 },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_A5_1, 0x02 },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_A6_0, 0xaa },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_A7_0, 0xe3 },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_C_0, 0x69 },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_C_1, 0x54 },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_C_2, 0x02 },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_C_3, 0x15 },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_R1, 0xa4 },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_R2, 0xb5 },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_R3, 0x86 },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_R4, 0x85 },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_R5, 0xaa },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_R6, 0xe2 },
	{ WCD939X_DIGITAL_CDC_EAR_DSM_R7, 0x62 },
	{ WCD939X_DIGITAL_CDC_HPH_GAIN_RX_0, 0x55 },
	{ WCD939X_DIGITAL_CDC_HPH_GAIN_RX_1, 0xa9 },
	{ WCD939X_DIGITAL_CDC_HPH_GAIN_DSD_0, 0x3d },
	{ WCD939X_DIGITAL_CDC_HPH_GAIN_DSD_1, 0x2e },
	{ WCD939X_DIGITAL_CDC_HPH_GAIN_DSD_2, 0x01 },
	{ WCD939X_DIGITAL_CDC_EAR_GAIN_DSD_0, 0x00 },
	{ WCD939X_DIGITAL_CDC_EAR_GAIN_DSD_1, 0xfc },
	{ WCD939X_DIGITAL_CDC_EAR_GAIN_DSD_2, 0x01 },
	{ WCD939X_DIGITAL_CDC_HPH_GAIN_CTL, 0x00 },
	{ WCD939X_DIGITAL_CDC_EAR_GAIN_CTL, 0x00 },
	{ WCD939X_DIGITAL_CDC_EAR_PATH_CTL, 0x00 },
	{ WCD939X_DIGITAL_CDC_SWR_CLH, 0x00 },
	{ WCD939X_DIGITAL_SWR_CLH_BYP, 0x00 },
	{ WCD939X_DIGITAL_CDC_TX0_CTL, 0x68 },
	{ WCD939X_DIGITAL_CDC_TX1_CTL, 0x68 },
	{ WCD939X_DIGITAL_CDC_TX2_CTL, 0x68 },
	{ WCD939X_DIGITAL_CDC_TX_RST, 0x00 },
	{ WCD939X_DIGITAL_CDC_REQ_CTL, 0x01 },
	{ WCD939X_DIGITAL_CDC_RST, 0x00 },
	{ WCD939X_DIGITAL_CDC_AMIC_CTL, 0x0f },
	{ WCD939X_DIGITAL_CDC_DMIC_CTL, 0x04 },
	{ WCD939X_DIGITAL_CDC_DMIC1_CTL, 0x01 },
	{ WCD939X_DIGITAL_CDC_DMIC2_CTL, 0x01 },
	{ WCD939X_DIGITAL_CDC_DMIC3_CTL, 0x01 },
	{ WCD939X_DIGITAL_CDC_DMIC4_CTL, 0x01 },
	{ WCD939X_DIGITAL_EFUSE_PRG_CTL, 0x00 },
	{ WCD939X_DIGITAL_EFUSE_CTL, 0x2b },
	{ WCD939X_DIGITAL_CDC_DMIC_RATE_1_2, 0x11 },
	{ WCD939X_DIGITAL_CDC_DMIC_RATE_3_4, 0x11 },
	{ WCD939X_DIGITAL_PDM_WD_CTL0, 0x00 },
	{ WCD939X_DIGITAL_PDM_WD_CTL1, 0x00 },
	{ WCD939X_DIGITAL_PDM_WD_CTL2, 0x00 },
	{ WCD939X_DIGITAL_INTR_MODE, 0x00 },
	{ WCD939X_DIGITAL_INTR_MASK_0, 0xff },
	{ WCD939X_DIGITAL_INTR_MASK_1, 0xe7 },
	{ WCD939X_DIGITAL_INTR_MASK_2, 0x0e },
	{ WCD939X_DIGITAL_INTR_CLEAR_0, 0x00 },
	{ WCD939X_DIGITAL_INTR_CLEAR_1, 0x00 },
	{ WCD939X_DIGITAL_INTR_CLEAR_2, 0x00 },
	{ WCD939X_DIGITAL_INTR_LEVEL_0, 0x00 },
	{ WCD939X_DIGITAL_INTR_LEVEL_1, 0x00 },
	{ WCD939X_DIGITAL_INTR_LEVEL_2, 0x00 },
	{ WCD939X_DIGITAL_INTR_SET_0, 0x00 },
	{ WCD939X_DIGITAL_INTR_SET_1, 0x00 },
	{ WCD939X_DIGITAL_INTR_SET_2, 0x00 },
	{ WCD939X_DIGITAL_INTR_TEST_0, 0x00 },
	{ WCD939X_DIGITAL_INTR_TEST_1, 0x00 },
	{ WCD939X_DIGITAL_INTR_TEST_2, 0x00 },
	{ WCD939X_DIGITAL_TX_MODE_DBG_EN, 0x00 },
	{ WCD939X_DIGITAL_TX_MODE_DBG_0_1, 0x00 },
	{ WCD939X_DIGITAL_TX_MODE_DBG_2_3, 0x00 },
	{ WCD939X_DIGITAL_LB_IN_SEL_CTL, 0x00 },
	{ WCD939X_DIGITAL_LOOP_BACK_MODE, 0x00 },
	{ WCD939X_DIGITAL_SWR_DAC_TEST, 0x00 },
	{ WCD939X_DIGITAL_SWR_HM_TEST_RX_0, 0x40 },
	{ WCD939X_DIGITAL_SWR_HM_TEST_TX_0, 0x40 },
	{ WCD939X_DIGITAL_SWR_HM_TEST_RX_1, 0x00 },
	{ WCD939X_DIGITAL_SWR_HM_TEST_TX_1, 0x00 },
	{ WCD939X_DIGITAL_SWR_HM_TEST_TX_2, 0x00 },
	{ WCD939X_DIGITAL_PAD_CTL_SWR_0, 0x8f },
	{ WCD939X_DIGITAL_PAD_CTL_SWR_1, 0x06 },
	{ WCD939X_DIGITAL_I2C_CTL, 0x00 },
	{ WCD939X_DIGITAL_CDC_TX_TANGGU_SW_MODE, 0x00 },
	{ WCD939X_DIGITAL_EFUSE_TEST_CTL_0, 0x00 },
	{ WCD939X_DIGITAL_EFUSE_TEST_CTL_1, 0x00 },
	{ WCD939X_DIGITAL_PAD_CTL_PDM_RX0, 0xf1 },
	{ WCD939X_DIGITAL_PAD_CTL_PDM_RX1, 0xf1 },
	{ WCD939X_DIGITAL_PAD_CTL_PDM_TX0, 0xf1 },
	{ WCD939X_DIGITAL_PAD_CTL_PDM_TX1, 0xf1 },
	{ WCD939X_DIGITAL_PAD_CTL_PDM_TX2, 0xf1 },
	{ WCD939X_DIGITAL_PAD_INP_DIS_0, 0x00 },
	{ WCD939X_DIGITAL_PAD_INP_DIS_1, 0x00 },
	{ WCD939X_DIGITAL_DRIVE_STRENGTH_0, 0x00 },
	{ WCD939X_DIGITAL_DRIVE_STRENGTH_1, 0x00 },
	{ WCD939X_DIGITAL_DRIVE_STRENGTH_2, 0x00 },
	{ WCD939X_DIGITAL_RX_DATA_EDGE_CTL, 0x1f },
	{ WCD939X_DIGITAL_TX_DATA_EDGE_CTL, 0x80 },
	{ WCD939X_DIGITAL_GPIO_MODE, 0x00 },
	{ WCD939X_DIGITAL_PIN_CTL_OE, 0x00 },
	{ WCD939X_DIGITAL_PIN_CTL_DATA_0, 0x00 },
	{ WCD939X_DIGITAL_PIN_CTL_DATA_1, 0x00 },
	{ WCD939X_DIGITAL_DIG_DEBUG_CTL, 0x00 },
	{ WCD939X_DIGITAL_DIG_DEBUG_EN, 0x00 },
	{ WCD939X_DIGITAL_ANA_CSR_DBG_ADD, 0x00 },
	{ WCD939X_DIGITAL_ANA_CSR_DBG_CTL, 0x48 },
	{ WCD939X_DIGITAL_SSP_DBG, 0x00 },
	{ WCD939X_DIGITAL_SPARE_0, 0x00 },
	{ WCD939X_DIGITAL_SPARE_1, 0x00 },
	{ WCD939X_DIGITAL_SPARE_2, 0x00 },
	{ WCD939X_DIGITAL_TX_REQ_FB_CTL_0, 0x88 },
	{ WCD939X_DIGITAL_TX_REQ_FB_CTL_1, 0x88 },
	{ WCD939X_DIGITAL_TX_REQ_FB_CTL_2, 0x88 },
	{ WCD939X_DIGITAL_TX_REQ_FB_CTL_3, 0x88 },
	{ WCD939X_DIGITAL_TX_REQ_FB_CTL_4, 0x88 },
	{ WCD939X_DIGITAL_DEM_BYPASS_DATA0, 0x55 },
	{ WCD939X_DIGITAL_DEM_BYPASS_DATA1, 0x55 },
	{ WCD939X_DIGITAL_DEM_BYPASS_DATA2, 0x55 },
	{ WCD939X_DIGITAL_DEM_BYPASS_DATA3, 0x01 },
	{ WCD939X_DIGITAL_DEM_SECOND_ORDER, 0x03 },
	{ WCD939X_DIGITAL_DSM_CTRL, 0x00 },
	{ WCD939X_DIGITAL_DSM_0_STATIC_DATA_0, 0x00 },
	{ WCD939X_DIGITAL_DSM_0_STATIC_DATA_1, 0x00 },
	{ WCD939X_DIGITAL_DSM_0_STATIC_DATA_2, 0x00 },
	{ WCD939X_DIGITAL_DSM_0_STATIC_DATA_3, 0x00 },
	{ WCD939X_DIGITAL_DSM_1_STATIC_DATA_0, 0x00 },
	{ WCD939X_DIGITAL_DSM_1_STATIC_DATA_1, 0x00 },
	{ WCD939X_DIGITAL_DSM_1_STATIC_DATA_2, 0x00 },
	{ WCD939X_DIGITAL_DSM_1_STATIC_DATA_3, 0x00 },
	{ WCD939X_RX_TOP_PAGE, 0x00 },
	{ WCD939X_RX_TOP_TOP_CFG0, 0x00 },
	{ WCD939X_RX_TOP_HPHL_COMP_WR_LSB, 0x00 },
	{ WCD939X_RX_TOP_HPHL_COMP_WR_MSB, 0x00 },
	{ WCD939X_RX_TOP_HPHL_COMP_LUT, 0x00 },
	{ WCD939X_RX_TOP_HPHR_COMP_WR_LSB, 0x00 },
	{ WCD939X_RX_TOP_HPHR_COMP_WR_MSB, 0x00 },
	{ WCD939X_RX_TOP_HPHR_COMP_LUT, 0x00 },
	{ WCD939X_RX_TOP_DSD0_DEBUG_CFG1, 0x05 },
	{ WCD939X_RX_TOP_DSD0_DEBUG_CFG2, 0x08 },
	{ WCD939X_RX_TOP_DSD0_DEBUG_CFG3, 0x00 },
	{ WCD939X_RX_TOP_DSD0_DEBUG_CFG4, 0x00 },
	{ WCD939X_RX_TOP_DSD1_DEBUG_CFG1, 0x03 },
	{ WCD939X_RX_TOP_DSD1_DEBUG_CFG2, 0x08 },
	{ WCD939X_RX_TOP_DSD1_DEBUG_CFG3, 0x00 },
	{ WCD939X_RX_TOP_DSD1_DEBUG_CFG4, 0x00 },
	{ WCD939X_RX_TOP_HPHL_PATH_CFG0, 0x00 },
	{ WCD939X_RX_TOP_HPHL_PATH_CFG1, 0x00 },
	{ WCD939X_RX_TOP_HPHR_PATH_CFG0, 0x00 },
	{ WCD939X_RX_TOP_HPHR_PATH_CFG1, 0x00 },
	{ WCD939X_RX_TOP_PATH_CFG2, 0x00 },
	{ WCD939X_RX_TOP_HPHL_PATH_SEC0, 0x00 },
	{ WCD939X_RX_TOP_HPHL_PATH_SEC1, 0x00 },
	{ WCD939X_RX_TOP_HPHL_PATH_SEC2, 0x00 },
	{ WCD939X_RX_TOP_HPHL_PATH_SEC3, 0x00 },
	{ WCD939X_RX_TOP_HPHR_PATH_SEC0, 0x00 },
	{ WCD939X_RX_TOP_HPHR_PATH_SEC1, 0x00 },
	{ WCD939X_RX_TOP_HPHR_PATH_SEC2, 0x00 },
	{ WCD939X_RX_TOP_HPHR_PATH_SEC3, 0x00 },
	{ WCD939X_RX_TOP_PATH_SEC4, 0x00 },
	{ WCD939X_RX_TOP_PATH_SEC5, 0x00 },
	{ WCD939X_COMPANDER_HPHL_CTL0, 0x60 },
	{ WCD939X_COMPANDER_HPHL_CTL1, 0xdb },
	{ WCD939X_COMPANDER_HPHL_CTL2, 0xff },
	{ WCD939X_COMPANDER_HPHL_CTL3, 0x35 },
	{ WCD939X_COMPANDER_HPHL_CTL4, 0xff },
	{ WCD939X_COMPANDER_HPHL_CTL5, 0x00 },
	{ WCD939X_COMPANDER_HPHL_CTL7, 0x08 },
	{ WCD939X_COMPANDER_HPHL_CTL8, 0x00 },
	{ WCD939X_COMPANDER_HPHL_CTL9, 0x00 },
	{ WCD939X_COMPANDER_HPHL_CTL10, 0x06 },
	{ WCD939X_COMPANDER_HPHL_CTL11, 0x12 },
	{ WCD939X_COMPANDER_HPHL_CTL12, 0x1e },
	{ WCD939X_COMPANDER_HPHL_CTL13, 0x2a },
	{ WCD939X_COMPANDER_HPHL_CTL14, 0x36 },
	{ WCD939X_COMPANDER_HPHL_CTL15, 0x3c },
	{ WCD939X_COMPANDER_HPHL_CTL16, 0xc4 },
	{ WCD939X_COMPANDER_HPHL_CTL17, 0x00 },
	{ WCD939X_COMPANDER_HPHL_CTL18, 0x0c },
	{ WCD939X_COMPANDER_HPHL_CTL19, 0x16 },
	{ WCD939X_R_CTL0, 0x60 },
	{ WCD939X_R_CTL1, 0xdb },
	{ WCD939X_R_CTL2, 0xff },
	{ WCD939X_R_CTL3, 0x35 },
	{ WCD939X_R_CTL4, 0xff },
	{ WCD939X_R_CTL5, 0x00 },
	{ WCD939X_R_CTL7, 0x08 },
	{ WCD939X_R_CTL8, 0x00 },
	{ WCD939X_R_CTL9, 0x00 },
	{ WCD939X_R_CTL10, 0x06 },
	{ WCD939X_R_CTL11, 0x12 },
	{ WCD939X_R_CTL12, 0x1e },
	{ WCD939X_R_CTL13, 0x2a },
	{ WCD939X_R_CTL14, 0x36 },
	{ WCD939X_R_CTL15, 0x3c },
	{ WCD939X_R_CTL16, 0xc4 },
	{ WCD939X_R_CTL17, 0x00 },
	{ WCD939X_R_CTL18, 0x0c },
	{ WCD939X_R_CTL19, 0x16 },
	{ WCD939X_E_PATH_CTL, 0x00 },
	{ WCD939X_E_CFG0, 0x07 },
	{ WCD939X_E_CFG1, 0x3c },
	{ WCD939X_E_CFG2, 0x00 },
	{ WCD939X_E_CFG3, 0x00 },
	{ WCD939X_DSD_HPHL_PATH_CTL, 0x00 },
	{ WCD939X_DSD_HPHL_CFG0, 0x00 },
	{ WCD939X_DSD_HPHL_CFG1, 0x00 },
	{ WCD939X_DSD_HPHL_CFG2, 0x22 },
	{ WCD939X_DSD_HPHL_CFG3, 0x00 },
	{ WCD939X_DSD_HPHL_CFG4, 0x1a },
	{ WCD939X_DSD_HPHL_CFG5, 0x00 },
	{ WCD939X_DSD_HPHR_PATH_CTL, 0x00 },
	{ WCD939X_DSD_HPHR_CFG0, 0x00 },
	{ WCD939X_DSD_HPHR_CFG1, 0x00 },
	{ WCD939X_DSD_HPHR_CFG2, 0x22 },
	{ WCD939X_DSD_HPHR_CFG3, 0x00 },
	{ WCD939X_DSD_HPHR_CFG4, 0x1a },
	{ WCD939X_DSD_HPHR_CFG5, 0x00 },
};

static bool wcd939x_rdwr_register(struct device *dev, unsigned int reg)
{
	switch (reg) {
	case WCD939X_ANA_PAGE:
	case WCD939X_ANA_BIAS:
	case WCD939X_ANA_RX_SUPPLIES:
	case WCD939X_ANA_HPH:
	case WCD939X_ANA_EAR:
	case WCD939X_ANA_EAR_COMPANDER_CTL:
	case WCD939X_ANA_TX_CH1:
	case WCD939X_ANA_TX_CH2:
	case WCD939X_ANA_TX_CH3:
	case WCD939X_ANA_TX_CH4:
	case WCD939X_ANA_MICB1_MICB2_DSP_EN_LOGIC:
	case WCD939X_ANA_MICB3_DSP_EN_LOGIC:
	case WCD939X_ANA_MBHC_MECH:
	case WCD939X_ANA_MBHC_ELECT:
	case WCD939X_ANA_MBHC_ZDET:
	case WCD939X_ANA_MBHC_BTN0:
	case WCD939X_ANA_MBHC_BTN1:
	case WCD939X_ANA_MBHC_BTN2:
	case WCD939X_ANA_MBHC_BTN3:
	case WCD939X_ANA_MBHC_BTN4:
	case WCD939X_ANA_MBHC_BTN5:
	case WCD939X_ANA_MBHC_BTN6:
	case WCD939X_ANA_MBHC_BTN7:
	case WCD939X_ANA_MICB1:
	case WCD939X_ANA_MICB2:
	case WCD939X_ANA_MICB2_RAMP:
	case WCD939X_ANA_MICB3:
	case WCD939X_ANA_MICB4:
	case WCD939X_BIAS_CTL:
	case WCD939X_BIAS_VBG_FINE_ADJ:
	case WCD939X_LDOL_VDDCX_ADJUST:
	case WCD939X_LDOL_DISABLE_LDOL:
	case WCD939X_MBHC_CTL_CLK:
	case WCD939X_MBHC_CTL_ANA:
	case WCD939X_MBHC_ZDET_VNEG_CTL:
	case WCD939X_MBHC_ZDET_BIAS_CTL:
	case WCD939X_MBHC_CTL_BCS:
	case WCD939X_MBHC_TEST_CTL:
	case WCD939X_LDOH_MODE:
	case WCD939X_LDOH_BIAS:
	case WCD939X_LDOH_STB_LOADS:
	case WCD939X_LDOH_SLOWRAMP:
	case WCD939X_MICB1_TEST_CTL_1:
	case WCD939X_MICB1_TEST_CTL_2:
	case WCD939X_MICB1_TEST_CTL_3:
	case WCD939X_MICB2_TEST_CTL_1:
	case WCD939X_MICB2_TEST_CTL_2:
	case WCD939X_MICB2_TEST_CTL_3:
	case WCD939X_MICB3_TEST_CTL_1:
	case WCD939X_MICB3_TEST_CTL_2:
	case WCD939X_MICB3_TEST_CTL_3:
	case WCD939X_MICB4_TEST_CTL_1:
	case WCD939X_MICB4_TEST_CTL_2:
	case WCD939X_MICB4_TEST_CTL_3:
	case WCD939X_TX_COM_ADC_VCM:
	case WCD939X_TX_COM_BIAS_ATEST:
	case WCD939X_TX_COM_SPARE1:
	case WCD939X_TX_COM_SPARE2:
	case WCD939X_TX_COM_TXFE_DIV_CTL:
	case WCD939X_TX_COM_TXFE_DIV_START:
	case WCD939X_TX_COM_SPARE3:
	case WCD939X_TX_COM_SPARE4:
	case WCD939X_TX_1_2_TEST_EN:
	case WCD939X_TX_1_2_ADC_IB:
	case WCD939X_TX_1_2_ATEST_REFCTL:
	case WCD939X_TX_1_2_TEST_CTL:
	case WCD939X_TX_1_2_TEST_BLK_EN1:
	case WCD939X_TX_1_2_TXFE1_CLKDIV:
	case WCD939X_TX_3_4_TEST_EN:
	case WCD939X_TX_3_4_ADC_IB:
	case WCD939X_TX_3_4_ATEST_REFCTL:
	case WCD939X_TX_3_4_TEST_CTL:
	case WCD939X_TX_3_4_TEST_BLK_EN3:
	case WCD939X_TX_3_4_TXFE3_CLKDIV:
	case WCD939X_TX_3_4_TEST_BLK_EN2:
	case WCD939X_TX_3_4_TXFE2_CLKDIV:
	case WCD939X_TX_3_4_SPARE1:
	case WCD939X_TX_3_4_TEST_BLK_EN4:
	case WCD939X_TX_3_4_TXFE4_CLKDIV:
	case WCD939X_TX_3_4_SPARE2:
	case WCD939X_CLASSH_MODE_1:
	case WCD939X_CLASSH_MODE_2:
	case WCD939X_CLASSH_MODE_3:
	case WCD939X_CLASSH_CTRL_VCL_1:
	case WCD939X_CLASSH_CTRL_VCL_2:
	case WCD939X_CLASSH_CTRL_CCL_1:
	case WCD939X_CLASSH_CTRL_CCL_2:
	case WCD939X_CLASSH_CTRL_CCL_3:
	case WCD939X_CLASSH_CTRL_CCL_4:
	case WCD939X_CLASSH_CTRL_CCL_5:
	case WCD939X_CLASSH_BUCK_TMUX_A_D:
	case WCD939X_CLASSH_BUCK_SW_DRV_CNTL:
	case WCD939X_CLASSH_SPARE:
	case WCD939X_FLYBACK_EN:
	case WCD939X_FLYBACK_VNEG_CTRL_1:
	case WCD939X_FLYBACK_VNEG_CTRL_2:
	case WCD939X_FLYBACK_VNEG_CTRL_3:
	case WCD939X_FLYBACK_VNEG_CTRL_4:
	case WCD939X_FLYBACK_VNEG_CTRL_5:
	case WCD939X_FLYBACK_VNEG_CTRL_6:
	case WCD939X_FLYBACK_VNEG_CTRL_7:
	case WCD939X_FLYBACK_VNEG_CTRL_8:
	case WCD939X_FLYBACK_VNEG_CTRL_9:
	case WCD939X_FLYBACK_VNEGDAC_CTRL_1:
	case WCD939X_FLYBACK_VNEGDAC_CTRL_2:
	case WCD939X_FLYBACK_VNEGDAC_CTRL_3:
	case WCD939X_FLYBACK_CTRL_1:
	case WCD939X_FLYBACK_TEST_CTL:
	case WCD939X_RX_AUX_SW_CTL:
	case WCD939X_RX_PA_AUX_IN_CONN:
	case WCD939X_RX_TIMER_DIV:
	case WCD939X_RX_OCP_CTL:
	case WCD939X_RX_OCP_COUNT:
	case WCD939X_RX_BIAS_EAR_DAC:
	case WCD939X_RX_BIAS_EAR_AMP:
	case WCD939X_RX_BIAS_HPH_LDO:
	case WCD939X_RX_BIAS_HPH_PA:
	case WCD939X_RX_BIAS_HPH_RDACBUFF_CNP2:
	case WCD939X_RX_BIAS_HPH_RDAC_LDO:
	case WCD939X_RX_BIAS_HPH_CNP1:
	case WCD939X_RX_BIAS_HPH_LOWPOWER:
	case WCD939X_RX_BIAS_AUX_DAC:
	case WCD939X_RX_BIAS_AUX_AMP:
	case WCD939X_RX_BIAS_VNEGDAC_BLEEDER:
	case WCD939X_RX_BIAS_MISC:
	case WCD939X_RX_BIAS_BUCK_RST:
	case WCD939X_RX_BIAS_BUCK_VREF_ERRAMP:
	case WCD939X_RX_BIAS_FLYB_ERRAMP:
	case WCD939X_RX_BIAS_FLYB_BUFF:
	case WCD939X_RX_BIAS_FLYB_MID_RST:
	case WCD939X_HPH_CNP_EN:
	case WCD939X_HPH_CNP_WG_CTL:
	case WCD939X_HPH_CNP_WG_TIME:
	case WCD939X_HPH_OCP_CTL:
	case WCD939X_HPH_AUTO_CHOP:
	case WCD939X_HPH_CHOP_CTL:
	case WCD939X_HPH_PA_CTL1:
	case WCD939X_HPH_PA_CTL2:
	case WCD939X_HPH_L_EN:
	case WCD939X_HPH_L_TEST:
	case WCD939X_HPH_L_ATEST:
	case WCD939X_HPH_R_EN:
	case WCD939X_HPH_R_TEST:
	case WCD939X_HPH_R_ATEST:
	case WCD939X_HPH_RDAC_CLK_CTL1:
	case WCD939X_HPH_RDAC_CLK_CTL2:
	case WCD939X_HPH_RDAC_LDO_CTL:
	case WCD939X_HPH_RDAC_CHOP_CLK_LP_CTL:
	case WCD939X_HPH_REFBUFF_UHQA_CTL:
	case WCD939X_HPH_REFBUFF_LP_CTL:
	case WCD939X_HPH_L_DAC_CTL:
	case WCD939X_HPH_R_DAC_CTL:
	case WCD939X_HPH_SURGE_COMP_SEL:
	case WCD939X_HPH_SURGE_EN:
	case WCD939X_HPH_SURGE_MISC1:
	case WCD939X_EAR_EN:
	case WCD939X_EAR_PA_CON:
	case WCD939X_EAR_SP_CON:
	case WCD939X_EAR_DAC_CON:
	case WCD939X_EAR_CNP_FSM_CON:
	case WCD939X_EAR_TEST_CTL:
	case WCD939X_FLYBACK_NEW_CTRL_2:
	case WCD939X_FLYBACK_NEW_CTRL_3:
	case WCD939X_FLYBACK_NEW_CTRL_4:
	case WCD939X_ANA_NEW_PAGE:
	case WCD939X_HPH_NEW_ANA_HPH2:
	case WCD939X_HPH_NEW_ANA_HPH3:
	case WCD939X_SLEEP_CTL:
	case WCD939X_SLEEP_WATCHDOG_CTL:
	case WCD939X_MBHC_NEW_ELECT_REM_CLAMP_CTL:
	case WCD939X_MBHC_NEW_CTL_1:
	case WCD939X_MBHC_NEW_CTL_2:
	case WCD939X_MBHC_NEW_PLUG_DETECT_CTL:
	case WCD939X_MBHC_NEW_ZDET_ANA_CTL:
	case WCD939X_MBHC_NEW_ZDET_RAMP_CTL:
	case WCD939X_TX_NEW_CH12_MUX:
	case WCD939X_TX_NEW_CH34_MUX:
	case WCD939X_DIE_CRACK_DET_EN:
	case WCD939X_HPH_NEW_INT_RDAC_GAIN_CTL:
	case WCD939X_HPH_NEW_INT_PA_GAIN_CTL_L:
	case WCD939X_HPH_NEW_INT_RDAC_VREF_CTL:
	case WCD939X_HPH_NEW_INT_RDAC_OVERRIDE_CTL:
	case WCD939X_HPH_NEW_INT_PA_GAIN_CTL_R:
	case WCD939X_HPH_NEW_INT_PA_MISC1:
	case WCD939X_HPH_NEW_INT_PA_MISC2:
	case WCD939X_HPH_NEW_INT_PA_RDAC_MISC:
	case WCD939X_HPH_NEW_INT_TIMER1:
	case WCD939X_HPH_NEW_INT_TIMER2:
	case WCD939X_HPH_NEW_INT_TIMER3:
	case WCD939X_HPH_NEW_INT_TIMER4:
	case WCD939X_HPH_NEW_INT_PA_RDAC_MISC2:
	case WCD939X_HPH_NEW_INT_PA_RDAC_MISC3:
	case WCD939X_HPH_NEW_INT_RDAC_HD2_CTL_L:
	case WCD939X_HPH_NEW_INT_RDAC_HD2_CTL_R:
	case WCD939X_RX_NEW_INT_HPH_RDAC_BIAS_LOHIFI:
	case WCD939X_RX_NEW_INT_HPH_RDAC_BIAS_ULP:
	case WCD939X_RX_NEW_INT_HPH_RDAC_LDO_LP:
	case WCD939X_MBHC_NEW_INT_MOISTURE_DET_DC_CTRL:
	case WCD939X_MBHC_NEW_INT_MOISTURE_DET_POLLING_CTRL:
	case WCD939X_MBHC_NEW_INT_MECH_DET_CURRENT:
	case WCD939X_MBHC_NEW_INT_ZDET_CLK_AND_MOISTURE_CTL_NEW:
	case WCD939X_EAR_INT_NEW_CHOPPER_CON:
	case WCD939X_EAR_INT_NEW_CNP_VCM_CON1:
	case WCD939X_EAR_INT_NEW_CNP_VCM_CON2:
	case WCD939X_EAR_INT_NEW_DYNAMIC_BIAS:
	case WCD939X_SLEEP_INT_WATCHDOG_CTL_1:
	case WCD939X_SLEEP_INT_WATCHDOG_CTL_2:
	case WCD939X_DIE_CRACK_INT_DET_INT1:
	case WCD939X_DIE_CRACK_INT_DET_INT2:
	case WCD939X_TX_COM_NEW_INT_FE_DIVSTOP_L2:
	case WCD939X_TX_COM_NEW_INT_FE_DIVSTOP_L1:
	case WCD939X_TX_COM_NEW_INT_FE_DIVSTOP_L0:
	case WCD939X_TX_COM_NEW_INT_FE_DIVSTOP_ULP1P2M:
	case WCD939X_TX_COM_NEW_INT_FE_DIVSTOP_ULP0P6M:
	case WCD939X_TX_COM_NEW_INT_FE_ICTRL_STG1_L2L1:
	case WCD939X_TX_COM_NEW_INT_FE_ICTRL_STG1_L0:
	case WCD939X_TX_COM_NEW_INT_FE_ICTRL_STG1_ULP:
	case WCD939X_TX_COM_NEW_INT_FE_ICTRL_STG2MAIN_L2L1:
	case WCD939X_TX_COM_NEW_INT_FE_ICTRL_STG2MAIN_L0:
	case WCD939X_TX_COM_NEW_INT_FE_ICTRL_STG2MAIN_ULP:
	case WCD939X_TX_COM_NEW_INT_FE_ICTRL_STG2CASC_L2L1L0:
	case WCD939X_TX_COM_NEW_INT_FE_ICTRL_STG2CASC_ULP:
	case WCD939X_TX_COM_NEW_INT_ADC_SCBIAS_L2L1:
	case WCD939X_TX_COM_NEW_INT_ADC_SCBIAS_L0ULP:
	case WCD939X_TX_COM_NEW_INT_ADC_INT_L2:
	case WCD939X_TX_COM_NEW_INT_ADC_INT_L1:
	case WCD939X_TX_COM_NEW_INT_ADC_INT_L0:
	case WCD939X_TX_COM_NEW_INT_ADC_INT_ULP:
	case WCD939X_DIGITAL_PAGE:
	case WCD939X_DIGITAL_SWR_TX_CLK_RATE:
	case WCD939X_DIGITAL_CDC_RST_CTL:
	case WCD939X_DIGITAL_TOP_CLK_CFG:
	case WCD939X_DIGITAL_CDC_ANA_CLK_CTL:
	case WCD939X_DIGITAL_CDC_DIG_CLK_CTL:
	case WCD939X_DIGITAL_SWR_RST_EN:
	case WCD939X_DIGITAL_CDC_PATH_MODE:
	case WCD939X_DIGITAL_CDC_RX_RST:
	case WCD939X_DIGITAL_CDC_RX0_CTL:
	case WCD939X_DIGITAL_CDC_RX1_CTL:
	case WCD939X_DIGITAL_CDC_RX2_CTL:
	case WCD939X_DIGITAL_CDC_TX_ANA_MODE_0_1:
	case WCD939X_DIGITAL_CDC_TX_ANA_MODE_2_3:
	case WCD939X_DIGITAL_CDC_COMP_CTL_0:
	case WCD939X_DIGITAL_CDC_ANA_TX_CLK_CTL:
	case WCD939X_DIGITAL_CDC_HPH_DSM_A1_0:
	case WCD939X_DIGITAL_CDC_HPH_DSM_A1_1:
	case WCD939X_DIGITAL_CDC_HPH_DSM_A2_0:
	case WCD939X_DIGITAL_CDC_HPH_DSM_A2_1:
	case WCD939X_DIGITAL_CDC_HPH_DSM_A3_0:
	case WCD939X_DIGITAL_CDC_HPH_DSM_A3_1:
	case WCD939X_DIGITAL_CDC_HPH_DSM_A4_0:
	case WCD939X_DIGITAL_CDC_HPH_DSM_A4_1:
	case WCD939X_DIGITAL_CDC_HPH_DSM_A5_0:
	case WCD939X_DIGITAL_CDC_HPH_DSM_A5_1:
	case WCD939X_DIGITAL_CDC_HPH_DSM_A6_0:
	case WCD939X_DIGITAL_CDC_HPH_DSM_A7_0:
	case WCD939X_DIGITAL_CDC_HPH_DSM_C_0:
	case WCD939X_DIGITAL_CDC_HPH_DSM_C_1:
	case WCD939X_DIGITAL_CDC_HPH_DSM_C_2:
	case WCD939X_DIGITAL_CDC_HPH_DSM_C_3:
	case WCD939X_DIGITAL_CDC_HPH_DSM_R1:
	case WCD939X_DIGITAL_CDC_HPH_DSM_R2:
	case WCD939X_DIGITAL_CDC_HPH_DSM_R3:
	case WCD939X_DIGITAL_CDC_HPH_DSM_R4:
	case WCD939X_DIGITAL_CDC_HPH_DSM_R5:
	case WCD939X_DIGITAL_CDC_HPH_DSM_R6:
	case WCD939X_DIGITAL_CDC_HPH_DSM_R7:
	case WCD939X_DIGITAL_CDC_EAR_DSM_A1_0:
	case WCD939X_DIGITAL_CDC_EAR_DSM_A1_1:
	case WCD939X_DIGITAL_CDC_EAR_DSM_A2_0:
	case WCD939X_DIGITAL_CDC_EAR_DSM_A2_1:
	case WCD939X_DIGITAL_CDC_EAR_DSM_A3_0:
	case WCD939X_DIGITAL_CDC_EAR_DSM_A3_1:
	case WCD939X_DIGITAL_CDC_EAR_DSM_A4_0:
	case WCD939X_DIGITAL_CDC_EAR_DSM_A4_1:
	case WCD939X_DIGITAL_CDC_EAR_DSM_A5_0:
	case WCD939X_DIGITAL_CDC_EAR_DSM_A5_1:
	case WCD939X_DIGITAL_CDC_EAR_DSM_A6_0:
	case WCD939X_DIGITAL_CDC_EAR_DSM_A7_0:
	case WCD939X_DIGITAL_CDC_EAR_DSM_C_0:
	case WCD939X_DIGITAL_CDC_EAR_DSM_C_1:
	case WCD939X_DIGITAL_CDC_EAR_DSM_C_2:
	case WCD939X_DIGITAL_CDC_EAR_DSM_C_3:
	case WCD939X_DIGITAL_CDC_EAR_DSM_R1:
	case WCD939X_DIGITAL_CDC_EAR_DSM_R2:
	case WCD939X_DIGITAL_CDC_EAR_DSM_R3:
	case WCD939X_DIGITAL_CDC_EAR_DSM_R4:
	case WCD939X_DIGITAL_CDC_EAR_DSM_R5:
	case WCD939X_DIGITAL_CDC_EAR_DSM_R6:
	case WCD939X_DIGITAL_CDC_EAR_DSM_R7:
	case WCD939X_DIGITAL_CDC_HPH_GAIN_RX_0:
	case WCD939X_DIGITAL_CDC_HPH_GAIN_RX_1:
	case WCD939X_DIGITAL_CDC_HPH_GAIN_DSD_0:
	case WCD939X_DIGITAL_CDC_HPH_GAIN_DSD_1:
	case WCD939X_DIGITAL_CDC_HPH_GAIN_DSD_2:
	case WCD939X_DIGITAL_CDC_EAR_GAIN_DSD_0:
	case WCD939X_DIGITAL_CDC_EAR_GAIN_DSD_1:
	case WCD939X_DIGITAL_CDC_EAR_GAIN_DSD_2:
	case WCD939X_DIGITAL_CDC_HPH_GAIN_CTL:
	case WCD939X_DIGITAL_CDC_EAR_GAIN_CTL:
	case WCD939X_DIGITAL_CDC_EAR_PATH_CTL:
	case WCD939X_DIGITAL_CDC_SWR_CLH:
	case WCD939X_DIGITAL_SWR_CLH_BYP:
	case WCD939X_DIGITAL_CDC_TX0_CTL:
	case WCD939X_DIGITAL_CDC_TX1_CTL:
	case WCD939X_DIGITAL_CDC_TX2_CTL:
	case WCD939X_DIGITAL_CDC_TX_RST:
	case WCD939X_DIGITAL_CDC_REQ_CTL:
	case WCD939X_DIGITAL_CDC_RST:
	case WCD939X_DIGITAL_CDC_AMIC_CTL:
	case WCD939X_DIGITAL_CDC_DMIC_CTL:
	case WCD939X_DIGITAL_CDC_DMIC1_CTL:
	case WCD939X_DIGITAL_CDC_DMIC2_CTL:
	case WCD939X_DIGITAL_CDC_DMIC3_CTL:
	case WCD939X_DIGITAL_CDC_DMIC4_CTL:
	case WCD939X_DIGITAL_EFUSE_PRG_CTL:
	case WCD939X_DIGITAL_EFUSE_CTL:
	case WCD939X_DIGITAL_CDC_DMIC_RATE_1_2:
	case WCD939X_DIGITAL_CDC_DMIC_RATE_3_4:
	case WCD939X_DIGITAL_PDM_WD_CTL0:
	case WCD939X_DIGITAL_PDM_WD_CTL1:
	case WCD939X_DIGITAL_PDM_WD_CTL2:
	case WCD939X_DIGITAL_INTR_MODE:
	case WCD939X_DIGITAL_INTR_MASK_0:
	case WCD939X_DIGITAL_INTR_MASK_1:
	case WCD939X_DIGITAL_INTR_MASK_2:
	case WCD939X_DIGITAL_INTR_CLEAR_0:
	case WCD939X_DIGITAL_INTR_CLEAR_1:
	case WCD939X_DIGITAL_INTR_CLEAR_2:
	case WCD939X_DIGITAL_INTR_LEVEL_0:
	case WCD939X_DIGITAL_INTR_LEVEL_1:
	case WCD939X_DIGITAL_INTR_LEVEL_2:
	case WCD939X_DIGITAL_INTR_SET_0:
	case WCD939X_DIGITAL_INTR_SET_1:
	case WCD939X_DIGITAL_INTR_SET_2:
	case WCD939X_DIGITAL_INTR_TEST_0:
	case WCD939X_DIGITAL_INTR_TEST_1:
	case WCD939X_DIGITAL_INTR_TEST_2:
	case WCD939X_DIGITAL_TX_MODE_DBG_EN:
	case WCD939X_DIGITAL_TX_MODE_DBG_0_1:
	case WCD939X_DIGITAL_TX_MODE_DBG_2_3:
	case WCD939X_DIGITAL_LB_IN_SEL_CTL:
	case WCD939X_DIGITAL_LOOP_BACK_MODE:
	case WCD939X_DIGITAL_SWR_DAC_TEST:
	case WCD939X_DIGITAL_SWR_HM_TEST_RX_0:
	case WCD939X_DIGITAL_SWR_HM_TEST_TX_0:
	case WCD939X_DIGITAL_SWR_HM_TEST_RX_1:
	case WCD939X_DIGITAL_SWR_HM_TEST_TX_1:
	case WCD939X_DIGITAL_SWR_HM_TEST_TX_2:
	case WCD939X_DIGITAL_PAD_CTL_SWR_0:
	case WCD939X_DIGITAL_PAD_CTL_SWR_1:
	case WCD939X_DIGITAL_I2C_CTL:
	case WCD939X_DIGITAL_CDC_TX_TANGGU_SW_MODE:
	case WCD939X_DIGITAL_EFUSE_TEST_CTL_0:
	case WCD939X_DIGITAL_EFUSE_TEST_CTL_1:
	case WCD939X_DIGITAL_PAD_CTL_PDM_RX0:
	case WCD939X_DIGITAL_PAD_CTL_PDM_RX1:
	case WCD939X_DIGITAL_PAD_CTL_PDM_TX0:
	case WCD939X_DIGITAL_PAD_CTL_PDM_TX1:
	case WCD939X_DIGITAL_PAD_CTL_PDM_TX2:
	case WCD939X_DIGITAL_PAD_INP_DIS_0:
	case WCD939X_DIGITAL_PAD_INP_DIS_1:
	case WCD939X_DIGITAL_DRIVE_STRENGTH_0:
	case WCD939X_DIGITAL_DRIVE_STRENGTH_1:
	case WCD939X_DIGITAL_DRIVE_STRENGTH_2:
	case WCD939X_DIGITAL_RX_DATA_EDGE_CTL:
	case WCD939X_DIGITAL_TX_DATA_EDGE_CTL:
	case WCD939X_DIGITAL_GPIO_MODE:
	case WCD939X_DIGITAL_PIN_CTL_OE:
	case WCD939X_DIGITAL_PIN_CTL_DATA_0:
	case WCD939X_DIGITAL_PIN_CTL_DATA_1:
	case WCD939X_DIGITAL_DIG_DEBUG_CTL:
	case WCD939X_DIGITAL_DIG_DEBUG_EN:
	case WCD939X_DIGITAL_ANA_CSR_DBG_ADD:
	case WCD939X_DIGITAL_ANA_CSR_DBG_CTL:
	case WCD939X_DIGITAL_SSP_DBG:
	case WCD939X_DIGITAL_SPARE_0:
	case WCD939X_DIGITAL_SPARE_1:
	case WCD939X_DIGITAL_SPARE_2:
	case WCD939X_DIGITAL_TX_REQ_FB_CTL_0:
	case WCD939X_DIGITAL_TX_REQ_FB_CTL_1:
	case WCD939X_DIGITAL_TX_REQ_FB_CTL_2:
	case WCD939X_DIGITAL_TX_REQ_FB_CTL_3:
	case WCD939X_DIGITAL_TX_REQ_FB_CTL_4:
	case WCD939X_DIGITAL_DEM_BYPASS_DATA0:
	case WCD939X_DIGITAL_DEM_BYPASS_DATA1:
	case WCD939X_DIGITAL_DEM_BYPASS_DATA2:
	case WCD939X_DIGITAL_DEM_BYPASS_DATA3:
	case WCD939X_DIGITAL_DEM_SECOND_ORDER:
	case WCD939X_DIGITAL_DSM_CTRL:
	case WCD939X_DIGITAL_DSM_0_STATIC_DATA_0:
	case WCD939X_DIGITAL_DSM_0_STATIC_DATA_1:
	case WCD939X_DIGITAL_DSM_0_STATIC_DATA_2:
	case WCD939X_DIGITAL_DSM_0_STATIC_DATA_3:
	case WCD939X_DIGITAL_DSM_1_STATIC_DATA_0:
	case WCD939X_DIGITAL_DSM_1_STATIC_DATA_1:
	case WCD939X_DIGITAL_DSM_1_STATIC_DATA_2:
	case WCD939X_DIGITAL_DSM_1_STATIC_DATA_3:
	case WCD939X_RX_TOP_PAGE:
	case WCD939X_RX_TOP_TOP_CFG0:
	case WCD939X_RX_TOP_HPHL_COMP_WR_LSB:
	case WCD939X_RX_TOP_HPHL_COMP_WR_MSB:
	case WCD939X_RX_TOP_HPHL_COMP_LUT:
	case WCD939X_RX_TOP_HPHR_COMP_WR_LSB:
	case WCD939X_RX_TOP_HPHR_COMP_WR_MSB:
	case WCD939X_RX_TOP_HPHR_COMP_LUT:
	case WCD939X_RX_TOP_DSD0_DEBUG_CFG1:
	case WCD939X_RX_TOP_DSD0_DEBUG_CFG2:
	case WCD939X_RX_TOP_DSD0_DEBUG_CFG3:
	case WCD939X_RX_TOP_DSD0_DEBUG_CFG4:
	case WCD939X_RX_TOP_DSD1_DEBUG_CFG1:
	case WCD939X_RX_TOP_DSD1_DEBUG_CFG2:
	case WCD939X_RX_TOP_DSD1_DEBUG_CFG3:
	case WCD939X_RX_TOP_DSD1_DEBUG_CFG4:
	case WCD939X_RX_TOP_HPHL_PATH_CFG0:
	case WCD939X_RX_TOP_HPHL_PATH_CFG1:
	case WCD939X_RX_TOP_HPHR_PATH_CFG0:
	case WCD939X_RX_TOP_HPHR_PATH_CFG1:
	case WCD939X_RX_TOP_PATH_CFG2:
	case WCD939X_RX_TOP_HPHL_PATH_SEC0:
	case WCD939X_RX_TOP_HPHL_PATH_SEC1:
	case WCD939X_RX_TOP_HPHL_PATH_SEC2:
	case WCD939X_RX_TOP_HPHL_PATH_SEC3:
	case WCD939X_RX_TOP_HPHR_PATH_SEC0:
	case WCD939X_RX_TOP_HPHR_PATH_SEC1:
	case WCD939X_RX_TOP_HPHR_PATH_SEC2:
	case WCD939X_RX_TOP_HPHR_PATH_SEC3:
	case WCD939X_RX_TOP_PATH_SEC4:
	case WCD939X_RX_TOP_PATH_SEC5:
	case WCD939X_COMPANDER_HPHL_CTL0:
	case WCD939X_COMPANDER_HPHL_CTL1:
	case WCD939X_COMPANDER_HPHL_CTL2:
	case WCD939X_COMPANDER_HPHL_CTL3:
	case WCD939X_COMPANDER_HPHL_CTL4:
	case WCD939X_COMPANDER_HPHL_CTL5:
	case WCD939X_COMPANDER_HPHL_CTL7:
	case WCD939X_COMPANDER_HPHL_CTL8:
	case WCD939X_COMPANDER_HPHL_CTL9:
	case WCD939X_COMPANDER_HPHL_CTL10:
	case WCD939X_COMPANDER_HPHL_CTL11:
	case WCD939X_COMPANDER_HPHL_CTL12:
	case WCD939X_COMPANDER_HPHL_CTL13:
	case WCD939X_COMPANDER_HPHL_CTL14:
	case WCD939X_COMPANDER_HPHL_CTL15:
	case WCD939X_COMPANDER_HPHL_CTL16:
	case WCD939X_COMPANDER_HPHL_CTL17:
	case WCD939X_COMPANDER_HPHL_CTL18:
	case WCD939X_COMPANDER_HPHL_CTL19:
	case WCD939X_R_CTL0:
	case WCD939X_R_CTL1:
	case WCD939X_R_CTL2:
	case WCD939X_R_CTL3:
	case WCD939X_R_CTL4:
	case WCD939X_R_CTL5:
	case WCD939X_R_CTL7:
	case WCD939X_R_CTL8:
	case WCD939X_R_CTL9:
	case WCD939X_R_CTL10:
	case WCD939X_R_CTL11:
	case WCD939X_R_CTL12:
	case WCD939X_R_CTL13:
	case WCD939X_R_CTL14:
	case WCD939X_R_CTL15:
	case WCD939X_R_CTL16:
	case WCD939X_R_CTL17:
	case WCD939X_R_CTL18:
	case WCD939X_R_CTL19:
	case WCD939X_E_PATH_CTL:
	case WCD939X_E_CFG0:
	case WCD939X_E_CFG1:
	case WCD939X_E_CFG2:
	case WCD939X_E_CFG3:
	case WCD939X_DSD_HPHL_PATH_CTL:
	case WCD939X_DSD_HPHL_CFG0:
	case WCD939X_DSD_HPHL_CFG1:
	case WCD939X_DSD_HPHL_CFG2:
	case WCD939X_DSD_HPHL_CFG3:
	case WCD939X_DSD_HPHL_CFG4:
	case WCD939X_DSD_HPHL_CFG5:
	case WCD939X_DSD_HPHR_PATH_CTL:
	case WCD939X_DSD_HPHR_CFG0:
	case WCD939X_DSD_HPHR_CFG1:
	case WCD939X_DSD_HPHR_CFG2:
	case WCD939X_DSD_HPHR_CFG3:
	case WCD939X_DSD_HPHR_CFG4:
	case WCD939X_DSD_HPHR_CFG5:
		return true;
	}

	return false;
}

static bool wcd939x_readable_register(struct device *dev, unsigned int reg)
{
	/* Read-Only Registers */
	switch (reg) {
	case WCD939X_ANA_MBHC_RESULT_1:
	case WCD939X_ANA_MBHC_RESULT_2:
	case WCD939X_ANA_MBHC_RESULT_3:
	case WCD939X_MBHC_MOISTURE_DET_FSM_STATUS:
	case WCD939X_TX_1_2_SAR2_ERR:
	case WCD939X_TX_1_2_SAR1_ERR:
	case WCD939X_TX_3_4_SAR4_ERR:
	case WCD939X_TX_3_4_SAR3_ERR:
	case WCD939X_HPH_L_STATUS:
	case WCD939X_HPH_R_STATUS:
	case WCD939X_HPH_SURGE_STATUS:
	case WCD939X_EAR_STATUS_REG_1:
	case WCD939X_EAR_STATUS_REG_2:
	case WCD939X_MBHC_NEW_FSM_STATUS:
	case WCD939X_MBHC_NEW_ADC_RESULT:
	case WCD939X_DIE_CRACK_DET_OUT:
	case WCD939X_DIGITAL_CHIP_ID0:
	case WCD939X_DIGITAL_CHIP_ID1:
	case WCD939X_DIGITAL_CHIP_ID2:
	case WCD939X_DIGITAL_CHIP_ID3:
	case WCD939X_DIGITAL_INTR_STATUS_0:
	case WCD939X_DIGITAL_INTR_STATUS_1:
	case WCD939X_DIGITAL_INTR_STATUS_2:
	case WCD939X_DIGITAL_SWR_HM_TEST_0:
	case WCD939X_DIGITAL_SWR_HM_TEST_1:
	case WCD939X_DIGITAL_EFUSE_T_DATA_0:
	case WCD939X_DIGITAL_EFUSE_T_DATA_1:
	case WCD939X_DIGITAL_PIN_STATUS_0:
	case WCD939X_DIGITAL_PIN_STATUS_1:
	case WCD939X_DIGITAL_MODE_STATUS_0:
	case WCD939X_DIGITAL_MODE_STATUS_1:
	case WCD939X_DIGITAL_EFUSE_REG_0:
	case WCD939X_DIGITAL_EFUSE_REG_1:
	case WCD939X_DIGITAL_EFUSE_REG_2:
	case WCD939X_DIGITAL_EFUSE_REG_3:
	case WCD939X_DIGITAL_EFUSE_REG_4:
	case WCD939X_DIGITAL_EFUSE_REG_5:
	case WCD939X_DIGITAL_EFUSE_REG_6:
	case WCD939X_DIGITAL_EFUSE_REG_7:
	case WCD939X_DIGITAL_EFUSE_REG_8:
	case WCD939X_DIGITAL_EFUSE_REG_9:
	case WCD939X_DIGITAL_EFUSE_REG_10:
	case WCD939X_DIGITAL_EFUSE_REG_11:
	case WCD939X_DIGITAL_EFUSE_REG_12:
	case WCD939X_DIGITAL_EFUSE_REG_13:
	case WCD939X_DIGITAL_EFUSE_REG_14:
	case WCD939X_DIGITAL_EFUSE_REG_15:
	case WCD939X_DIGITAL_EFUSE_REG_16:
	case WCD939X_DIGITAL_EFUSE_REG_17:
	case WCD939X_DIGITAL_EFUSE_REG_18:
	case WCD939X_DIGITAL_EFUSE_REG_19:
	case WCD939X_DIGITAL_EFUSE_REG_20:
	case WCD939X_DIGITAL_EFUSE_REG_21:
	case WCD939X_DIGITAL_EFUSE_REG_22:
	case WCD939X_DIGITAL_EFUSE_REG_23:
	case WCD939X_DIGITAL_EFUSE_REG_24:
	case WCD939X_DIGITAL_EFUSE_REG_25:
	case WCD939X_DIGITAL_EFUSE_REG_26:
	case WCD939X_DIGITAL_EFUSE_REG_27:
	case WCD939X_DIGITAL_EFUSE_REG_28:
	case WCD939X_DIGITAL_EFUSE_REG_29:
	case WCD939X_DIGITAL_EFUSE_REG_30:
	case WCD939X_DIGITAL_EFUSE_REG_31:
	case WCD939X_RX_TOP_HPHL_COMP_RD_LSB:
	case WCD939X_RX_TOP_HPHL_COMP_RD_MSB:
	case WCD939X_RX_TOP_HPHR_COMP_RD_LSB:
	case WCD939X_RX_TOP_HPHR_COMP_RD_MSB:
	case WCD939X_RX_TOP_DSD0_DEBUG_CFG5:
	case WCD939X_RX_TOP_DSD0_DEBUG_CFG6:
	case WCD939X_RX_TOP_DSD1_DEBUG_CFG5:
	case WCD939X_RX_TOP_DSD1_DEBUG_CFG6:
	case WCD939X_COMPANDER_HPHL_CTL6:
	case WCD939X_R_CTL6:
		return true;
	}

	return wcd939x_rdwr_register(dev, reg);
}

static bool wcd939x_volatile_register(struct device *dev, unsigned int reg)
{
	switch (reg) {
	case WCD939X_ANA_MBHC_RESULT_1:
	case WCD939X_ANA_MBHC_RESULT_2:
	case WCD939X_ANA_MBHC_RESULT_3:
	case WCD939X_MBHC_MOISTURE_DET_FSM_STATUS:
	case WCD939X_TX_1_2_SAR2_ERR:
	case WCD939X_TX_1_2_SAR1_ERR:
	case WCD939X_TX_3_4_SAR4_ERR:
	case WCD939X_TX_3_4_SAR3_ERR:
	case WCD939X_HPH_L_STATUS:
	case WCD939X_HPH_R_STATUS:
	case WCD939X_HPH_SURGE_STATUS:
	case WCD939X_EAR_STATUS_REG_1:
	case WCD939X_EAR_STATUS_REG_2:
	case WCD939X_MBHC_NEW_FSM_STATUS:
	case WCD939X_MBHC_NEW_ADC_RESULT:
	case WCD939X_DIE_CRACK_DET_OUT:
	case WCD939X_DIGITAL_INTR_STATUS_0:
	case WCD939X_DIGITAL_INTR_STATUS_1:
	case WCD939X_DIGITAL_INTR_STATUS_2:
	case WCD939X_DIGITAL_SWR_HM_TEST_0:
	case WCD939X_DIGITAL_SWR_HM_TEST_1:
	case WCD939X_DIGITAL_PIN_STATUS_0:
	case WCD939X_DIGITAL_PIN_STATUS_1:
	case WCD939X_DIGITAL_MODE_STATUS_0:
	case WCD939X_DIGITAL_MODE_STATUS_1:
	case WCD939X_RX_TOP_HPHL_COMP_RD_LSB:
	case WCD939X_RX_TOP_HPHL_COMP_RD_MSB:
	case WCD939X_RX_TOP_HPHR_COMP_RD_LSB:
	case WCD939X_RX_TOP_HPHR_COMP_RD_MSB:
	case WCD939X_RX_TOP_DSD0_DEBUG_CFG5:
	case WCD939X_RX_TOP_DSD0_DEBUG_CFG6:
	case WCD939X_RX_TOP_DSD1_DEBUG_CFG5:
	case WCD939X_RX_TOP_DSD1_DEBUG_CFG6:
	case WCD939X_COMPANDER_HPHL_CTL6:
	case WCD939X_R_CTL6:
		return true;
	}
	return false;
}

static bool wcd939x_writeable_register(struct device *dev, unsigned int reg)
{
	return wcd939x_rdwr_register(dev, reg);
}

static const struct regmap_config wcd939x_regmap_config = {
	.name = "wcd939x_csr",
	.reg_bits = 32,
	.val_bits = 8,
	.cache_type = REGCACHE_MAPLE,
	.reg_defaults = wcd939x_defaults,
	.num_reg_defaults = ARRAY_SIZE(wcd939x_defaults),
	.max_register = WCD939X_MAX_REGISTER,
	.readable_reg = wcd939x_readable_register,
	.writeable_reg = wcd939x_writeable_register,
	.volatile_reg = wcd939x_volatile_register,
};

static const struct sdw_slave_ops wcd9390_slave_ops = {
	.update_status = wcd_update_status,
	.interrupt_callback = wcd9390_interrupt_callback,
	.bus_config = wcd_bus_config,
};

static int wcd9390_probe(struct sdw_slave *pdev, const struct sdw_device_id *id)
{
	struct device *dev = &pdev->dev;
	struct wcd939x_sdw_priv *wcd;
	int ret;

	wcd = devm_kzalloc(dev, sizeof(*wcd), GFP_KERNEL);
	if (!wcd)
		return -ENOMEM;

	/*
	 * Port map index starts with 0, however the data port for this codec
	 * are from index 1
	 */
	if (of_property_present(dev->of_node, "qcom,tx-port-mapping")) {
		wcd->is_tx = true;
		ret = of_property_read_u32_array(dev->of_node,
						 "qcom,tx-port-mapping",
						 &pdev->m_port_map[1],
						 WCD939X_MAX_TX_SWR_PORTS);
	} else {
		ret = of_property_read_u32_array(dev->of_node,
						 "qcom,rx-port-mapping",
						 &pdev->m_port_map[1],
						 WCD939X_MAX_RX_SWR_PORTS);
	}

	if (ret < 0)
		dev_info(dev, "Static Port mapping not specified\n");

	wcd->sdev = pdev;
	dev_set_drvdata(dev, wcd);

	pdev->prop.scp_int1_mask = SDW_SCP_INT1_IMPL_DEF |
				   SDW_SCP_INT1_BUS_CLASH | SDW_SCP_INT1_PARITY;
	pdev->prop.lane_control_support = true;
	pdev->prop.simple_clk_stop_capable = true;
	if (wcd->is_tx) {
		pdev->prop.source_ports = GENMASK(WCD939X_MAX_TX_SWR_PORTS - 1, 0);
		pdev->prop.src_dpn_prop = wcd939x_tx_dpn_prop;
		wcd->ch_info = &wcd939x_sdw_tx_ch_info[0];
		pdev->prop.wake_capable = true;
	} else {
		pdev->prop.sink_ports = GENMASK(WCD939X_MAX_RX_SWR_PORTS - 1, 0);
		pdev->prop.sink_dpn_prop = wcd939x_rx_dpn_prop;
		wcd->ch_info = &wcd939x_sdw_rx_ch_info[0];
	}

	if (wcd->is_tx) {
		wcd->regmap = devm_regmap_init_sdw(pdev, &wcd939x_regmap_config);
		if (IS_ERR(wcd->regmap))
			return dev_err_probe(dev, PTR_ERR(wcd->regmap),
					     "Regmap init failed\n");

		/* Start in cache-only until device is enumerated */
		regcache_cache_only(wcd->regmap, true);
	}

	ret = component_add(dev, &wcd_sdw_component_ops);
	if (ret)
		return ret;

	/* Set suspended until aggregate device is bind */
	pm_runtime_set_suspended(dev);

	return 0;
}

static void wcd9390_remove(struct sdw_slave *pdev)
{
	struct device *dev = &pdev->dev;

	component_del(dev, &wcd_sdw_component_ops);
}

static const struct sdw_device_id wcd9390_slave_id[] = {
	SDW_SLAVE_ENTRY(0x0217, 0x10e, 0), /* WCD9390 & WCD9390 RX/TX Device ID */
	{},
};
MODULE_DEVICE_TABLE(sdw, wcd9390_slave_id);

static int wcd939x_sdw_runtime_suspend(struct device *dev)
{
	struct wcd939x_sdw_priv *wcd = dev_get_drvdata(dev);

	if (wcd->regmap) {
		regcache_cache_only(wcd->regmap, true);
		regcache_mark_dirty(wcd->regmap);
	}

	return 0;
}

static int wcd939x_sdw_runtime_resume(struct device *dev)
{
	struct wcd939x_sdw_priv *wcd = dev_get_drvdata(dev);

	if (wcd->regmap) {
		regcache_cache_only(wcd->regmap, false);
		regcache_sync(wcd->regmap);
	}

	return 0;
}

static const struct dev_pm_ops wcd939x_sdw_pm_ops = {
	RUNTIME_PM_OPS(wcd939x_sdw_runtime_suspend, wcd939x_sdw_runtime_resume, NULL)
};

static struct sdw_driver wcd9390_codec_driver = {
	.probe = wcd9390_probe,
	.remove = wcd9390_remove,
	.ops = &wcd9390_slave_ops,
	.id_table = wcd9390_slave_id,
	.driver = {
		.name = "wcd9390-codec",
		.pm = pm_ptr(&wcd939x_sdw_pm_ops),
	}
};
module_sdw_driver(wcd9390_codec_driver);

MODULE_DESCRIPTION("WCD939X SDW codec driver");
MODULE_LICENSE("GPL");
