Re: [PATCH v2 7/9] i2c: qcom-geni: Vote for SE clock rate using OPP
From: Mukesh Savaliya
Date: Fri Oct 09 2026 - 03:18:25 EST
On 8/27/2026 11:29 PM, Praveen Talari wrote:
[...]
@@ -218,8 +224,13 @@ static int qcom_geni_i2c_conf(struct geni_se *se, unsigned long freq)
struct geni_i2c_dev *gi2c = dev_get_drvdata(se->dev);
const struct geni_i2c_clk_fld *itr = gi2c->clk_fld;
u32 val;
+ int ret;
+
+ ret = dev_pm_opp_set_rate(se->dev, itr->src_clk_freq);
+ if (ret)
+ return ret;
- writel_relaxed(0, gi2c->se.base + SE_GENI_CLK_SEL);
+ writel_relaxed(itr->src_indx, gi2c->se.base + SE_GENI_CLK_SEL);
val = (itr->clk_div << CLK_DIV_SHFT) | SER_CLK_EN;
writel_relaxed(val, gi2c->se.base + GENI_SER_M_CLK_CFG);
@@ -1228,6 +1239,8 @@ static int __maybe_unused geni_i2c_runtime_suspend(struct device *dev)
}
}
+ dev_pm_opp_set_rate(dev, 0);
+
return capture and return it else it's always success here.
return 0;
}
@@ -1236,6 +1249,12 @@ static int __maybe_unused geni_i2c_runtime_resume(struct device *dev)[...]