From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933263AbcFPBPl (ORCPT ); Wed, 15 Jun 2016 21:15:41 -0400 Received: from regular1.263xmail.com ([211.150.99.139]:57879 "EHLO regular1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753209AbcFPBPj (ORCPT ); Wed, 15 Jun 2016 21:15:39 -0400 X-263anti-spam: KSV:0;BIG:0;ABS:1;DNS:0;ATT:0;SPF:S; X-MAIL-GRAY: 0 X-MAIL-DELIVERY: 1 X-KSVirus-check: 0 X-ABS-CHECKED: 1 X-SKE-CHECKED: 1 X-ADDR-CHECKED: 0 X-RL-SENDER: zhengxing@rock-chips.com X-FST-TO: smbarber@google.com X-SENDER-IP: 103.29.142.67 X-LOGIN-NAME: zhengxing@rock-chips.com X-UNIQUE-TAG: X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 Message-ID: <5761FDAA.1070802@rock-chips.com> Date: Thu, 16 Jun 2016 09:15:22 +0800 From: Xing Zheng User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120410 Thunderbird/11.0.1 MIME-Version: 1.0 To: Steve Barber , Adam Thomson CC: linux-rockchip@lists.infradead.org, Mark Rutland , devicetree@vger.kernel.org, alsa-devel@alsa-project.org, Pawel Moll , Ian Campbell , linux-kernel@vger.kernel.org, Mark Brown , Takashi Iwai , Douglas Anderson , Liam Girdwood , Rob Herring , Kumar Gala , Jaroslav Kysela , linux-arm-kernel@lists.infradead.org, =?UTF-8?B?SGVpa28gU3TDvGJuZXI=?= Subject: Re: [PATCH v5] ASoC: rockchip: Add machine driver for RK3399 GRU Boards References: <1465807339-1100-1-git-send-email-zhengxing@rock-chips.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org // + Adam, On 2016年06月16日 03:43, Steve Barber wrote: > On Mon, Jun 13, 2016 at 1:42 AM, Xing Zheng wrote: >> + >> +static int rockchip_sound_da7219_hw_params(struct snd_pcm_substream *substream, >> + struct snd_pcm_hw_params *params) >> +{ >> + struct snd_soc_pcm_runtime *rtd = substream->private_data; >> + struct snd_soc_dai *cpu_dai = rtd->cpu_dai; >> + struct snd_soc_dai *codec_dai = rtd->codec_dai; >> + struct snd_soc_dapm_context *dapm =&rtd->card->dapm; >> + int mclk, ret; >> + >> + snd_soc_dapm_disable_pin(dapm, "Speakers"); >> + snd_soc_dapm_disable_pin(dapm, "Int Mic"); >> + snd_soc_dapm_enable_pin(dapm, "Headphones"); >> + snd_soc_dapm_enable_pin(dapm, "Headset Mic"); >> + snd_soc_dapm_sync(dapm); >> + >> + /* in bypass mode, the mclk has to be one of the frequencies below */ >> + switch (params_rate(params)) { >> + case 8000: >> + case 16000: >> + case 24000: >> + case 32000: >> + case 48000: >> + case 64000: >> + case 96000: >> + mclk = 12288000; >> + break; >> + case 11025: >> + case 22050: >> + case 44100: >> + case 88200: >> + mclk = 11289600; >> + break; >> + default: >> + return -EINVAL; >> + } >> + >> + ret = snd_soc_dai_set_sysclk(cpu_dai, 0, mclk, >> + SND_SOC_CLOCK_OUT); >> + if (ret< 0) { >> + dev_err(codec_dai->dev, "Can't set cpu clock out %d\n", ret); >> + return ret; >> + } >> + >> + ret = snd_soc_dai_set_sysclk(codec_dai, 0, mclk, >> + SND_SOC_CLOCK_IN); >> + if (ret< 0) { >> + dev_err(codec_dai->dev, "Can't set codec clock in %d\n", ret); >> + return ret; >> + } >> + >> + ret = snd_soc_dai_set_pll(codec_dai, 0, DA7219_SYSCLK_MCLK, 0, 0); >> + if (ret< 0) { >> + dev_err(codec_dai->dev, "Can't set pll sysclk mclk %d\n", ret); >> + return ret; >> + } >> + >> + return 0; >> +} >> + >> +static int rockchip_sound_da7219_init(struct snd_soc_pcm_runtime *rtd) >> +{ >> + struct snd_soc_codec *codec = rtd->codec_dais[0]->codec; >> + int ret; >> + >> + /* Enable Headset and 4 Buttons Jack detection */ >> + ret = snd_soc_card_jack_new(rtd->card, "Headset Jack", >> + SND_JACK_HEADSET | > Should this also include SND_JACK_LINEOUT? da7219 differentiates > between the two so not including lineout means, for example, we can > miss jack insertion/removal events. > Hi Adam, Could you please confirm Steve says that about SND_JACK_LINEOUT? Thanks. -- - Xing Zheng