From nobody Tue Feb 10 17:31:22 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 054A13B8BC9 for ; Mon, 9 Feb 2026 20:49:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770670164; cv=none; b=k6hnUMnlcxOliexsmdwZN1HYmqXIIOZpa185dNuk5K0RNVlsBrX5Wb3Z5g3ZwTLHRH+rDUBjl82mxVzzztwX1lH5YmNXDJMWrZFYccIbk9abKMREaJBf74A8IR+UJ8WeVErxzRhO5gW4RwpZVY6FpEGON4vdSvnwUrw735yqiPY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770670164; c=relaxed/simple; bh=szE3uTdQ2zlh+pJ+0h433F4Jn9gSZEhssLs2SPsqn0Y=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=i8cbBmhnSksmzJwbNQ0+SBJq28/U2nArhwlqzkt4LvPb+PhHgzxkcBLp8DOB8Owhn6j9DnF28lNhFCNgDYWoPRRC89YWHrJHwk9tTIcHkr83ioDhc68HiAbhU5CMro1sswqxHy67wyN7rN6Ce94mMk7I6XjZWlrJigs4HQIbpVk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=RKrrqfX9; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=PIIMGXNz; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="RKrrqfX9"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="PIIMGXNz" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 619DGVbp3081433 for ; Mon, 9 Feb 2026 20:49:22 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=NcxRueC2eU5 LWtebFYR9VPhKwz6ZxYqBGgW0AGpwe1A=; b=RKrrqfX9Gb8mccVOEvel0hlK6NH QxH2vFugKe9frvo6f9Y1R3IS9ULzcsEsx8VSKs6fEpSO2zIYR5mEJFw3bRSsJ/pc qjCLKv/uuuosxKplawMQfNDipsl26BjodLWFQbY8KM5gIhtWPpR+FQXS7/2WYWRN yiF0F7WK+uVYqkWV7100lwHyOc0hfvxFEJ4ZDASPzIvBazw5UT8SlhNZylFa+foH I3jwd+WM7GPME5+K0Dc272VzLr8t119Rc1IEKX0joK3L4NSHgwiwkaAiFf2k2X5u 7z21gl0LGIohJYrXuqMbslatPxnc9exvDnCTaAp3YrvoEwK+Bxdo5Gme1pw== Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4c7gau9e7c-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Feb 2026 20:49:21 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2ba6e8ac125so452665eec.0 for ; Mon, 09 Feb 2026 12:49:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1770670161; x=1771274961; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=NcxRueC2eU5LWtebFYR9VPhKwz6ZxYqBGgW0AGpwe1A=; b=PIIMGXNzW3OORTLa0ch3Nn6yPTlfHDMA2LphpB753ETvP8sEW6YBxrHg6WipX2D+Le L0C32lQZ5KEDLNbzdoY1bL2ByBsllMqpN08V1UCeMtBaKlUjAOlB2uO0GPikGqs7IpQO MpFjYDzCJU6qTTMhaBdbd9s/vHNsomkYq9QzHxwrStrtAFLoILLHDnm4ky2MUwIXKCSw TynELGHE67neyxdlH7Cmj7nKVVuMdpjwJLxNHDoxqsFTy0xMW+9pU4puWXzOo9ZJRqqu A1bIfN/rQuVe3wmRrMlAa4OuhVQ+rs7MdSrddar3OHyVo6HHdMbEyTKn78PI9YPebkgj 1LRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770670161; x=1771274961; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=NcxRueC2eU5LWtebFYR9VPhKwz6ZxYqBGgW0AGpwe1A=; b=N02pbIFxVMhPy4chdjoomtFNlximey6ZyREVQbqGadJBBqVQncBvWGzFKzqQzXZco1 rBBY8nrLNXYkRTVZNDYnO+le1VJj8Tw5o+T3Mxot5svQJn1dvRW50YP4QgZDAUv4ajmS eZQDpinwsk7VZH3u2KrCWDT9f3lL2L8jlztMPBx5aoDXY0Xhw3Y28yP+9PvNtcZP7ioF i1FwRF7jTyB2+q+o0P+RW2Suh/Dn+8fSLUpY6PkOdMoXFD09V0Rj452qllyh+THDJGJr 7F8yfaXEUWz2LwD6MI6UE/bubvEVGulVtrSNsJpNiOzWn9nRtvkMO7scq7TyoTU/YtlU eDZQ== X-Forwarded-Encrypted: i=1; AJvYcCW+7bpZn/fgkl5ZbRm3P8wKfl/BHad4U5ucxWHX6RNmgxauZy/T1+9e9XBoQmHu7+XSc+PrwlwiuBxchQQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzPdr5s4ojpuVN49+COYSNrsMOrVjXDsFo2BzNdRYyglJqSwxpU Ck/2qWmmCHXQ/cEhzBmWsgOew/15zVS7dJsHOi5a8NLXPWPjUKFKiTvgF/J6Wlgw7RvWU+gZemn L8YXlT1mEPAxLYuixJBBcPUke+vK4udPNdYOBJdPO1kJw2jkC70/6DIyWQJ5hTsrta2U= X-Gm-Gg: AZuq6aL/Y5yGSSkmMgrG00nRkkQT2spf/LV7rLfQ+4fhbbXPOv+zhJyo6V3jLdmbbjw O8xPEi0HR4Ti0TSAC8rIiQYa29YdbdFIpE3xiZ/IuXbBlTQXqy39KO8U4bQBi0cCASujc2tReDx tUyV6+1wTKonpdv80HbzWOEzEmQbVUy36o+FFfUMBNE2AnIwQhE1B4H1FsLfgGug4yT7xyPiFOA HmS66mMsVgpmmlBZ+6OsNw9FlMQoQaSpNtNt0cwpEii2vqxxmfqdd9VNAAWdkWuH0qyEkFcuPcc UU5iktw7BMR4HtMUH/TIciuzj01jb3tTkWJwz5bJ8eaZhpmMQCnp0m/hSz5cAXmNhMf4SNyleJp N+46fqrxyXl85PABGVfCHRwQ+Mr6toSROq1aDndZ0kU3LjW8icw+CLZAQG0xi9SHS0SQYu4hW X-Received: by 2002:a05:7301:38a3:b0:2b8:2910:dc9b with SMTP id 5a478bee46e88-2b8563d941fmr5919648eec.3.1770670160775; Mon, 09 Feb 2026 12:49:20 -0800 (PST) X-Received: by 2002:a05:7301:38a3:b0:2b8:2910:dc9b with SMTP id 5a478bee46e88-2b8563d941fmr5919641eec.3.1770670160175; Mon, 09 Feb 2026 12:49:20 -0800 (PST) Received: from hu-amelende-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2ba89ae14c9sm106247eec.29.2026.02.09.12.49.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Feb 2026 12:49:17 -0800 (PST) From: Anjelique Melendez To: andersson@kernel.org, konradybcio@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, sre@kernel.org, heikki.krogerus@linux.intel.com, gregkh@linuxfoundation.org Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-usb@vger.kernel.org Subject: [PATCH v5 2/5] soc: qcom: pmic_glink: Add charger PDR service information to client data Date: Mon, 9 Feb 2026 12:49:12 -0800 Message-Id: <20260209204915.1983997-3-anjelique.melendez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260209204915.1983997-1-anjelique.melendez@oss.qualcomm.com> References: <20260209204915.1983997-1-anjelique.melendez@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: um5KH_5fh05FsYoWUh7qznOYHzsERwv5 X-Authority-Analysis: v=2.4 cv=eP4eTXp1 c=1 sm=1 tr=0 ts=698a4852 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=EUspDBNiAAAA:8 a=qLYHXgdTuLTpAkILo5MA:9 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-GUID: um5KH_5fh05FsYoWUh7qznOYHzsERwv5 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjA5MDE3NSBTYWx0ZWRfX0ffleSC7GafT OKT107XRRdlzfRdhKJC/i/6IuEvRSilQotcc6zPyxCa62ZXr8QJDrpU3/b/34Ao0BGy60fcgUb9 Hoze+IfQgmfp/rXyl2NMCHw+HE2S5kffSPCk6RSugGmxWb3egDcv+xnEF8PXOf7RXKZD7n391LQ QooASiqWvYA4SdIJa74f6uT5T53X8ODvrfM/a7BznTMjC0NqHOJdFuGBRxi5vb3qt1FE8WC+oML IvVPWgeBRJpbt24KVtvahRAUftAKI/SISgMKlbvXaOtLqBIKfCRSQIdWb6Np7eGbPhtOSUWrk2i 7WeDSdqpIoJGr2vDzd6t5UaXLoXehjG7npMwvifuRMFhNk5muhVpRgUUFzH4FeYdkm6voygZe4D q5muKa+0xud73ztkXyUXpwOFKka4i/zMKWiGhisztkbUJ/rHti/T2DUgdXq6De9HMZ1P2vTubjc k8Bo0li/0TIQgSobwvA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-09_01,2026-02-09_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 phishscore=0 bulkscore=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 adultscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602090175 Content-Type: text/plain; charset="utf-8" Currently, the charger PD service path and service name are hard coded however these paths are not guaranteed to be the same between SOCs. Define charger PDR service path and service name as client data so that each PMIC generation can properly define these paths. Signed-off-by: Anjelique Melendez Reviewed-by: Dmitry Baryshkov Reviewed-by: Konrad Dybcio --- drivers/soc/qcom/pmic_glink.c | 58 ++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 24 deletions(-) diff --git a/drivers/soc/qcom/pmic_glink.c b/drivers/soc/qcom/pmic_glink.c index 627f96ca322e..df2fd03d3b33 100644 --- a/drivers/soc/qcom/pmic_glink.c +++ b/drivers/soc/qcom/pmic_glink.c @@ -23,13 +23,19 @@ enum { PMIC_GLINK_CLIENT_UCSI, }; =20 +struct pmic_glink_data { + unsigned long client_mask; + const char *charger_pdr_service_name; + const char *charger_pdr_service_path; +}; + struct pmic_glink { struct device *dev; struct pdr_handle *pdr; =20 struct rpmsg_endpoint *ept; =20 - unsigned long client_mask; + const struct pmic_glink_data *data; =20 struct auxiliary_device altmode_aux; struct auxiliary_device ps_aux; @@ -292,7 +298,6 @@ static struct rpmsg_driver pmic_glink_rpmsg_driver =3D { =20 static int pmic_glink_probe(struct platform_device *pdev) { - const unsigned long *match_data; struct pdr_service *service; struct pmic_glink *pg; int ret; @@ -309,12 +314,10 @@ static int pmic_glink_probe(struct platform_device *p= dev) spin_lock_init(&pg->client_lock); mutex_init(&pg->state_lock); =20 - match_data =3D (unsigned long *)of_device_get_match_data(&pdev->dev); - if (!match_data) + pg->data =3D of_device_get_match_data(&pdev->dev); + if (!pg->data) return -EINVAL; =20 - pg->client_mask =3D *match_data; - pg->pdr =3D pdr_handle_alloc(pmic_glink_pdr_callback, pg); if (IS_ERR(pg->pdr)) { ret =3D dev_err_probe(&pdev->dev, PTR_ERR(pg->pdr), @@ -322,27 +325,30 @@ static int pmic_glink_probe(struct platform_device *p= dev) return ret; } =20 - if (pg->client_mask & BIT(PMIC_GLINK_CLIENT_UCSI)) { + if (pg->data->client_mask & BIT(PMIC_GLINK_CLIENT_UCSI)) { ret =3D pmic_glink_add_aux_device(pg, &pg->ucsi_aux, "ucsi"); if (ret) goto out_release_pdr_handle; } - if (pg->client_mask & BIT(PMIC_GLINK_CLIENT_ALTMODE)) { + if (pg->data->client_mask & BIT(PMIC_GLINK_CLIENT_ALTMODE)) { ret =3D pmic_glink_add_aux_device(pg, &pg->altmode_aux, "altmode"); if (ret) goto out_release_ucsi_aux; } - if (pg->client_mask & BIT(PMIC_GLINK_CLIENT_BATT)) { + if (pg->data->client_mask & BIT(PMIC_GLINK_CLIENT_BATT)) { ret =3D pmic_glink_add_aux_device(pg, &pg->ps_aux, "power-supply"); if (ret) goto out_release_altmode_aux; } =20 - service =3D pdr_add_lookup(pg->pdr, "tms/servreg", "msm/adsp/charger_pd"); - if (IS_ERR(service)) { - ret =3D dev_err_probe(&pdev->dev, PTR_ERR(service), - "failed adding pdr lookup for charger_pd\n"); - goto out_release_aux_devices; + if (pg->data->charger_pdr_service_name && pg->data->charger_pdr_service_p= ath) { + service =3D pdr_add_lookup(pg->pdr, pg->data->charger_pdr_service_name, + pg->data->charger_pdr_service_path); + if (IS_ERR(service)) { + ret =3D dev_err_probe(&pdev->dev, PTR_ERR(service), + "failed adding pdr lookup for charger_pd\n"); + goto out_release_aux_devices; + } } =20 mutex_lock(&__pmic_glink_lock); @@ -352,13 +358,13 @@ static int pmic_glink_probe(struct platform_device *p= dev) return 0; =20 out_release_aux_devices: - if (pg->client_mask & BIT(PMIC_GLINK_CLIENT_BATT)) + if (pg->data->client_mask & BIT(PMIC_GLINK_CLIENT_BATT)) pmic_glink_del_aux_device(pg, &pg->ps_aux); out_release_altmode_aux: - if (pg->client_mask & BIT(PMIC_GLINK_CLIENT_ALTMODE)) + if (pg->data->client_mask & BIT(PMIC_GLINK_CLIENT_ALTMODE)) pmic_glink_del_aux_device(pg, &pg->altmode_aux); out_release_ucsi_aux: - if (pg->client_mask & BIT(PMIC_GLINK_CLIENT_UCSI)) + if (pg->data->client_mask & BIT(PMIC_GLINK_CLIENT_UCSI)) pmic_glink_del_aux_device(pg, &pg->ucsi_aux); out_release_pdr_handle: pdr_handle_release(pg->pdr); @@ -372,23 +378,27 @@ static void pmic_glink_remove(struct platform_device = *pdev) =20 pdr_handle_release(pg->pdr); =20 - if (pg->client_mask & BIT(PMIC_GLINK_CLIENT_BATT)) + if (pg->data->client_mask & BIT(PMIC_GLINK_CLIENT_BATT)) pmic_glink_del_aux_device(pg, &pg->ps_aux); - if (pg->client_mask & BIT(PMIC_GLINK_CLIENT_ALTMODE)) + if (pg->data->client_mask & BIT(PMIC_GLINK_CLIENT_ALTMODE)) pmic_glink_del_aux_device(pg, &pg->altmode_aux); - if (pg->client_mask & BIT(PMIC_GLINK_CLIENT_UCSI)) + if (pg->data->client_mask & BIT(PMIC_GLINK_CLIENT_UCSI)) pmic_glink_del_aux_device(pg, &pg->ucsi_aux); =20 guard(mutex)(&__pmic_glink_lock); __pmic_glink =3D NULL; } =20 -static const unsigned long pmic_glink_sm8450_client_mask =3D BIT(PMIC_GLIN= K_CLIENT_BATT) | - BIT(PMIC_GLINK_CLIENT_ALTMODE) | - BIT(PMIC_GLINK_CLIENT_UCSI); +static const struct pmic_glink_data pmic_glink_adsp_data =3D { + .client_mask =3D BIT(PMIC_GLINK_CLIENT_BATT) | + BIT(PMIC_GLINK_CLIENT_ALTMODE) | + BIT(PMIC_GLINK_CLIENT_UCSI), + .charger_pdr_service_name =3D "tms/servreg", + .charger_pdr_service_path =3D "msm/adsp/charger_pd", +}; =20 static const struct of_device_id pmic_glink_of_match[] =3D { - { .compatible =3D "qcom,pmic-glink", .data =3D &pmic_glink_sm8450_client_= mask }, + { .compatible =3D "qcom,pmic-glink", .data =3D &pmic_glink_adsp_data }, {} }; MODULE_DEVICE_TABLE(of, pmic_glink_of_match); --=20 2.34.1