Skip to content

Commit e2576c8

Browse files
chewittbebarino
authored andcommitted
clk: meson-gxbb: set fclk_div3 as CLK_IS_CRITICAL
On the Khadas VIM2 (GXM) and LePotato (GXL) board there are problems with reboot; e.g. a ~60 second delay between issuing reboot and the board power cycling (and in some OS configurations reboot will fail and require manual power cycling). Similar to 'commit c987ac6 ("clk: meson-gxbb: set fclk_div2 as CLK_IS_CRITICAL")' the SCPI Cortex-M4 Co-Processor seems to depend on FCLK_DIV3 being operational. Until commit 05f8144 ("clk: meson: add fdiv clock gates"), this clock was modeled and left on by the bootloader. We don't have precise documentation about the SCPI Co-Processor and its clock requirement so we are learning things the hard way. Marking this clock as critical solves the problem but it should not be viewed as final solution. Ideally, the SCPI driver should claim these clocks. We also depends on some clock hand-off mechanism making its way to CCF, to make sure the clock stays on between its registration and the SCPI driver probe. Fixes: 05f8144 ("clk: meson: add fdiv clock gates") Signed-off-by: Christian Hewitt <christianshewitt@gmail.com> Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Signed-off-by: Stephen Boyd <sboyd@kernel.org>
1 parent f98e8a5 commit e2576c8

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

drivers/clk/meson/gxbb.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -506,6 +506,18 @@ static struct clk_regmap gxbb_fclk_div3 = {
506506
.ops = &clk_regmap_gate_ops,
507507
.parent_names = (const char *[]){ "fclk_div3_div" },
508508
.num_parents = 1,
509+
/*
510+
* FIXME:
511+
* This clock, as fdiv2, is used by the SCPI FW and is required
512+
* by the platform to operate correctly.
513+
* Until the following condition are met, we need this clock to
514+
* be marked as critical:
515+
* a) The SCPI generic driver claims and enable all the clocks
516+
* it needs
517+
* b) CCF has a clock hand-off mechanism to make the sure the
518+
* clock stays on until the proper driver comes along
519+
*/
520+
.flags = CLK_IS_CRITICAL,
509521
},
510522
};
511523

0 commit comments

Comments
 (0)