From patchwork Tue Dec 4 16:58:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 152829 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp8291098ljp; Tue, 4 Dec 2018 08:58:37 -0800 (PST) X-Google-Smtp-Source: AFSGD/VnFZ910GoKkGn87OEiU2If36fhy6fxQK+JlwZIzDSndmeQp3DhPz2kk1n1qGLMsuGaMWRb X-Received: by 2002:a17:902:e18c:: with SMTP id cd12mr19512593plb.279.1543942717269; Tue, 04 Dec 2018 08:58:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543942717; cv=none; d=google.com; s=arc-20160816; b=fgaCzz8j4pPyWN9tysszJwhHHMK9WohSsGNHoOLVJXDb10Dtdr6LGGByGVrzIYkH1r DB0ac/AKSh94ARhPWeLy73qzQr1eseBnpRvZ79k8QDjDYwNBLtc/ebmIWWqhCeRwjU+R bb+dFWwMPkjY02zoA2odiMUjZ7YEhCe4Sq8xOD/CCYeBco9c66rmDg0oY/IbzK0ju7bS vP/6UwDJl+pSOYHrFZAixeb0zCP+X2po14J+kkAqQGV0mtVKWbsCngevnb3ftgEovv49 Krol86p8zEzu7VcvKEwgXgM87gVkGdqedUeBDiPXLGsR/PWz8nU0L3jCob44LpX00WWU 1p1w== 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 :dkim-signature; bh=wJVyGLtCFC0e76IubhfRv1J+zqc3cu+QjOGSxAy/OS4=; b=NiBJdW0TZ5m8PA+bRR8L26757rtJi2Wji9DtPw7Zo7GLgtxU87ImFeKlMlqDaISv0J L9vg5Gp2qXoJDwbNuR09L8V45ODrG1V/Ur/WrF2VzFcBZLeV+DjZ1iilLqf6amlYEz7n MKJ1t+LqXOdA0bWKyp2VIRuPoFix3QVGBrbxJEP18swAeYmnMLxvl0d/KjC+Z9o+Ar6n 4pDNTgVFRC17KPD4MWLiomHw+pY/AAAzXQpos9ReCs8MWWjHiLWtr9YW5VFQQxotxxhB RfpPpf1YPna3USFZKQWD9xtGBBWrnXeH4phbUNOktpmnu0haSvAv6FKtRiTKN8arkRnR Z/1g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=OrY9HI5d; 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 x1si17659292pfn.111.2018.12.04.08.58.36; Tue, 04 Dec 2018 08:58:37 -0800 (PST) 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; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=OrY9HI5d; 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 S1727313AbeLDQ6e (ORCPT + 31 others); Tue, 4 Dec 2018 11:58:34 -0500 Received: from mail-wm1-f65.google.com ([209.85.128.65]:35119 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727208AbeLDQ6b (ORCPT ); Tue, 4 Dec 2018 11:58:31 -0500 Received: by mail-wm1-f65.google.com with SMTP id c126so10064245wmh.0 for ; Tue, 04 Dec 2018 08:58:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wJVyGLtCFC0e76IubhfRv1J+zqc3cu+QjOGSxAy/OS4=; b=OrY9HI5dHrgEl05gg4L5JsWStECOaFrTHEECl/2rKKA0DT+0qDdx2wP4EubHbq8FOM NcNOQSWITVlfMEi7qjYR22wtWUpENhWsPBJ4Cem/nXpflYiNbO0rkedcdYnWhzC2enxH 5bnfC6OLEYZFsxXVlDLdK/OqYhKShttQElp7ADCey2DLnEnW2WitdsIbnMxEq7qvL7b+ dtJakC2lQfu7fp8UeR70EIBV+eho2aI2qo7qDnWnXITYCi9RKyHoclnIQaw08QRAOTY9 1IRCPMYeExz7z/e1+ordGEgrq1UjgJkGsHdtu/+iRk4NeYlUofFNamcnazsiLovHVIQU RtQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wJVyGLtCFC0e76IubhfRv1J+zqc3cu+QjOGSxAy/OS4=; b=a2dkz096BUgqqpPMRx10HBTrPU4RJif0T04aV2xXblwzCap3vjO46/y977UhPCkN6n mkkiR0PehMhfNk8LLokvmQpCQVU65CmkAoUHrjU0oEhnT0pAd0Pevo+npJ8eF80/Y5Qk bND1++KwJb4nXadjhRdogqf+kvDY4C+HhM+sB6gSRI6sPHk1xC78XuNS2tBliT/uUIpN Je2RfgQO96ULBbOJpN7+J1maSeycaFvje0VKvfg3hf/5mOriGKCoPVopHeCKPiPikVcy obrsE2fOkZqDodQrVELh0+xVwwS0ow9gla8mK9guKm5aCa1+TtI0Dw31nkbm0aubXrm8 qXDA== X-Gm-Message-State: AA+aEWbdn/t1YLY6zpPR7qgrGvY7cmHPm8gPDcHH+JP2WPXdw0cIR0hs egoE1RaiyUR63cKu57e1h51QrQ== X-Received: by 2002:a1c:7d54:: with SMTP id y81mr12982144wmc.106.1543942710001; Tue, 04 Dec 2018 08:58:30 -0800 (PST) Received: from boomer.local ([2a01:e34:eeb6:4690:106b:bae3:31ed:7561]) by smtp.googlemail.com with ESMTPSA id x81sm10152521wmg.17.2018.12.04.08.58.28 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Dec 2018 08:58:29 -0800 (PST) From: Jerome Brunet To: Neil Armstrong , Kevin Hilman , Carlo Caione Cc: Jerome Brunet , linux-clk@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH 1/2] clk: meson: add clk-input helper function Date: Tue, 4 Dec 2018 17:58:18 +0100 Message-Id: <20181204165819.21541-2-jbrunet@baylibre.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181204165819.21541-1-jbrunet@baylibre.com> References: <20181204165819.21541-1-jbrunet@baylibre.com> MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add the clock input helper function. Several amlogic clock controllers will now be registering bypass clock input. Instead of copying this code in every of them, let's make an helper function for it Signed-off-by: Jerome Brunet --- drivers/clk/meson/Makefile | 2 +- drivers/clk/meson/clk-input.c | 44 +++++++++++++++++++++++++++++++++++ drivers/clk/meson/clkc.h | 5 ++++ 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 drivers/clk/meson/clk-input.c -- 2.19.1 diff --git a/drivers/clk/meson/Makefile b/drivers/clk/meson/Makefile index 6da1d7082f1a..e8d1c727cf69 100644 --- a/drivers/clk/meson/Makefile +++ b/drivers/clk/meson/Makefile @@ -3,7 +3,7 @@ # obj-$(CONFIG_COMMON_CLK_AMLOGIC) += clk-pll.o clk-mpll.o clk-phase.o vid-pll-div.o -obj-$(CONFIG_COMMON_CLK_AMLOGIC) += clk-dualdiv.o +obj-$(CONFIG_COMMON_CLK_AMLOGIC) += clk-dualdiv.o clk-input.o obj-$(CONFIG_COMMON_CLK_AMLOGIC_AUDIO) += clk-triphase.o sclk-div.o obj-$(CONFIG_COMMON_CLK_MESON_AO) += meson-aoclk.o obj-$(CONFIG_COMMON_CLK_MESON8B) += meson8b.o diff --git a/drivers/clk/meson/clk-input.c b/drivers/clk/meson/clk-input.c new file mode 100644 index 000000000000..06b3e3bb6a66 --- /dev/null +++ b/drivers/clk/meson/clk-input.c @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: (GPL-2.0 OR MIT) +/* + * Copyright (c) 2018 BayLibre, SAS. + * Author: Jerome Brunet + */ + +#include +#include +#include +#include "clkc.h" + +static const struct clk_ops meson_clk_no_ops = {}; + +struct clk_hw *meson_clk_hw_register_input(struct device *dev, + const char *of_name, + const char *clk_name, + unsigned long flags) +{ + struct clk *parent_clk = devm_clk_get(dev, of_name); + struct clk_init_data init; + const char *parent_name; + struct clk_hw *hw; + int ret; + + if (IS_ERR(parent_clk)) + return (struct clk_hw *)parent_clk; + + hw = devm_kzalloc(dev, sizeof(*hw), GFP_KERNEL); + if (!hw) + return ERR_PTR(-ENOMEM); + + parent_name = __clk_get_name(parent_clk); + init.name = clk_name; + init.ops = &meson_clk_no_ops; + init.flags = flags; + init.parent_names = &parent_name; + init.num_parents = 1; + hw->init = &init; + + ret = devm_clk_hw_register(dev, hw); + + return ret ? ERR_PTR(ret) : hw; +} +EXPORT_SYMBOL_GPL(meson_clk_hw_register_input); diff --git a/drivers/clk/meson/clkc.h b/drivers/clk/meson/clkc.h index 1efa6be9cfe4..e3cd442db739 100644 --- a/drivers/clk/meson/clkc.h +++ b/drivers/clk/meson/clkc.h @@ -138,4 +138,9 @@ extern const struct clk_ops meson_vid_pll_div_ro_ops; extern const struct clk_ops meson_clk_dualdiv_ops; extern const struct clk_ops meson_clk_dualdiv_ro_ops; +struct clk_hw *meson_clk_hw_register_input(struct device *dev, + const char *of_name, + const char *clk_name, + unsigned long flags); + #endif /* __CLKC_H */ From patchwork Tue Dec 4 16:58:19 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 152830 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp8291127ljp; Tue, 4 Dec 2018 08:58:39 -0800 (PST) X-Google-Smtp-Source: AFSGD/XxqjctJjizlFfu73wGe7rKKi1dLuZA7BVYxfaTOFMtGeisRqzl4GKMDTvKnj0mWNjSeOu5 X-Received: by 2002:a63:5c22:: with SMTP id q34mr17313370pgb.417.1543942719101; Tue, 04 Dec 2018 08:58:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543942719; cv=none; d=google.com; s=arc-20160816; b=mKgGy8tmkpqNub7w5JK+F1+PW1WSnC2elskU27tCxhrqvNwwGhkQ9jsVwYqdpt4UEP XPEA7CM+LLgc/zcGGiYxLu6wc8DIi7XzfXjQzYyzbeBBPZCH3hvQyi6+gVvo++xvaEj8 B33oS/RLkX1DsN7daDlRtqaB53Gb446EG68VSIQnUYBxJPezCYpRZXHDc6/vJ12BUsVK rNmKoZ25zxbZe4jCvOqcTDY6ovE3Df2Hw/htp8Hqg7a2eNzfEqMA2K0/IL3O50n0EYke hjni+TiwhWhi7CR/GGUvaGA9NWpDnVk4dTvjQcIfAaLcrRw78s0TeRJuUeKt3NSsYxXI 4Npg== 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 :dkim-signature; bh=QexVJLOcv8y3bTpNXNLUpoDtvoGi99S6MUCsYAM8CRc=; b=aNN+zBiwKSZzOVPGdQC8fl1TSfg1MJHaP9C+vE1bdt33jUaYeFZwY1UfQ6D/gVJiU3 UjL53tNxvxKyBIV0RpB20ggWa8o8D38Lippp01eoj63OyLZFsoasISXNuqfDLCljX9i2 AyXkvlM7z6WVzgnqiXX3VpxGQKdZbx8qglIoOumaoMc6Sqwn5TG8FdV1DyYOg57X4FQA ScvOI5/ExxaF/S0NuFbKdMohUdhyBBi3iKbdXFP38uRwSH1nXdxsJhoROWxub4RG3sxq OlRi7wiMBIwbwz1eqICVM0pY0/qiOHzvHy5ev0ootWJCuHopCH/7gbEGFvHzFxkkkowm PAeA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=FQqO74ty; 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 b27si15812626pgb.107.2018.12.04.08.58.38; Tue, 04 Dec 2018 08:58:39 -0800 (PST) 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; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=FQqO74ty; 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 S1727334AbeLDQ6g (ORCPT + 31 others); Tue, 4 Dec 2018 11:58:36 -0500 Received: from mail-wr1-f65.google.com ([209.85.221.65]:42267 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727293AbeLDQ6e (ORCPT ); Tue, 4 Dec 2018 11:58:34 -0500 Received: by mail-wr1-f65.google.com with SMTP id q18so16716993wrx.9 for ; Tue, 04 Dec 2018 08:58:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=QexVJLOcv8y3bTpNXNLUpoDtvoGi99S6MUCsYAM8CRc=; b=FQqO74tybSN6ZzpP8nkyCnk5REj5HgC0rtTZ59/fMkGAZWtMvvyyIcAVJ+puYiCsDR E/SqYIMjkdLbKRDM5Khucml56wOebg9QpoOyK16N74kgE+Yng9jAupkrMdeAzTWpFIdF EEaQvbgi9ZeQTczsmQXuZcoZDhNlSOuZxsWpOTfpPypQoApIoeLs6lct1C5trseZM+tw WXfZ2lxCtp/djnrVgg6aM8yltj4ByF4X4uOmThquR/9/LWKegsAXrDsHHvays/KDkhJ9 NwUXLR0dBSDzYklJQ/flLkRNjh94aW0062UVp9pCCib7ifWUGag2xND5rPJncQmcD41q RUFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=QexVJLOcv8y3bTpNXNLUpoDtvoGi99S6MUCsYAM8CRc=; b=F5XYdMCOQA8oBxhUQBx84J9iBsxutH/UhyHlJdpgNLqSqDzn9yDK0ucb03Y2asG6bN 4kCarUJKwOMpWF9bLFRSQ/qPrzQ9cWrXRm8aWb+i9eCZVCsZuD0JYr5sAyzxnUxBrV6h dBI3m+7ToWbHA0QXtJ64YL0yiKpIJ4NsG4a+wDiU96gsLkZwlp1BuCQyhDHtf7vSGiyA h3uh3F8QJZCJPgR4LtWRVqrbSfOHrPofLjqq4a4Kdc8Lw9iDdCqQ/R7y1ANIAK7Czk2+ TfsUDMQCBme4XShy/5ggzLA7aQFHGuLOl0oIRThipsmIwMWDu2PoHPz0DLBhL4jTdomS R+3w== X-Gm-Message-State: AA+aEWbmv/9KL7cK7XxbEVVgqVAvpjjcAK8A3+BfQtLliilY55Zt+dZ9 rq/S3xunry0PlWBVNrPqUc0ZHA== X-Received: by 2002:a5d:4b8b:: with SMTP id b11mr18978382wrt.180.1543942711702; Tue, 04 Dec 2018 08:58:31 -0800 (PST) Received: from boomer.local ([2a01:e34:eeb6:4690:106b:bae3:31ed:7561]) by smtp.googlemail.com with ESMTPSA id x81sm10152521wmg.17.2018.12.04.08.58.30 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Dec 2018 08:58:31 -0800 (PST) From: Jerome Brunet To: Neil Armstrong , Kevin Hilman , Carlo Caione Cc: Jerome Brunet , linux-clk@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH 2/2] clk: meson: axg-audio: use the clk input helper function Date: Tue, 4 Dec 2018 17:58:19 +0100 Message-Id: <20181204165819.21541-3-jbrunet@baylibre.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181204165819.21541-1-jbrunet@baylibre.com> References: <20181204165819.21541-1-jbrunet@baylibre.com> MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Rework the axg audio clock controller to use the new clk-input helper function. Signed-off-by: Jerome Brunet --- drivers/clk/meson/axg-audio.c | 83 ++++++++++------------------------- 1 file changed, 24 insertions(+), 59 deletions(-) -- 2.19.1 diff --git a/drivers/clk/meson/axg-audio.c b/drivers/clk/meson/axg-audio.c index 5f6c860aa122..72b717e61a68 100644 --- a/drivers/clk/meson/axg-audio.c +++ b/drivers/clk/meson/axg-audio.c @@ -631,22 +631,23 @@ static struct clk_regmap *const axg_audio_clk_regmaps[] = { &axg_tdmout_c_lrclk, }; -static struct clk *devm_clk_get_enable(struct device *dev, char *id) +static int devm_clk_get_enable(struct device *dev, char *id) { struct clk *clk; int ret; clk = devm_clk_get(dev, id); if (IS_ERR(clk)) { - if (PTR_ERR(clk) != -EPROBE_DEFER) + ret = PTR_ERR(clk); + if (ret != -EPROBE_DEFER) dev_err(dev, "failed to get %s", id); - return clk; + return ret; } ret = clk_prepare_enable(clk); if (ret) { dev_err(dev, "failed to enable %s", id); - return ERR_PTR(ret); + return ret; } ret = devm_add_action_or_reset(dev, @@ -654,74 +655,40 @@ static struct clk *devm_clk_get_enable(struct device *dev, char *id) clk); if (ret) { dev_err(dev, "failed to add reset action on %s", id); - return ERR_PTR(ret); + return ret; } - return clk; -} - -static const struct clk_ops axg_clk_no_ops = {}; - -static struct clk_hw *axg_clk_hw_register_bypass(struct device *dev, - const char *name, - const char *parent_name) -{ - struct clk_hw *hw; - struct clk_init_data init; - char *clk_name; - int ret; - - hw = devm_kzalloc(dev, sizeof(*hw), GFP_KERNEL); - if (!hw) - return ERR_PTR(-ENOMEM); - - clk_name = kasprintf(GFP_KERNEL, "axg_%s", name); - if (!clk_name) - return ERR_PTR(-ENOMEM); - - init.name = clk_name; - init.ops = &axg_clk_no_ops; - init.flags = 0; - init.parent_names = parent_name ? &parent_name : NULL; - init.num_parents = parent_name ? 1 : 0; - hw->init = &init; - - ret = devm_clk_hw_register(dev, hw); - kfree(clk_name); - - return ret ? ERR_PTR(ret) : hw; + return 0; } static int axg_register_clk_hw_input(struct device *dev, const char *name, unsigned int clkid) { - struct clk *parent_clk = devm_clk_get(dev, name); - struct clk_hw *hw = NULL; + char *clk_name; + struct clk_hw *hw; + int err = 0; - if (IS_ERR(parent_clk)) { - int err = PTR_ERR(parent_clk); + clk_name = kasprintf(GFP_KERNEL, "axg_%s", name); + if (!clk_name) + return -ENOMEM; + hw = meson_clk_hw_register_input(dev, name, clk_name, 0); + if (IS_ERR(hw)) { /* It is ok if an input clock is missing */ - if (err == -ENOENT) { + if (PTR_ERR(hw) == -ENOENT) { dev_dbg(dev, "%s not provided", name); } else { + err = PTR_ERR(hw); if (err != -EPROBE_DEFER) dev_err(dev, "failed to get %s clock", name); - return err; } } else { - hw = axg_clk_hw_register_bypass(dev, name, - __clk_get_name(parent_clk)); - } - - if (IS_ERR(hw)) { - dev_err(dev, "failed to register %s clock", name); - return PTR_ERR(hw); + axg_audio_hw_onecell_data.hws[clkid] = hw; } - axg_audio_hw_onecell_data.hws[clkid] = hw; - return 0; + kfree(clk_name); + return err; } static int axg_register_clk_hw_inputs(struct device *dev, @@ -759,7 +726,6 @@ static int axg_audio_clkc_probe(struct platform_device *pdev) struct regmap *map; struct resource *res; void __iomem *regs; - struct clk *clk; struct clk_hw *hw; int ret, i; @@ -775,9 +741,9 @@ static int axg_audio_clkc_probe(struct platform_device *pdev) } /* Get the mandatory peripheral clock */ - clk = devm_clk_get_enable(dev, "pclk"); - if (IS_ERR(clk)) - return PTR_ERR(clk); + ret = devm_clk_get_enable(dev, "pclk"); + if (ret) + return ret; ret = device_reset(dev); if (ret) { @@ -786,8 +752,7 @@ static int axg_audio_clkc_probe(struct platform_device *pdev) } /* Register the peripheral input clock */ - hw = axg_clk_hw_register_bypass(dev, "audio_pclk", - __clk_get_name(clk)); + hw = meson_clk_hw_register_input(dev, "pclk", "audio_pclk", 0); if (IS_ERR(hw)) return PTR_ERR(hw);