[PATCH v2 7/9] i2c: qcom-geni: Vote for SE clock rate using OPP
Konrad Dybcio
konrad.dybcio at oss.qualcomm.com
Fri Sep 4 01:52:23 PDT 2026
On 8/27/26 7:59 PM, Praveen Talari wrote:
> The I2C driver currently assumes a fixed source clock selection and always
> programs SE_GENI_CLK_SEL to 0, which is not sufficient when the controller
> needs to switch between different source clocks.
>
> Add the source clock index and frequency to the I2C clock map entries and
> use them while configuring the controller. Request the required
> source clock rate through dev_pm_opp_set_rate() and program SE_GENI_CLK_SEL
> with the matching source index.
>
> Signed-off-by: Praveen Talari <praveen.talari at oss.qualcomm.com>
> ---
[...]
> + dev_pm_opp_set_rate(dev, 0);
This and the below call are unnecessary, rate and enablement/disablement
of a clock are orthogonal operations
Konrad
> +
> return 0;
> }
>
> @@ -1236,6 +1249,12 @@ static int __maybe_unused geni_i2c_runtime_resume(struct device *dev)
> int ret = 0;
> struct geni_i2c_dev *gi2c = dev_get_drvdata(dev);
>
> + if (gi2c->clk_fld && gi2c->clk_fld->src_clk_freq) {
> + ret = dev_pm_opp_set_rate(dev, gi2c->clk_fld->src_clk_freq);
> + if (ret)
> + return ret;
> + }
> +
> if (gi2c->dev_data->power_on) {
> ret = gi2c->dev_data->power_on(&gi2c->se);
> if (ret)
>
More information about the linux-arm-kernel
mailing list