[PATCH v2 7/9] i2c: qcom-geni: Vote for SE clock rate using OPP
Mukesh Savaliya
mukesh.savaliya at oss.qualcomm.com
Fri Oct 9 00:18:06 PDT 2026
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)[...]
More information about the linux-arm-kernel
mailing list