public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Boris Lysov <arz65xx@gmail.com>
To: Chen-Yu Tsai <wenst@chromium.org>
Cc: Stephen Boyd <sboyd@kernel.org>,
	Michael Turquette <mturquette@baylibre.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Chun-Jie Chen <chun-jie.chen@mediatek.com>,
	AngeloGioacchino Del Regno 
	<angelogioacchino.delregno@collabora.com>,
	Miles Chen <miles.chen@mediatek.com>,
	linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 00/31] clk: mediatek: Cleanups and Improvements - Part 1
Date: Tue, 8 Feb 2022 22:32:52 +0300	[thread overview]
Message-ID: <20220208223252.7f179c63@pc> (raw)
In-Reply-To: <20220208124034.414635-1-wenst@chromium.org>

Hi, I couldn't find a particular patch to reply to so I'm replying cover
letter to give some input on the PLL subsystem.

On Tue,  8 Feb 2022 20:40:03 +0800
Chen-Yu Tsai <wenst@chromium.org> wrote:
>  drivers/clk/mediatek/clk-pll.c                | 100 +++++-
>  drivers/clk/mediatek/clk-pll.h                |  57 ++++

In clk-pll.c there is an mtk_clk_register_pll function which at some point
executes this:

> init.ops = &mtk_pll_ops;

In my opinion there should be a possibility to define a custom mtk_pll_ops for a
given SoC instead of using a hardcoded one because not all Mediatek SoCs share
the same PLL startup/powerdown flow. For example, the existing mtk_pll_prepare
implementation won't work for the entire Mediatek Cortex-A9 SoC family (this
includes but not limited to mt6515, mt6517, mt6575, and mt6577). 

