From patchwork Thu Nov 11 15:22:50 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Trimarchi X-Patchwork-Id: 1743 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 613B23F1C9 for ; Thu, 11 Nov 2021 16:23:05 +0100 (CET) Received: by mail-wm1-f71.google.com with SMTP id m1-20020a1ca301000000b003231d5b3c4csf4940952wme.5 for ; Thu, 11 Nov 2021 07:23:05 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1636644185; cv=pass; d=google.com; s=arc-20160816; b=QhX8AwUAaNp8FDKDqTXih1FVABmPjT8JVGHqaKSY/ZQPIqtI8DbYF888BBfkaxdxG3 8CbBFiEsWA6+Bw3Daf6vX388K9nfHOuDCRz2hM7Sa8R8J5fy35PU1PwHhmb5gqH34kmd qa6B8CI1qQrb3v7fuZgFrSb0pt95lj4qGpz+P3NZo+2+XSJ/wntce1gXXkE16KH97vS/ /1/lBdF/J4xHmeml5TNi267ytIBeMxVAlPOblHCdSAK0M5HqVlPOnvzYdcP4foL6ty8B WEaKt31zKlRV8wnvAnkmv1d1WwIKG3G649cwAzXwC5CmP9kF6sZE1A00GCgxUB8InRTY +rUQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=pdYHbWbEL+JS8wUb9+QsAE3oPjA/sBi7kedKhmHbUjE=; b=AuGLO02wJU0vGBlbVumA6Fy17Wh1ozhT3CrhmksMJ6++lIeJwoRKQaka9RJ2IiBg6D NQwky9MHGTWlS2b0cc/4AklpxSNTkQ4Na6rPjjN9nlQwKzGYy/Pkmd9i8f8ILOFGhC+4 ogFeU7JRr6rJ89HC3JvKdCn+nV4Gmb5VrjbnwKWaS/7uURGa0UHieOZKG4hDmaHZ+wqL SAQCv2Ik/yAd4ZaFXnlw/ZRnb55IuD6jTld4U77O5S+INb/iyTDLaHRMfuLUXem0pBeB iPQGKv5FKyt2O0603z/qujnjULdZxK8Vc7to4/bXAt0peAZC56fnfeKTpQafRU9BcaSF UZsw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=SRkcD+dw; spf=pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=michael@amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:list-post:list-help:list-archive :list-unsubscribe; bh=pdYHbWbEL+JS8wUb9+QsAE3oPjA/sBi7kedKhmHbUjE=; b=JSyWVG3qTEUZDU45vRWezbxJKQtgFGHQmLl8LDB6mtN6ILK7nc25TufF2ixlRzMaCB 12BLP/JJ5mniQPzbEv29Ua3caOaknbW/MOUo8VgTSy1xaTEHA9k/mnINiKtDJZbR24JC qQ/N0a+CEHJH4856w235IXz3FQ4CVOmpnrcvA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-spam-checked-in-group:list-post:list-help:list-archive :list-unsubscribe; bh=pdYHbWbEL+JS8wUb9+QsAE3oPjA/sBi7kedKhmHbUjE=; b=hvgRd+iMshi0XlZIHJ9P8qaSdKCJHsINXy4IwNBh6//0qvexDP8enuU2eYMBThPGyq fPrVPY5EZqmG9msVSTglKXnWzdhY3mOwCqIvng84zVcwpUvk/ImisH+ewMBLFTDYNlyA SVbwOdUMbaR89eYRh0AJ/OsF52KHPKz7SHNKCBYNwtYBuejepSABo98HjHi97ncCtJea bmoA3WePe5cehMsbItx/AwjEY3xjPA60UINY24gpYSrEFXrXnDkn7FkbcsLR9V7k21bs PlF/GGuUoUQYXpiF0AoaeuREYCApEn8eZGDjZNYDMcTcqVip/Ijwd19YlIxUCfvozWgO uxSg== X-Gm-Message-State: AOAM533iGZyG2owNx6h3YZup5/rSdM9SUI4U/Lx2QVWY57SRlLFqJa7N KTVT2q7KfKVl8ITzhBeFpbKqjXBP X-Google-Smtp-Source: ABdhPJxR1kn+cLzWNl5JZLEn1Cm6/8hcXKWD/OwWpS87/N/NeMrKKflP5QD/vf5o72o52b72tWcJpg== X-Received: by 2002:a1c:4b07:: with SMTP id y7mr9003320wma.188.1636644185141; Thu, 11 Nov 2021 07:23:05 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a5d:4092:: with SMTP id o18ls2187643wrp.1.gmail; Thu, 11 Nov 2021 07:23:04 -0800 (PST) X-Received: by 2002:a05:6000:1a86:: with SMTP id f6mr9834044wry.230.1636644184187; Thu, 11 Nov 2021 07:23:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1636644184; cv=none; d=google.com; s=arc-20160816; b=Qy0lZquEG8R2ENbGn9Q+1llhEUpzJnMiSZ2F9I4kpxl2MFieu/bG5LeGrGaGv3doOC vrsm9vQtjGbDo7lV7sxzB/XIMpTQ4RCg3ez+/CmW4O5o+vVMbDi7u7MSfIrwyVfwPpWn 0mZMbMFsBNfnf0T3frlCmthwUH4FZDBcnQAUQ4iCFGDd74OrBIIJavaAbr6ZkR4+cbcv 1d4mdDkCbiREuGpQj3MawYPmIUi0ayYJL0kDcr1jUhi7FXKS+Bi/Rt5xlbTVoHPdxsfw M67wfIUd8q8W8NWr+YCgeWrkmRITWUQbXr/xhHyR+/NoXUfP/zRKzvkKAHGKnOYaypv5 tMSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=LUqM+ZTRp3sFgmttLvWHnCxJ6du4j1p6vWqNd4Mvz8o=; b=CTxq4r6vzpgtXk4Yu7p93UFsnSZMq/kFaEfFOzSG1Mw8C8mJ3a6A/28Z3laNLxSZLY clHGgJLV5O6LNlsx61ztPITef59SAAJeTOCGfcgbmj52rmuiRZxxNANhRTxxG/we5iQe TEwaR6RLDBbthy3drVXvppJMYmvkFNtEYLRoY+Im1R7w38cG+SMsKojNBqSE7fz+9S1S oQzLznFxvFofYV6urkSDApD9/33wRKUnd7fvAB+QiKNPZcYwEIcqptH4o1WpTToQxMG/ 0rATaU8a/QkC0dck852DJDlSKUuH7bho56h7qUIFbUYzqhvsW9H/SzZZTKBKQ3mXfqu6 dZLA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=SRkcD+dw; spf=pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=michael@amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id r15sor2307513wrq.29.2021.11.11.07.23.04 for (Google Transport Security); Thu, 11 Nov 2021 07:23:04 -0800 (PST) Received-SPF: pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Received: by 2002:a5d:4ed1:: with SMTP id s17mr9822339wrv.310.1636644183891; Thu, 11 Nov 2021 07:23:03 -0800 (PST) Received: from panicking.pdxnet.pdxeng.ch ([5.171.215.77]) by smtp.gmail.com with ESMTPSA id f3sm8973683wmb.12.2021.11.11.07.23.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Nov 2021 07:23:03 -0800 (PST) From: Michael Trimarchi To: Ariel D'Alessandro Cc: linux-amarula@amarulasolutions.com, Anthony Brandon Subject: [PATCH 03/11] soc: codecs: tlv320aic31xx: Add support for external optional clock mclk Date: Thu, 11 Nov 2021 16:22:50 +0100 Message-Id: <20211111152258.26131-3-michael@amarulasolutions.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211111152258.26131-1-michael@amarulasolutions.com> References: <20211111152258.26131-1-michael@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: michael@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=SRkcD+dw; spf=pass (google.com: domain of michael@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=michael@amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , Need to be sure that clock connected to the codec is enable during the codec probe. Signed-off-by: Michael Trimarchi --- sound/soc/codecs/tlv320aic31xx.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/sound/soc/codecs/tlv320aic31xx.c b/sound/soc/codecs/tlv320aic31xx.c index 6b54811be1ca..f1a758fe07ce 100644 --- a/sound/soc/codecs/tlv320aic31xx.c +++ b/sound/soc/codecs/tlv320aic31xx.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -162,6 +163,7 @@ struct aic31xx_priv { u8 i2c_regs_status; struct device *dev; struct regmap *regmap; + struct clk *clk; enum aic31xx_type codec_type; struct gpio_desc *gpio_reset; int micbias_vg; @@ -1346,6 +1348,21 @@ static int aic31xx_codec_probe(struct snd_soc_component *component) aic31xx->component = component; + aic31xx->clk = devm_clk_get_optional(component->dev, "mclk"); + if (IS_ERR(aic31xx->clk)) { + dev_err(component->dev, "failed to get the clock: %ld\n", + PTR_ERR(aic31xx->clk)); + return -EINVAL; + } + + aic31xx->sysclk = clk_get_rate(aic31xx->clk); + + ret = clk_prepare_enable(aic31xx->clk); + if (ret) { + dev_err(component->dev, "unable to enable mclk\n"); + return ret; + } + for (i = 0; i < ARRAY_SIZE(aic31xx->supplies); i++) { aic31xx->disable_nb[i].nb.notifier_call = aic31xx_regulator_event; @@ -1380,8 +1397,16 @@ static int aic31xx_codec_probe(struct snd_soc_component *component) return 0; } +static void aic31xx_codec_remove(struct snd_soc_component *component) +{ + struct aic31xx_priv *aic31xx = snd_soc_component_get_drvdata(component); + + clk_disable_unprepare(aic31xx->clk); +} + static const struct snd_soc_component_driver soc_codec_driver_aic31xx = { .probe = aic31xx_codec_probe, + .remove = aic31xx_codec_remove, .set_jack = aic31xx_set_jack, .set_bias_level = aic31xx_set_bias_level, .controls = common31xx_snd_controls,