From patchwork Fri Jul 28 16:32:28 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 108893 Delivered-To: patch@linaro.org Received: by 10.140.101.44 with SMTP id t41csp588118qge; Fri, 28 Jul 2017 09:32:51 -0700 (PDT) X-Received: by 10.84.214.151 with SMTP id j23mr8673379pli.322.1501259571349; Fri, 28 Jul 2017 09:32:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1501259571; cv=none; d=google.com; s=arc-20160816; b=sIKZVAU95vOg/1Fybd0gb+IlERVU5+LubgV4RN08/2IjDuAIKbqsZgFUFfaUfVsw4C nLZ+8TCTu9IQB/HtxvtC229wQ81d2sKOIf6QbSV+Ozngo5Vsw/AwWvBlxLUTqIh7uxEe OmdzPCTg1JFHB+npdofd8E3ANM7NSd/8jO8Sl0Pcx2ic+PKQsbBwqUUMylmnEO1Er+9b 6tkCVF2LCVbIqt4aJNKc4n/TJ/AHitGcMFX+p2olhrRVgHw3uwLoaNUB9cJ2kTgToNRd g9zee5UJCbvi/DkZhGN/NjwKc/z0U4nZfNe2uIwWaS8z9glO60LOQGmPcVMlTjIg2UI9 kKlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=858//qIgMH87QWzyrE9thf6NrYEO1SGBN5EYbC0RLrE=; b=xu3cPNdP87XvJP5qU24gNTO+HxLaeZD1Gjk/drO5L0h0lLaBqm1cxHx5HtxSzEchU6 rUBobtOTRM6RZaUEPQL99we9LtukhkDEouyaAxx8N8pERIsYGGKun92c4fCCOq+V1AGS jTEfjJX7H/Rov/noIC/89+d+3q5BkQlAG0zJwVZ0xo9r46CRTZ3evRh9b4H0apsgfxEe wWGHiv20bHKCll7EQWNQDO1y9uza799b99RsmypW79/gJ3rnuHvEEFlMS8ZsMqHdyNYX rqetpHW+vXb/cVSmIqOoDxkWxC3762sPDnvDAgVM2cGcbQfkph3b4TrniO7qkJcmCL31 tQPw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.b=VYjZ+8ho; 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 g2si13515838pli.354.2017.07.28.09.32.51; Fri, 28 Jul 2017 09:32:51 -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.b=VYjZ+8ho; 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 S1752540AbdG1Qcs (ORCPT + 26 others); Fri, 28 Jul 2017 12:32:48 -0400 Received: from mail-wr0-f176.google.com ([209.85.128.176]:37707 "EHLO mail-wr0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752463AbdG1Qcd (ORCPT ); Fri, 28 Jul 2017 12:32:33 -0400 Received: by mail-wr0-f176.google.com with SMTP id 33so100536200wrz.4 for ; Fri, 28 Jul 2017 09:32:32 -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; bh=858//qIgMH87QWzyrE9thf6NrYEO1SGBN5EYbC0RLrE=; b=VYjZ+8hoFpuZthgS68Nu8LpxIlOBfbvXOvVztby22OWBqMgmj3DywwRdrRDdrcu3XZ r771jjq4t7dvfLCaRLuHjILcpy5zKNsrz2XpqMpBsU8JdgrXY1tpTTvBTmv+bqnnGoUe Iq7m47p/6hecgO+kxFCIyuz7ygnH1Lizd9ta3Ua5OILP0T4y4I3qvr7Kl8hKG3brErWE u24fbpkjTEtxcvWwLPj/EyPmvZW+kNb8okwd2CTDOWv4i+vukF+U4UI+mP1+3iW6vxAV 4h7e9vLFAfL2SDX69tW7kw0KGg/SFSBhlV71RK+qeMyDh+kZXIYM62aG3exFe8EYdPMD w0qw== 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; bh=858//qIgMH87QWzyrE9thf6NrYEO1SGBN5EYbC0RLrE=; b=W5lcoMrmXky57lr/bBTgU5IDZ4WVwWaaDvcoUNefya2PBg5i7F9R8DfEvyTKFwNSoy 4QNGEJao85RrfHTJKID7PKklxhw/k5zij8pbCJrzGAD3gQS0xCWq8Xm+efqeJ79b5MTc X1AfufJj2umG06rxxWTQvy73Rgo2VSHE4i9hoofE2JZRbTUe6LnsTzQK/ouTCm/vFvf4 Hfanfi8zwjmzChkMUNDujAd+z49CITySPd1fwjR8V2D1nluzSq4wt4O+5+sBfCnS/Hag qn28OF0+UB6WoBB3N42ui278ftsJMgoeRp3OpDbsp002asSfQpKNCaXfKb8hxiVTfmKY m1WQ== X-Gm-Message-State: AIVw1119CVOIpPZv5p2eqZPQ+fJEKTpLRVukarxXSkSnvtTc04YCjdsW YBeBRBu3Nfz7Pfrk X-Received: by 10.223.179.13 with SMTP id j13mr6295182wrd.228.1501259552244; Fri, 28 Jul 2017 09:32:32 -0700 (PDT) Received: from localhost.localdomain ([90.63.244.31]) by smtp.googlemail.com with ESMTPSA id 15sm4714353wmo.7.2017.07.28.09.32.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 28 Jul 2017 09:32:31 -0700 (PDT) From: Jerome Brunet To: Neil Armstrong , Michael Turquette , Stephen Boyd , Kevin Hilman Cc: Jerome Brunet , Carlo Caione , linux-amlogic@lists.infradead.org, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH] clk: meson: mpll: fix mpll0 fractional part ignored Date: Fri, 28 Jul 2017 18:32:28 +0200 Message-Id: <20170728163228.10879-1-jbrunet@baylibre.com> X-Mailer: git-send-email 2.9.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org mpll0 clock is special compared to the other mplls. It needs another bit (ssen) to be set to activate the fractional part the mpll divider Fixes: 007e6e5c5f01 ("clk: meson: mpll: add rw operation") Signed-off-by: Jerome Brunet --- drivers/clk/meson/clk-mpll.c | 7 +++++++ drivers/clk/meson/clkc.h | 1 + drivers/clk/meson/gxbb.c | 5 +++++ drivers/clk/meson/meson8b.c | 5 +++++ 4 files changed, 18 insertions(+) -- 2.9.4 diff --git a/drivers/clk/meson/clk-mpll.c b/drivers/clk/meson/clk-mpll.c index 39eab69fe51a..44a5a535ca63 100644 --- a/drivers/clk/meson/clk-mpll.c +++ b/drivers/clk/meson/clk-mpll.c @@ -161,6 +161,13 @@ static int mpll_set_rate(struct clk_hw *hw, reg = PARM_SET(p->width, p->shift, reg, 1); writel(reg, mpll->base + p->reg_off); + p = &mpll->ssen; + if (p->width != 0) { + reg = readl(mpll->base + p->reg_off); + reg = PARM_SET(p->width, p->shift, reg, 1); + writel(reg, mpll->base + p->reg_off); + } + p = &mpll->n2; reg = readl(mpll->base + p->reg_off); reg = PARM_SET(p->width, p->shift, reg, n2); diff --git a/drivers/clk/meson/clkc.h b/drivers/clk/meson/clkc.h index d6feafe8bd6c..1629da9b4141 100644 --- a/drivers/clk/meson/clkc.h +++ b/drivers/clk/meson/clkc.h @@ -118,6 +118,7 @@ struct meson_clk_mpll { struct parm sdm_en; struct parm n2; struct parm en; + struct parm ssen; spinlock_t *lock; }; diff --git a/drivers/clk/meson/gxbb.c b/drivers/clk/meson/gxbb.c index 59a296b119ea..79b195b4df03 100644 --- a/drivers/clk/meson/gxbb.c +++ b/drivers/clk/meson/gxbb.c @@ -528,6 +528,11 @@ static struct meson_clk_mpll gxbb_mpll0 = { .shift = 14, .width = 1, }, + .ssen = { + .reg_off = HHI_MPLL_CNTL, + .shift = 25, + .width = 1, + }, .lock = &clk_lock, .hw.init = &(struct clk_init_data){ .name = "mpll0", diff --git a/drivers/clk/meson/meson8b.c b/drivers/clk/meson/meson8b.c index bb3f1de876b1..6ec512ad2598 100644 --- a/drivers/clk/meson/meson8b.c +++ b/drivers/clk/meson/meson8b.c @@ -267,6 +267,11 @@ static struct meson_clk_mpll meson8b_mpll0 = { .shift = 14, .width = 1, }, + .ssen = { + .reg_off = HHI_MPLL_CNTL, + .shift = 25, + .width = 1, + }, .lock = &clk_lock, .hw.init = &(struct clk_init_data){ .name = "mpll0",