From patchwork Wed Jun 20 10:06:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 139307 Delivered-To: patch@linaro.org Received: by 2002:a2e:970d:0:0:0:0:0 with SMTP id r13-v6csp581753lji; Wed, 20 Jun 2018 03:06:48 -0700 (PDT) X-Google-Smtp-Source: ADUXVKL7lJH+0xr8Tj+9UJ7tpT7nCHTfOhThP05vmPtkNCtQIOnHhjml6MjOBmj3zYq8HC+WpUtR X-Received: by 2002:a17:902:714e:: with SMTP id u14-v6mr23135768plm.289.1529489208566; Wed, 20 Jun 2018 03:06:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529489208; cv=none; d=google.com; s=arc-20160816; b=nnKUVyN4SmEJ/01Dlu02LRk4qTPxaI2hgF4fCAQ/Xc+n31bvnjje4gpQwG+WJT4Xnr 4rs5diO5ZCBFjFVVFgU/4HnXKByQ3twFbLtypxZkOtWJWQqEQhuE9RedHp6Tq99LfMr3 7j2oQfF0xw/osmY6rehCs/22hcSCJ/bjEYXte3leNgkjzULyfsnVtAtIDChOrx6Pvvce ScA//YA75asLn6CXuiSElr14+pyGgGot1VEBVqI7syGEmKDuqN+Xpv0gwK2g9lZfWKNB fRKkOLkhTeCXcrvPbxG0PgYoP2flW4RkZSn8woB4ItR1a6LE6QB1S5w/SobsERq1zgU1 Wz5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=/25jG1/AlkO1wnTVMssBMqhJnfLOsH7SOsbHveCnpzk=; b=TXsKcEQcDZ2BEcfwIzw4Ywy3PGmKLlXARuWfA1ITlK8gqyFaRkAjuky9axL7P72Soe FMdgpoCrAsLe7993E6oNx+e4Us9FRkCjqbD+kJXoC0ufe8Cb/6K0UKn7DKWpbZpMtgJB 35rWb2UAp7y2/c2ODh8NhqVGabFX9cFxmEHJ7m2zKedQg+W62vCfaKieZy0W3FIc3IcW g2KO0osGCcheJzw+ukAL36dRrOIjXVxuO0W8dzcQlKlGbcryjmZ6dGs4eGRFBjwxyfQ2 mFE+2uJ4WFLa1BwiPzodzZpnuUdyF+mkGmja5NUTeheUyQyZ0zj01w+BaSpc06x9QK6+ 0dHg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=p0MyeK9B; 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 j12-v6si1660848pgq.312.2018.06.20.03.06.48; Wed, 20 Jun 2018 03:06:48 -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; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=p0MyeK9B; 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 S1754238AbeFTKGq (ORCPT + 30 others); Wed, 20 Jun 2018 06:06:46 -0400 Received: from mail-wr0-f195.google.com ([209.85.128.195]:36298 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754104AbeFTKGV (ORCPT ); Wed, 20 Jun 2018 06:06:21 -0400 Received: by mail-wr0-f195.google.com with SMTP id f16-v6so2659199wrm.3 for ; Wed, 20 Jun 2018 03:06:20 -0700 (PDT) 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; bh=/25jG1/AlkO1wnTVMssBMqhJnfLOsH7SOsbHveCnpzk=; b=p0MyeK9BLHvvnWDQHsfTZyz8ssDNbZRfvSRbmC8HWf851HgVH5HDIfjpYD7bjA5QkH OIFUvJCbjFlLaAqrYTl4/ROb6P58scr5Q0CiVZlCT8ie/UEuc/d6kQoN5Gswf9C6nmSQ /+aBoCggPd5kbKnaOaK3miIdBSwNJNPfMxBu9iXz7tUZ8PtOLJ5cLOFIbGjeZO66UplE Ksq2RxUcDqWdTGtkizznOquCHYW2ACm7Si5QE0oXd1WoAVPM/yCiaeK6s+XeTavyUqXF DCMfchHx9l/forEzqIxigS9lmiFEBjmkK9+5xW/6vygNpSxQ/2G93p7mFtempy67Uwo3 mvmA== 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; bh=/25jG1/AlkO1wnTVMssBMqhJnfLOsH7SOsbHveCnpzk=; b=h7ndnThmNSScK1oYQL5nb3djDcjhZ0HNm56m3YK8MIqLOZ49wfPPfbWsJJTEIj9DjQ Dd+XYFo10Wf0/W+UpOvIVrNYmzppH/1hqqsMHntf2PUj/2HFvEpD9TQ0cl0Ms+USwyC8 wzF7kNNIbiyhQYNOqE1D2puaPPyYLOz44iLOEQfYc1M0pqYzloJ6gI3Hytl6UXrJHobn 3U4L84J2c3+s626oQCnJl36+eFJbhO+DsX7Icb/XbVy9ig+2+ESrE40iCn5qu3cQ7cV8 5RpbdUMW/5Qx+/dO0NAebGEHSMH9HCkeQRPHNLz0cBR/+8lPLXYMEuxnz9MWynW6j5He 6Mvw== X-Gm-Message-State: APt69E3DBR4qT7fIKr4xgEUtV1P46jWGzOgJlT5JVa4VAJnWbD+nSISH G3U5h9J+P21OsHFIkX37rJW2cQ== X-Received: by 2002:adf:ba8f:: with SMTP id p15-v6mr18332730wrg.139.1529489180202; Wed, 20 Jun 2018 03:06:20 -0700 (PDT) Received: from boomer.baylibre.local ([90.63.244.31]) by smtp.googlemail.com with ESMTPSA id m10-v6sm2685852wrq.56.2018.06.20.03.06.19 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 20 Jun 2018 03:06:19 -0700 (PDT) From: Jerome Brunet To: Neil Armstrong , Kevin Hilman , Carlo Caione Cc: Jerome Brunet , linux-amlogic@lists.infradead.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/2] clk: meson: stop rate propagation for audio clocks Date: Wed, 20 Jun 2018 12:06:09 +0200 Message-Id: <20180620100610.29010-2-jbrunet@baylibre.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180620100610.29010-1-jbrunet@baylibre.com> References: <20180620100610.29010-1-jbrunet@baylibre.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org It is actually a lot easier to setup the PLL with carefully chosen rates than relying on CCF clock propagation for this audio use case. This way, we can make sure we will always be able to provide the common audio clock rates, while having the PLL in the optimal operating range. For this, we stop the rate propagation at the mux picking the PLL and let it round to the closest matching PLL. Doing so, we can use the generic divider for the i2s clock. clk-audio-divider is no longer required. It was a (poor) attempt to use CCF rate propagation while making sure the PLL rate would be high enough to work with audio use cases. Signed-off-by: Jerome Brunet --- drivers/clk/meson/gxbb.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) -- 2.14.3 Acked-by: Neil Armstrong diff --git a/drivers/clk/meson/gxbb.c b/drivers/clk/meson/gxbb.c index 297ebc391475..894a6adaa17a 100644 --- a/drivers/clk/meson/gxbb.c +++ b/drivers/clk/meson/gxbb.c @@ -970,28 +970,26 @@ static struct clk_regmap gxbb_cts_amclk_sel = { .mask = 0x3, .shift = 9, .table = (u32[]){ 1, 2, 3 }, + .flags = CLK_MUX_ROUND_CLOSEST, }, .hw.init = &(struct clk_init_data){ .name = "cts_amclk_sel", .ops = &clk_regmap_mux_ops, .parent_names = (const char *[]){ "mpll0", "mpll1", "mpll2" }, .num_parents = 3, - .flags = CLK_SET_RATE_PARENT, }, }; static struct clk_regmap gxbb_cts_amclk_div = { - .data = &(struct meson_clk_audio_div_data){ - .div = { - .reg_off = HHI_AUD_CLK_CNTL, - .shift = 0, - .width = 8, - }, + .data = &(struct clk_regmap_div_data) { + .offset = HHI_AUD_CLK_CNTL, + .shift = 0, + .width = 8, .flags = CLK_DIVIDER_ROUND_CLOSEST, }, .hw.init = &(struct clk_init_data){ .name = "cts_amclk_div", - .ops = &meson_clk_audio_divider_ops, + .ops = &clk_regmap_divider_ops, .parent_names = (const char *[]){ "cts_amclk_sel" }, .num_parents = 1, .flags = CLK_SET_RATE_PARENT, @@ -1018,13 +1016,13 @@ static struct clk_regmap gxbb_cts_mclk_i958_sel = { .mask = 0x3, .shift = 25, .table = (u32[]){ 1, 2, 3 }, + .flags = CLK_MUX_ROUND_CLOSEST, }, .hw.init = &(struct clk_init_data) { .name = "cts_mclk_i958_sel", .ops = &clk_regmap_mux_ops, .parent_names = (const char *[]){ "mpll0", "mpll1", "mpll2" }, .num_parents = 3, - .flags = CLK_SET_RATE_PARENT, }, }; From patchwork Wed Jun 20 10:06:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 139306 Delivered-To: patch@linaro.org Received: by 2002:a2e:970d:0:0:0:0:0 with SMTP id r13-v6csp581423lji; Wed, 20 Jun 2018 03:06:30 -0700 (PDT) X-Google-Smtp-Source: ADUXVKIYtRrKB+yTa8/4L7/HH5KDoaMe7xw4zAJpeGuTR8Rk9cnd8nK9STt1UOGi2tJtxM+EtMp7 X-Received: by 2002:a17:902:b28:: with SMTP id 37-v6mr22499641plq.201.1529489190598; Wed, 20 Jun 2018 03:06:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529489190; cv=none; d=google.com; s=arc-20160816; b=fQo5TZQLYi2eQoM2jgs37v0fNxCVdigcvpRfrl0gVjvSijaZWhFk9J0HsLAqb8dRRf 1UEvgaF4nxeOeZfRfTcGGPRNCSXEHr1Yke1Dv5h2WCFoTjLy0EukFZaRYNieyPIC0DBD TYiZv+2ql1+2/nFCK1f3ImFgY99o3sWZoM2rcTg+v9G7dOGe93dzz5dqbsrBzQjHsNsn 44o1hwHrFiDMuPlb5XQMqCQOuB/YUEiLF4s3SbwZ/IeMdxBhEQ0kZw/iSTHsLfkl2eye B7egovrTUOJ0cwg7Q2NzP9U/+geHKq8FU+jSUVi3OmshySjYlZ0P4ARWaSNaw0oldzOA hvyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=6q2toK54fEHCDkr1ddWCW+wwe2hAKOxiZQKeKjvFnL4=; b=gupt0yoLvWU2XQmdGfhVZ1tXx43oOuR1HuqpY6u04G3oe5TBhE/T7dS2iVTUpgKnga OKJBqan55PB+QwX6nB8d2TmbrvcpRQeDSJvycwAA59lLqX6foAlP9BIJhlK352XxYf8M votQS+XQmXRGz1az3LYue+cbv0w1hP8hQEmytA8VD6WweIj4r1T6XVCfyVV/49wk1HUs MBuYJxZAWpe2lsCfeLaXqnexaX/2Q9gAKsdvwK2Ocbt+axItClXbBkUtogILlvSIzVpz S98Fjxi7kZLx0JDslkan31JRb2FIcoDNeLG3kJPEzxjuQ2uTw/zV6m5dLsyyQaTjWJre JXVg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=PVZ8AytX; 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 e129-v6si2085048pfg.112.2018.06.20.03.06.30; Wed, 20 Jun 2018 03:06:30 -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; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=PVZ8AytX; 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 S1754210AbeFTKG3 (ORCPT + 30 others); Wed, 20 Jun 2018 06:06:29 -0400 Received: from mail-wm0-f65.google.com ([74.125.82.65]:37344 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754137AbeFTKGW (ORCPT ); Wed, 20 Jun 2018 06:06:22 -0400 Received: by mail-wm0-f65.google.com with SMTP id r125-v6so5741279wmg.2 for ; Wed, 20 Jun 2018 03:06:21 -0700 (PDT) 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; bh=6q2toK54fEHCDkr1ddWCW+wwe2hAKOxiZQKeKjvFnL4=; b=PVZ8AytXaJJCJ2pzZ+kUWMfV7pySTfZDjxz7aqcA5D6Fk1pHX6jZO19iTrLMrzOdV/ rRontj4/rwGfuQ73+Tx/iwSJsO6Edb84w2+jLV6I2sDmQkDrpReEo17gac6mrhq/N1wN ijpxsWJyMV36rWg9KA0FAJ22bxItpLnoHb1BZCKnDx1i57h2q5Mjgf9gucNsr+TlCQBp ccnKncwByOBgaIjRmKi+UTi4jQ8AwIgs50T/e4yq6UXqRFn45fWQHDR3mgRAQt0nKicu L0WJGb24rGk4h8KiLQXiO9+EPHtB2+NX7yQfwKiBifQ+u6iPUOOcBxVdNmZGUACGJddC BDSQ== 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; bh=6q2toK54fEHCDkr1ddWCW+wwe2hAKOxiZQKeKjvFnL4=; b=jnJvraiiL/y9Ri3GtbZr3NwWGOWQ4Dz9el7X2bXgNep61Z7iJWjJSkE2A8yYeYCreY 0v209L7raT4t+Hn/U1iSGOO3KwiQ2FgM47WWgv9em1qUIX5e3Zu/l1nBQwxsQ6G/0QtD qNbhG6mWJttCtmzeEBXg0mhYCyXNPYk9WLAP+aGa764kjiAL4CmZ4ZIGV6jgN/cLPYRn au2KPpo3pJ6b4+zBc741JXtplrll0akDx8RjZfbu7+adFz2lEpS4q9FUOeBTMy2dOoxx sPFLdIbhz69gvIOoKWOUvO21oNrPvF8TRS3RYR7aYiWRzloYjp7QzCCi89lAszc7JMD1 mpnA== X-Gm-Message-State: APt69E1b8mhoK/aTlMGhc6Jej1BHZw+Hhub8d7KCsCtaBmCJlTGIeWPB 2t/lM1DyQLGVSJ3HEZ0KpBBxfg== X-Received: by 2002:a1c:c208:: with SMTP id s8-v6mr1210383wmf.29.1529489181298; Wed, 20 Jun 2018 03:06:21 -0700 (PDT) Received: from boomer.baylibre.local ([90.63.244.31]) by smtp.googlemail.com with ESMTPSA id m10-v6sm2685852wrq.56.2018.06.20.03.06.20 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 20 Jun 2018 03:06:20 -0700 (PDT) From: Jerome Brunet To: Neil Armstrong , Kevin Hilman , Carlo Caione Cc: Jerome Brunet , linux-amlogic@lists.infradead.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/2] clk: meson: remove unused clk-audio-divider driver Date: Wed, 20 Jun 2018 12:06:10 +0200 Message-Id: <20180620100610.29010-3-jbrunet@baylibre.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180620100610.29010-1-jbrunet@baylibre.com> References: <20180620100610.29010-1-jbrunet@baylibre.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org clk-audio-divider is no longer used, we can remove it. Signed-off-by: Jerome Brunet --- drivers/clk/meson/Makefile | 2 +- drivers/clk/meson/clk-audio-divider.c | 110 ---------------------------------- drivers/clk/meson/clkc.h | 7 --- 3 files changed, 1 insertion(+), 118 deletions(-) delete mode 100644 drivers/clk/meson/clk-audio-divider.c -- 2.14.3 Acked-by: Neil Armstrong diff --git a/drivers/clk/meson/Makefile b/drivers/clk/meson/Makefile index d0d13aeb369a..e40fea96069b 100644 --- a/drivers/clk/meson/Makefile +++ b/drivers/clk/meson/Makefile @@ -2,7 +2,7 @@ # Makefile for Meson specific clk # -obj-$(CONFIG_COMMON_CLK_AMLOGIC) += clk-pll.o clk-mpll.o clk-audio-divider.o +obj-$(CONFIG_COMMON_CLK_AMLOGIC) += clk-pll.o clk-mpll.o obj-$(CONFIG_COMMON_CLK_MESON_AO) += meson-aoclk.o obj-$(CONFIG_COMMON_CLK_MESON8B) += meson8b.o obj-$(CONFIG_COMMON_CLK_GXBB) += gxbb.o gxbb-aoclk.o gxbb-aoclk-32k.o diff --git a/drivers/clk/meson/clk-audio-divider.c b/drivers/clk/meson/clk-audio-divider.c deleted file mode 100644 index e4cf96ba704e..000000000000 --- a/drivers/clk/meson/clk-audio-divider.c +++ /dev/null @@ -1,110 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/* - * Copyright (c) 2017 AmLogic, Inc. - * Author: Jerome Brunet - */ - -/* - * i2s master clock divider: The algorithm of the generic clk-divider used with - * a very precise clock parent such as the mpll tends to select a low divider - * factor. This gives poor results with this particular divider, especially with - * high frequencies (> 100 MHz) - * - * This driver try to select the maximum possible divider with the rate the - * upstream clock can provide. - */ - -#include -#include "clkc.h" - -static inline struct meson_clk_audio_div_data * -meson_clk_audio_div_data(struct clk_regmap *clk) -{ - return (struct meson_clk_audio_div_data *)clk->data; -} - -static int _div_round(unsigned long parent_rate, unsigned long rate, - unsigned long flags) -{ - if (flags & CLK_DIVIDER_ROUND_CLOSEST) - return DIV_ROUND_CLOSEST_ULL((u64)parent_rate, rate); - - return DIV_ROUND_UP_ULL((u64)parent_rate, rate); -} - -static int _get_val(unsigned long parent_rate, unsigned long rate) -{ - return DIV_ROUND_UP_ULL((u64)parent_rate, rate) - 1; -} - -static int _valid_divider(unsigned int width, int divider) -{ - int max_divider = 1 << width; - - return clamp(divider, 1, max_divider); -} - -static unsigned long audio_divider_recalc_rate(struct clk_hw *hw, - unsigned long parent_rate) -{ - struct clk_regmap *clk = to_clk_regmap(hw); - struct meson_clk_audio_div_data *adiv = meson_clk_audio_div_data(clk); - unsigned long divider; - - divider = meson_parm_read(clk->map, &adiv->div) + 1; - - return DIV_ROUND_UP_ULL((u64)parent_rate, divider); -} - -static long audio_divider_round_rate(struct clk_hw *hw, - unsigned long rate, - unsigned long *parent_rate) -{ - struct clk_regmap *clk = to_clk_regmap(hw); - struct meson_clk_audio_div_data *adiv = meson_clk_audio_div_data(clk); - unsigned long max_prate; - int divider; - - if (!(clk_hw_get_flags(hw) & CLK_SET_RATE_PARENT)) { - divider = _div_round(*parent_rate, rate, adiv->flags); - divider = _valid_divider(adiv->div.width, divider); - return DIV_ROUND_UP_ULL((u64)*parent_rate, divider); - } - - /* Get the maximum parent rate */ - max_prate = clk_hw_round_rate(clk_hw_get_parent(hw), ULONG_MAX); - - /* Get the corresponding rounded down divider */ - divider = max_prate / rate; - divider = _valid_divider(adiv->div.width, divider); - - /* Get actual rate of the parent */ - *parent_rate = clk_hw_round_rate(clk_hw_get_parent(hw), - divider * rate); - - return DIV_ROUND_UP_ULL((u64)*parent_rate, divider); -} - -static int audio_divider_set_rate(struct clk_hw *hw, - unsigned long rate, - unsigned long parent_rate) -{ - struct clk_regmap *clk = to_clk_regmap(hw); - struct meson_clk_audio_div_data *adiv = meson_clk_audio_div_data(clk); - int val = _get_val(parent_rate, rate); - - meson_parm_write(clk->map, &adiv->div, val); - - return 0; -} - -const struct clk_ops meson_clk_audio_divider_ro_ops = { - .recalc_rate = audio_divider_recalc_rate, - .round_rate = audio_divider_round_rate, -}; - -const struct clk_ops meson_clk_audio_divider_ops = { - .recalc_rate = audio_divider_recalc_rate, - .round_rate = audio_divider_round_rate, - .set_rate = audio_divider_set_rate, -}; diff --git a/drivers/clk/meson/clkc.h b/drivers/clk/meson/clkc.h index 2fb084330ee9..48db02424f02 100644 --- a/drivers/clk/meson/clkc.h +++ b/drivers/clk/meson/clkc.h @@ -91,11 +91,6 @@ struct meson_clk_mpll_data { #define CLK_MESON_MPLL_ROUND_CLOSEST BIT(0) -struct meson_clk_audio_div_data { - struct parm div; - u8 flags; -}; - #define MESON_GATE(_name, _reg, _bit) \ struct clk_regmap _name = { \ .data = &(struct clk_regmap_gate_data){ \ @@ -117,7 +112,5 @@ extern const struct clk_ops meson_clk_pll_ops; extern const struct clk_ops meson_clk_cpu_ops; extern const struct clk_ops meson_clk_mpll_ro_ops; extern const struct clk_ops meson_clk_mpll_ops; -extern const struct clk_ops meson_clk_audio_divider_ro_ops; -extern const struct clk_ops meson_clk_audio_divider_ops; #endif /* __CLKC_H */