> static int mtk_pll_prepare(struct clk_hw *hw)
> {
> 	struct mtk_clk_pll *pll = to_mtk_clk_pll(hw);
> 	u32 r;
> 	u32 div_en_mask;
> 
> 	r = readl(pll->pwr_addr) | CON0_PWR_ON;
> 	writel(r, pll->pwr_addr);

This code sets a bit to 1 to start a PLL but the SoCs I mentioned above would
need to have that bit cleared (set to 0) [1] [2].

Another interesting thing in mtk_pll_prepare is
> 	udelay(20);
Is 20 ms a settle time for PLL? If yes then it would also be cool to specify an
arbitrary value easily as some PLLs have longer settle time [3] [4].

Worth noting the SoCs I mentioned aren't in mainline yet, and I think there are
more modern mainline-worthy Mediatek SoCs that might also need these changes in
the future.

Thanks.

[1] MT6577 HSPA Smartphone Application Processor Datasheet, pages 1212-1227
(*_CON0 registers).
[2] MT6515 GSM/EDGE Smartphone Application Processor Datasheet, pages
1202-1216 (*_CON0 registers).
[3] pages 1303-1306 of [1]
[4] MT6589 HSPA+ Smartphone Application Processor Datasheet, page 1344
(MDPLL1 & MDPLL2)

  parent reply	other threads:[~2022-02-08 19:33 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-08 12:40 [PATCH v3 00/31] clk: mediatek: Cleanups and Improvements - Part 1 Chen-Yu Tsai
2022-02-08 12:40 ` [PATCH v3 01/31] clk: mediatek: Use %pe to print errors Chen-Yu Tsai
2022-02-15  6:06   ` Chun-Jie Chen
2022-02-17 20:20   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 02/31] clk: mediatek: gate: Consolidate gate type clk related code Chen-Yu Tsai
2022-02-15  6:20   ` Chun-Jie Chen
2022-02-17 20:20   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 03/31] clk: mediatek: gate: Internalize clk implementation Chen-Yu Tsai
2022-02-15  6:22   ` Chun-Jie Chen
2022-02-17 20:20   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 04/31] clk: mediatek: gate: Implement unregister API Chen-Yu Tsai
2022-02-15  6:23   ` Chun-Jie Chen
2022-02-17 20:21   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 05/31] clk: mediatek: gate: Clean up included headers Chen-Yu Tsai
2022-02-15  6:24   ` Chun-Jie Chen
2022-02-17 20:21   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 06/31] clk: mediatek: cpumux: Implement unregister API Chen-Yu Tsai
2022-02-15  6:25   ` Chun-Jie Chen
2022-02-17 20:21   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 07/31] clk: mediatek: cpumux: Internalize struct mtk_clk_cpumux Chen-Yu Tsai
2022-02-15  6:25   ` Chun-Jie Chen
2022-02-17 20:21   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 08/31] clk: mediatek: cpumux: Clean up included headers Chen-Yu Tsai
2022-02-15  6:26   ` Chun-Jie Chen
2022-02-17 20:21   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 09/31] clk: mediatek: mux: Implement unregister API Chen-Yu Tsai
2022-02-15  6:30   ` Chun-Jie Chen
2022-02-17 20:24   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 10/31] clk: mediatek: mux: Internalize struct mtk_clk_mux Chen-Yu Tsai
2022-02-15  6:30   ` Chun-Jie Chen
2022-02-17 20:24   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 11/31] clk: mediatek: mux: Clean up included headers Chen-Yu Tsai
2022-02-15  6:31   ` Chun-Jie Chen
2022-02-17 20:25   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 12/31] clk: mediatek: pll: Split definitions into separate header file Chen-Yu Tsai
2022-02-15  6:32   ` Chun-Jie Chen
2022-02-17 20:25   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 13/31] clk: mediatek: pll: Implement unregister API Chen-Yu Tsai
2022-02-15  6:33   ` Chun-Jie Chen
2022-02-17 20:25   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 14/31] clk: mediatek: pll: Clean up included headers Chen-Yu Tsai
2022-02-15  6:34   ` Chun-Jie Chen
2022-02-17 20:25   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 15/31] clk: mediatek: Implement mtk_clk_unregister_fixed_clks() API Chen-Yu Tsai
2022-02-15  6:35   ` Chun-Jie Chen
2022-02-17 20:25   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 16/31] clk: mediatek: Implement mtk_clk_unregister_factors() API Chen-Yu Tsai
2022-02-15  6:36   ` Chun-Jie Chen
2022-02-17 20:26   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 17/31] clk: mediatek: Implement mtk_clk_unregister_divider_clks() API Chen-Yu Tsai
2022-02-15  6:36   ` Chun-Jie Chen
2022-02-17 20:26   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 18/31] clk: mediatek: Implement mtk_clk_unregister_composites() API Chen-Yu Tsai
2022-02-15  6:37   ` Chun-Jie Chen
2022-02-17 20:26   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 19/31] clk: mediatek: Add mtk_clk_simple_remove() Chen-Yu Tsai
2022-02-15  6:37   ` Chun-Jie Chen
2022-02-17 20:26   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 20/31] clk: mediatek: mtk: Clean up included headers Chen-Yu Tsai
2022-02-15  6:57   ` Chun-Jie Chen
2022-02-17 20:26   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 21/31] clk: mediatek: cpumux: Implement error handling in register API Chen-Yu Tsai
2022-02-15  7:00   ` Chun-Jie Chen
2022-02-17 20:27   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 22/31] clk: mediatek: gate: " Chen-Yu Tsai
2022-02-15  7:01   ` Chun-Jie Chen
2022-02-17 20:27   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 23/31] clk: mediatek: mux: Reverse check for existing clk to reduce nesting level Chen-Yu Tsai
2022-02-15  7:04   ` Chun-Jie Chen
2022-02-17 20:27   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 24/31] clk: mediatek: mux: Implement error handling in register API Chen-Yu Tsai
2022-02-15  7:05   ` Chun-Jie Chen
2022-02-17 20:27   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 25/31] clk: mediatek: pll: " Chen-Yu Tsai
2022-02-15  7:05   ` Chun-Jie Chen
2022-02-17 20:28   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 26/31] clk: mediatek: mtk: Implement error handling in register APIs Chen-Yu Tsai
2022-02-15  7:10   ` Chun-Jie Chen
2022-02-17 20:28   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 27/31] clk: mediatek: Unregister clks in mtk_clk_simple_probe() error path Chen-Yu Tsai
2022-02-15  7:11   ` Chun-Jie Chen
2022-02-17 20:29   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 28/31] clk: mediatek: mt8195: Hook up mtk_clk_simple_remove() Chen-Yu Tsai
2022-02-08 13:23   ` AngeloGioacchino Del Regno
2022-02-15  7:12   ` Chun-Jie Chen
2022-02-17 20:29   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 29/31] clk: mediatek: mt8195: Implement error handling in probe functions Chen-Yu Tsai
2022-02-08 13:23   ` AngeloGioacchino Del Regno
2022-02-17 20:29   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 30/31] clk: mediatek: mt8195: Implement remove functions Chen-Yu Tsai
2022-02-08 13:23   ` AngeloGioacchino Del Regno
2022-02-17 20:29   ` Stephen Boyd
2022-02-08 12:40 ` [PATCH v3 31/31] clk: mediatek: Warn if clk IDs are duplicated Chen-Yu Tsai
2022-02-17 20:29   ` Stephen Boyd
2022-02-08 19:32 ` Boris Lysov [this message]
2022-02-09  3:13   ` [PATCH v3 00/31] clk: mediatek: Cleanups and Improvements - Part 1 Chen-Yu Tsai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220208223252.7f179c63@pc \
    --to=arz65xx@gmail.com \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=chun-jie.chen@mediatek.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=matthias.bgg@gmail.com \
    --cc=miles.chen@mediatek.com \
    --cc=mturquette@baylibre.com \
    --cc=sboyd@kernel.org \
    --cc=wenst@chromium.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox