Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp2620701ybl; Thu, 29 Aug 2019 10:34:02 -0700 (PDT) X-Google-Smtp-Source: APXvYqwJGdMHEAFI2HmG00jFEHQYFXYfJJWVPc4NtDQScegB/9d08ZLUkfZCQFtq6XZXyo/AsArY X-Received: by 2002:a65:6546:: with SMTP id a6mr9728985pgw.220.1567100042533; Thu, 29 Aug 2019 10:34:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567100042; cv=none; d=google.com; s=arc-20160816; b=XnbEKXxaTBMLMSScyIt8rsAB3b37MfrcQhtAJRmVAI+v7rjqwDE9bE/n9GGvooGBDB DOVHE/5c/M2WbAZX2UT3mFdvoW7K93i1bRlJK7wadNSSeQdZ/7H5zl/a/sdaS7m82/ix A1Cvc8RQj10NzUf/0Yz6+2RKSauEbBRduwjIBx2+P/qyY3BOyopTah5fQpI+DgCvPAZk ZiYBoYw825n+V8PypM7J91Rhh6Vzp9qBO8Bgbaqe5m8VBmmGYLP8Qqtwgd2y07tCBWCb Gu3TnuZyylwEBWp/aSK84J1pJoCqcNcGaPOnr2ayA8oNMrtyzTJMBvhCBHVu1PAGL8rO Cmxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=HT9tJeWx+xohPGRYfOLQE3XtJDFygbw5Iwf8sS+gp4I=; b=ACmb6e3elg0OEiMaQwZ/vWcum1yTqksxfOfEyFBpVPywK03r9ZuHYSNBgMbSmFBqI5 DOvek295qzIq49i0XiiC6a/o3cvUfO9JEnl6FAAjlBF9uPnvQa+tYy0iGAepJdKqk+oy FX5XHTyfcBrpNGcRNjN7bQymgIsYmIO+z8b1G7OV2iQNNiu4sN59AOaUzKAHWyy7Dw7T DxBTH3+76glqAbJeDzfDesurW46BdbjjAMuMmyaulf9ZeFjOkchGPXTbOYWZ16TDBsbP KLQaPqt2natwhlCqIqstrgQLduSi1pQKI2YgOlo9hos4UxAQJdLkKd+DOYv9SoyqD3y7 N79g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h11si2441434pgr.555.2019.08.29.10.33.46; Thu, 29 Aug 2019 10:34:02 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727978AbfH2Rci (ORCPT + 99 others); Thu, 29 Aug 2019 13:32:38 -0400 Received: from www1102.sakura.ne.jp ([219.94.129.142]:48892 "EHLO www1102.sakura.ne.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727173AbfH2Rch (ORCPT ); Thu, 29 Aug 2019 13:32:37 -0400 Received: from fsav301.sakura.ne.jp (fsav301.sakura.ne.jp [153.120.85.132]) by www1102.sakura.ne.jp (8.15.2/8.15.2) with ESMTP id x7THWCGr023722; Fri, 30 Aug 2019 02:32:12 +0900 (JST) (envelope-from katsuhiro@katsuster.net) Received: from www1102.sakura.ne.jp (219.94.129.142) by fsav301.sakura.ne.jp (F-Secure/fsigk_smtp/530/fsav301.sakura.ne.jp); Fri, 30 Aug 2019 02:32:12 +0900 (JST) X-Virus-Status: clean(F-Secure/fsigk_smtp/530/fsav301.sakura.ne.jp) Received: from localhost.localdomain (118.153.231.153.ap.dti.ne.jp [153.231.153.118]) (authenticated bits=0) by www1102.sakura.ne.jp (8.15.2/8.15.2) with ESMTPSA id x7THW6NN023682 (version=TLSv1.2 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 30 Aug 2019 02:32:11 +0900 (JST) (envelope-from katsuhiro@katsuster.net) From: Katsuhiro Suzuki To: Mark Brown , David Yang , Daniel Drake , Hans de Goede Cc: alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, Katsuhiro Suzuki Subject: [PATCH 2/3] ASoC: es8316: Add clock control of MCLK Date: Fri, 30 Aug 2019 02:32:04 +0900 Message-Id: <20190829173205.11805-2-katsuhiro@katsuster.net> X-Mailer: git-send-email 2.23.0.rc1 In-Reply-To: <20190829173205.11805-1-katsuhiro@katsuster.net> References: <20190829173205.11805-1-katsuhiro@katsuster.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch introduce clock property for MCLK master freq control. Driver will set rate of MCLK master if set_sysclk is called and changing sysclk by board driver. Signed-off-by: Katsuhiro Suzuki --- sound/soc/codecs/es8316.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/sound/soc/codecs/es8316.c b/sound/soc/codecs/es8316.c index 229808fa627c..9ed564eac202 100644 --- a/sound/soc/codecs/es8316.c +++ b/sound/soc/codecs/es8316.c @@ -9,6 +9,7 @@ #include #include +#include #include #include #include @@ -33,6 +34,7 @@ static const unsigned int supported_mclk_lrck_ratios[] = { struct es8316_priv { struct mutex lock; + struct clk *mclk; struct regmap *regmap; struct snd_soc_component *component; struct snd_soc_jack *jack; @@ -363,12 +365,19 @@ static int es8316_set_dai_sysclk(struct snd_soc_dai *codec_dai, { struct snd_soc_component *component = codec_dai->component; struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component); + int ret; es8316->sysclk = freq; if (freq == 0) return 0; + if (es8316->mclk) { + ret = clk_set_rate(es8316->mclk, freq); + if (ret) + return ret; + } + return 0; } @@ -693,9 +702,20 @@ static int es8316_set_jack(struct snd_soc_component *component, static int es8316_probe(struct snd_soc_component *component) { struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component); + int ret; es8316->component = component; + es8316->mclk = devm_clk_get(component->dev, "mclk"); + if (PTR_ERR(es8316->mclk) == -EPROBE_DEFER) + return -EPROBE_DEFER; + + if (es8316->mclk) { + ret = clk_prepare_enable(es8316->mclk); + if (ret) + return ret; + } + /* Reset codec and enable current state machine */ snd_soc_component_write(component, ES8316_RESET, 0x3f); usleep_range(5000, 5500); -- 2.23.0.rc1