Re: [PATCH v6 1/2] pinctrl: qcom: lpass-lpi: Enable runtime PM hooks on LPASS LPI SoCs
From: Dmitry Baryshkov
Date: Mon Jun 15 2026 - 19:51:30 EST
On Sat, May 23, 2026 at 02:16:43AM +0530, Ajay Kumar Nandam wrote:
> The LPASS LPI core conversion to PM clock framework relies on variant
> drivers wiring runtime PM callbacks.
>
> Hook up runtime PM callbacks for the LPASS LPI variant drivers touched
> in this patch so they are prepared for the shared core conversion.
>
> This commit is a preparatory NOP on its own, as runtime PM is still
> disabled on these devices until the following core conversion patch.
>
> This is a mechanical per-variant driver update that relies on the
> same generic PM clock flow (of_pm_clk_add_clks() + pm_clk_suspend/
> pm_clk_resume()) and DT-provided clocks.
>
> Runtime behavior was validated on Kodiak (sc7280).
>
> Suggested-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
> Signed-off-by: Ajay Kumar Nandam <ajay.nandam@xxxxxxxxxxxxxxxx>
> ---
> .../pinctrl/qcom/pinctrl-milos-lpass-lpi.c | 7 +++++++
> .../pinctrl/qcom/pinctrl-sc7280-lpass-lpi.c | 19 +++++++++++++------
> .../pinctrl/qcom/pinctrl-sc8280xp-lpass-lpi.c | 15 +++++++++++----
> .../pinctrl/qcom/pinctrl-sdm660-lpass-lpi.c | 7 +++++++
> .../pinctrl/qcom/pinctrl-sdm670-lpass-lpi.c | 7 +++++++
> .../pinctrl/qcom/pinctrl-sm4250-lpass-lpi.c | 7 +++++++
> .../pinctrl/qcom/pinctrl-sm6115-lpass-lpi.c | 7 +++++++
> .../pinctrl/qcom/pinctrl-sm6350-lpass-lpi.c | 7 +++++++
> .../pinctrl/qcom/pinctrl-sm8250-lpass-lpi.c | 15 +++++++++++----
> .../pinctrl/qcom/pinctrl-sm8450-lpass-lpi.c | 15 +++++++++++----
> .../pinctrl/qcom/pinctrl-sm8550-lpass-lpi.c | 15 +++++++++++----
> .../pinctrl/qcom/pinctrl-sm8650-lpass-lpi.c | 15 +++++++++++----
> 12 files changed, 110 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/pinctrl/qcom/pinctrl-milos-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-milos-lpass-lpi.c
> index 3bf6fe0cf1bb..72b8ffd97860 100644
> --- a/drivers/pinctrl/qcom/pinctrl-milos-lpass-lpi.c
> +++ b/drivers/pinctrl/qcom/pinctrl-milos-lpass-lpi.c
> @@ -7,6 +7,8 @@
> #include <linux/gpio/driver.h>
> #include <linux/module.h>
> #include <linux/platform_device.h>
> +#include <linux/pm_clock.h>
> +#include <linux/pm_runtime.h>
>
> #include "pinctrl-lpass-lpi.h"
>
> @@ -203,10 +205,15 @@ static const struct of_device_id lpi_pinctrl_of_match[] = {
> };
> MODULE_DEVICE_TABLE(of, lpi_pinctrl_of_match);
>
> +static const struct dev_pm_ops lpi_pinctrl_pm_ops = {
> + RUNTIME_PM_OPS(pm_clk_suspend, pm_clk_resume, NULL)
> +};
> +
> static struct platform_driver lpi_pinctrl_driver = {
> .driver = {
> .name = "qcom-milos-lpass-lpi-pinctrl",
> .of_match_table = lpi_pinctrl_of_match,
> + .pm = pm_ptr(&lpi_pinctrl_pm_ops),
> },
> .probe = lpi_pinctrl_probe,
> .remove = lpi_pinctrl_remove,
> diff --git a/drivers/pinctrl/qcom/pinctrl-sc7280-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-sc7280-lpass-lpi.c
> index 750f410311a8..a61df10d46cb 100644
> --- a/drivers/pinctrl/qcom/pinctrl-sc7280-lpass-lpi.c
> +++ b/drivers/pinctrl/qcom/pinctrl-sc7280-lpass-lpi.c
> @@ -7,6 +7,8 @@
> #include <linux/gpio/driver.h>
> #include <linux/module.h>
> #include <linux/platform_device.h>
> +#include <linux/pm_clock.h>
> +#include <linux/pm_runtime.h>
>
> #include "pinctrl-lpass-lpi.h"
>
> @@ -129,20 +131,25 @@ static const struct lpi_pinctrl_variant_data sc7280_lpi_data = {
>
> static const struct of_device_id lpi_pinctrl_of_match[] = {
> {
> - .compatible = "qcom,sc7280-lpass-lpi-pinctrl",
> - .data = &sc7280_lpi_data,
> + .compatible = "qcom,sc7280-lpass-lpi-pinctrl",
> + .data = &sc7280_lpi_data,
Split whitespace changes to a separate patch. Never mix cleanups (like
the whitespace or formatting) and the sensible changes in a single
patch.
> }, {
> - .compatible = "qcom,sm8350-lpass-lpi-pinctrl",
> - .data = &sc7280_lpi_data,
> + .compatible = "qcom,sm8350-lpass-lpi-pinctrl",
> + .data = &sc7280_lpi_data,
> },
> { }
> };
> MODULE_DEVICE_TABLE(of, lpi_pinctrl_of_match);
>
--
With best wishes
Dmitry