]> git.baikalelectronics.ru Git - kernel.git/commit
clk: mediatek: mux: add clk notifier functions
authorChen-Yu Tsai <wenst@chromium.org>
Tue, 27 Sep 2022 10:11:21 +0000 (12:11 +0200)
committerChen-Yu Tsai <wenst@chromium.org>
Thu, 29 Sep 2022 04:05:13 +0000 (12:05 +0800)
commit1feefd410244f0d7a9ccccdb04b25e528ad52849
treed8c712464bb45fc9dbfb14fddb80072f7f0c8749
parent21bd7a44f157ceb6145a1573a4009e810d603315
clk: mediatek: mux: add clk notifier functions

With device frequency scaling, the mux clock that (indirectly) feeds the
device selects between a dedicated PLL, and some other stable clocks.

When a clk rate change is requested, the (normally) upstream PLL is
reconfigured. It's possible for the clock output of the PLL to become
unstable during this process.

To avoid causing the device to glitch, the mux should temporarily be
switched over to another "stable" clock during the PLL rate change.
This is done with clk notifiers.

This patch adds common functions for notifiers to temporarily and
transparently reparent mux clocks.

This was loosely based on commit 65a6603c9f6d ("clk: sunxi-ng: mux: Add
clk notifier functions").

Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
[Angelo: Changed mtk_mux_nb to hold a pointer to clk_ops instead of mtk_mux]
Co-developed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Miles Chen <miles.chen@mediatek.com>
Link: https://lore.kernel.org/r/20220927101128.44758-4-angelogioacchino.delregno@collabora.com
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
drivers/clk/mediatek/clk-mux.c
drivers/clk/mediatek/clk-mux.h