Commit da2495fb authored by Mark Brown's avatar Mark Brown

Merge remote-tracking branches 'asoc/topic/rt5670', 'asoc/topic/sgtl5000',...

Merge remote-tracking branches 'asoc/topic/rt5670', 'asoc/topic/sgtl5000', 'asoc/topic/si476x' and 'asoc/topic/sirf' into asoc-next
...@@ -5,6 +5,8 @@ Required properties: ...@@ -5,6 +5,8 @@ Required properties:
- reg : the I2C address of the device - reg : the I2C address of the device
- #sound-dai-cells: must be equal to 0
- clocks : the clock provider of SYS_MCLK - clocks : the clock provider of SYS_MCLK
- VDDA-supply : the regulator provider of VDDA - VDDA-supply : the regulator provider of VDDA
...@@ -40,6 +42,7 @@ Example: ...@@ -40,6 +42,7 @@ Example:
codec: sgtl5000@a { codec: sgtl5000@a {
compatible = "fsl,sgtl5000"; compatible = "fsl,sgtl5000";
reg = <0x0a>; reg = <0x0a>;
#sound-dai-cells = <0>;
clocks = <&clks 150>; clocks = <&clks 150>;
micbias-resistor-k-ohms = <2>; micbias-resistor-k-ohms = <2>;
micbias-voltage-m-volts = <2250>; micbias-voltage-m-volts = <2250>;
......
This diff is collapsed.
...@@ -1986,11 +1986,11 @@ enum { ...@@ -1986,11 +1986,11 @@ enum {
RT5670_DOWN_RATE_FILTER = (0x1 << 7), RT5670_DOWN_RATE_FILTER = (0x1 << 7),
}; };
int rt5670_sel_asrc_clk_src(struct snd_soc_codec *codec, int rt5670_sel_asrc_clk_src(struct snd_soc_component *component,
unsigned int filter_mask, unsigned int clk_src); unsigned int filter_mask, unsigned int clk_src);
struct rt5670_priv { struct rt5670_priv {
struct snd_soc_codec *codec; struct snd_soc_component *component;
struct rt5670_platform_data pdata; struct rt5670_platform_data pdata;
struct regmap *regmap; struct regmap *regmap;
struct snd_soc_jack *jack; struct snd_soc_jack *jack;
...@@ -2012,8 +2012,8 @@ struct rt5670_priv { ...@@ -2012,8 +2012,8 @@ struct rt5670_priv {
int jack_type_saved; int jack_type_saved;
}; };
void rt5670_jack_suspend(struct snd_soc_codec *codec); void rt5670_jack_suspend(struct snd_soc_component *component);
void rt5670_jack_resume(struct snd_soc_codec *codec); void rt5670_jack_resume(struct snd_soc_component *component);
int rt5670_set_jack_detect(struct snd_soc_codec *codec, int rt5670_set_jack_detect(struct snd_soc_component *component,
struct snd_soc_jack *jack); struct snd_soc_jack *jack);
#endif /* __RT5670_H__ */ #endif /* __RT5670_H__ */
This diff is collapsed.
...@@ -399,4 +399,11 @@ ...@@ -399,4 +399,11 @@
#define SGTL5000_SYSCLK 0x00 #define SGTL5000_SYSCLK 0x00
#define SGTL5000_LRCLK 0x01 #define SGTL5000_LRCLK 0x01
/*
* SGTL5000_DAP_AUDIO_EQ
*/
#define SGTL5000_DAP_SEL_PEQ 1
#define SGTL5000_DAP_SEL_TONE_CTRL 2
#define SGTL5000_DAP_SEL_GEQ 3
#endif #endif
...@@ -140,14 +140,14 @@ static int si476x_codec_set_dai_fmt(struct snd_soc_dai *codec_dai, ...@@ -140,14 +140,14 @@ static int si476x_codec_set_dai_fmt(struct snd_soc_dai *codec_dai,
si476x_core_lock(core); si476x_core_lock(core);
err = snd_soc_update_bits(codec_dai->codec, SI476X_DIGITAL_IO_OUTPUT_FORMAT, err = snd_soc_component_update_bits(codec_dai->component, SI476X_DIGITAL_IO_OUTPUT_FORMAT,
SI476X_DIGITAL_IO_OUTPUT_FORMAT_MASK, SI476X_DIGITAL_IO_OUTPUT_FORMAT_MASK,
format); format);
si476x_core_unlock(core); si476x_core_unlock(core);
if (err < 0) { if (err < 0) {
dev_err(codec_dai->codec->dev, "Failed to set output format\n"); dev_err(codec_dai->component->dev, "Failed to set output format\n");
return err; return err;
} }
...@@ -163,7 +163,7 @@ static int si476x_codec_hw_params(struct snd_pcm_substream *substream, ...@@ -163,7 +163,7 @@ static int si476x_codec_hw_params(struct snd_pcm_substream *substream,
rate = params_rate(params); rate = params_rate(params);
if (rate < 32000 || rate > 48000) { if (rate < 32000 || rate > 48000) {
dev_err(dai->codec->dev, "Rate: %d is not supported\n", rate); dev_err(dai->component->dev, "Rate: %d is not supported\n", rate);
return -EINVAL; return -EINVAL;
} }
...@@ -186,19 +186,19 @@ static int si476x_codec_hw_params(struct snd_pcm_substream *substream, ...@@ -186,19 +186,19 @@ static int si476x_codec_hw_params(struct snd_pcm_substream *substream,
si476x_core_lock(core); si476x_core_lock(core);
err = snd_soc_write(dai->codec, SI476X_DIGITAL_IO_OUTPUT_SAMPLE_RATE, err = snd_soc_component_write(dai->component, SI476X_DIGITAL_IO_OUTPUT_SAMPLE_RATE,
rate); rate);
if (err < 0) { if (err < 0) {
dev_err(dai->codec->dev, "Failed to set sample rate\n"); dev_err(dai->component->dev, "Failed to set sample rate\n");
goto out; goto out;
} }
err = snd_soc_update_bits(dai->codec, SI476X_DIGITAL_IO_OUTPUT_FORMAT, err = snd_soc_component_update_bits(dai->component, SI476X_DIGITAL_IO_OUTPUT_FORMAT,
SI476X_DIGITAL_IO_OUTPUT_WIDTH_MASK, SI476X_DIGITAL_IO_OUTPUT_WIDTH_MASK,
(width << SI476X_DIGITAL_IO_SLOT_SIZE_SHIFT) | (width << SI476X_DIGITAL_IO_SLOT_SIZE_SHIFT) |
(width << SI476X_DIGITAL_IO_SAMPLE_SIZE_SHIFT)); (width << SI476X_DIGITAL_IO_SAMPLE_SIZE_SHIFT));
if (err < 0) { if (err < 0) {
dev_err(dai->codec->dev, "Failed to set output width\n"); dev_err(dai->component->dev, "Failed to set output width\n");
goto out; goto out;
} }
...@@ -239,28 +239,25 @@ static int si476x_probe(struct snd_soc_component *component) ...@@ -239,28 +239,25 @@ static int si476x_probe(struct snd_soc_component *component)
return 0; return 0;
} }
static const struct snd_soc_codec_driver soc_codec_dev_si476x = { static const struct snd_soc_component_driver soc_component_dev_si476x = {
.component_driver = { .probe = si476x_probe,
.probe = si476x_probe, .dapm_widgets = si476x_dapm_widgets,
.dapm_widgets = si476x_dapm_widgets, .num_dapm_widgets = ARRAY_SIZE(si476x_dapm_widgets),
.num_dapm_widgets = ARRAY_SIZE(si476x_dapm_widgets), .dapm_routes = si476x_dapm_routes,
.dapm_routes = si476x_dapm_routes, .num_dapm_routes = ARRAY_SIZE(si476x_dapm_routes),
.num_dapm_routes = ARRAY_SIZE(si476x_dapm_routes), .idle_bias_on = 1,
}, .use_pmdown_time = 1,
.endianness = 1,
.non_legacy_dai_naming = 1,
}; };
static int si476x_platform_probe(struct platform_device *pdev) static int si476x_platform_probe(struct platform_device *pdev)
{ {
return snd_soc_register_codec(&pdev->dev, &soc_codec_dev_si476x, return devm_snd_soc_register_component(&pdev->dev,
&soc_component_dev_si476x,
&si476x_dai, 1); &si476x_dai, 1);
} }
static int si476x_platform_remove(struct platform_device *pdev)
{
snd_soc_unregister_codec(&pdev->dev);
return 0;
}
MODULE_ALIAS("platform:si476x-codec"); MODULE_ALIAS("platform:si476x-codec");
static struct platform_driver si476x_platform_driver = { static struct platform_driver si476x_platform_driver = {
...@@ -268,7 +265,6 @@ static struct platform_driver si476x_platform_driver = { ...@@ -268,7 +265,6 @@ static struct platform_driver si476x_platform_driver = {
.name = "si476x-codec", .name = "si476x-codec",
}, },
.probe = si476x_platform_probe, .probe = si476x_platform_probe,
.remove = si476x_platform_remove,
}; };
module_platform_driver(si476x_platform_driver); module_platform_driver(si476x_platform_driver);
......
...@@ -183,10 +183,10 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime) ...@@ -183,10 +183,10 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime)
{ {
int ret; int ret;
struct snd_soc_dai *codec_dai = runtime->codec_dai; struct snd_soc_dai *codec_dai = runtime->codec_dai;
struct snd_soc_codec *codec = codec_dai->codec; struct snd_soc_component *component = codec_dai->component;
struct cht_mc_private *ctx = snd_soc_card_get_drvdata(runtime->card); struct cht_mc_private *ctx = snd_soc_card_get_drvdata(runtime->card);
if (devm_acpi_dev_add_driver_gpios(codec->dev, cht_rt5672_gpios)) if (devm_acpi_dev_add_driver_gpios(component->dev, cht_rt5672_gpios))
dev_warn(runtime->dev, "Unable to add GPIO mapping table\n"); dev_warn(runtime->dev, "Unable to add GPIO mapping table\n");
/* TDM 4 slots 24 bit, set Rx & Tx bitmask to 4 active slots */ /* TDM 4 slots 24 bit, set Rx & Tx bitmask to 4 active slots */
...@@ -201,7 +201,7 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime) ...@@ -201,7 +201,7 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime)
* be supported by RT5672. Otherwise, ASRC will be disabled and cause * be supported by RT5672. Otherwise, ASRC will be disabled and cause
* noise. * noise.
*/ */
rt5670_sel_asrc_clk_src(codec, rt5670_sel_asrc_clk_src(component,
RT5670_DA_STEREO_FILTER RT5670_DA_STEREO_FILTER
| RT5670_DA_MONO_L_FILTER | RT5670_DA_MONO_L_FILTER
| RT5670_DA_MONO_R_FILTER | RT5670_DA_MONO_R_FILTER
...@@ -219,7 +219,7 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime) ...@@ -219,7 +219,7 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime)
if (ret) if (ret)
return ret; return ret;
rt5670_set_jack_detect(codec, &ctx->headset); rt5670_set_jack_detect(component, &ctx->headset);
if (ctx->mclk) { if (ctx->mclk) {
/* /*
* The firmware might enable the clock at * The firmware might enable the clock at
...@@ -333,10 +333,9 @@ static int cht_suspend_pre(struct snd_soc_card *card) ...@@ -333,10 +333,9 @@ static int cht_suspend_pre(struct snd_soc_card *card)
list_for_each_entry(component, &card->component_dev_list, card_list) { list_for_each_entry(component, &card->component_dev_list, card_list) {
if (!strncmp(component->name, if (!strncmp(component->name,
ctx->codec_name, sizeof(ctx->codec_name))) { ctx->codec_name, sizeof(ctx->codec_name))) {
struct snd_soc_codec *codec = snd_soc_component_to_codec(component);
dev_dbg(codec->dev, "disabling jack detect before going to suspend.\n"); dev_dbg(component->dev, "disabling jack detect before going to suspend.\n");
rt5670_jack_suspend(codec); rt5670_jack_suspend(component);
break; break;
} }
} }
...@@ -351,10 +350,9 @@ static int cht_resume_post(struct snd_soc_card *card) ...@@ -351,10 +350,9 @@ static int cht_resume_post(struct snd_soc_card *card)
list_for_each_entry(component, &card->component_dev_list, card_list) { list_for_each_entry(component, &card->component_dev_list, card_list) {
if (!strncmp(component->name, if (!strncmp(component->name,
ctx->codec_name, sizeof(ctx->codec_name))) { ctx->codec_name, sizeof(ctx->codec_name))) {
struct snd_soc_codec *codec = snd_soc_component_to_codec(component);
dev_dbg(codec->dev, "enabling jack detect for resume.\n"); dev_dbg(component->dev, "enabling jack detect for resume.\n");
rt5670_jack_resume(codec); rt5670_jack_resume(component);
break; break;
} }
} }
......
...@@ -154,7 +154,7 @@ ...@@ -154,7 +154,7 @@
USP_RX_IO_DMA_INT|\ USP_RX_IO_DMA_INT|\
USP_RXFIFO_FULL_INT|\ USP_RXFIFO_FULL_INT|\
USP_RXFIFO_THD_INT|\ USP_RXFIFO_THD_INT|\
USP_RXFIFO_THD_INT|USP_RX_TIMEOUT_INT) USP_RX_TIMEOUT_INT)
#define USP_INT_ALL 0x1FFF #define USP_INT_ALL 0x1FFF
......
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