Currently driver provides geni_se_resources_off() function to turn
off SE resources like clocks, pinctrl. But we don't have function to
control clock separately, hence export function geni_se_clks_off()
to turn off clocks separately without disturbing GPIO.
The client drivers like i2c requires this function for use case where
i2c SE is shared between two subsystems.
Signed-off-by: Mukesh Kumar Savaliya <quic_msavaliy@xxxxxxxxxxx>
---
drivers/soc/qcom/qcom-geni-se.c | 4 +++-
include/linux/soc/qcom/geni-se.h | 3 +++
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/soc/qcom/qcom-geni-se.c b/drivers/soc/qcom/qcom-geni-se.c
index 2e8f24d5da80..20166c8fc919 100644
--- a/drivers/soc/qcom/qcom-geni-se.c
+++ b/drivers/soc/qcom/qcom-geni-se.c
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
+// Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
/* Disable MMIO tracing to prevent excessive logging of unwanted MMIO traces */
#define __DISABLE_TRACE_MMIO__
@@ -482,13 +483,14 @@ void geni_se_config_packing(struct geni_se *se, int bpw, int pack_words,
}
EXPORT_SYMBOL_GPL(geni_se_config_packing);
-static void geni_se_clks_off(struct geni_se *se)
+void geni_se_clks_off(struct geni_se *se)
{
struct geni_wrapper *wrapper = se->wrapper;
clk_disable_unprepare(se->clk);
clk_bulk_disable_unprepare(wrapper->num_clks, wrapper->clks);
}
+EXPORT_SYMBOL_GPL(geni_se_clks_off);