From patchwork Fri Oct 5 07:58:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Marco Felsch X-Patchwork-Id: 148143 Delivered-To: patch@linaro.org Received: by 2002:a2e:8595:0:0:0:0:0 with SMTP id b21-v6csp137134lji; Fri, 5 Oct 2018 00:58:29 -0700 (PDT) X-Google-Smtp-Source: ACcGV62SLEANns4oEsnjBqc98sSasRa+nq9WAoTfpPXCofKbbWTP40bb7h+Kg177kXraQ0Le14GQ X-Received: by 2002:a17:902:26c:: with SMTP id 99-v6mr10315577plc.341.1538726309010; Fri, 05 Oct 2018 00:58:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538726309; cv=none; d=google.com; s=arc-20160816; b=i0SFosZavDoRDl6NKb01/69osUVnX/ZmIuqz6Nx/JO+2J7cnDkyhdZ7AOtn0eyOghm BoAXa42wMzHPo2q/A1XK7d2Dh+AhtLL9IRRDa0xFhRQeDlaaPvGQ1zgaMaumtqQSZxs6 KOXCNHNDpRQiueqnlgkKNpoevRsOLZP7pXbndRV43KMu7x2qPiRWMXij+obK1Daoyd4f 9tVqhT3l56LkWTV5dlmS913TggzhoT9eT3gVsKyvuy7H9sx/5ObyKEmheY9q5VzGP0kr 5mcs/5/PPQudAdgbcw9C5St7/Qn1MaAYDyw4CPE+JXpVtPdDiyJqmP5poAq1tBrw4eLp cSVQ== 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=SgD6pU7AFdYtqkGUdDZo85xnqDiSti+osHaEIYMffA8=; b=ZdAxr0nVN5jDR9yow0c+kNdAfIyAGZ4xw48V9ApsG8+zYHz6zwKcVxaQ8athPGmduF /GWAJU+8D0kUyC3jqJlTtT4a9cozwC7d8YUxWo2DM6Um7uRGgn4X6fZKZ+Q4cp8R3IBQ Okp4HTLAoFOxgWBoMokZHv/X+LDYJa120HiuCQFtgKCdYz94Ff/rHmc/Cj171HhZZq2C lH3V94lNGx90ZGZPzdxxz7IuJjllmxQ38tDI83mXXFAO0kv9w43qJw3F9MG6b9F9Im7f lYFn1uDR9qkL1U+aEv2iC99WHv89V0PdMJ1pTqRemAsbDF7l8/9b3zNcErvnwNk6ziu5 hUqg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=devicetree-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 y3-v6si7271641pgg.266.2018.10.05.00.58.28; Fri, 05 Oct 2018 00:58:29 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of devicetree-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 devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727329AbeJEO4A (ORCPT + 6 others); Fri, 5 Oct 2018 10:56:00 -0400 Received: from metis.ext.pengutronix.de ([85.220.165.71]:51479 "EHLO metis.ext.pengutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727950AbeJEO4A (ORCPT ); Fri, 5 Oct 2018 10:56:00 -0400 Received: from dude.hi.pengutronix.de ([2001:67c:670:100:1d::7]) by metis.ext.pengutronix.de with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1g8L09-0001Jv-L7; Fri, 05 Oct 2018 09:58:21 +0200 Received: from mfe by dude.hi.pengutronix.de with local (Exim 4.91) (envelope-from ) id 1g8L08-0003ha-Hh; Fri, 05 Oct 2018 09:58:20 +0200 From: Marco Felsch To: lgirdwood@gmail.com, broonie@kernel.org, robh+dt@kernel.org, mark.rutland@arm.com Cc: devicetree@vger.kernel.org, alsa-devel@alsa-project.org, =?utf-8?q?And?= =?utf-8?q?reas_F=C3=A4rber?= , kernel@pengutronix.de Subject: [PATCH v2 1/5] ASoC: dt-bindings: add max98088 audio codec Date: Fri, 5 Oct 2018 09:58:08 +0200 Message-Id: <20181005075812.13986-2-m.felsch@pengutronix.de> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181005075812.13986-1-m.felsch@pengutronix.de> References: <20181005075812.13986-1-m.felsch@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::7 X-SA-Exim-Mail-From: mfe@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: devicetree@vger.kernel.org Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org From: Andreas Färber This patch adds the bindings for maxim max98088/9 audio codec. Signed-off-by: Andreas Färber [m.felsch@pengutronix.de: adapt commit message] [m.felsch@pengutronix.de: adapt formatting] Signed-off-by: Marco Felsch --- .../devicetree/bindings/sound/maxim,max98088.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/maxim,max98088.txt -- 2.19.0 Reviewed-by: Rob Herring diff --git a/Documentation/devicetree/bindings/sound/maxim,max98088.txt b/Documentation/devicetree/bindings/sound/maxim,max98088.txt new file mode 100644 index 000000000000..a79ad5c7af88 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/maxim,max98088.txt @@ -0,0 +1,15 @@ +MAX98088 audio CODEC + +This device supports I2C only. + +Required properties: + +- compatible: "maxim,max98088" or "maxim,max98089". +- reg: The I2C address of the device. + +Example: + +max98089: codec@10 { + compatible = "maxim,max98089"; + reg = <0x10>; +}; From patchwork Fri Oct 5 07:58:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Marco Felsch X-Patchwork-Id: 148142 Delivered-To: patch@linaro.org Received: by 2002:a2e:8595:0:0:0:0:0 with SMTP id b21-v6csp137114lji; Fri, 5 Oct 2018 00:58:28 -0700 (PDT) X-Google-Smtp-Source: ACcGV604nIn84DqPlkxnd0/3ZRW2QWbmkkbql4aDfSd5HoW/QE6ItCFIr8UNbMI1rLBkE/8dsCab X-Received: by 2002:a62:d046:: with SMTP id p67-v6mr10937601pfg.147.1538726307906; Fri, 05 Oct 2018 00:58:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538726307; cv=none; d=google.com; s=arc-20160816; b=PzsTelaHObb+o2TOt66iZQcdpRuWpoaAXTJu6u/E8xklil0kdwxmsA3fs0PtUcqSd8 QtHobFUYKuJHmoVBTLWE35GQfK0pZp+xNBNlnVFPmPLK/esHmEw/ed55eJtzpotdafSV qplf4pF7BPSGAVnp+6ubvNM5YBArtqVE+9WzCm/yCorkKa1qLV2+qfxNLx6A85qCgA97 /c4UcyeSSnDMSMjtXDNodSyWDCKBD53e9AR7UKhGZB0QkS3csUv29vOXE9TOIG2q7PVy Vg6eZZyeNAYKe/CdRJ1RCf8UO9OVnqxHPYs/5x5vsEfqv95ak5NK3xf3zIgLR0CXwQ7l JbnA== 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=RgX69FOwvo/PEY0YGkvyNc4SHAAHkFfecfND+XtiLi8=; b=nlb6acenSWIyqblNQjYVZhAo5bm6R/6fYMe05kL6WC3SZzWd4uW3atVg3yDgxYhY1x XmtCvR37OwfVA4O2dNUIHrmpow49gCSu8d1WRZa2x0Lri8BgXE7QF8TLN/ceKX2umm/U ggZ+QECi6etnAu7h6dQWltOK7ttHAGJcIwRBgHGi4m3sLL4J6tIoScUbz+bcLtJUhZyn 8DDLA8T+2bPOW55FoH6DHayLffBtLqeJ+HpnzME9wGHrrqJsM4mHbujR8O1lUhhHqRfE OYyiz4/BffsMYhhzl6TzpJ+vSFUTSIZBCYUmF56AropExO6jGgvxQ3jTsu5wWVU5d5Gy FWgg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=devicetree-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 y3-v6si7271641pgg.266.2018.10.05.00.58.27; Fri, 05 Oct 2018 00:58:27 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of devicetree-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 devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727942AbeJEOz7 (ORCPT + 6 others); Fri, 5 Oct 2018 10:55:59 -0400 Received: from metis.ext.pengutronix.de ([85.220.165.71]:35843 "EHLO metis.ext.pengutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727329AbeJEOz6 (ORCPT ); Fri, 5 Oct 2018 10:55:58 -0400 Received: from dude.hi.pengutronix.de ([2001:67c:670:100:1d::7]) by metis.ext.pengutronix.de with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1g8L09-0001Jw-L8; Fri, 05 Oct 2018 09:58:21 +0200 Received: from mfe by dude.hi.pengutronix.de with local (Exim 4.91) (envelope-from ) id 1g8L08-0003hj-IC; Fri, 05 Oct 2018 09:58:20 +0200 From: Marco Felsch To: lgirdwood@gmail.com, broonie@kernel.org, robh+dt@kernel.org, mark.rutland@arm.com Cc: devicetree@vger.kernel.org, alsa-devel@alsa-project.org, =?utf-8?q?And?= =?utf-8?q?reas_F=C3=A4rber?= , kernel@pengutronix.de Subject: [PATCH v2 2/5] ASoC: max98088: add OF support Date: Fri, 5 Oct 2018 09:58:09 +0200 Message-Id: <20181005075812.13986-3-m.felsch@pengutronix.de> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181005075812.13986-1-m.felsch@pengutronix.de> References: <20181005075812.13986-1-m.felsch@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::7 X-SA-Exim-Mail-From: mfe@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: devicetree@vger.kernel.org Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org From: Andreas Färber MAX98088 is just an older version of the MAX98089 device. Both devices have the same capabilities. There is only one minor difference in JACK detection and the related power-save modi, but the MAX98089 is backward compatible to the MAX98088. Signed-off-by: Andreas Färber [m.felsch@pengutronix.de: add CONFIG_OF compile switch] [m.felsch@pengutronix.de: adapt commit message] Signed-off-by: Marco Felsch --- sound/soc/codecs/max98088.c | 10 ++++++++++ 1 file changed, 10 insertions(+) -- 2.19.0 diff --git a/sound/soc/codecs/max98088.c b/sound/soc/codecs/max98088.c index fb515aaa54fc..9450d5d9c492 100644 --- a/sound/soc/codecs/max98088.c +++ b/sound/soc/codecs/max98088.c @@ -1742,9 +1742,19 @@ static const struct i2c_device_id max98088_i2c_id[] = { }; MODULE_DEVICE_TABLE(i2c, max98088_i2c_id); +#if defined(CONFIG_OF) +static const struct of_device_id max98088_of_match[] = { + { .compatible = "maxim,max98088" }, + { .compatible = "maxim,max98089" }, + { } +}; +MODULE_DEVICE_TABLE(of, max98088_of_match); +#endif + static struct i2c_driver max98088_i2c_driver = { .driver = { .name = "max98088", + .of_match_table = of_match_ptr(max98088_of_match), }, .probe = max98088_i2c_probe, .id_table = max98088_i2c_id, From patchwork Fri Oct 5 07:58:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Marco Felsch X-Patchwork-Id: 148141 Delivered-To: patch@linaro.org Received: by 2002:a2e:8595:0:0:0:0:0 with SMTP id b21-v6csp137104lji; Fri, 5 Oct 2018 00:58:27 -0700 (PDT) X-Google-Smtp-Source: ACcGV608BwRTfrbi3E95vuIE3/H8lLTkBNsJ9eca00sKQipceiKjfghtdhh4tiNC2pXVE1FXg/lB X-Received: by 2002:a62:9402:: with SMTP id m2-v6mr10717415pfe.255.1538726307343; Fri, 05 Oct 2018 00:58:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538726307; cv=none; d=google.com; s=arc-20160816; b=qEhZPIbOY0UvqZKOipSmwQT19NIXAjd8Jgsj6xSstWrrEX6iylh7wlUHS7wx9Lvc7b rlxozPeFNH6dHH2yHp2QyvBnG8EIbolWG66xg7a1CgUGYOhQqufrr3YWbwBTGIyRqhjH qkWMfSM/u9xdISgZrqCeNRF9uXcbfQiqPW1zBY+vnhqb6R7KEC2XqaazTKGlNAa2tORt Rgswcz2xeFe5TF2hLDwSCPoVN0bvuvsIduffD7dJwUqv+gOz8eUxySQiaMAesOfLhQQr NzulCqPvbxJbn5cRoI75/myrjFAjNrO9hQmmU3M4biSljgmcdcSCJ7SpLJaRTs4ie/Nu BhsQ== 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=y0o41JYkHH8iykkFGDN4ZDywsC6OohTgIM3pSEt7xVY=; b=wMZnuRkGzpvKZ6DuhAKuGOV1FxZKoCrvnb1wuaG0xYoaNBBK9LCKJLXrqrMHTyEAsN nYJAAQQbV6KeJSWenNsDXE8o9RdxUTlzvCu5AVGXoLbF+68fcn0ajZX0dhQezdcK1wqo zmSAWrOzsB1qSTic9VGkHtrYEwkw1gdLMWBd/CPx2eulsjkWEaZkC9LVgjcW5DARwo/T WGatA0WN27yvuLDUp7Iu7hwzxVAaqaECN7Kp4a0rkmyYFiexTptiHbjNl00/p14A3Yle ko2SVhsBuFvthno/VginpwbZoauPrC30aVChkoTnS3dkLQWe79k2+SHmu2nKuKtfLzkq iU0A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=devicetree-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 y3-v6si7271641pgg.266.2018.10.05.00.58.27; Fri, 05 Oct 2018 00:58:27 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of devicetree-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 devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727882AbeJEOz6 (ORCPT + 6 others); Fri, 5 Oct 2018 10:55:58 -0400 Received: from metis.ext.pengutronix.de ([85.220.165.71]:42509 "EHLO metis.ext.pengutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727942AbeJEOz6 (ORCPT ); Fri, 5 Oct 2018 10:55:58 -0400 Received: from dude.hi.pengutronix.de ([2001:67c:670:100:1d::7]) by metis.ext.pengutronix.de with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1g8L09-0001Jy-Vw; Fri, 05 Oct 2018 09:58:21 +0200 Received: from mfe by dude.hi.pengutronix.de with local (Exim 4.91) (envelope-from ) id 1g8L08-0003hp-JD; Fri, 05 Oct 2018 09:58:20 +0200 From: Marco Felsch To: lgirdwood@gmail.com, broonie@kernel.org, robh+dt@kernel.org, mark.rutland@arm.com Cc: devicetree@vger.kernel.org, alsa-devel@alsa-project.org, =?utf-8?q?And?= =?utf-8?q?reas_F=C3=A4rber?= , kernel@pengutronix.de, Tushar Behera Subject: [PATCH v2 4/5] ASoC: max98088: Add master clock handling Date: Fri, 5 Oct 2018 09:58:11 +0200 Message-Id: <20181005075812.13986-5-m.felsch@pengutronix.de> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181005075812.13986-1-m.felsch@pengutronix.de> References: <20181005075812.13986-1-m.felsch@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::7 X-SA-Exim-Mail-From: mfe@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: devicetree@vger.kernel.org Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org From: Andreas Färber If master clock is provided through device tree, then update the master clock frequency during set_sysclk. Cc: Tushar Behera Signed-off-by: Andreas Färber Acked-by: Tushar Behera Reviewed-by: Javier Martinez Canillas [m.felsch@pengutronix.de: move mclk request to i2c_probe] [m.felsch@pengutronix.de: make use of snd_soc_component_get_bias_level()] Signed-off-by: Marco Felsch --- sound/soc/codecs/max98088.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) -- 2.19.0 diff --git a/sound/soc/codecs/max98088.c b/sound/soc/codecs/max98088.c index 9450d5d9c492..ca172a4b6849 100644 --- a/sound/soc/codecs/max98088.c +++ b/sound/soc/codecs/max98088.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -42,6 +43,7 @@ struct max98088_priv { struct regmap *regmap; enum max98088_type devtype; struct max98088_pdata *pdata; + struct clk *mclk; unsigned int sysclk; struct max98088_cdata dai[2]; int eq_textcnt; @@ -1103,6 +1105,11 @@ static int max98088_dai_set_sysclk(struct snd_soc_dai *dai, if (freq == max98088->sysclk) return 0; + if (!IS_ERR(max98088->mclk)) { + freq = clk_round_rate(max98088->mclk, freq); + clk_set_rate(max98088->mclk, freq); + } + /* Setup clocks for slave mode, and using the PLL * PSCLK = 0x01 (when master clk is 10MHz to 20MHz) * 0x02 (when master clk is 20MHz to 30MHz).. @@ -1310,6 +1317,20 @@ static int max98088_set_bias_level(struct snd_soc_component *component, break; case SND_SOC_BIAS_PREPARE: + /* + * SND_SOC_BIAS_PREPARE is called while preparing for a + * transition to ON or away from ON. If current bias_level + * is SND_SOC_BIAS_ON, then it is preparing for a transition + * away from ON. Disable the clock in that case, otherwise + * enable it. + */ + if (!IS_ERR(max98088->mclk)) { + if (snd_soc_component_get_bias_level(component) == + SND_SOC_BIAS_ON) + clk_disable_unprepare(max98088->mclk); + else + clk_prepare_enable(max98088->mclk); + } break; case SND_SOC_BIAS_STANDBY: @@ -1725,6 +1746,11 @@ static int max98088_i2c_probe(struct i2c_client *i2c, if (IS_ERR(max98088->regmap)) return PTR_ERR(max98088->regmap); + max98088->mclk = devm_clk_get(&i2c->dev, "mclk"); + if (IS_ERR(max98088->mclk)) + if (PTR_ERR(max98088->mclk) == -EPROBE_DEFER) + return PTR_ERR(max98088->mclk); + max98088->devtype = id->driver_data; i2c_set_clientdata(i2c, max98088);