{"id":2234969,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2234969/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-gpio/patch/20260508113636.3561383-2-ajay.nandam@oss.qualcomm.com/","project":{"id":42,"url":"http://patchwork.ozlabs.org/api/1.2/projects/42/?format=json","name":"Linux GPIO development","link_name":"linux-gpio","list_id":"linux-gpio.vger.kernel.org","list_email":"linux-gpio@vger.kernel.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260508113636.3561383-2-ajay.nandam@oss.qualcomm.com>","list_archive_url":null,"date":"2026-05-08T11:36:35","name":"[v3,1/2] pinctrl: qcom: lpass-lpi: Enable runtime PM hooks on remaining SoCs","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"ffaae3171ff76bef0c36196b10211632e485f13e","submitter":{"id":93131,"url":"http://patchwork.ozlabs.org/api/1.2/people/93131/?format=json","name":"Ajay Kumar Nandam","email":"ajay.nandam@oss.qualcomm.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-gpio/patch/20260508113636.3561383-2-ajay.nandam@oss.qualcomm.com/mbox/","series":[{"id":503374,"url":"http://patchwork.ozlabs.org/api/1.2/series/503374/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-gpio/list/?series=503374","date":"2026-05-08T11:36:36","name":"pinctrl: qcom: lpass-lpi: Switch to PM clock framework","version":3,"mbox":"http://patchwork.ozlabs.org/series/503374/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2234969/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2234969/checks/","tags":{},"related":[],"headers":{"Return-Path":"\n <linux-gpio+bounces-36458-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-gpio@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=hq0lZY2k;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=IfjRYeXS;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-gpio+bounces-36458-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=\"hq0lZY2k\";\n\tdkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=\"IfjRYeXS\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=205.220.168.131","smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=oss.qualcomm.com"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4gBnFz5GD4z1yKd\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 08 May 2026 21:39:19 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 80907302D082\n\tfor <incoming@patchwork.ozlabs.org>; Fri,  8 May 2026 11:36:58 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 96F6B3D6692;\n\tFri,  8 May 2026 11:36:56 +0000 (UTC)","from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com\n [205.220.168.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id D4FF737757F\n\tfor <linux-gpio@vger.kernel.org>; Fri,  8 May 2026 11:36:51 +0000 (UTC)","from pps.filterd (m0279863.ppops.net [127.0.0.1])\n\tby mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 648AKF1t2532163\n\tfor <linux-gpio@vger.kernel.org>; Fri, 8 May 2026 11:36:50 GMT","from mail-pj1-f72.google.com (mail-pj1-f72.google.com\n [209.85.216.72])\n\tby mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e10m9u6eg-1\n\t(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n\tfor <linux-gpio@vger.kernel.org>; Fri, 08 May 2026 11:36:50 +0000 (GMT)","by mail-pj1-f72.google.com with SMTP id\n 98e67ed59e1d1-365c5ca76fdso1576798a91.2\n        for <linux-gpio@vger.kernel.org>;\n Fri, 08 May 2026 04:36:50 -0700 (PDT)","from hu-nandam-hyd.qualcomm.com ([202.46.22.19])\n        by smtp.gmail.com with ESMTPSA id\n 98e67ed59e1d1-36645bdac03sm1256373a91.2.2026.05.08.04.36.46\n        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n        Fri, 08 May 2026 04:36:48 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1778240215; cv=none;\n b=t49ZNOkmmunxykwfUqatbzTgSdEL1e/rDU1maWXZz/RQS0XGweLzfT4w+P9GM2n7kEHLybvoNfAW9IbowxC7aqNJOA9aVEdZBEMH5IElkTmU7eECQOmyduJi89LCbUkYosNzgjyxK9lnI+wHOq0z6D11yFFG6xl4Sc4NLuTgp9M=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1778240215; c=relaxed/simple;\n\tbh=Zu/RY3LBBjQ4dbJR06TZC4oVdo2PezBjsnbEbC6VTYM=;\n\th=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:\n\t MIME-Version;\n b=QCj7GuSyPoEpHjkZDUzBPLTus3W3VvTdK5Zz995rJx8btdtpvScNyJVFki5CNjmb9fJZ30e7j+oaxqznw85MEGb0ATSuVFwPNy+urty4y9i1M9DKjfqcp7iq6/hZibuyNAu4sHxya9qk9ylAHiht2UHXCtdHdaJumEA+n2RNqQg=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com;\n spf=pass smtp.mailfrom=oss.qualcomm.com;\n dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=hq0lZY2k;\n dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=IfjRYeXS; arc=none smtp.client-ip=205.220.168.131","DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n\tcc:content-transfer-encoding:date:from:in-reply-to:message-id\n\t:mime-version:references:subject:to; s=qcppdkim1; bh=9u8mi5Kc0c1\n\tAQavAhBg1YKOOag4KvYd2fKsDDwyEpsI=; b=hq0lZY2kn2BKnLR6VGUJngcdw3h\n\tFUEFhYSNAwZM9/DDNNOHA3NW2lrlZ/wXoFQpzbEX6U7fMP8N0Gxo4XlvUUHp7r51\n\ts5DZQGW6mELzdEwxeyEzq3wuQfz+5qIPdnsgqZ+cc7MxXYm0bu9a7/wzpLhdwPo2\n\tRLnSIq5oC9EaAJeM9cfw/bZ3fxYra6sROB0XYCkjOJo94fTnHgyxN6fJuECgxth+\n\ttTYr42KGGCarnp3zwZj3/kb/qY0vs5XX5F/A/3AuTtZYz4QsblnfRnXz1Ua65XGe\n\tT1GIllTsBhSr0xy1OewTxsU2H1Nv+xchixM+iIux2QTWho2UKrXH1rKi7xA==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=oss.qualcomm.com; s=google; t=1778240210; x=1778845010;\n darn=vger.kernel.org;\n        h=content-transfer-encoding:mime-version:references:in-reply-to\n         :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n         :message-id:reply-to;\n        bh=9u8mi5Kc0c1AQavAhBg1YKOOag4KvYd2fKsDDwyEpsI=;\n        b=IfjRYeXSzlMBFQfSbtCURwQWEnYNQGAAMS17LM1oVDRtRNHebNDMyo1q5COUuaLYeQ\n         a+BK423noo9BU/rscN/Dx2240HGXuBONmf4hp0SBjO+mLr5z6HHWYGE0PARb26jPeaOv\n         ESmGIN0VcReHLoXPyRRaUNtmEktwAFUMLNy9yXq7keJhKqrHS2icCgGoRP7t2gmW7yDN\n         610A2xxGaa/b6Lh/Fpj+ZpCJJvZVM0Ite30N7MiSP+FfR3J50RIrCxdag2X+3OXNE3JH\n         SAIEjnmEWd8M8+QwahMSX6mqqpLkrE3/kZ1o+UrhkvCQFjRPxTGZdQj4yOluEnoVboJH\n         IjDQ=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1778240210; x=1778845010;\n        h=content-transfer-encoding:mime-version:references:in-reply-to\n         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n         :to:cc:subject:date:message-id:reply-to;\n        bh=9u8mi5Kc0c1AQavAhBg1YKOOag4KvYd2fKsDDwyEpsI=;\n        b=aLO/H6VMIhi0Emn5Zt9MtxLdc7xnshbM6oIJsYTImoePONv1W0R0a63RSW+DOOeber\n         V85mMPvx+1P/sIYMG4U8W0um3PI+7kI5MH4c2j2GOVbR8/10nIT5XR7+jWjLNY4vJ530\n         OYgysPgzi867Um8nIw2ISIquK8WzQfgH4X39Oet9inZpoPkvO7TEEa/Q3ZR1rmK4DNjR\n         VCnfG/SZVDL2htCql6/1ZyqfyKpdSNDLESxwS0iV9CQWRlj2y2gViaUCfvhdbX4eWokc\n         C3xc6GI+ZXXuy+siVJXoq8cT6qm1zpATQxVxNpLTFS3/BrlmhSFrzqXiORJW9OT/MA37\n         IX6Q==","X-Forwarded-Encrypted":"i=1;\n AFNElJ+WZST/F/GYl7S6ej+TZ7rjgeVxgNzq6a9gK+zPRGoTvKE12VHTfs8d/IXlnB0wGeTwB8hv0RPRAg57@vger.kernel.org","X-Gm-Message-State":"AOJu0YxkgjaNfZYZRsJKPNobpf/SJ95H7wexWBKf79GHmDZRia67zT/s\n\t9txoH5AwO6J/bTk/WBRwTzOG781xosQIWbtqLbe/kj9fkibWUC4wDUVhNEhuCAoFS4oa3/UvXUE\n\t13F/V5hwblD6Vnyc1gJvrOSpGON4qmDJYWelEZPoKvTvQ5/xHWHx5SbgZP0zNeeL1","X-Gm-Gg":"Acq92OFDJNbD739YoJSrOI7PjXCNDRkl0WEwykOqm/wDQpGph3IrfWUXLiWP6VakZLd\n\tle6Pp8xerLdUgRzZYcRXEucJFYUGz6dFA0jHnJrc84668gfXGdu/szPx+fStX2Exz4vl/oPLj1B\n\tzUCPapTC3TKhetDVJ9OxKG46ehjHPPfql8gCDefKZlte532Bof8kpAfqUaFyfqH+GuncBHKwg3n\n\t3AlBPShbI9FACANrUNLm5X6iopeJRj65TzpURbCrnGtg5GVU84kIatVhCEApADLNUGlaTgOU5DE\n\tfSCAdyvdTU4Mgp1TiqmauW9hNEwU3vaCPDHJOYiKGvQIHqt4cMjKFPYW1jC2VS8sADmoCH3Ayhw\n\trS0I3V92KnIlUjOzUT5LVev4mCWCi4a5NjN0o9AH0xcA4jPp66g==","X-Received":["by 2002:a17:90a:16cf:b0:365:fd4b:24f5 with SMTP id\n 98e67ed59e1d1-365fd5a6b04mr4739546a91.8.1778240209438;\n        Fri, 08 May 2026 04:36:49 -0700 (PDT)","by 2002:a17:90a:16cf:b0:365:fd4b:24f5 with SMTP id\n 98e67ed59e1d1-365fd5a6b04mr4739529a91.8.1778240208868;\n        Fri, 08 May 2026 04:36:48 -0700 (PDT)"],"From":"Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>","To":"Bjorn Andersson <andersson@kernel.org>, Linus Walleij <linusw@kernel.org>","Cc":"linux-arm-msm@vger.kernel.org, linux-gpio@vger.kernel.org,\n        linux-kernel@vger.kernel.org","Subject":"[PATCH v3 1/2] pinctrl: qcom: lpass-lpi: Enable runtime PM hooks on\n remaining SoCs","Date":"Fri,  8 May 2026 17:06:35 +0530","Message-Id":"<20260508113636.3561383-2-ajay.nandam@oss.qualcomm.com>","X-Mailer":"git-send-email 2.34.1","In-Reply-To":"<20260508113636.3561383-1-ajay.nandam@oss.qualcomm.com>","References":"<20260508113636.3561383-1-ajay.nandam@oss.qualcomm.com>","Precedence":"bulk","X-Mailing-List":"linux-gpio@vger.kernel.org","List-Id":"<linux-gpio.vger.kernel.org>","List-Subscribe":"<mailto:linux-gpio+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-gpio+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-Proofpoint-GUID":"0qDExcvTd30b7IVXPJoIDVGNcyIBN-O2","X-Authority-Analysis":"v=2.4 cv=VP3tWdPX c=1 sm=1 tr=0 ts=69fdcad2 cx=c_pps\n a=RP+M6JBNLl+fLTcSJhASfg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17\n a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22\n a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8\n a=PNqn8kwc-IHmyLqyaEgA:9 a=iS9zxrgQBfv6-_F4QbHw:22","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNTA4MDEyMCBTYWx0ZWRfX+p6DAwYpB5Dk\n 7qGZFAaVa4Dz/Xj6KT7WnRZDNfxMIsl2QjGIGwQTheirCcAoZ8OfcsEk7NC7XHv8sY4qhNHZx7I\n GPaYSrjbfEa/ggdPRUKhlV92WEEjFeHZ/lpwkDbaf3P0phpH3uR5XjgCdisk1ENCx5LYVGJvAvz\n EFBEXUt10FW3xBCtRgeNEw9hIZkApCo6OqeY+LMos4B5AWEumlC5w+MYVX9IvxZMQVaJrhtNJLO\n XI5HApBWFOJqSUzzfGhLr8oILHDloFKnl69Z6RGp2B0gP6EQQfEEjgC3PvVgGFrAYOqsU1UYfiG\n jhe4fEUC9gbTDPEtc6UDuLEjdMwAxvp12VESi6kCr3P/PenlNjgURjPsNguoXiqpKQKHYdxTxCp\n QwAAV2bbx6Y9A70H0VXhTMwFcbb0M/d8Unh5q0eez1IDSR3KcShqUxLKmuo3+kDe1o038oqClQ/\n nwe9S8gIjv3Bs3r3JvA==","X-Proofpoint-ORIG-GUID":"0qDExcvTd30b7IVXPJoIDVGNcyIBN-O2","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-05-07_02,2026-05-06_01,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n priorityscore=1501 spamscore=0 bulkscore=0 impostorscore=0 lowpriorityscore=0\n malwarescore=0 clxscore=1015 suspectscore=0 phishscore=0 adultscore=0\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605080120"},"content":"The LPASS LPI core conversion to PM clock framework relies on variant\ndrivers wiring runtime PM callbacks.\n\nHook up runtime PM callbacks for the remaining LPASS LPI variant\ndrivers so all SoCs using the common core get consistent pm_clk based\nclock handling:\n  - milos\n  - sdm660\n  - sdm670\n  - sc8280xp\n  - sm4250\n  - sm6115\n  - sm8250\n  - sm8450\n  - sm8550\n  - sm8650\n\nThis is a mechanical per-variant driver update that relies on the\nsame generic PM clock flow (of_pm_clk_add_clks() + pm_clk_suspend/\npm_clk_resume()) and DT-provided clocks.\n\nRuntime behavior was validated on Kodiak (sc7280).\n\nSigned-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>\n---\n drivers/pinctrl/qcom/pinctrl-milos-lpass-lpi.c    |  7 +++++++\n drivers/pinctrl/qcom/pinctrl-sc8280xp-lpass-lpi.c | 11 +++++++++--\n drivers/pinctrl/qcom/pinctrl-sdm660-lpass-lpi.c   |  7 +++++++\n drivers/pinctrl/qcom/pinctrl-sdm670-lpass-lpi.c   |  7 +++++++\n drivers/pinctrl/qcom/pinctrl-sm4250-lpass-lpi.c   |  7 +++++++\n drivers/pinctrl/qcom/pinctrl-sm6115-lpass-lpi.c   |  7 +++++++\n drivers/pinctrl/qcom/pinctrl-sm8250-lpass-lpi.c   | 11 +++++++++--\n drivers/pinctrl/qcom/pinctrl-sm8450-lpass-lpi.c   | 11 +++++++++--\n drivers/pinctrl/qcom/pinctrl-sm8550-lpass-lpi.c   | 11 +++++++++--\n drivers/pinctrl/qcom/pinctrl-sm8650-lpass-lpi.c   | 11 +++++++++--\n 10 files changed, 80 insertions(+), 10 deletions(-)","diff":"diff --git a/drivers/pinctrl/qcom/pinctrl-milos-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-milos-lpass-lpi.c\nindex 3bf6fe0cf1bb..72b8ffd97860 100644\n--- a/drivers/pinctrl/qcom/pinctrl-milos-lpass-lpi.c\n+++ b/drivers/pinctrl/qcom/pinctrl-milos-lpass-lpi.c\n@@ -7,6 +7,8 @@\n #include <linux/gpio/driver.h>\n #include <linux/module.h>\n #include <linux/platform_device.h>\n+#include <linux/pm_clock.h>\n+#include <linux/pm_runtime.h>\n \n #include \"pinctrl-lpass-lpi.h\"\n \n@@ -203,10 +205,15 @@ static const struct of_device_id lpi_pinctrl_of_match[] = {\n };\n MODULE_DEVICE_TABLE(of, lpi_pinctrl_of_match);\n \n+static const struct dev_pm_ops lpi_pinctrl_pm_ops = {\n+\tRUNTIME_PM_OPS(pm_clk_suspend, pm_clk_resume, NULL)\n+};\n+\n static struct platform_driver lpi_pinctrl_driver = {\n \t.driver = {\n \t\t.name = \"qcom-milos-lpass-lpi-pinctrl\",\n \t\t.of_match_table = lpi_pinctrl_of_match,\n+\t\t.pm = pm_ptr(&lpi_pinctrl_pm_ops),\n \t},\n \t.probe = lpi_pinctrl_probe,\n \t.remove = lpi_pinctrl_remove,\ndiff --git a/drivers/pinctrl/qcom/pinctrl-sc8280xp-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-sc8280xp-lpass-lpi.c\nindex 0e839b6aaaf4..1a61316c8c47 100644\n--- a/drivers/pinctrl/qcom/pinctrl-sc8280xp-lpass-lpi.c\n+++ b/drivers/pinctrl/qcom/pinctrl-sc8280xp-lpass-lpi.c\n@@ -6,6 +6,8 @@\n #include <linux/gpio/driver.h>\n #include <linux/module.h>\n #include <linux/platform_device.h>\n+#include <linux/pm_clock.h>\n+#include <linux/pm_runtime.h>\n \n #include \"pinctrl-lpass-lpi.h\"\n \n@@ -173,10 +175,15 @@ static const struct of_device_id lpi_pinctrl_of_match[] = {\n };\n MODULE_DEVICE_TABLE(of, lpi_pinctrl_of_match);\n \n+static const struct dev_pm_ops lpi_pinctrl_pm_ops = {\n+\tRUNTIME_PM_OPS(pm_clk_suspend, pm_clk_resume, NULL)\n+};\n+\n static struct platform_driver lpi_pinctrl_driver = {\n \t.driver = {\n-\t\t   .name = \"qcom-sc8280xp-lpass-lpi-pinctrl\",\n-\t\t   .of_match_table = lpi_pinctrl_of_match,\n+\t\t\t   .name = \"qcom-sc8280xp-lpass-lpi-pinctrl\",\n+\t\t\t   .of_match_table = lpi_pinctrl_of_match,\n+\t\t\t   .pm = pm_ptr(&lpi_pinctrl_pm_ops),\n \t},\n \t.probe = lpi_pinctrl_probe,\n \t.remove = lpi_pinctrl_remove,\ndiff --git a/drivers/pinctrl/qcom/pinctrl-sdm660-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-sdm660-lpass-lpi.c\nindex 65411abfbfac..7b5aacaae7d7 100644\n--- a/drivers/pinctrl/qcom/pinctrl-sdm660-lpass-lpi.c\n+++ b/drivers/pinctrl/qcom/pinctrl-sdm660-lpass-lpi.c\n@@ -10,6 +10,8 @@\n #include <linux/module.h>\n #include <linux/of.h>\n #include <linux/platform_device.h>\n+#include <linux/pm_clock.h>\n+#include <linux/pm_runtime.h>\n #include <linux/pinctrl/pinctrl.h>\n \n #include \"pinctrl-lpass-lpi.h\"\n@@ -145,10 +147,15 @@ static const struct of_device_id sdm660_lpi_pinctrl_of_match[] = {\n };\n MODULE_DEVICE_TABLE(of, sdm660_lpi_pinctrl_of_match);\n \n+static const struct dev_pm_ops lpi_pinctrl_pm_ops = {\n+\tRUNTIME_PM_OPS(pm_clk_suspend, pm_clk_resume, NULL)\n+};\n+\n static struct platform_driver sdm660_lpi_pinctrl_driver = {\n \t.driver = {\n \t\t.name = \"qcom-sdm660-lpass-lpi-pinctrl\",\n \t\t.of_match_table = sdm660_lpi_pinctrl_of_match,\n+\t\t.pm = pm_ptr(&lpi_pinctrl_pm_ops),\n \t},\n \t.probe = lpi_pinctrl_probe,\n \t.remove = lpi_pinctrl_remove,\ndiff --git a/drivers/pinctrl/qcom/pinctrl-sdm670-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-sdm670-lpass-lpi.c\nindex 858146c408d0..0a31f7ad2e0d 100644\n--- a/drivers/pinctrl/qcom/pinctrl-sdm670-lpass-lpi.c\n+++ b/drivers/pinctrl/qcom/pinctrl-sdm670-lpass-lpi.c\n@@ -7,6 +7,8 @@\n #include <linux/module.h>\n #include <linux/of.h>\n #include <linux/platform_device.h>\n+#include <linux/pm_clock.h>\n+#include <linux/pm_runtime.h>\n #include <linux/pinctrl/pinctrl.h>\n \n #include \"pinctrl-lpass-lpi.h\"\n@@ -151,10 +153,15 @@ static const struct of_device_id sdm670_lpi_pinctrl_of_match[] = {\n };\n MODULE_DEVICE_TABLE(of, sdm670_lpi_pinctrl_of_match);\n \n+static const struct dev_pm_ops lpi_pinctrl_pm_ops = {\n+\tRUNTIME_PM_OPS(pm_clk_suspend, pm_clk_resume, NULL)\n+};\n+\n static struct platform_driver sdm670_lpi_pinctrl_driver = {\n \t.driver = {\n \t\t.name = \"qcom-sdm670-lpass-lpi-pinctrl\",\n \t\t.of_match_table = sdm670_lpi_pinctrl_of_match,\n+\t\t.pm = pm_ptr(&lpi_pinctrl_pm_ops),\n \t},\n \t.probe = lpi_pinctrl_probe,\n \t.remove = lpi_pinctrl_remove,\ndiff --git a/drivers/pinctrl/qcom/pinctrl-sm4250-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-sm4250-lpass-lpi.c\nindex c0e178be9cfc..75bafa62426a 100644\n--- a/drivers/pinctrl/qcom/pinctrl-sm4250-lpass-lpi.c\n+++ b/drivers/pinctrl/qcom/pinctrl-sm4250-lpass-lpi.c\n@@ -7,6 +7,8 @@\n #include <linux/gpio/driver.h>\n #include <linux/module.h>\n #include <linux/platform_device.h>\n+#include <linux/pm_clock.h>\n+#include <linux/pm_runtime.h>\n \n #include \"pinctrl-lpass-lpi.h\"\n \n@@ -221,10 +223,15 @@ static const struct of_device_id lpi_pinctrl_of_match[] = {\n };\n MODULE_DEVICE_TABLE(of, lpi_pinctrl_of_match);\n \n+static const struct dev_pm_ops lpi_pinctrl_pm_ops = {\n+\tRUNTIME_PM_OPS(pm_clk_suspend, pm_clk_resume, NULL)\n+};\n+\n static struct platform_driver lpi_pinctrl_driver = {\n \t.driver = {\n \t\t.name = \"qcom-sm4250-lpass-lpi-pinctrl\",\n \t\t.of_match_table = lpi_pinctrl_of_match,\n+\t\t.pm = pm_ptr(&lpi_pinctrl_pm_ops),\n \t},\n \t.probe = lpi_pinctrl_probe,\n \t.remove = lpi_pinctrl_remove,\ndiff --git a/drivers/pinctrl/qcom/pinctrl-sm6115-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-sm6115-lpass-lpi.c\nindex b7d9186861a2..05435ea6e17a 100644\n--- a/drivers/pinctrl/qcom/pinctrl-sm6115-lpass-lpi.c\n+++ b/drivers/pinctrl/qcom/pinctrl-sm6115-lpass-lpi.c\n@@ -7,6 +7,8 @@\n #include <linux/gpio/driver.h>\n #include <linux/module.h>\n #include <linux/platform_device.h>\n+#include <linux/pm_clock.h>\n+#include <linux/pm_runtime.h>\n \n #include \"pinctrl-lpass-lpi.h\"\n \n@@ -141,10 +143,15 @@ static const struct of_device_id lpi_pinctrl_of_match[] = {\n };\n MODULE_DEVICE_TABLE(of, lpi_pinctrl_of_match);\n \n+static const struct dev_pm_ops lpi_pinctrl_pm_ops = {\n+\tRUNTIME_PM_OPS(pm_clk_suspend, pm_clk_resume, NULL)\n+};\n+\n static struct platform_driver lpi_pinctrl_driver = {\n \t.driver = {\n \t\t.name = \"qcom-sm6115-lpass-lpi-pinctrl\",\n \t\t.of_match_table = lpi_pinctrl_of_match,\n+\t\t.pm = pm_ptr(&lpi_pinctrl_pm_ops),\n \t},\n \t.probe = lpi_pinctrl_probe,\n \t.remove = lpi_pinctrl_remove,\ndiff --git a/drivers/pinctrl/qcom/pinctrl-sm8250-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-sm8250-lpass-lpi.c\nindex c27452eece3e..656f22da7dde 100644\n--- a/drivers/pinctrl/qcom/pinctrl-sm8250-lpass-lpi.c\n+++ b/drivers/pinctrl/qcom/pinctrl-sm8250-lpass-lpi.c\n@@ -7,6 +7,8 @@\n #include <linux/gpio/driver.h>\n #include <linux/module.h>\n #include <linux/platform_device.h>\n+#include <linux/pm_clock.h>\n+#include <linux/pm_runtime.h>\n \n #include \"pinctrl-lpass-lpi.h\"\n \n@@ -134,10 +136,15 @@ static const struct of_device_id lpi_pinctrl_of_match[] = {\n };\n MODULE_DEVICE_TABLE(of, lpi_pinctrl_of_match);\n \n+static const struct dev_pm_ops lpi_pinctrl_pm_ops = {\n+\tRUNTIME_PM_OPS(pm_clk_suspend, pm_clk_resume, NULL)\n+};\n+\n static struct platform_driver lpi_pinctrl_driver = {\n \t.driver = {\n-\t\t   .name = \"qcom-sm8250-lpass-lpi-pinctrl\",\n-\t\t   .of_match_table = lpi_pinctrl_of_match,\n+\t\t\t   .name = \"qcom-sm8250-lpass-lpi-pinctrl\",\n+\t\t\t   .of_match_table = lpi_pinctrl_of_match,\n+\t\t\t   .pm = pm_ptr(&lpi_pinctrl_pm_ops),\n \t},\n \t.probe = lpi_pinctrl_probe,\n \t.remove = lpi_pinctrl_remove,\ndiff --git a/drivers/pinctrl/qcom/pinctrl-sm8450-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-sm8450-lpass-lpi.c\nindex 439f6541622e..a79f99ec6df9 100644\n--- a/drivers/pinctrl/qcom/pinctrl-sm8450-lpass-lpi.c\n+++ b/drivers/pinctrl/qcom/pinctrl-sm8450-lpass-lpi.c\n@@ -6,6 +6,8 @@\n #include <linux/gpio/driver.h>\n #include <linux/module.h>\n #include <linux/platform_device.h>\n+#include <linux/pm_clock.h>\n+#include <linux/pm_runtime.h>\n \n #include \"pinctrl-lpass-lpi.h\"\n \n@@ -202,10 +204,15 @@ static const struct of_device_id lpi_pinctrl_of_match[] = {\n };\n MODULE_DEVICE_TABLE(of, lpi_pinctrl_of_match);\n \n+static const struct dev_pm_ops lpi_pinctrl_pm_ops = {\n+\tRUNTIME_PM_OPS(pm_clk_suspend, pm_clk_resume, NULL)\n+};\n+\n static struct platform_driver lpi_pinctrl_driver = {\n \t.driver = {\n-\t\t   .name = \"qcom-sm8450-lpass-lpi-pinctrl\",\n-\t\t   .of_match_table = lpi_pinctrl_of_match,\n+\t\t\t   .name = \"qcom-sm8450-lpass-lpi-pinctrl\",\n+\t\t\t   .of_match_table = lpi_pinctrl_of_match,\n+\t\t\t   .pm = pm_ptr(&lpi_pinctrl_pm_ops),\n \t},\n \t.probe = lpi_pinctrl_probe,\n \t.remove = lpi_pinctrl_remove,\ndiff --git a/drivers/pinctrl/qcom/pinctrl-sm8550-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-sm8550-lpass-lpi.c\nindex 73065919c8c2..9037ef0020da 100644\n--- a/drivers/pinctrl/qcom/pinctrl-sm8550-lpass-lpi.c\n+++ b/drivers/pinctrl/qcom/pinctrl-sm8550-lpass-lpi.c\n@@ -6,6 +6,8 @@\n #include <linux/gpio/driver.h>\n #include <linux/module.h>\n #include <linux/platform_device.h>\n+#include <linux/pm_clock.h>\n+#include <linux/pm_runtime.h>\n \n #include \"pinctrl-lpass-lpi.h\"\n \n@@ -210,10 +212,15 @@ static const struct of_device_id lpi_pinctrl_of_match[] = {\n };\n MODULE_DEVICE_TABLE(of, lpi_pinctrl_of_match);\n \n+static const struct dev_pm_ops lpi_pinctrl_pm_ops = {\n+\tRUNTIME_PM_OPS(pm_clk_suspend, pm_clk_resume, NULL)\n+};\n+\n static struct platform_driver lpi_pinctrl_driver = {\n \t.driver = {\n-\t\t   .name = \"qcom-sm8550-lpass-lpi-pinctrl\",\n-\t\t   .of_match_table = lpi_pinctrl_of_match,\n+\t\t\t   .name = \"qcom-sm8550-lpass-lpi-pinctrl\",\n+\t\t\t   .of_match_table = lpi_pinctrl_of_match,\n+\t\t\t   .pm = pm_ptr(&lpi_pinctrl_pm_ops),\n \t},\n \t.probe = lpi_pinctrl_probe,\n \t.remove = lpi_pinctrl_remove,\ndiff --git a/drivers/pinctrl/qcom/pinctrl-sm8650-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-sm8650-lpass-lpi.c\nindex f9fcedf5a65d..513ddc99dd37 100644\n--- a/drivers/pinctrl/qcom/pinctrl-sm8650-lpass-lpi.c\n+++ b/drivers/pinctrl/qcom/pinctrl-sm8650-lpass-lpi.c\n@@ -6,6 +6,8 @@\n #include <linux/gpio/driver.h>\n #include <linux/module.h>\n #include <linux/platform_device.h>\n+#include <linux/pm_clock.h>\n+#include <linux/pm_runtime.h>\n \n #include \"pinctrl-lpass-lpi.h\"\n \n@@ -217,10 +219,15 @@ static const struct of_device_id lpi_pinctrl_of_match[] = {\n };\n MODULE_DEVICE_TABLE(of, lpi_pinctrl_of_match);\n \n+static const struct dev_pm_ops lpi_pinctrl_pm_ops = {\n+\tRUNTIME_PM_OPS(pm_clk_suspend, pm_clk_resume, NULL)\n+};\n+\n static struct platform_driver lpi_pinctrl_driver = {\n \t.driver = {\n-\t\t   .name = \"qcom-sm8650-lpass-lpi-pinctrl\",\n-\t\t   .of_match_table = lpi_pinctrl_of_match,\n+\t\t\t   .name = \"qcom-sm8650-lpass-lpi-pinctrl\",\n+\t\t\t   .of_match_table = lpi_pinctrl_of_match,\n+\t\t\t   .pm = pm_ptr(&lpi_pinctrl_pm_ops),\n \t},\n \t.probe = lpi_pinctrl_probe,\n \t.remove = lpi_pinctrl_remove,\n","prefixes":["v3","1/2"]}