Commit f57d7f52 authored by Mark Brown's avatar Mark Brown

ASoC: codecs: wcd family: cleanups

Merge series from Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>:

Set of simple cleanups from similar issues in all Qualcomm WCD93xx
codecs.

The first patch "ASoC: codecs: wcd-mbhc: Constify passed MBHC reg
fields" is a requirement for few others, but except this they are
independent.
parents 8ae105be 34935cd4
...@@ -50,7 +50,7 @@ struct wcd_mbhc { ...@@ -50,7 +50,7 @@ struct wcd_mbhc {
struct wcd_mbhc_config *cfg; struct wcd_mbhc_config *cfg;
const struct wcd_mbhc_cb *mbhc_cb; const struct wcd_mbhc_cb *mbhc_cb;
const struct wcd_mbhc_intr *intr_ids; const struct wcd_mbhc_intr *intr_ids;
struct wcd_mbhc_field *fields; const struct wcd_mbhc_field *fields;
/* Delayed work to report long button press */ /* Delayed work to report long button press */
struct delayed_work mbhc_btn_dwork; struct delayed_work mbhc_btn_dwork;
/* Work to handle plug report */ /* Work to handle plug report */
...@@ -1505,7 +1505,7 @@ EXPORT_SYMBOL(wcd_dt_parse_mbhc_data); ...@@ -1505,7 +1505,7 @@ EXPORT_SYMBOL(wcd_dt_parse_mbhc_data);
struct wcd_mbhc *wcd_mbhc_init(struct snd_soc_component *component, struct wcd_mbhc *wcd_mbhc_init(struct snd_soc_component *component,
const struct wcd_mbhc_cb *mbhc_cb, const struct wcd_mbhc_cb *mbhc_cb,
const struct wcd_mbhc_intr *intr_ids, const struct wcd_mbhc_intr *intr_ids,
struct wcd_mbhc_field *fields, const struct wcd_mbhc_field *fields,
bool impedance_det_en) bool impedance_det_en)
{ {
struct device *dev = component->dev; struct device *dev = component->dev;
......
...@@ -279,7 +279,7 @@ int wcd_mbhc_typec_report_unplug(struct wcd_mbhc *mbhc); ...@@ -279,7 +279,7 @@ int wcd_mbhc_typec_report_unplug(struct wcd_mbhc *mbhc);
struct wcd_mbhc *wcd_mbhc_init(struct snd_soc_component *component, struct wcd_mbhc *wcd_mbhc_init(struct snd_soc_component *component,
const struct wcd_mbhc_cb *mbhc_cb, const struct wcd_mbhc_cb *mbhc_cb,
const struct wcd_mbhc_intr *mbhc_cdc_intr_ids, const struct wcd_mbhc_intr *mbhc_cdc_intr_ids,
struct wcd_mbhc_field *fields, const struct wcd_mbhc_field *fields,
bool impedance_det_en); bool impedance_det_en);
int wcd_mbhc_get_impedance(struct wcd_mbhc *mbhc, uint32_t *zl, int wcd_mbhc_get_impedance(struct wcd_mbhc *mbhc, uint32_t *zl,
uint32_t *zr); uint32_t *zr);
...@@ -300,7 +300,7 @@ static inline void wcd_mbhc_stop(struct wcd_mbhc *mbhc) ...@@ -300,7 +300,7 @@ static inline void wcd_mbhc_stop(struct wcd_mbhc *mbhc)
static inline struct wcd_mbhc *wcd_mbhc_init(struct snd_soc_component *component, static inline struct wcd_mbhc *wcd_mbhc_init(struct snd_soc_component *component,
const struct wcd_mbhc_cb *mbhc_cb, const struct wcd_mbhc_cb *mbhc_cb,
const struct wcd_mbhc_intr *mbhc_cdc_intr_ids, const struct wcd_mbhc_intr *mbhc_cdc_intr_ids,
struct wcd_mbhc_field *fields, const struct wcd_mbhc_field *fields,
bool impedance_det_en) bool impedance_det_en)
{ {
return ERR_PTR(-ENOTSUPP); return ERR_PTR(-ENOTSUPP);
......
...@@ -297,7 +297,6 @@ struct wcd9335_codec { ...@@ -297,7 +297,6 @@ struct wcd9335_codec {
struct clk *mclk; struct clk *mclk;
struct clk *native_clk; struct clk *native_clk;
u32 mclk_rate; u32 mclk_rate;
u8 version;
struct slim_device *slim; struct slim_device *slim;
struct slim_device *slim_ifc_dev; struct slim_device *slim_ifc_dev;
...@@ -345,10 +344,6 @@ struct wcd9335_codec { ...@@ -345,10 +344,6 @@ struct wcd9335_codec {
int dmic_0_1_clk_cnt; int dmic_0_1_clk_cnt;
int dmic_2_3_clk_cnt; int dmic_2_3_clk_cnt;
int dmic_4_5_clk_cnt; int dmic_4_5_clk_cnt;
int dmic_sample_rate;
int mad_dmic_sample_rate;
int native_clk_users;
}; };
struct wcd9335_irq { struct wcd9335_irq {
...@@ -397,13 +392,13 @@ struct interp_sample_rate { ...@@ -397,13 +392,13 @@ struct interp_sample_rate {
int rate_val; int rate_val;
}; };
static struct interp_sample_rate int_mix_rate_val[] = { static const struct interp_sample_rate int_mix_rate_val[] = {
{48000, 0x4}, /* 48K */ {48000, 0x4}, /* 48K */
{96000, 0x5}, /* 96K */ {96000, 0x5}, /* 96K */
{192000, 0x6}, /* 192K */ {192000, 0x6}, /* 192K */
}; };
static struct interp_sample_rate int_prim_rate_val[] = { static const struct interp_sample_rate int_prim_rate_val[] = {
{8000, 0x0}, /* 8K */ {8000, 0x0}, /* 8K */
{16000, 0x1}, /* 16K */ {16000, 0x1}, /* 16K */
{24000, -EINVAL},/* 24K */ {24000, -EINVAL},/* 24K */
...@@ -2847,56 +2842,15 @@ static int wcd9335_codec_enable_dec(struct snd_soc_dapm_widget *w, ...@@ -2847,56 +2842,15 @@ static int wcd9335_codec_enable_dec(struct snd_soc_dapm_widget *w,
} }
static u8 wcd9335_get_dmic_clk_val(struct snd_soc_component *component, static u8 wcd9335_get_dmic_clk_val(struct snd_soc_component *component,
u32 mclk_rate, u32 dmic_clk_rate) u32 mclk_rate)
{ {
u32 div_factor;
u8 dmic_ctl_val; u8 dmic_ctl_val;
dev_err(component->dev,
"%s: mclk_rate = %d, dmic_sample_rate = %d\n",
__func__, mclk_rate, dmic_clk_rate);
/* Default value to return in case of error */
if (mclk_rate == WCD9335_MCLK_CLK_9P6MHZ) if (mclk_rate == WCD9335_MCLK_CLK_9P6MHZ)
dmic_ctl_val = WCD9335_DMIC_CLK_DIV_2; dmic_ctl_val = WCD9335_DMIC_CLK_DIV_2;
else else
dmic_ctl_val = WCD9335_DMIC_CLK_DIV_3; dmic_ctl_val = WCD9335_DMIC_CLK_DIV_3;
if (dmic_clk_rate == 0) {
dev_err(component->dev,
"%s: dmic_sample_rate cannot be 0\n",
__func__);
goto done;
}
div_factor = mclk_rate / dmic_clk_rate;
switch (div_factor) {
case 2:
dmic_ctl_val = WCD9335_DMIC_CLK_DIV_2;
break;
case 3:
dmic_ctl_val = WCD9335_DMIC_CLK_DIV_3;
break;
case 4:
dmic_ctl_val = WCD9335_DMIC_CLK_DIV_4;
break;
case 6:
dmic_ctl_val = WCD9335_DMIC_CLK_DIV_6;
break;
case 8:
dmic_ctl_val = WCD9335_DMIC_CLK_DIV_8;
break;
case 16:
dmic_ctl_val = WCD9335_DMIC_CLK_DIV_16;
break;
default:
dev_err(component->dev,
"%s: Invalid div_factor %u, clk_rate(%u), dmic_rate(%u)\n",
__func__, div_factor, mclk_rate, dmic_clk_rate);
break;
}
done:
return dmic_ctl_val; return dmic_ctl_val;
} }
...@@ -2950,11 +2904,7 @@ static int wcd9335_codec_enable_dmic(struct snd_soc_dapm_widget *w, ...@@ -2950,11 +2904,7 @@ static int wcd9335_codec_enable_dmic(struct snd_soc_dapm_widget *w,
switch (event) { switch (event) {
case SND_SOC_DAPM_PRE_PMU: case SND_SOC_DAPM_PRE_PMU:
dmic_rate_val = dmic_rate_val = wcd9335_get_dmic_clk_val(comp, wcd->mclk_rate);
wcd9335_get_dmic_clk_val(comp,
wcd->mclk_rate,
wcd->dmic_sample_rate);
(*dmic_clk_cnt)++; (*dmic_clk_cnt)++;
if (*dmic_clk_cnt == 1) { if (*dmic_clk_cnt == 1) {
snd_soc_component_update_bits(comp, dmic_clk_reg, snd_soc_component_update_bits(comp, dmic_clk_reg,
...@@ -2966,10 +2916,7 @@ static int wcd9335_codec_enable_dmic(struct snd_soc_dapm_widget *w, ...@@ -2966,10 +2916,7 @@ static int wcd9335_codec_enable_dmic(struct snd_soc_dapm_widget *w,
break; break;
case SND_SOC_DAPM_POST_PMD: case SND_SOC_DAPM_POST_PMD:
dmic_rate_val = dmic_rate_val = wcd9335_get_dmic_clk_val(comp, wcd->mclk_rate);
wcd9335_get_dmic_clk_val(comp,
wcd->mclk_rate,
wcd->mad_dmic_sample_rate);
(*dmic_clk_cnt)--; (*dmic_clk_cnt)--;
if (*dmic_clk_cnt == 0) { if (*dmic_clk_cnt == 0) {
snd_soc_component_update_bits(comp, dmic_clk_reg, snd_soc_component_update_bits(comp, dmic_clk_reg,
...@@ -4026,7 +3973,7 @@ static irqreturn_t wcd9335_slimbus_irq(int irq, void *data) ...@@ -4026,7 +3973,7 @@ static irqreturn_t wcd9335_slimbus_irq(int irq, void *data)
return ret; return ret;
} }
static struct wcd9335_irq wcd9335_irqs[] = { static const struct wcd9335_irq wcd9335_irqs[] = {
{ {
.irq = WCD9335_IRQ_SLIMBUS, .irq = WCD9335_IRQ_SLIMBUS,
.handler = wcd9335_slimbus_irq, .handler = wcd9335_slimbus_irq,
...@@ -4963,7 +4910,7 @@ static bool wcd9335_is_volatile_register(struct device *dev, unsigned int reg) ...@@ -4963,7 +4910,7 @@ static bool wcd9335_is_volatile_register(struct device *dev, unsigned int reg)
} }
} }
static struct regmap_config wcd9335_regmap_config = { static const struct regmap_config wcd9335_regmap_config = {
.reg_bits = 16, .reg_bits = 16,
.val_bits = 8, .val_bits = 8,
.cache_type = REGCACHE_MAPLE, .cache_type = REGCACHE_MAPLE,
...@@ -4987,7 +4934,7 @@ static const struct regmap_range_cfg wcd9335_ifc_ranges[] = { ...@@ -4987,7 +4934,7 @@ static const struct regmap_range_cfg wcd9335_ifc_ranges[] = {
}, },
}; };
static struct regmap_config wcd9335_ifc_regmap_config = { static const struct regmap_config wcd9335_ifc_regmap_config = {
.reg_bits = 16, .reg_bits = 16,
.val_bits = 8, .val_bits = 8,
.can_multi_write = true, .can_multi_write = true,
...@@ -5034,22 +4981,16 @@ static int wcd9335_parse_dt(struct wcd9335_codec *wcd) ...@@ -5034,22 +4981,16 @@ static int wcd9335_parse_dt(struct wcd9335_codec *wcd)
int ret; int ret;
wcd->reset_gpio = of_get_named_gpio(np, "reset-gpios", 0); wcd->reset_gpio = of_get_named_gpio(np, "reset-gpios", 0);
if (wcd->reset_gpio < 0) { if (wcd->reset_gpio < 0)
dev_err(dev, "Reset GPIO missing from DT\n"); return dev_err_probe(dev, wcd->reset_gpio, "Reset GPIO missing from DT\n");
return wcd->reset_gpio;
}
wcd->mclk = devm_clk_get(dev, "mclk"); wcd->mclk = devm_clk_get(dev, "mclk");
if (IS_ERR(wcd->mclk)) { if (IS_ERR(wcd->mclk))
dev_err(dev, "mclk not found\n"); return dev_err_probe(dev, PTR_ERR(wcd->mclk), "mclk not found\n");
return PTR_ERR(wcd->mclk);
}
wcd->native_clk = devm_clk_get(dev, "slimbus"); wcd->native_clk = devm_clk_get(dev, "slimbus");
if (IS_ERR(wcd->native_clk)) { if (IS_ERR(wcd->native_clk))
dev_err(dev, "slimbus clock not found\n"); return dev_err_probe(dev, PTR_ERR(wcd->native_clk), "slimbus clock not found\n");
return PTR_ERR(wcd->native_clk);
}
wcd->supplies[0].supply = "vdd-buck"; wcd->supplies[0].supply = "vdd-buck";
wcd->supplies[1].supply = "vdd-buck-sido"; wcd->supplies[1].supply = "vdd-buck-sido";
...@@ -5058,10 +4999,8 @@ static int wcd9335_parse_dt(struct wcd9335_codec *wcd) ...@@ -5058,10 +4999,8 @@ static int wcd9335_parse_dt(struct wcd9335_codec *wcd)
wcd->supplies[4].supply = "vdd-io"; wcd->supplies[4].supply = "vdd-io";
ret = regulator_bulk_get(dev, WCD9335_MAX_SUPPLY, wcd->supplies); ret = regulator_bulk_get(dev, WCD9335_MAX_SUPPLY, wcd->supplies);
if (ret) { if (ret)
dev_err(dev, "Failed to get supplies: err = %d\n", ret); return dev_err_probe(dev, ret, "Failed to get supplies\n");
return ret;
}
return 0; return 0;
} }
...@@ -5109,7 +5048,6 @@ static int wcd9335_bring_up(struct wcd9335_codec *wcd) ...@@ -5109,7 +5048,6 @@ static int wcd9335_bring_up(struct wcd9335_codec *wcd)
if (byte0 == 0x1) { if (byte0 == 0x1) {
dev_info(wcd->dev, "WCD9335 CODEC version is v2.0\n"); dev_info(wcd->dev, "WCD9335 CODEC version is v2.0\n");
wcd->version = WCD9335_VERSION_2_0;
regmap_write(rm, WCD9335_CODEC_RPM_RST_CTL, 0x01); regmap_write(rm, WCD9335_CODEC_RPM_RST_CTL, 0x01);
regmap_write(rm, WCD9335_SIDO_SIDO_TEST_2, 0x00); regmap_write(rm, WCD9335_SIDO_SIDO_TEST_2, 0x00);
regmap_write(rm, WCD9335_SIDO_SIDO_CCL_8, 0x6F); regmap_write(rm, WCD9335_SIDO_SIDO_CCL_8, 0x6F);
...@@ -5161,10 +5099,8 @@ static int wcd9335_slim_probe(struct slim_device *slim) ...@@ -5161,10 +5099,8 @@ static int wcd9335_slim_probe(struct slim_device *slim)
wcd->dev = dev; wcd->dev = dev;
ret = wcd9335_parse_dt(wcd); ret = wcd9335_parse_dt(wcd);
if (ret) { if (ret)
dev_err(dev, "Error parsing DT: %d\n", ret);
return ret; return ret;
}
ret = wcd9335_power_on_reset(wcd); ret = wcd9335_power_on_reset(wcd);
if (ret) if (ret)
......
...@@ -475,17 +475,12 @@ enum { ...@@ -475,17 +475,12 @@ enum {
INTn_2_INP_SEL_PROXIMITY, INTn_2_INP_SEL_PROXIMITY,
}; };
enum {
INTERP_MAIN_PATH,
INTERP_MIX_PATH,
};
struct interp_sample_rate { struct interp_sample_rate {
int sample_rate; int sample_rate;
int rate_val; int rate_val;
}; };
static struct interp_sample_rate sr_val_tbl[] = { static const struct interp_sample_rate sr_val_tbl[] = {
{8000, 0x0}, {8000, 0x0},
{16000, 0x1}, {16000, 0x1},
{32000, 0x3}, {32000, 0x3},
...@@ -527,7 +522,7 @@ static const struct regmap_range_cfg wcd934x_ifc_ranges[] = { ...@@ -527,7 +522,7 @@ static const struct regmap_range_cfg wcd934x_ifc_ranges[] = {
}, },
}; };
static struct regmap_config wcd934x_ifc_regmap_config = { static const struct regmap_config wcd934x_ifc_regmap_config = {
.reg_bits = 16, .reg_bits = 16,
.val_bits = 8, .val_bits = 8,
.max_register = 0xffff, .max_register = 0xffff,
...@@ -571,10 +566,7 @@ struct wcd934x_codec { ...@@ -571,10 +566,7 @@ struct wcd934x_codec {
struct mutex micb_lock; struct mutex micb_lock;
u32 micb_ref[WCD934X_MAX_MICBIAS]; u32 micb_ref[WCD934X_MAX_MICBIAS];
u32 pullup_ref[WCD934X_MAX_MICBIAS]; u32 pullup_ref[WCD934X_MAX_MICBIAS];
u32 micb1_mv;
u32 micb2_mv; u32 micb2_mv;
u32 micb3_mv;
u32 micb4_mv;
}; };
#define to_wcd934x_codec(_hw) container_of(_hw, struct wcd934x_codec, hw) #define to_wcd934x_codec(_hw) container_of(_hw, struct wcd934x_codec, hw)
...@@ -1217,7 +1209,7 @@ static const struct soc_enum cdc_if_tx13_mux_enum = ...@@ -1217,7 +1209,7 @@ static const struct soc_enum cdc_if_tx13_mux_enum =
SOC_ENUM_SINGLE(WCD934X_DATA_HUB_SB_TX13_INP_CFG, 0, SOC_ENUM_SINGLE(WCD934X_DATA_HUB_SB_TX13_INP_CFG, 0,
ARRAY_SIZE(cdc_if_tx13_mux_text), cdc_if_tx13_mux_text); ARRAY_SIZE(cdc_if_tx13_mux_text), cdc_if_tx13_mux_text);
static struct wcd_mbhc_field wcd_mbhc_fields[WCD_MBHC_REG_FUNC_MAX] = { static const struct wcd_mbhc_field wcd_mbhc_fields[WCD_MBHC_REG_FUNC_MAX] = {
WCD_MBHC_FIELD(WCD_MBHC_L_DET_EN, WCD934X_ANA_MBHC_MECH, 0x80), WCD_MBHC_FIELD(WCD_MBHC_L_DET_EN, WCD934X_ANA_MBHC_MECH, 0x80),
WCD_MBHC_FIELD(WCD_MBHC_GND_DET_EN, WCD934X_ANA_MBHC_MECH, 0x40), WCD_MBHC_FIELD(WCD_MBHC_GND_DET_EN, WCD934X_ANA_MBHC_MECH, 0x40),
WCD_MBHC_FIELD(WCD_MBHC_MECH_DETECTION_TYPE, WCD934X_ANA_MBHC_MECH, 0x20), WCD_MBHC_FIELD(WCD_MBHC_MECH_DETECTION_TYPE, WCD934X_ANA_MBHC_MECH, 0x20),
...@@ -2208,7 +2200,8 @@ static int wcd934x_get_micbias_val(struct device *dev, const char *micbias, ...@@ -2208,7 +2200,8 @@ static int wcd934x_get_micbias_val(struct device *dev, const char *micbias,
mv = WCD934X_DEF_MICBIAS_MV; mv = WCD934X_DEF_MICBIAS_MV;
} }
*micb_mv = mv; if (micb_mv)
*micb_mv = mv;
return (mv - 1000) / 50; return (mv - 1000) / 50;
} }
...@@ -2220,17 +2213,14 @@ static int wcd934x_init_dmic(struct snd_soc_component *comp) ...@@ -2220,17 +2213,14 @@ static int wcd934x_init_dmic(struct snd_soc_component *comp)
u32 def_dmic_rate, dmic_clk_drv; u32 def_dmic_rate, dmic_clk_drv;
vout_ctl_1 = wcd934x_get_micbias_val(comp->dev, vout_ctl_1 = wcd934x_get_micbias_val(comp->dev,
"qcom,micbias1-microvolt", "qcom,micbias1-microvolt", NULL);
&wcd->micb1_mv);
vout_ctl_2 = wcd934x_get_micbias_val(comp->dev, vout_ctl_2 = wcd934x_get_micbias_val(comp->dev,
"qcom,micbias2-microvolt", "qcom,micbias2-microvolt",
&wcd->micb2_mv); &wcd->micb2_mv);
vout_ctl_3 = wcd934x_get_micbias_val(comp->dev, vout_ctl_3 = wcd934x_get_micbias_val(comp->dev,
"qcom,micbias3-microvolt", "qcom,micbias3-microvolt", NULL);
&wcd->micb3_mv);
vout_ctl_4 = wcd934x_get_micbias_val(comp->dev, vout_ctl_4 = wcd934x_get_micbias_val(comp->dev,
"qcom,micbias4-microvolt", "qcom,micbias4-microvolt", NULL);
&wcd->micb4_mv);
snd_soc_component_update_bits(comp, WCD934X_ANA_MICB1, snd_soc_component_update_bits(comp, WCD934X_ANA_MICB1,
WCD934X_MICB_VAL_MASK, vout_ctl_1); WCD934X_MICB_VAL_MASK, vout_ctl_1);
...@@ -5866,17 +5856,13 @@ static int wcd934x_codec_parse_data(struct wcd934x_codec *wcd) ...@@ -5866,17 +5856,13 @@ static int wcd934x_codec_parse_data(struct wcd934x_codec *wcd)
struct device_node *ifc_dev_np; struct device_node *ifc_dev_np;
ifc_dev_np = of_parse_phandle(dev->of_node, "slim-ifc-dev", 0); ifc_dev_np = of_parse_phandle(dev->of_node, "slim-ifc-dev", 0);
if (!ifc_dev_np) { if (!ifc_dev_np)
dev_err(dev, "No Interface device found\n"); return dev_err_probe(dev, -EINVAL, "No Interface device found\n");
return -EINVAL;
}
wcd->sidev = of_slim_get_device(wcd->sdev->ctrl, ifc_dev_np); wcd->sidev = of_slim_get_device(wcd->sdev->ctrl, ifc_dev_np);
of_node_put(ifc_dev_np); of_node_put(ifc_dev_np);
if (!wcd->sidev) { if (!wcd->sidev)
dev_err(dev, "Unable to get SLIM Interface device\n"); return dev_err_probe(dev, -EINVAL, "Unable to get SLIM Interface device\n");
return -EINVAL;
}
slim_get_logical_addr(wcd->sidev); slim_get_logical_addr(wcd->sidev);
wcd->if_regmap = regmap_init_slimbus(wcd->sidev, wcd->if_regmap = regmap_init_slimbus(wcd->sidev,
...@@ -5922,10 +5908,8 @@ static int wcd934x_codec_probe(struct platform_device *pdev) ...@@ -5922,10 +5908,8 @@ static int wcd934x_codec_probe(struct platform_device *pdev)
mutex_init(&wcd->micb_lock); mutex_init(&wcd->micb_lock);
ret = wcd934x_codec_parse_data(wcd); ret = wcd934x_codec_parse_data(wcd);
if (ret) { if (ret)
dev_err(wcd->dev, "Failed to get SLIM IRQ\n");
return ret; return ret;
}
/* set default rate 9P6MHz */ /* set default rate 9P6MHz */
regmap_update_bits(wcd->regmap, WCD934X_CODEC_RPM_CLK_MCLK_CFG, regmap_update_bits(wcd->regmap, WCD934X_CODEC_RPM_CLK_MCLK_CFG,
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
#include <sound/soc.h> #include <sound/soc.h>
#include "wcd937x.h" #include "wcd937x.h"
static struct wcd937x_sdw_ch_info wcd937x_sdw_rx_ch_info[] = { static const struct wcd937x_sdw_ch_info wcd937x_sdw_rx_ch_info[] = {
WCD_SDW_CH(WCD937X_HPH_L, WCD937X_HPH_PORT, BIT(0)), WCD_SDW_CH(WCD937X_HPH_L, WCD937X_HPH_PORT, BIT(0)),
WCD_SDW_CH(WCD937X_HPH_R, WCD937X_HPH_PORT, BIT(1)), WCD_SDW_CH(WCD937X_HPH_R, WCD937X_HPH_PORT, BIT(1)),
WCD_SDW_CH(WCD937X_CLSH, WCD937X_CLSH_PORT, BIT(0)), WCD_SDW_CH(WCD937X_CLSH, WCD937X_CLSH_PORT, BIT(0)),
...@@ -30,7 +30,7 @@ static struct wcd937x_sdw_ch_info wcd937x_sdw_rx_ch_info[] = { ...@@ -30,7 +30,7 @@ static struct wcd937x_sdw_ch_info wcd937x_sdw_rx_ch_info[] = {
WCD_SDW_CH(WCD937X_DSD_R, WCD937X_DSD_PORT, BIT(1)), WCD_SDW_CH(WCD937X_DSD_R, WCD937X_DSD_PORT, BIT(1)),
}; };
static struct wcd937x_sdw_ch_info wcd937x_sdw_tx_ch_info[] = { static const struct wcd937x_sdw_ch_info wcd937x_sdw_tx_ch_info[] = {
WCD_SDW_CH(WCD937X_ADC1, WCD937X_ADC_1_PORT, BIT(0)), WCD_SDW_CH(WCD937X_ADC1, WCD937X_ADC_1_PORT, BIT(0)),
WCD_SDW_CH(WCD937X_ADC2, WCD937X_ADC_2_3_PORT, BIT(0)), WCD_SDW_CH(WCD937X_ADC2, WCD937X_ADC_2_3_PORT, BIT(0)),
WCD_SDW_CH(WCD937X_ADC3, WCD937X_ADC_2_3_PORT, BIT(0)), WCD_SDW_CH(WCD937X_ADC3, WCD937X_ADC_2_3_PORT, BIT(0)),
......
...@@ -99,11 +99,9 @@ struct wcd937x_priv { ...@@ -99,11 +99,9 @@ struct wcd937x_priv {
s32 pullup_ref[WCD937X_MAX_MICBIAS]; s32 pullup_ref[WCD937X_MAX_MICBIAS];
u32 hph_mode; u32 hph_mode;
int ear_rx_path; int ear_rx_path;
u32 chipid;
u32 micb1_mv; u32 micb1_mv;
u32 micb2_mv; u32 micb2_mv;
u32 micb3_mv; u32 micb3_mv;
u32 micb4_mv; /* 9375 only */
int hphr_pdm_wd_int; int hphr_pdm_wd_int;
int hphl_pdm_wd_int; int hphl_pdm_wd_int;
int aux_pdm_wd_int; int aux_pdm_wd_int;
...@@ -113,9 +111,6 @@ struct wcd937x_priv { ...@@ -113,9 +111,6 @@ struct wcd937x_priv {
struct gpio_desc *us_euro_gpio; struct gpio_desc *us_euro_gpio;
struct gpio_desc *reset_gpio; struct gpio_desc *reset_gpio;
int dmic_0_1_clk_cnt;
int dmic_2_3_clk_cnt;
int dmic_4_5_clk_cnt;
atomic_t rx_clk_cnt; atomic_t rx_clk_cnt;
atomic_t ana_clk_count; atomic_t ana_clk_count;
}; };
...@@ -133,7 +128,7 @@ struct wcd937x_mbhc_zdet_param { ...@@ -133,7 +128,7 @@ struct wcd937x_mbhc_zdet_param {
u16 btn7; u16 btn7;
}; };
static struct wcd_mbhc_field wcd_mbhc_fields[WCD_MBHC_REG_FUNC_MAX] = { static const struct wcd_mbhc_field wcd_mbhc_fields[WCD_MBHC_REG_FUNC_MAX] = {
WCD_MBHC_FIELD(WCD_MBHC_L_DET_EN, WCD937X_ANA_MBHC_MECH, 0x80), WCD_MBHC_FIELD(WCD_MBHC_L_DET_EN, WCD937X_ANA_MBHC_MECH, 0x80),
WCD_MBHC_FIELD(WCD_MBHC_GND_DET_EN, WCD937X_ANA_MBHC_MECH, 0x40), WCD_MBHC_FIELD(WCD_MBHC_GND_DET_EN, WCD937X_ANA_MBHC_MECH, 0x40),
WCD_MBHC_FIELD(WCD_MBHC_MECH_DETECTION_TYPE, WCD937X_ANA_MBHC_MECH, 0x20), WCD_MBHC_FIELD(WCD_MBHC_MECH_DETECTION_TYPE, WCD937X_ANA_MBHC_MECH, 0x20),
...@@ -227,7 +222,7 @@ static const u32 wcd937x_config_regs[] = { ...@@ -227,7 +222,7 @@ static const u32 wcd937x_config_regs[] = {
WCD937X_DIGITAL_INTR_LEVEL_0, WCD937X_DIGITAL_INTR_LEVEL_0,
}; };
static struct regmap_irq_chip wcd937x_regmap_irq_chip = { static const struct regmap_irq_chip wcd937x_regmap_irq_chip = {
.name = "wcd937x", .name = "wcd937x",
.irqs = wcd937x_irqs, .irqs = wcd937x_irqs,
.num_irqs = ARRAY_SIZE(wcd937x_irqs), .num_irqs = ARRAY_SIZE(wcd937x_irqs),
...@@ -1244,7 +1239,7 @@ static int wcd937x_codec_enable_micbias_pullup(struct snd_soc_dapm_widget *w, ...@@ -1244,7 +1239,7 @@ static int wcd937x_codec_enable_micbias_pullup(struct snd_soc_dapm_widget *w,
static int wcd937x_connect_port(struct wcd937x_sdw_priv *wcd, u8 port_idx, u8 ch_id, bool enable) static int wcd937x_connect_port(struct wcd937x_sdw_priv *wcd, u8 port_idx, u8 ch_id, bool enable)
{ {
struct sdw_port_config *port_config = &wcd->port_config[port_idx - 1]; struct sdw_port_config *port_config = &wcd->port_config[port_idx - 1];
struct wcd937x_sdw_ch_info *ch_info = &wcd->ch_info[ch_id]; const struct wcd937x_sdw_ch_info *ch_info = &wcd->ch_info[ch_id];
u8 port_num = ch_info->port_num; u8 port_num = ch_info->port_num;
u8 ch_mask = ch_info->ch_mask; u8 ch_mask = ch_info->ch_mask;
...@@ -2503,7 +2498,7 @@ static irqreturn_t wcd937x_wd_handle_irq(int irq, void *data) ...@@ -2503,7 +2498,7 @@ static irqreturn_t wcd937x_wd_handle_irq(int irq, void *data)
return IRQ_HANDLED; return IRQ_HANDLED;
} }
static struct irq_chip wcd_irq_chip = { static const struct irq_chip wcd_irq_chip = {
.name = "WCD937x", .name = "WCD937x",
}; };
...@@ -2543,6 +2538,7 @@ static int wcd937x_soc_codec_probe(struct snd_soc_component *component) ...@@ -2543,6 +2538,7 @@ static int wcd937x_soc_codec_probe(struct snd_soc_component *component)
struct device *dev = component->dev; struct device *dev = component->dev;
unsigned long time_left; unsigned long time_left;
int i, ret; int i, ret;
u32 chipid;
time_left = wait_for_completion_timeout(&tx_sdw_dev->initialization_complete, time_left = wait_for_completion_timeout(&tx_sdw_dev->initialization_complete,
msecs_to_jiffies(5000)); msecs_to_jiffies(5000));
...@@ -2556,11 +2552,10 @@ static int wcd937x_soc_codec_probe(struct snd_soc_component *component) ...@@ -2556,11 +2552,10 @@ static int wcd937x_soc_codec_probe(struct snd_soc_component *component)
if (ret < 0) if (ret < 0)
return ret; return ret;
wcd937x->chipid = (snd_soc_component_read(component, chipid = (snd_soc_component_read(component,
WCD937X_DIGITAL_EFUSE_REG_0) & 0x1e) >> 1; WCD937X_DIGITAL_EFUSE_REG_0) & 0x1e) >> 1;
if (wcd937x->chipid != CHIPID_WCD9370 && if (chipid != CHIPID_WCD9370 && chipid != CHIPID_WCD9375) {
wcd937x->chipid != CHIPID_WCD9375) { dev_err(dev, "Got unknown chip id: 0x%x\n", chipid);
dev_err(dev, "Got unknown chip id: 0x%x\n", wcd937x->chipid);
pm_runtime_put(dev); pm_runtime_put(dev);
return -EINVAL; return -EINVAL;
} }
...@@ -2609,7 +2604,7 @@ static int wcd937x_soc_codec_probe(struct snd_soc_component *component) ...@@ -2609,7 +2604,7 @@ static int wcd937x_soc_codec_probe(struct snd_soc_component *component)
disable_irq_nosync(wcd937x->hphl_pdm_wd_int); disable_irq_nosync(wcd937x->hphl_pdm_wd_int);
disable_irq_nosync(wcd937x->aux_pdm_wd_int); disable_irq_nosync(wcd937x->aux_pdm_wd_int);
if (wcd937x->chipid == CHIPID_WCD9375) { if (chipid == CHIPID_WCD9375) {
ret = snd_soc_dapm_new_controls(dapm, wcd9375_dapm_widgets, ret = snd_soc_dapm_new_controls(dapm, wcd9375_dapm_widgets,
ARRAY_SIZE(wcd9375_dapm_widgets)); ARRAY_SIZE(wcd9375_dapm_widgets));
if (ret < 0) { if (ret < 0) {
......
...@@ -488,23 +488,6 @@ ...@@ -488,23 +488,6 @@
#define WCD937X_MAX_SWR_PORTS 5 #define WCD937X_MAX_SWR_PORTS 5
#define WCD937X_MAX_SWR_CH_IDS 15 #define WCD937X_MAX_SWR_CH_IDS 15
/* Convert from vout ctl to micbias voltage in mV */
#define WCD_VOUT_CTL_TO_MICB(v) (1000 + (v) * 50)
#define MAX_PORT 8
#define MAX_CH_PER_PORT 8
#define MAX_TX_PWR_CH 2
#define SWR_NUM_PORTS 4
#define WCD937X_MAX_SLAVE_PORT_TYPES 10
struct codec_port_info {
u32 slave_port_type;
u32 master_port_type;
u32 ch_mask;
u32 num_ch;
u32 ch_rate;
};
struct wcd937x_sdw_ch_info { struct wcd937x_sdw_ch_info {
int port_num; int port_num;
unsigned int ch_mask; unsigned int ch_mask;
...@@ -522,10 +505,9 @@ struct wcd937x_sdw_priv { ...@@ -522,10 +505,9 @@ struct wcd937x_sdw_priv {
struct sdw_stream_config sconfig; struct sdw_stream_config sconfig;
struct sdw_stream_runtime *sruntime; struct sdw_stream_runtime *sruntime;
struct sdw_port_config port_config[WCD937X_MAX_SWR_PORTS]; struct sdw_port_config port_config[WCD937X_MAX_SWR_PORTS];
struct wcd937x_sdw_ch_info *ch_info; const struct wcd937x_sdw_ch_info *ch_info;
bool port_enable[WCD937X_MAX_SWR_CH_IDS]; bool port_enable[WCD937X_MAX_SWR_CH_IDS];
int active_ports; int active_ports;
int num_ports;
bool is_tx; bool is_tx;
struct wcd937x_priv *wcd937x; struct wcd937x_priv *wcd937x;
struct irq_domain *slave_irq; struct irq_domain *slave_irq;
...@@ -570,12 +552,6 @@ int wcd937x_sdw_hw_params(struct wcd937x_sdw_priv *wcd, ...@@ -570,12 +552,6 @@ int wcd937x_sdw_hw_params(struct wcd937x_sdw_priv *wcd,
} }
#endif #endif
enum {
WCD_RX1,
WCD_RX2,
WCD_RX3
};
enum { enum {
/* INTR_CTRL_INT_MASK_0 */ /* INTR_CTRL_INT_MASK_0 */
WCD937X_IRQ_MBHC_BUTTON_PRESS_DET = 0, WCD937X_IRQ_MBHC_BUTTON_PRESS_DET = 0,
...@@ -645,9 +621,4 @@ enum wcd937x_rx_sdw_channels { ...@@ -645,9 +621,4 @@ enum wcd937x_rx_sdw_channels {
WCD937X_DSD_L, WCD937X_DSD_L,
}; };
enum {
WCD937X_SDW_DIR_RX,
WCD937X_SDW_DIR_TX,
};
#endif #endif
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
#define SWRS_SCP_HOST_CLK_DIV2_CTL_BANK(m) (0xE0 + 0x10 * (m)) #define SWRS_SCP_HOST_CLK_DIV2_CTL_BANK(m) (0xE0 + 0x10 * (m))
static struct wcd938x_sdw_ch_info wcd938x_sdw_rx_ch_info[] = { static const struct wcd938x_sdw_ch_info wcd938x_sdw_rx_ch_info[] = {
WCD_SDW_CH(WCD938X_HPH_L, WCD938X_HPH_PORT, BIT(0)), WCD_SDW_CH(WCD938X_HPH_L, WCD938X_HPH_PORT, BIT(0)),
WCD_SDW_CH(WCD938X_HPH_R, WCD938X_HPH_PORT, BIT(1)), WCD_SDW_CH(WCD938X_HPH_R, WCD938X_HPH_PORT, BIT(1)),
WCD_SDW_CH(WCD938X_CLSH, WCD938X_CLSH_PORT, BIT(0)), WCD_SDW_CH(WCD938X_CLSH, WCD938X_CLSH_PORT, BIT(0)),
...@@ -32,7 +32,7 @@ static struct wcd938x_sdw_ch_info wcd938x_sdw_rx_ch_info[] = { ...@@ -32,7 +32,7 @@ static struct wcd938x_sdw_ch_info wcd938x_sdw_rx_ch_info[] = {
WCD_SDW_CH(WCD938X_DSD_R, WCD938X_DSD_PORT, BIT(1)), WCD_SDW_CH(WCD938X_DSD_R, WCD938X_DSD_PORT, BIT(1)),
}; };
static struct wcd938x_sdw_ch_info wcd938x_sdw_tx_ch_info[] = { static const struct wcd938x_sdw_ch_info wcd938x_sdw_tx_ch_info[] = {
WCD_SDW_CH(WCD938X_ADC1, WCD938X_ADC_1_2_PORT, BIT(0)), WCD_SDW_CH(WCD938X_ADC1, WCD938X_ADC_1_2_PORT, BIT(0)),
WCD_SDW_CH(WCD938X_ADC2, WCD938X_ADC_1_2_PORT, BIT(1)), WCD_SDW_CH(WCD938X_ADC2, WCD938X_ADC_1_2_PORT, BIT(1)),
WCD_SDW_CH(WCD938X_ADC3, WCD938X_ADC_3_4_PORT, BIT(0)), WCD_SDW_CH(WCD938X_ADC3, WCD938X_ADC_3_4_PORT, BIT(0)),
......
...@@ -221,7 +221,7 @@ struct wcd938x_mbhc_zdet_param { ...@@ -221,7 +221,7 @@ struct wcd938x_mbhc_zdet_param {
u16 btn7; u16 btn7;
}; };
static struct wcd_mbhc_field wcd_mbhc_fields[WCD_MBHC_REG_FUNC_MAX] = { static const struct wcd_mbhc_field wcd_mbhc_fields[WCD_MBHC_REG_FUNC_MAX] = {
WCD_MBHC_FIELD(WCD_MBHC_L_DET_EN, WCD938X_ANA_MBHC_MECH, 0x80), WCD_MBHC_FIELD(WCD_MBHC_L_DET_EN, WCD938X_ANA_MBHC_MECH, 0x80),
WCD_MBHC_FIELD(WCD_MBHC_GND_DET_EN, WCD938X_ANA_MBHC_MECH, 0x40), WCD_MBHC_FIELD(WCD_MBHC_GND_DET_EN, WCD938X_ANA_MBHC_MECH, 0x40),
WCD_MBHC_FIELD(WCD_MBHC_MECH_DETECTION_TYPE, WCD938X_ANA_MBHC_MECH, 0x20), WCD_MBHC_FIELD(WCD_MBHC_MECH_DETECTION_TYPE, WCD938X_ANA_MBHC_MECH, 0x20),
...@@ -418,7 +418,7 @@ static int wcd938x_io_init(struct wcd938x_priv *wcd938x) ...@@ -418,7 +418,7 @@ static int wcd938x_io_init(struct wcd938x_priv *wcd938x)
} }
static int wcd938x_sdw_connect_port(struct wcd938x_sdw_ch_info *ch_info, static int wcd938x_sdw_connect_port(const struct wcd938x_sdw_ch_info *ch_info,
struct sdw_port_config *port_config, struct sdw_port_config *port_config,
u8 enable) u8 enable)
{ {
...@@ -3027,7 +3027,7 @@ static irqreturn_t wcd938x_wd_handle_irq(int irq, void *data) ...@@ -3027,7 +3027,7 @@ static irqreturn_t wcd938x_wd_handle_irq(int irq, void *data)
return IRQ_HANDLED; return IRQ_HANDLED;
} }
static struct irq_chip wcd_irq_chip = { static const struct irq_chip wcd_irq_chip = {
.name = "WCD938x", .name = "WCD938x",
}; };
......
...@@ -642,10 +642,6 @@ enum wcd938x_rx_sdw_channels { ...@@ -642,10 +642,6 @@ enum wcd938x_rx_sdw_channels {
WCD938X_DSD_R, WCD938X_DSD_R,
WCD938X_DSD_L, WCD938X_DSD_L,
}; };
enum {
WCD938X_SDW_DIR_RX,
WCD938X_SDW_DIR_TX,
};
struct wcd938x_priv; struct wcd938x_priv;
struct wcd938x_sdw_priv { struct wcd938x_sdw_priv {
...@@ -653,10 +649,9 @@ struct wcd938x_sdw_priv { ...@@ -653,10 +649,9 @@ struct wcd938x_sdw_priv {
struct sdw_stream_config sconfig; struct sdw_stream_config sconfig;
struct sdw_stream_runtime *sruntime; struct sdw_stream_runtime *sruntime;
struct sdw_port_config port_config[WCD938X_MAX_SWR_PORTS]; struct sdw_port_config port_config[WCD938X_MAX_SWR_PORTS];
struct wcd938x_sdw_ch_info *ch_info; const struct wcd938x_sdw_ch_info *ch_info;
bool port_enable[WCD938X_MAX_SWR_CH_IDS]; bool port_enable[WCD938X_MAX_SWR_CH_IDS];
int active_ports; int active_ports;
int num_ports;
bool is_tx; bool is_tx;
struct wcd938x_priv *wcd938x; struct wcd938x_priv *wcd938x;
struct irq_domain *slave_irq; struct irq_domain *slave_irq;
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
#define SWRS_SCP_HOST_CLK_DIV2_CTL_BANK(m) (0xE0 + 0x10 * (m)) #define SWRS_SCP_HOST_CLK_DIV2_CTL_BANK(m) (0xE0 + 0x10 * (m))
static struct wcd939x_sdw_ch_info wcd939x_sdw_rx_ch_info[] = { static const struct wcd939x_sdw_ch_info wcd939x_sdw_rx_ch_info[] = {
WCD_SDW_CH(WCD939X_HPH_L, WCD939X_HPH_PORT, BIT(0)), 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_HPH_R, WCD939X_HPH_PORT, BIT(1)),
WCD_SDW_CH(WCD939X_CLSH, WCD939X_CLSH_PORT, BIT(0)), WCD_SDW_CH(WCD939X_CLSH, WCD939X_CLSH_PORT, BIT(0)),
...@@ -36,7 +36,7 @@ static struct wcd939x_sdw_ch_info wcd939x_sdw_rx_ch_info[] = { ...@@ -36,7 +36,7 @@ static struct wcd939x_sdw_ch_info wcd939x_sdw_rx_ch_info[] = {
WCD_SDW_CH(WCD939X_HIFI_PCM_R, WCD939X_HIFI_PCM_PORT, BIT(1)), WCD_SDW_CH(WCD939X_HIFI_PCM_R, WCD939X_HIFI_PCM_PORT, BIT(1)),
}; };
static struct wcd939x_sdw_ch_info wcd939x_sdw_tx_ch_info[] = { static const struct wcd939x_sdw_ch_info wcd939x_sdw_tx_ch_info[] = {
WCD_SDW_CH(WCD939X_ADC1, WCD939X_ADC_1_4_PORT, BIT(0)), 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_ADC2, WCD939X_ADC_1_4_PORT, BIT(1)),
WCD_SDW_CH(WCD939X_ADC3, WCD939X_ADC_1_4_PORT, BIT(2)), WCD_SDW_CH(WCD939X_ADC3, WCD939X_ADC_1_4_PORT, BIT(2)),
......
...@@ -220,7 +220,7 @@ static const SNDRV_CTL_TLVD_DECLARE_DB_MINMAX(ear_pa_gain, 600, -1800); ...@@ -220,7 +220,7 @@ static const SNDRV_CTL_TLVD_DECLARE_DB_MINMAX(ear_pa_gain, 600, -1800);
static const DECLARE_TLV_DB_SCALE(line_gain, 0, 7, 1); static const DECLARE_TLV_DB_SCALE(line_gain, 0, 7, 1);
static const DECLARE_TLV_DB_SCALE(analog_gain, 0, 25, 1); static const DECLARE_TLV_DB_SCALE(analog_gain, 0, 25, 1);
static struct wcd_mbhc_field wcd_mbhc_fields[WCD_MBHC_REG_FUNC_MAX] = { static const struct wcd_mbhc_field wcd_mbhc_fields[WCD_MBHC_REG_FUNC_MAX] = {
WCD_MBHC_FIELD(WCD_MBHC_L_DET_EN, WCD939X_ANA_MBHC_MECH, 0x80), WCD_MBHC_FIELD(WCD_MBHC_L_DET_EN, WCD939X_ANA_MBHC_MECH, 0x80),
WCD_MBHC_FIELD(WCD_MBHC_GND_DET_EN, WCD939X_ANA_MBHC_MECH, 0x40), WCD_MBHC_FIELD(WCD_MBHC_GND_DET_EN, WCD939X_ANA_MBHC_MECH, 0x40),
WCD_MBHC_FIELD(WCD_MBHC_MECH_DETECTION_TYPE, WCD939X_ANA_MBHC_MECH, 0x20), WCD_MBHC_FIELD(WCD_MBHC_MECH_DETECTION_TYPE, WCD939X_ANA_MBHC_MECH, 0x20),
...@@ -291,7 +291,7 @@ static const struct regmap_irq wcd939x_irqs[WCD939X_NUM_IRQS] = { ...@@ -291,7 +291,7 @@ static const struct regmap_irq wcd939x_irqs[WCD939X_NUM_IRQS] = {
REGMAP_IRQ_REG(WCD939X_IRQ_HPHR_SURGE_DET_INT, 2, 0x08), REGMAP_IRQ_REG(WCD939X_IRQ_HPHR_SURGE_DET_INT, 2, 0x08),
}; };
static struct regmap_irq_chip wcd939x_regmap_irq_chip = { static const struct regmap_irq_chip wcd939x_regmap_irq_chip = {
.name = "wcd939x", .name = "wcd939x",
.irqs = wcd939x_irqs, .irqs = wcd939x_irqs,
.num_irqs = ARRAY_SIZE(wcd939x_irqs), .num_irqs = ARRAY_SIZE(wcd939x_irqs),
...@@ -414,7 +414,7 @@ static int wcd939x_io_init(struct snd_soc_component *component) ...@@ -414,7 +414,7 @@ static int wcd939x_io_init(struct snd_soc_component *component)
return 0; return 0;
} }
static int wcd939x_sdw_connect_port(struct wcd939x_sdw_ch_info *ch_info, static int wcd939x_sdw_connect_port(const struct wcd939x_sdw_ch_info *ch_info,
struct sdw_port_config *port_config, struct sdw_port_config *port_config,
u8 enable) u8 enable)
{ {
...@@ -2957,7 +2957,7 @@ static irqreturn_t wcd939x_wd_handle_irq(int irq, void *data) ...@@ -2957,7 +2957,7 @@ static irqreturn_t wcd939x_wd_handle_irq(int irq, void *data)
* \- regmap_irq_thread() * \- regmap_irq_thread()
* \- handle_nested_irq(i) * \- handle_nested_irq(i)
*/ */
static struct irq_chip wcd_irq_chip = { static const struct irq_chip wcd_irq_chip = {
.name = "WCD939x", .name = "WCD939x",
}; };
......
...@@ -903,21 +903,15 @@ enum wcd939x_rx_sdw_channels { ...@@ -903,21 +903,15 @@ enum wcd939x_rx_sdw_channels {
WCD939X_HIFI_PCM_R, WCD939X_HIFI_PCM_R,
}; };
enum {
WCD939X_SDW_DIR_RX,
WCD939X_SDW_DIR_TX,
};
struct wcd939x_priv; struct wcd939x_priv;
struct wcd939x_sdw_priv { struct wcd939x_sdw_priv {
struct sdw_slave *sdev; struct sdw_slave *sdev;
struct sdw_stream_config sconfig; struct sdw_stream_config sconfig;
struct sdw_stream_runtime *sruntime; struct sdw_stream_runtime *sruntime;
struct sdw_port_config port_config[WCD939X_MAX_SWR_PORTS]; struct sdw_port_config port_config[WCD939X_MAX_SWR_PORTS];
struct wcd939x_sdw_ch_info *ch_info; const struct wcd939x_sdw_ch_info *ch_info;
bool port_enable[WCD939X_MAX_SWR_CH_IDS]; bool port_enable[WCD939X_MAX_SWR_CH_IDS];
int active_ports; int active_ports;
int num_ports;
bool is_tx; bool is_tx;
struct wcd939x_priv *wcd939x; struct wcd939x_priv *wcd939x;
struct irq_domain *slave_irq; struct irq_domain *slave_irq;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment