diff options
Diffstat (limited to 'sound/soc/rockchip/rockchip_rt5645.c')
| -rw-r--r-- | sound/soc/rockchip/rockchip_rt5645.c | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/sound/soc/rockchip/rockchip_rt5645.c b/sound/soc/rockchip/rockchip_rt5645.c index d07cc5c813f2..590b64b362f6 100644 --- a/sound/soc/rockchip/rockchip_rt5645.c +++ b/sound/soc/rockchip/rockchip_rt5645.c @@ -8,8 +8,6 @@ #include <linux/module.h> #include <linux/platform_device.h> #include <linux/slab.h> -#include <linux/gpio.h> -#include <linux/of_gpio.h> #include <linux/delay.h> #include <sound/core.h> #include <sound/jack.h> @@ -22,6 +20,16 @@ #define DRV_NAME "rockchip-snd-rt5645" static struct snd_soc_jack headset_jack; +static struct snd_soc_jack_pin headset_jack_pins[] = { + { + .pin = "Headphones", + .mask = SND_JACK_HEADPHONE, + }, + { + .pin = "Headset Mic", + .mask = SND_JACK_MICROPHONE, + }, +}; static const struct snd_soc_dapm_widget rk_dapm_widgets[] = { SND_SOC_DAPM_HP("Headphones", NULL), @@ -55,9 +63,9 @@ static int rk_aif1_hw_params(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params) { int ret = 0; - struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream); - struct snd_soc_dai *cpu_dai = asoc_rtd_to_cpu(rtd, 0); - struct snd_soc_dai *codec_dai = asoc_rtd_to_codec(rtd, 0); + struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream); + struct snd_soc_dai *cpu_dai = snd_soc_rtd_to_cpu(rtd, 0); + struct snd_soc_dai *codec_dai = snd_soc_rtd_to_codec(rtd, 0); int mclk; switch (params_rate(params)) { @@ -103,17 +111,19 @@ static int rk_init(struct snd_soc_pcm_runtime *runtime) int ret; /* Enable Headset and 4 Buttons Jack detection */ - ret = snd_soc_card_jack_new(card, "Headset Jack", - SND_JACK_HEADPHONE | SND_JACK_MICROPHONE | - SND_JACK_BTN_0 | SND_JACK_BTN_1 | - SND_JACK_BTN_2 | SND_JACK_BTN_3, - &headset_jack); + ret = snd_soc_card_jack_new_pins(card, "Headset Jack", + SND_JACK_HEADPHONE | SND_JACK_MICROPHONE | + SND_JACK_BTN_0 | SND_JACK_BTN_1 | + SND_JACK_BTN_2 | SND_JACK_BTN_3, + &headset_jack, + headset_jack_pins, + ARRAY_SIZE(headset_jack_pins)); if (ret) { dev_err(card->dev, "New Headset Jack failed! (%d)\n", ret); return ret; } - return rt5645_set_jack_detect(asoc_rtd_to_codec(runtime, 0)->component, + return rt5645_set_jack_detect(snd_soc_rtd_to_codec(runtime, 0)->component, &headset_jack, &headset_jack, &headset_jack); @@ -135,7 +145,7 @@ static struct snd_soc_dai_link rk_dailink = { .ops = &rk_aif1_ops, /* set rt5645 as slave */ .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | - SND_SOC_DAIFMT_CBS_CFS, + SND_SOC_DAIFMT_CBC_CFC, SND_SOC_DAILINK_REG(pcm), }; @@ -206,14 +216,12 @@ put_codec_of_node: return ret; } -static int snd_rk_mc_remove(struct platform_device *pdev) +static void snd_rk_mc_remove(struct platform_device *pdev) { of_node_put(rk_dailink.cpus->of_node); rk_dailink.cpus->of_node = NULL; of_node_put(rk_dailink.codecs->of_node); rk_dailink.codecs->of_node = NULL; - - return 0; } static const struct of_device_id rockchip_rt5645_of_match[] = { |
