From patchwork Mon Mar 25 11:11:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 161085 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp3831302jan; Mon, 25 Mar 2019 04:12:15 -0700 (PDT) X-Google-Smtp-Source: APXvYqzDRIYcloyBdBkAchGYTHCgnXyPm0ehS0egvrZebJnMbzH6suVBwQh7gZKXlKrLsc9C4Ken X-Received: by 2002:a62:4481:: with SMTP id m1mr23832549pfi.253.1553512335712; Mon, 25 Mar 2019 04:12:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553512335; cv=none; d=google.com; s=arc-20160816; b=V5OjL2J4kdhYI8AI/ZjIc2mCrA/y38Qhl1P0D0siXTKl1RiPnMitXekDPApeBmv3Nz ZTBpskGh/dyMpLSRRW4ttBTAsDFtgMJJFSftp5YWKgwXQO99EsyL/nVeap7p3s5txugI b3U6gjjEDIaRcBoB6x/UnQV+Q2sjhg2wYQVvI71ggTm6Fmgtrbxsm5qwTa5ZwGe6ne3d Gk23IcIlfcOmgYmPz77XO95C74gGnaGdJz3LwNav2wGcFC0Y1wJo/MuUcjQc/rhtQXhi noirkH9bphpwKigB5qMiD7iDlYCAXVuoDg8fiJfUUSbYsIUB3dTAQpAcM3MrTY18Q3dm rvfQ== 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=ni9wuRQYti+VN96MUqmtZken5FIKCN6vt8HcbUKOpXk=; b=otni2LnyK5lp1f+cuboPZiY61wnmYE/e+64MnK6OQG/NytlaLJAXTuU9LoGaxg3F5v yG2XwM5EG89TGNa8KA6dlsHoXwfaLwCsyRVVqm678B6PIZrmNsgv5hYq5wuIaRik13la NnVXIpzicwYDTq5xrI7Z798C33Tslo6gws+ZbY1eZK65DhOJk+uF/E/nyPY7n2dMC1sJ j3mo7yjvhousX7vVTf19r3Bxzgue8/BMPaxFhXRfdB6m/H0lStFd5kvi62Xcwj6LHLms rI5pV2RuVd7/AY44zWUQV7TcKnJPrG2MoIBS/XMkZ7hq+3iio4b4Mh39QAQRuq3GFhrR kZQw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b="Ob4wr/p7"; spf=temperror (google.com: error in processing during lookup of linux-kernel-owner@vger.kernel.org: DNS error) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org ([209.132.180.67]) by mx.google.com with ESMTP id t2si13548794plr.179.2019.03.25.04.12.15; Mon, 25 Mar 2019 04:12:15 -0700 (PDT) Received-SPF: temperror (google.com: error in processing during lookup of linux-kernel-owner@vger.kernel.org: DNS error) 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="Ob4wr/p7"; spf=temperror (google.com: error in processing during lookup of linux-kernel-owner@vger.kernel.org: DNS error) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730914AbfCYLMN (ORCPT + 31 others); Mon, 25 Mar 2019 07:12:13 -0400 Received: from mail-wr1-f67.google.com ([209.85.221.67]:37450 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730785AbfCYLML (ORCPT ); Mon, 25 Mar 2019 07:12:11 -0400 Received: by mail-wr1-f67.google.com with SMTP id w10so9622702wrm.4 for ; Mon, 25 Mar 2019 04:12:10 -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 :mime-version:content-transfer-encoding; bh=ni9wuRQYti+VN96MUqmtZken5FIKCN6vt8HcbUKOpXk=; b=Ob4wr/p7CWJ0/0rb9BiX/8sfRVwR/RvMNb1rQR4KEx5nw/PtNynhStx9LaWhSq0GIP xR+C5qFlH4eONwWVhTSqBRlO5OzIDe11Xop0RGfFTLs/8fMOUKuIXIbK1ciFfnkhs0iN V6RXmZbqDSOg6MeWgSp6ICBq9mmNE5q8pgR2Zv72oiXpvVphSuXMbBQoZWlTMAQ3gfIm xi8bDZS2bD3NZuCZWfJiS95K96NVuddvWL3LoNaAmKDR9lbmL+y7hA2n1TTPBStgBuTw YuM/hqcL6Jc7VKb6YlJT4Qfmq6jh8gakcKYYua1swt8xgKWBqIJ9DC2cXnfb/HQyvDin XO7w== 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=ni9wuRQYti+VN96MUqmtZken5FIKCN6vt8HcbUKOpXk=; b=fCQYylfkb7SkfBeE7Am2K05nZf31Wk0W+fdQrCS3SZ18GyhOw7ZLKpUVFaguLelEP+ MQM2h9puXUeuLkzC4jqzr8wHeh2i/aJTBiGS7RrZ72VcgIUquOzKw1x4m863S1sYFT9F PDueBO1BhBKnHbSBKEo+b4pq28JnmnREqbxNmfozvIrEio/GBrccpbL1tfP2i1f+F1rC D1ERE4WcAmyXNoTYrYPKnYA3J3LbcrCFRru6sujFk93kEwr7Ol7pbZmosZ3wDQMWrLgv Qo7QnXbND428xb1D3NgBnNHsj25TXcy30OwcPQiERz7MosIRZN/BTcAPnJCEz+y01IFs vg7w== X-Gm-Message-State: APjAAAXVNxc/RKCVDcH6YPm0UsTb3IjX8odSGXLUBlfQW5djDh+8MNLu ylE2lC4NxxldhVcppEDPI0+GWAftT/Y= X-Received: by 2002:a5d:68cf:: with SMTP id p15mr11536669wrw.301.1553512329569; Mon, 25 Mar 2019 04:12:09 -0700 (PDT) Received: from boomer.local ([2a01:e34:eeb6:4690:106b:bae3:31ed:7561]) by smtp.googlemail.com with ESMTPSA id n188sm15134301wme.13.2019.03.25.04.12.08 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 25 Mar 2019 04:12:08 -0700 (PDT) From: Jerome Brunet To: Neil Armstrong Cc: Jerome Brunet , linux-amlogic@lists.infradead.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/4] clk: meson: mpll: add init callback and regs Date: Mon, 25 Mar 2019 12:11:57 +0100 Message-Id: <20190325111200.15940-2-jbrunet@baylibre.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190325111200.15940-1-jbrunet@baylibre.com> References: <20190325111200.15940-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 Until now (gx and axg), the mpll setting on boot (whatever the bootloader) was good enough generate a clean fractional division. It is not the case on the g12a. While moving away from the vendor u-boot, it was noticed the fractional part of the divider was no longer applied. Like on the pll, some magic settings need to applied on the mpll register. This change adds the ability to do that on the mpll driver. Signed-off-by: Jerome Brunet --- drivers/clk/meson/clk-mpll.c | 33 +++++++++++++++++++++++---------- drivers/clk/meson/clk-mpll.h | 2 ++ 2 files changed, 25 insertions(+), 10 deletions(-) -- 2.20.1 diff --git a/drivers/clk/meson/clk-mpll.c b/drivers/clk/meson/clk-mpll.c index f76850d99e59..64d31c8ba3d0 100644 --- a/drivers/clk/meson/clk-mpll.c +++ b/drivers/clk/meson/clk-mpll.c @@ -115,21 +115,12 @@ static int mpll_set_rate(struct clk_hw *hw, else __acquire(mpll->lock); - /* Enable and set the fractional part */ + /* Set the fractional part */ meson_parm_write(clk->map, &mpll->sdm, sdm); - meson_parm_write(clk->map, &mpll->sdm_en, 1); - - /* Set additional fractional part enable if required */ - if (MESON_PARM_APPLICABLE(&mpll->ssen)) - meson_parm_write(clk->map, &mpll->ssen, 1); /* Set the integer divider part */ meson_parm_write(clk->map, &mpll->n2, n2); - /* Set the magic misc bit if required */ - if (MESON_PARM_APPLICABLE(&mpll->misc)) - meson_parm_write(clk->map, &mpll->misc, 1); - if (mpll->lock) spin_unlock_irqrestore(mpll->lock, flags); else @@ -138,6 +129,27 @@ static int mpll_set_rate(struct clk_hw *hw, return 0; } +static void mpll_init(struct clk_hw *hw) +{ + struct clk_regmap *clk = to_clk_regmap(hw); + struct meson_clk_mpll_data *mpll = meson_clk_mpll_data(clk); + + if (mpll->init_count) + regmap_multi_reg_write(clk->map, mpll->init_regs, + mpll->init_count); + + /* Enable the fractional part */ + meson_parm_write(clk->map, &mpll->sdm_en, 1); + + /* Set additional fractional part enable if required */ + if (MESON_PARM_APPLICABLE(&mpll->ssen)) + meson_parm_write(clk->map, &mpll->ssen, 1); + + /* Set the magic misc bit if required */ + if (MESON_PARM_APPLICABLE(&mpll->misc)) + meson_parm_write(clk->map, &mpll->misc, 1); +} + const struct clk_ops meson_clk_mpll_ro_ops = { .recalc_rate = mpll_recalc_rate, .round_rate = mpll_round_rate, @@ -148,6 +160,7 @@ const struct clk_ops meson_clk_mpll_ops = { .recalc_rate = mpll_recalc_rate, .round_rate = mpll_round_rate, .set_rate = mpll_set_rate, + .init = mpll_init, }; EXPORT_SYMBOL_GPL(meson_clk_mpll_ops); diff --git a/drivers/clk/meson/clk-mpll.h b/drivers/clk/meson/clk-mpll.h index cf79340006dd..2925fb939fdd 100644 --- a/drivers/clk/meson/clk-mpll.h +++ b/drivers/clk/meson/clk-mpll.h @@ -18,6 +18,8 @@ struct meson_clk_mpll_data { struct parm n2; struct parm ssen; struct parm misc; + const struct reg_sequence *init_regs; + unsigned int init_count; spinlock_t *lock; u8 flags; }; From patchwork Mon Mar 25 11:11:58 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 161088 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp3831626jan; Mon, 25 Mar 2019 04:12:31 -0700 (PDT) X-Google-Smtp-Source: APXvYqw9CX8BLyogNmZjNj6/NbFmCvpY1M3ij2se25Bx6vnUy64HO1c7QijaMupkRmEkqKYvnIpR X-Received: by 2002:a62:e50a:: with SMTP id n10mr126950pff.55.1553512351261; Mon, 25 Mar 2019 04:12:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553512351; cv=none; d=google.com; s=arc-20160816; b=vJA0j7nmaDVM1QxXvGiom6PuSosPS8Hvn9gNJFFMr3gjeyQs+7Qq+B/2fib1mYC2Mu GxKO3A1u3Er9DY1qCBYRHtVOTF37URPNvT7wYdzhfY13g4pURc5sextHyiqX4GtLR91B wJilQzFbLt2ppZY/6epkxyj+9C9C4ziupPY3/MQ44tjpIpnE9/YvgBbDGVfmC+xLCkTS M8+k1nD9EPXLBP/K6aqfaG6T0kpJ/A6Yech7LSTuaS/OIDbjfd5v5eyKW2nfPSW3GCjD dR7DlL4LOBo9Pa/77IBTMXaXw6athksulvSupey8SZTwnaKm6/CfElaSIrDA65dR6Qkd qQWw== 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=qSTs5pvYtXziAiN+RG5xFnEp9XYC2fpG75vZzF22hfs=; b=P3VK75VuE8GG6vyoJ/PXvYwX5rXTqMzdtUnVqKdWp0FOMi+Y+8rgkMV1KPBYDlVxia t3NKOpHAd1a4zVjn0FuYdQF0sXJxDSkjsmPP13jEue0knEz6f6cRnF4lW1l/UxuKg4WO 3SlXaYpNGFzLHZKwSo2oFCJocVmPJ2GAYwTegQ95hXurISlsg3csdB8U5G5T8aGxTUZZ yocEQtIDvgOnRa5slNry30OWZ3285NNUKJm7mJlLmwEk+ky+paesw0/3bPJnuQ9vMMzV uV8pqMSVYg0IJjs1WE72mejGUIMgLBU5oj3xhfTm2CLU2R4cpCui2w8Rz5BlD+nbkicu Ndjg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=r3pB7Xyg; spf=temperror (google.com: error in processing during lookup of linux-kernel-owner@vger.kernel.org: DNS error) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org ([209.132.180.67]) by mx.google.com with ESMTP id n4si496623pgp.427.2019.03.25.04.12.30; Mon, 25 Mar 2019 04:12:31 -0700 (PDT) Received-SPF: temperror (google.com: error in processing during lookup of linux-kernel-owner@vger.kernel.org: DNS error) 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=r3pB7Xyg; spf=temperror (google.com: error in processing during lookup of linux-kernel-owner@vger.kernel.org: DNS error) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730953AbfCYLM3 (ORCPT + 31 others); Mon, 25 Mar 2019 07:12:29 -0400 Received: from mail-wm1-f68.google.com ([209.85.128.68]:50400 "EHLO mail-wm1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730511AbfCYLMM (ORCPT ); Mon, 25 Mar 2019 07:12:12 -0400 Received: by mail-wm1-f68.google.com with SMTP id z11so8495747wmi.0 for ; Mon, 25 Mar 2019 04:12:11 -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 :mime-version:content-transfer-encoding; bh=qSTs5pvYtXziAiN+RG5xFnEp9XYC2fpG75vZzF22hfs=; b=r3pB7Xygzu97DmUwohN4so1YlPfsLTJ88ye6r8Q2iVezfT/WFu9hwCEU1PXM1tjKII PxuYgGCi4bDjes2TRQ4hQQHItbg62/GmXe9EKrvRDG1PArBeWJaO7zjKj4AyUao8kS2o wkdmW4+IaPU1bd8yO74i685YPAtjkUqGMBwqDwNCHtKDFtvbKsmZ0OfmlWU8bNx025Md G0IFYc1IrmdqROt6L2exGp7vHh1pHrosX/x7TGxpWzh+AOWsCWXlN5n2Oz9b3HqKNLOm ltljs3l5jY4xRBTlvZiWcD+AVvy0QMgnAl1+aP34cu+46Qkn6UUH4H6lUw1yILBgWxCG OlUw== 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=qSTs5pvYtXziAiN+RG5xFnEp9XYC2fpG75vZzF22hfs=; b=kMKVKHUijZ6h1GXT+MJ/OS74/K5Ffdyng3utRPJOSdfGhhZmKU1rPUC6B5FN1zYnRw o/tp10Rt4OhgNGqZXQC4mxlz0m48CTCyBfR130OgQe6zJMgi8YoyGK8oWQY6LOfYz7da 3UXtoQSAWpb92XgQCM9osxUV8yAadwXP7t6qyhbqcqn/EI1p5PHbHm//FWQCsudhBorH 1f6FvEOTx2rlEpxrKlziTK44ByT83lhgGCZcGxl7nNKUthQp69rKBvVboxj09gcivL/s /AwsqJmo8/S73m53zrIpNn3lLgdAvCpDDY/fBcczm/91bs7/0ZYrdOVk6x7vxTYyKXBX pZXA== X-Gm-Message-State: APjAAAU/24YUq60lBNtrpkQCG0v9vZtjfXX10sKfUvjFyEiarng0S29B mErFpgTT4HJgy0HvdjdX4vvw8g== X-Received: by 2002:a7b:cd9a:: with SMTP id y26mr5392149wmj.31.1553512330909; Mon, 25 Mar 2019 04:12:10 -0700 (PDT) Received: from boomer.local ([2a01:e34:eeb6:4690:106b:bae3:31ed:7561]) by smtp.googlemail.com with ESMTPSA id n188sm15134301wme.13.2019.03.25.04.12.09 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 25 Mar 2019 04:12:10 -0700 (PDT) From: Jerome Brunet To: Neil Armstrong Cc: Jerome Brunet , linux-amlogic@lists.infradead.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/4] clk: meson: g12a: add mpll register init sequences Date: Mon, 25 Mar 2019 12:11:58 +0100 Message-Id: <20190325111200.15940-3-jbrunet@baylibre.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190325111200.15940-1-jbrunet@baylibre.com> References: <20190325111200.15940-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 required init of each MPLL of the g12a. Signed-off-by: Jerome Brunet --- drivers/clk/meson/g12a.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) -- 2.20.1 diff --git a/drivers/clk/meson/g12a.c b/drivers/clk/meson/g12a.c index d3f53a9b97dc..6a01f8fd8114 100644 --- a/drivers/clk/meson/g12a.c +++ b/drivers/clk/meson/g12a.c @@ -577,6 +577,10 @@ static struct clk_fixed_factor g12a_mpll_prediv = { }, }; +static const struct reg_sequence g12a_mpll0_init_regs[] = { + { .reg = HHI_MPLL_CNTL2, .def = 0x40000033 }, +}; + static struct clk_regmap g12a_mpll0_div = { .data = &(struct meson_clk_mpll_data){ .sdm = { @@ -600,6 +604,8 @@ static struct clk_regmap g12a_mpll0_div = { .width = 1, }, .lock = &meson_clk_lock, + .init_regs = g12a_mpll0_init_regs, + .init_count = ARRAY_SIZE(g12a_mpll0_init_regs), }, .hw.init = &(struct clk_init_data){ .name = "mpll0_div", @@ -623,6 +629,10 @@ static struct clk_regmap g12a_mpll0 = { }, }; +static const struct reg_sequence g12a_mpll1_init_regs[] = { + { .reg = HHI_MPLL_CNTL4, .def = 0x40000033 }, +}; + static struct clk_regmap g12a_mpll1_div = { .data = &(struct meson_clk_mpll_data){ .sdm = { @@ -646,6 +656,8 @@ static struct clk_regmap g12a_mpll1_div = { .width = 1, }, .lock = &meson_clk_lock, + .init_regs = g12a_mpll1_init_regs, + .init_count = ARRAY_SIZE(g12a_mpll1_init_regs), }, .hw.init = &(struct clk_init_data){ .name = "mpll1_div", @@ -669,6 +681,10 @@ static struct clk_regmap g12a_mpll1 = { }, }; +static const struct reg_sequence g12a_mpll2_init_regs[] = { + { .reg = HHI_MPLL_CNTL6, .def = 0x40000033 }, +}; + static struct clk_regmap g12a_mpll2_div = { .data = &(struct meson_clk_mpll_data){ .sdm = { @@ -692,6 +708,8 @@ static struct clk_regmap g12a_mpll2_div = { .width = 1, }, .lock = &meson_clk_lock, + .init_regs = g12a_mpll2_init_regs, + .init_count = ARRAY_SIZE(g12a_mpll2_init_regs), }, .hw.init = &(struct clk_init_data){ .name = "mpll2_div", @@ -715,6 +733,10 @@ static struct clk_regmap g12a_mpll2 = { }, }; +static const struct reg_sequence g12a_mpll3_init_regs[] = { + { .reg = HHI_MPLL_CNTL8, .def = 0x40000033 }, +}; + static struct clk_regmap g12a_mpll3_div = { .data = &(struct meson_clk_mpll_data){ .sdm = { @@ -738,6 +760,8 @@ static struct clk_regmap g12a_mpll3_div = { .width = 1, }, .lock = &meson_clk_lock, + .init_regs = g12a_mpll3_init_regs, + .init_count = ARRAY_SIZE(g12a_mpll3_init_regs), }, .hw.init = &(struct clk_init_data){ .name = "mpll3_div", From patchwork Mon Mar 25 11:11:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 161087 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp3831470jan; Mon, 25 Mar 2019 04:12:23 -0700 (PDT) X-Google-Smtp-Source: APXvYqxeR6KxbTQlJjT0D2FAUrr3+gzFVzGT+cs7Ozf3y2OiAaxmG5mZS8T0AceHdz2NWD3pedZ0 X-Received: by 2002:a62:524e:: with SMTP id g75mr4211162pfb.106.1553512343658; Mon, 25 Mar 2019 04:12:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553512343; cv=none; d=google.com; s=arc-20160816; b=VRtKucJO+UQBd3229hTNCynUTm0BHTqKn/tregsakyNWZM31eoWkmz4vadtzMJeEmJ 9ZWJlA7co6FO3lSad6MlEzRddAo9lSSjZ5tzvDzyahKUyJYzwD91TAW/FjGm/LThlu+A slWXgekCV3Qww4i3G96Vguox8RtEu/dc/TQHaVqhbWU3lzt7KwE8qRGKjNGeJOEkMf0U 5dXouhoGZyNP85xwduiyd7pUv4SYpxgfuDY1FzygMNJ8wmE8PRe4dKfaLI2FDLAGXBS2 YjPEoCfmXAPOItvhrr22UXS93oAyBKYjfPo4Ykyyt2eykIP/GYJyrjr5jTEAP+/XpTry 9kWw== 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=fKq0Xmw2ntAqrTVNaEz/XqYkib9vFynLezQDvMrUHDU=; b=NvU2z6BcWfhb8WuYG1kf/g76DajOjl8FPr8J4lFYUDPhgUBLNQUeYF1iVL4XTbJ5e8 Uao/SfJA/x10v2WQoFINwJNja1Dj/eF+k2JcvakV41y060+0+r6neNc+uHQhnSofVohN v7MVhZ4LFqDUeJoPmTmagUoTF9GSFNOoeYyyxxcgYO452sNelcCMrNcNY6fUuL7FoF5Y VoOkta+2IuBl72JYJdCCDyIhUNbmEGzJ2us3OD6LEjsUKp0qBPikvIrx+QWm+gIpZjb/ cG9rU+UfHQNd+8SeaTGreQ+yFo1Wq5dSkxWqxWczv1tyjK9RGmmd0alrlnsk97xwaA+e pbWg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=HLJdfe4u; spf=temperror (google.com: error in processing during lookup of linux-kernel-owner@vger.kernel.org: DNS error) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org ([209.132.180.67]) by mx.google.com with ESMTP id c7si13734247plo.274.2019.03.25.04.12.23; Mon, 25 Mar 2019 04:12:23 -0700 (PDT) Received-SPF: temperror (google.com: error in processing during lookup of linux-kernel-owner@vger.kernel.org: DNS error) 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=HLJdfe4u; spf=temperror (google.com: error in processing during lookup of linux-kernel-owner@vger.kernel.org: DNS error) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730928AbfCYLMQ (ORCPT + 31 others); Mon, 25 Mar 2019 07:12:16 -0400 Received: from mail-wr1-f65.google.com ([209.85.221.65]:46188 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730906AbfCYLMO (ORCPT ); Mon, 25 Mar 2019 07:12:14 -0400 Received: by mail-wr1-f65.google.com with SMTP id o1so9573431wrs.13 for ; Mon, 25 Mar 2019 04:12:12 -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 :mime-version:content-transfer-encoding; bh=fKq0Xmw2ntAqrTVNaEz/XqYkib9vFynLezQDvMrUHDU=; b=HLJdfe4usokrPovRQReXb3u4/AX4uD/nG1dOjRXM6qMGCuiE5XhVyoMWmgp32yaGTl kEu0Zh5L1k0o/ERmTU8U4rscsJj0nWj/V8kyY7/Bt8NiBAJZwpypz4lHJDmu7veLelcC XFrn4pOXj2r+UCdQ63gUljC2h3SYDRx4RIzmUHYMAwr3oppJcj7pTt1Ikg+9OVQvPZ5j 12nBK8Y+Lk+jVhREudTFRTbR0LmKuV/FaWQ3jzZNNIOI9e1jYSt9Fp6qhik5niLFfWxP RI2/3IbJD+kOC/TGr6o3PqhrD8VcUs1GmsRyOeyJov2zDMq9j2mjxDABZe8u2bfXWS7z OpEA== 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=fKq0Xmw2ntAqrTVNaEz/XqYkib9vFynLezQDvMrUHDU=; b=B4MwKJnl1Er58ST9uYV97ZQrEhmjQEFpXmFXExB7U1mBwI3KrJAEtGTZr71WmSjhXr ssxE0X5v7xFnL3Gpp3XOPSlcdcxDVP7O1gOMJHTDPet5uusYEcXQvIZ1ldXhi4ITAbxO osVSI/SD8hoeIU1OOnNcWII34N2u0R4jQ+NtPRjQcJtKFVb+e6S2+2Gy3GuQ1nrsAEVC RaGbBeemiNfD93p5J8/OF1pvyu2FwEEYBnLyyfh8GlfnDhWCrAkBnqa2axsX10NP9iCX h/Nfr/05Jzobot6KuGOV00Xp+caDqWHUJUIRI0AOrt+2HJ0QnLApTEDKerCQrMGtxm9l ET7Q== X-Gm-Message-State: APjAAAX8GZ3dOY3kJTmdunhEr/lVWoznYDZ9yAGSK/DU77B5pyN38PdN Hsz213e0hfOrGLxLiNvM1Bp0twjQynE= X-Received: by 2002:adf:dcca:: with SMTP id x10mr15173526wrm.57.1553512332252; Mon, 25 Mar 2019 04:12:12 -0700 (PDT) Received: from boomer.local ([2a01:e34:eeb6:4690:106b:bae3:31ed:7561]) by smtp.googlemail.com with ESMTPSA id n188sm15134301wme.13.2019.03.25.04.12.10 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 25 Mar 2019 04:12:11 -0700 (PDT) From: Jerome Brunet To: Neil Armstrong Cc: Jerome Brunet , linux-amlogic@lists.infradead.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/4] clk: meson: eeclk: add init regs Date: Mon, 25 Mar 2019 12:11:59 +0100 Message-Id: <20190325111200.15940-4-jbrunet@baylibre.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190325111200.15940-1-jbrunet@baylibre.com> References: <20190325111200.15940-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 Like the PLL and MPLL, the controller may require some magic setting to be applied on startup. This is needed when the initial setting is not applied by the boot ROM. The controller need to do it when the setting applies to several clock, like all the MPLLs in the case of g12a. Signed-off-by: Jerome Brunet --- drivers/clk/meson/meson-eeclk.c | 3 +++ drivers/clk/meson/meson-eeclk.h | 2 ++ 2 files changed, 5 insertions(+) -- 2.20.1 diff --git a/drivers/clk/meson/meson-eeclk.c b/drivers/clk/meson/meson-eeclk.c index 37a34c9c3885..6ba2094be257 100644 --- a/drivers/clk/meson/meson-eeclk.c +++ b/drivers/clk/meson/meson-eeclk.c @@ -34,6 +34,9 @@ int meson_eeclkc_probe(struct platform_device *pdev) return PTR_ERR(map); } + if (data->init_count) + regmap_multi_reg_write(map, data->init_regs, data->init_count); + input = meson_clk_hw_register_input(dev, "xtal", IN_PREFIX "xtal", 0); if (IS_ERR(input)) { ret = PTR_ERR(input); diff --git a/drivers/clk/meson/meson-eeclk.h b/drivers/clk/meson/meson-eeclk.h index 1b809b1419fe..9ab5d6fa7ccb 100644 --- a/drivers/clk/meson/meson-eeclk.h +++ b/drivers/clk/meson/meson-eeclk.h @@ -17,6 +17,8 @@ struct platform_device; struct meson_eeclkc_data { struct clk_regmap *const *regmap_clks; unsigned int regmap_clk_num; + const struct reg_sequence *init_regs; + unsigned int init_count; struct clk_hw_onecell_data *hw_onecell_data; }; From patchwork Mon Mar 25 11:12:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 161086 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp3831373jan; Mon, 25 Mar 2019 04:12:19 -0700 (PDT) X-Google-Smtp-Source: APXvYqwdamwNkNW+gJrQS44sBVLSreTt6QPug1lroLauz/+3BZPq0ePPZVfE4wjP8TVQJWLsCvP0 X-Received: by 2002:aa7:8d17:: with SMTP id j23mr23219504pfe.62.1553512339706; Mon, 25 Mar 2019 04:12:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553512339; cv=none; d=google.com; s=arc-20160816; b=zd0AuK7ybeOEvX+9ZqsDgsk13ZQgiPmFwePvbgzSwmAe9ldUYRC6lNgGQ6YaNbGxmg Kmizd2KmtnX9ozldgL2n/OvXAV8OlS2jLpRLFawqpxnNxc5cBB1x2F3goWQyXY+tvZwH 9va3jsuIjMIJWVHA3mh2lsXD9pziEWJ7GGOTblobyk0CqKNjRmVAYtoARUIw2UFASHbk d3FpgWh8GXTfRwF1cfnMadmZgCV1oud+PVxvEqwyZ586j57Yw/UeRe7W6kAB011tbPIi f4/dLDEcfxXO3vTkDHj3hM2Tbugyh13qkxnP1WGhUgDhBXn9N0AI8edZIF4BCVvHN/2t nYww== 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=lAGWjMAs38DEOf/pdjEPeHnYiewe/7N+ZGB7ijz15Bo=; b=SOXv0pP5GGCLRM3hv+oSEIBfJwXTAG8e5SNzGB5ZqQNu7LMUvWw0yiCidtAv9YLLH6 jlqJK7FCvfu9pzyOe+SawuUBLRyJThViBqVKT/2Ln9yn+ewL7FxVE8uE0UOpTprUITSa OORgjFP5ch0ucVyrkl5eq7IzEXW4MPsyZJlqzGzQ6yLaQmiONh6OzXTsbeuzUCpR5XJi /Ixf2Qtglv8h5e6I7h4ElYi1rSN7qWTgpNaKcASwrMb7h6YGwesrqhZpXDz/y+OpEQQ+ uQCyKdD2gS0S5ZLvGMdjdTyYM7ztMRfdyYRsqzFtZBeHV3O3eEjq0vIRY72mmt3Ub+1s 7xxg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b="ql/x+8w0"; spf=temperror (google.com: error in processing during lookup of linux-kernel-owner@vger.kernel.org: DNS error) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org ([209.132.180.67]) by mx.google.com with ESMTP id g1si12996430pgq.227.2019.03.25.04.12.19; Mon, 25 Mar 2019 04:12:19 -0700 (PDT) Received-SPF: temperror (google.com: error in processing during lookup of linux-kernel-owner@vger.kernel.org: DNS error) 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="ql/x+8w0"; spf=temperror (google.com: error in processing during lookup of linux-kernel-owner@vger.kernel.org: DNS error) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730941AbfCYLMR (ORCPT + 31 others); Mon, 25 Mar 2019 07:12:17 -0400 Received: from mail-wr1-f68.google.com ([209.85.221.68]:38032 "EHLO mail-wr1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730859AbfCYLMP (ORCPT ); Mon, 25 Mar 2019 07:12:15 -0400 Received: by mail-wr1-f68.google.com with SMTP id k11so2209460wro.5 for ; Mon, 25 Mar 2019 04:12:14 -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 :mime-version:content-transfer-encoding; bh=lAGWjMAs38DEOf/pdjEPeHnYiewe/7N+ZGB7ijz15Bo=; b=ql/x+8w0gvnjiOmBFCOu+1IvlNLQrImu2eLZMJAVSkLr+jZwuMb9B181TuREU+XAE7 AxWFjEkwgWAtQz8ra2n8+XBQUjum6z8lqsIkhKPmHwi1T/6VtQWZs2Ou5gB/WiPlXqp7 WjqxS3r7Km2Rg0CeuCwrSSsRtMJt80f4kssIE4in9qlkvCWBH/FRXYlGIAorh1uOZbhD jvNLGG3NEJv+asBYQrBn5AAvwc1ohR449SBgeSO3FuNCmubw0+2ajLv45dF9/0NqaHAu 8orkzxE6+8FxHDbRqYLun476oiFoNcwtEJoP5VVRQ1duMwJSLqFiaRbNV6lka/ptUdjk WJdw== 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=lAGWjMAs38DEOf/pdjEPeHnYiewe/7N+ZGB7ijz15Bo=; b=Fk5n0AUAvKoWlb/HfPqrrE7Ku+Na+l+7KWHlpBbOyGbuMh9m4O7yn09D2mj6jE9Dav inQo5Ip/SgUmiLSdw/ZFveyoAr9cg59QojrRN9bv1UWQZuisQDisp/dk0H7amEFUCfim 3MOn7u0peVlfKJ/WQ9fQ+gFEXk8OfSnMy1IVPk/U3eD3rzFIR1Q6zf5G/fSlt5z2eZgj J91GVNtF5HOUKqo5Bq1u/hfe8AmFz+QXp41DHmsjbukE3fCqkCSCt11OSIKKbQ+Ij7Od HikGd6+5aUs3knPbIsdUyUEACEpZKlEh8TEa0aSbGUFnbP2ucJIRY8zPetxEH7JDHKul JE9Q== X-Gm-Message-State: APjAAAVL0GjIxqLejVqn0EF/yMfZyHXYWxD2bF2vJn9okceryTzVW1P3 U6AbTEhmgM5/iRssfGZisrJmNg== X-Received: by 2002:a5d:6682:: with SMTP id l2mr14687126wru.33.1553512333489; Mon, 25 Mar 2019 04:12:13 -0700 (PDT) Received: from boomer.local ([2a01:e34:eeb6:4690:106b:bae3:31ed:7561]) by smtp.googlemail.com with ESMTPSA id n188sm15134301wme.13.2019.03.25.04.12.12 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 25 Mar 2019 04:12:12 -0700 (PDT) From: Jerome Brunet To: Neil Armstrong Cc: Jerome Brunet , linux-amlogic@lists.infradead.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/4] clk: meson: g12a: add controller register init Date: Mon, 25 Mar 2019 12:12:00 +0100 Message-Id: <20190325111200.15940-5-jbrunet@baylibre.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190325111200.15940-1-jbrunet@baylibre.com> References: <20190325111200.15940-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 MPLL common register initial setting Signed-off-by: Jerome Brunet --- drivers/clk/meson/g12a.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) -- 2.20.1 diff --git a/drivers/clk/meson/g12a.c b/drivers/clk/meson/g12a.c index 6a01f8fd8114..493db74270ac 100644 --- a/drivers/clk/meson/g12a.c +++ b/drivers/clk/meson/g12a.c @@ -2361,10 +2361,16 @@ static struct clk_regmap *const g12a_clk_regmaps[] = { &g12a_mpll_50m, }; +static const struct reg_sequence g12a_init_regs[] = { + { .reg = HHI_MPLL_CNTL0, .def = 0x00000543 }, +}; + static const struct meson_eeclkc_data g12a_clkc_data = { .regmap_clks = g12a_clk_regmaps, .regmap_clk_num = ARRAY_SIZE(g12a_clk_regmaps), - .hw_onecell_data = &g12a_hw_onecell_data + .hw_onecell_data = &g12a_hw_onecell_data, + .init_regs = g12a_init_regs, + .init_count = ARRAY_SIZE(g12a_init_regs), }; static const struct of_device_id clkc_match_table[] = {