I'm posting this as RFC to see if there's any interest. I noticed that some drivers do: clk_get() -> clk_set_rate() -> clk_prepare_enable(). I was wondering if it's worth factoring this out into dedicated helpers. This series adds a new such helper for the "optional-enabled" use-case and the first user. Let me know if this makes sense. Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> --- Changes in v2: - s/EXPORT_SYMBOL/EXPORT_SYMBOL_GPL/ - add a stub for !COMMON_CLK - Link to v1: https://lore.kernel.org/r/20240801-clk-new-helper-v1-0-81e9338b7b17@xxxxxxxxxx --- Bartosz Golaszewski (2): clk: provide devm_clk_get_optional_enabled_with_rate() Bluetooth: hci_qca: use devm_clk_get_optional_enabled_with_rate() drivers/bluetooth/hci_qca.c | 24 ++---------------------- drivers/clk/clk-devres.c | 28 ++++++++++++++++++++++++++++ include/linux/clk.h | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+), 22 deletions(-) --- base-commit: d6dbc9f56c3a70e915625b6f1887882c23dc5c91 change-id: 20240801-clk-new-helper-7853f662cda1 Best regards, -- Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>