[PATCH v4 8/9] clk: divider, gate: create regmap-backed copies of gate and divider clocks

Gabriel FERNANDEZ gabriel.fernandez at foss.st.com
Tue Sep 2 07:05:21 PDT 2025


On 9/1/25 13:04, Conor Dooley wrote:
> From: Conor Dooley <conor.dooley at microchip.com>
>
> Implement regmap-backed copies of gate and divider clocks by replacing
> the iomem pointer to the clock registers with a regmap and offset
> within.
>
> Signed-off-by: Conor Dooley <conor.dooley at microchip.com>
> ---
> v4:
> - increase map_offset to a u32
> - use a single Kconfig option for both divider and gate regmap
>    implementations
> ---
>   drivers/clk/Kconfig              |   4 +
>   drivers/clk/Makefile             |   2 +
>   drivers/clk/clk-divider-regmap.c | 271 +++++++++++++++++++++++++++++++
>   drivers/clk/clk-gate-regmap.c    | 254 +++++++++++++++++++++++++++++
>   include/linux/clk-provider.h     | 119 ++++++++++++++
>   5 files changed, 650 insertions(+)
>   create mode 100644 drivers/clk/clk-divider-regmap.c
>   create mode 100644 drivers/clk/clk-gate-regmap.c
>
Hi Conor,

i tested the clk_gate_remap part with my code, it works fine.

Just a  minor remark concerning .round_rate, you can add my

Reviewed-by: Gabriel Fernandez <gabriel.fernandez at foss.st.com>

> +const struct clk_ops clk_divider_regmap_ops = {
> +	.recalc_rate = clk_divider_regmap_recalc_rate,
> +	.round_rate = clk_divider_regmap_round_rate,

.round_rate could be removed ?


> +	.determine_rate = clk_divider_regmap_determine_rate,
> +	.set_rate = clk_divider_regmap_set_rate,
> +};
> +EXPORT_SYMBOL_GPL(clk_divider_regmap_ops);
> +
> +const struct clk_ops clk_divider_regmap_ro_ops = {
> +	.recalc_rate = clk_divider_regmap_recalc_rate,
> +	.round_rate = clk_divider_regmap_round_rate,

dito


> +	.determine_rate = clk_divider_regmap_determine_rate,
> +};
> +EXPORT_SYMBOL_GPL(clk_divider_regmap_ro_ops);
> +




More information about the linux-riscv mailing list