clk: meson: add vclk driver
authorNeil Armstrong <neil.armstrong@linaro.org>
Wed, 3 Apr 2024 07:46:33 +0000 (09:46 +0200)
committerJerome Brunet <jbrunet@baylibre.com>
Wed, 10 Apr 2024 07:46:21 +0000 (09:46 +0200)
commitbb5aa08572b5313157c093a09d53ebf2efda3dc1
tree16066ebadb1c4e1ef1506d9b82e720813ca4d878
parent16182ac30a68204aeb9fb373f5cb53f995251e85
clk: meson: add vclk driver

The VCLK and VCLK_DIV clocks have supplementary bits.

The VCLK gate has a "SOFT RESET" bit to toggle after the whole
VCLK sub-tree rate has been set, this is implemented in
the gate enable callback.

The VCLK_DIV clocks as enable and reset bits used to disable
and reset the divider, associated with CLK_SET_RATE_GATE it ensures
the rate is set while the divider is disabled and in reset mode.

The VCLK_DIV enable bit isn't implemented as a gate since it's part
of the divider logic and vendor does this exact sequence to ensure
the divider is correctly set.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20240403-amlogic-v6-4-upstream-dsi-ccf-vim3-v12-2-99ecdfdc87fc@linaro.org
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
drivers/clk/meson/Kconfig
drivers/clk/meson/Makefile
drivers/clk/meson/vclk.c [new file with mode: 0644]
drivers/clk/meson/vclk.h [new file with mode: 0644]