* [PATCH v4 0/4] soc: qcom: pmic_glink: Add support for battery management running on SOCCP
@ 2026-01-14 21:17 Anjelique Melendez
2026-01-14 21:17 ` [PATCH v4 1/4] dt-bindings: soc: qcom: qcom,pmic-glink: Update X1E80100 compatible string Anjelique Melendez
` (3 more replies)
0 siblings, 4 replies; 14+ messages in thread
From: Anjelique Melendez @ 2026-01-14 21:17 UTC (permalink / raw)
To: andersson, konradybcio, robh, krzk+dt, conor+dt, heikki.krogerus,
gregkh, abel.vesa
Cc: linux-arm-msm, devicetree, linux-kernel, linux-usb
System On Chip Control Processor (SOCCP) is a subsystem that can have
battery management firmware running on it to support Type-C/PD and
battery charging. Add support for devices, such as Kaanpali and Glymur,
which are running battery management on SOCCP.
While at it, also update the compatible string for X1E80100 so that it no
longer has fallback on SM8550.
Changes since v3:
- Added "dt-bindings: soc: qcom: qcom,pmic-glink: Update X1E80100 compatible string"
and "usb: typec: ucsi: ucsi_glink: Add support for X1E80100" to series
- Corrected bindings dependencies
- Renamed pmic_glink_data structs
- Link: https://lore.kernel.org/all/20251217055655.638594-1-anjelique.melendez@oss.qualcomm.com/
Changes since v2:
- Updated bindings dependencies
- Removed qcom,glymur-pmic-glink compatible string from pmic_glink driver list
- Link: https://lore.kernel.org/all/20251027212250.3847537-1-anjelique.melendez@oss.qualcomm.com/
Changes since V1:
- Corrected bindings dependencies
- Renamed pmic_glink_data variables
- Dropped "soc: qcom: pmic_glink: Add support for SOCCP remoteproc channels"
since it was applied from its original series: https://lore.kernel.org/all/176157405464.8818.5887965202916918883.b4-ty@kernel.org/
- Link: https://lore.kernel.org/all/20251017003033.268567-1-anjelique.melendez@oss.qualcomm.com/
Anjelique Melendez (4):
dt-bindings: soc: qcom: qcom,pmic-glink: Update X1E80100 compatible
string
dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur
compatibles
usb: typec: ucsi: ucsi_glink: Add support for X1E80100 compatible
string
soc: qcom: pmic_glink: Add charger PDR service path and service name
to client data
.../bindings/soc/qcom/qcom,pmic-glink.yaml | 7 ++
drivers/soc/qcom/pmic_glink.c | 66 ++++++++++++-------
drivers/usb/typec/ucsi/ucsi_glink.c | 1 +
3 files changed, 50 insertions(+), 24 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v4 1/4] dt-bindings: soc: qcom: qcom,pmic-glink: Update X1E80100 compatible string
2026-01-14 21:17 [PATCH v4 0/4] soc: qcom: pmic_glink: Add support for battery management running on SOCCP Anjelique Melendez
@ 2026-01-14 21:17 ` Anjelique Melendez
2026-01-14 21:50 ` Dmitry Baryshkov
2026-01-15 9:13 ` Krzysztof Kozlowski
2026-01-14 21:17 ` [PATCH v4 2/4] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles Anjelique Melendez
` (2 subsequent siblings)
3 siblings, 2 replies; 14+ messages in thread
From: Anjelique Melendez @ 2026-01-14 21:17 UTC (permalink / raw)
To: andersson, konradybcio, robh, krzk+dt, conor+dt, heikki.krogerus,
gregkh, abel.vesa
Cc: linux-arm-msm, devicetree, linux-kernel, linux-usb
Currently, the X1E80100 compatible string is defined to fallback onto
SM8550 which is incorrect as X1E80100 and SM8550 are not compatible
devices. Update "qcom,x1e80100-pmic-glink" to be a standalone compatible
string.
For now leave the original X1E80100 definition with fallback to SM8550
as is inorder to not break current definitions. This will be removed after
a grace period.
Fixes: 0ebeba917f03 ("dt-bindings: soc: qcom: qcom,pmic-glink: document X1E80100 compatible")
Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
---
Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
index 7085bf88afab..012c5661115d 100644
--- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
@@ -29,6 +29,7 @@ properties:
- qcom,sm8350-pmic-glink
- qcom,sm8450-pmic-glink
- qcom,sm8550-pmic-glink
+ - qcom,x1e80100-pmic-glink
- const: qcom,pmic-glink
- items:
- enum:
--
2.34.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v4 2/4] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles
2026-01-14 21:17 [PATCH v4 0/4] soc: qcom: pmic_glink: Add support for battery management running on SOCCP Anjelique Melendez
2026-01-14 21:17 ` [PATCH v4 1/4] dt-bindings: soc: qcom: qcom,pmic-glink: Update X1E80100 compatible string Anjelique Melendez
@ 2026-01-14 21:17 ` Anjelique Melendez
2026-01-15 23:10 ` Bjorn Andersson
2026-01-14 21:17 ` [PATCH v4 3/4] usb: typec: ucsi: ucsi_glink: Add support for X1E80100 compatible string Anjelique Melendez
2026-01-14 21:17 ` [PATCH v4 4/4] soc: qcom: pmic_glink: Add charger PDR service path and service name to client data Anjelique Melendez
3 siblings, 1 reply; 14+ messages in thread
From: Anjelique Melendez @ 2026-01-14 21:17 UTC (permalink / raw)
To: andersson, konradybcio, robh, krzk+dt, conor+dt, heikki.krogerus,
gregkh, abel.vesa
Cc: linux-arm-msm, devicetree, linux-kernel, linux-usb
Document the Kaanpali compatible string to have fallback on SM8550.
Document the Glymur compatible string to have fallback on X1E80100.
Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
---
.../devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
index 012c5661115d..13503ae79a8d 100644
--- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
@@ -38,12 +38,18 @@ properties:
- const: qcom,pmic-glink
- items:
- enum:
+ - qcom,kaanapali-pmic-glink
- qcom,milos-pmic-glink
- qcom,sm8650-pmic-glink
- qcom,sm8750-pmic-glink
- qcom,x1e80100-pmic-glink
- const: qcom,sm8550-pmic-glink
- const: qcom,pmic-glink
+ - items:
+ - enum:
+ - qcom,glymur-pmic-glink
+ - const: qcom,x1e80100-pmic-glink
+ - const: qcom,pmic-glink
'#address-cells':
const: 1
--
2.34.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v4 3/4] usb: typec: ucsi: ucsi_glink: Add support for X1E80100 compatible string
2026-01-14 21:17 [PATCH v4 0/4] soc: qcom: pmic_glink: Add support for battery management running on SOCCP Anjelique Melendez
2026-01-14 21:17 ` [PATCH v4 1/4] dt-bindings: soc: qcom: qcom,pmic-glink: Update X1E80100 compatible string Anjelique Melendez
2026-01-14 21:17 ` [PATCH v4 2/4] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles Anjelique Melendez
@ 2026-01-14 21:17 ` Anjelique Melendez
2026-01-14 21:51 ` Dmitry Baryshkov
2026-01-15 9:14 ` Krzysztof Kozlowski
2026-01-14 21:17 ` [PATCH v4 4/4] soc: qcom: pmic_glink: Add charger PDR service path and service name to client data Anjelique Melendez
3 siblings, 2 replies; 14+ messages in thread
From: Anjelique Melendez @ 2026-01-14 21:17 UTC (permalink / raw)
To: andersson, konradybcio, robh, krzk+dt, conor+dt, heikki.krogerus,
gregkh, abel.vesa
Cc: linux-arm-msm, devicetree, linux-kernel, linux-usb
Add support for the X1E80100 compatible string which needs UCSI_DELAY_DEVICE_PDOS quirk.
Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
---
drivers/usb/typec/ucsi/ucsi_glink.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/usb/typec/ucsi/ucsi_glink.c b/drivers/usb/typec/ucsi/ucsi_glink.c
index 11b3e24e34e2..e700c6a58a46 100644
--- a/drivers/usb/typec/ucsi/ucsi_glink.c
+++ b/drivers/usb/typec/ucsi/ucsi_glink.c
@@ -379,6 +379,7 @@ static const struct of_device_id pmic_glink_ucsi_of_quirks[] = {
{ .compatible = "qcom,sm8350-pmic-glink", .data = &quirk_sc8180x, },
{ .compatible = "qcom,sm8450-pmic-glink", .data = &quirk_sm8450, },
{ .compatible = "qcom,sm8550-pmic-glink", .data = &quirk_sm8450, },
+ { .compatible = "qcom,x1e80100-pmic-glink", .data = &quirk_sm8450, },
{}
};
--
2.34.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v4 4/4] soc: qcom: pmic_glink: Add charger PDR service path and service name to client data
2026-01-14 21:17 [PATCH v4 0/4] soc: qcom: pmic_glink: Add support for battery management running on SOCCP Anjelique Melendez
` (2 preceding siblings ...)
2026-01-14 21:17 ` [PATCH v4 3/4] usb: typec: ucsi: ucsi_glink: Add support for X1E80100 compatible string Anjelique Melendez
@ 2026-01-14 21:17 ` Anjelique Melendez
2026-01-14 21:52 ` Dmitry Baryshkov
2026-01-15 9:19 ` Krzysztof Kozlowski
3 siblings, 2 replies; 14+ messages in thread
From: Anjelique Melendez @ 2026-01-14 21:17 UTC (permalink / raw)
To: andersson, konradybcio, robh, krzk+dt, conor+dt, heikki.krogerus,
gregkh, abel.vesa
Cc: linux-arm-msm, devicetree, linux-kernel, linux-usb
Currently, the charger PD service path and service name are hard coded
however these paths are not guaranteed to be the same between SOCs. For
example, on Kaanapali and Glymur, Charger FW runs on SOCCP(another subsystem)
which does not have any specific charger PDs defined.
Define charger PDR service path and service name as client data so that
each PMIC generation can properly define these paths.
While at it, add qcom,kaanapali-pmic-glink and qcom,glymur-pmic-glink
compatible strings.
Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
---
drivers/soc/qcom/pmic_glink.c | 66 ++++++++++++++++++++++-------------
1 file changed, 42 insertions(+), 24 deletions(-)
diff --git a/drivers/soc/qcom/pmic_glink.c b/drivers/soc/qcom/pmic_glink.c
index 627f96ca322e..3042261578aa 100644
--- a/drivers/soc/qcom/pmic_glink.c
+++ b/drivers/soc/qcom/pmic_glink.c
@@ -23,13 +23,19 @@ enum {
PMIC_GLINK_CLIENT_UCSI,
};
+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;
struct rpmsg_endpoint *ept;
- unsigned long client_mask;
+ const struct pmic_glink_data *data;
struct auxiliary_device altmode_aux;
struct auxiliary_device ps_aux;
@@ -292,7 +298,6 @@ static struct rpmsg_driver pmic_glink_rpmsg_driver = {
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 *pdev)
spin_lock_init(&pg->client_lock);
mutex_init(&pg->state_lock);
- match_data = (unsigned long *)of_device_get_match_data(&pdev->dev);
- if (!match_data)
+ pg->data = of_device_get_match_data(&pdev->dev);
+ if (!pg->data)
return -EINVAL;
- pg->client_mask = *match_data;
-
pg->pdr = pdr_handle_alloc(pmic_glink_pdr_callback, pg);
if (IS_ERR(pg->pdr)) {
ret = dev_err_probe(&pdev->dev, PTR_ERR(pg->pdr),
@@ -322,27 +325,30 @@ static int pmic_glink_probe(struct platform_device *pdev)
return ret;
}
- if (pg->client_mask & BIT(PMIC_GLINK_CLIENT_UCSI)) {
+ if (pg->data->client_mask & BIT(PMIC_GLINK_CLIENT_UCSI)) {
ret = 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 = 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 = pmic_glink_add_aux_device(pg, &pg->ps_aux, "power-supply");
if (ret)
goto out_release_altmode_aux;
}
- service = pdr_add_lookup(pg->pdr, "tms/servreg", "msm/adsp/charger_pd");
- if (IS_ERR(service)) {
- ret = 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_path) {
+ service = pdr_add_lookup(pg->pdr, pg->data->charger_pdr_service_name,
+ pg->data->charger_pdr_service_path);
+ if (IS_ERR(service)) {
+ ret = dev_err_probe(&pdev->dev, PTR_ERR(service),
+ "failed adding pdr lookup for charger_pd\n");
+ goto out_release_aux_devices;
+ }
}
mutex_lock(&__pmic_glink_lock);
@@ -352,13 +358,13 @@ static int pmic_glink_probe(struct platform_device *pdev)
return 0;
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,35 @@ static void pmic_glink_remove(struct platform_device *pdev)
pdr_handle_release(pg->pdr);
- 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);
guard(mutex)(&__pmic_glink_lock);
__pmic_glink = NULL;
}
-static const unsigned long pmic_glink_sm8450_client_mask = BIT(PMIC_GLINK_CLIENT_BATT) |
- BIT(PMIC_GLINK_CLIENT_ALTMODE) |
- BIT(PMIC_GLINK_CLIENT_UCSI);
+static const struct pmic_glink_data pmic_glink_adsp_data = {
+ .client_mask = BIT(PMIC_GLINK_CLIENT_BATT) |
+ BIT(PMIC_GLINK_CLIENT_ALTMODE) |
+ BIT(PMIC_GLINK_CLIENT_UCSI),
+ .charger_pdr_service_name = "tms/servreg",
+ .charger_pdr_service_path = "msm/adsp/charger_pd",
+};
+
+static const struct pmic_glink_data pmic_glink_soccp_data = {
+ .client_mask = BIT(PMIC_GLINK_CLIENT_BATT) |
+ BIT(PMIC_GLINK_CLIENT_ALTMODE) |
+ BIT(PMIC_GLINK_CLIENT_UCSI),
+};
static const struct of_device_id pmic_glink_of_match[] = {
- { .compatible = "qcom,pmic-glink", .data = &pmic_glink_sm8450_client_mask },
+ { .compatible = "qcom,glymur-pmic-glink", .data = &pmic_glink_soccp_data },
+ { .compatible = "qcom,kaanapali-pmic-glink", .data = &pmic_glink_soccp_data },
+ { .compatible = "qcom,pmic-glink", .data = &pmic_glink_adsp_data },
{}
};
MODULE_DEVICE_TABLE(of, pmic_glink_of_match);
--
2.34.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v4 1/4] dt-bindings: soc: qcom: qcom,pmic-glink: Update X1E80100 compatible string
2026-01-14 21:17 ` [PATCH v4 1/4] dt-bindings: soc: qcom: qcom,pmic-glink: Update X1E80100 compatible string Anjelique Melendez
@ 2026-01-14 21:50 ` Dmitry Baryshkov
2026-01-15 9:13 ` Krzysztof Kozlowski
1 sibling, 0 replies; 14+ messages in thread
From: Dmitry Baryshkov @ 2026-01-14 21:50 UTC (permalink / raw)
To: Anjelique Melendez
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, heikki.krogerus,
gregkh, abel.vesa, linux-arm-msm, devicetree, linux-kernel,
linux-usb
On Wed, Jan 14, 2026 at 01:17:56PM -0800, Anjelique Melendez wrote:
> Currently, the X1E80100 compatible string is defined to fallback onto
> SM8550 which is incorrect as X1E80100 and SM8550 are not compatible
> devices.
Nit: it would be nice to mention, what is not compatible (BMS).
> Update "qcom,x1e80100-pmic-glink" to be a standalone compatible
> string.
>
> For now leave the original X1E80100 definition with fallback to SM8550
> as is inorder to not break current definitions. This will be removed after
> a grace period.
>
> Fixes: 0ebeba917f03 ("dt-bindings: soc: qcom: qcom,pmic-glink: document X1E80100 compatible")
> Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
> ---
> Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
> index 7085bf88afab..012c5661115d 100644
> --- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
> @@ -29,6 +29,7 @@ properties:
> - qcom,sm8350-pmic-glink
> - qcom,sm8450-pmic-glink
> - qcom,sm8550-pmic-glink
> + - qcom,x1e80100-pmic-glink
> - const: qcom,pmic-glink
> - items:
> - enum:
> --
> 2.34.1
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v4 3/4] usb: typec: ucsi: ucsi_glink: Add support for X1E80100 compatible string
2026-01-14 21:17 ` [PATCH v4 3/4] usb: typec: ucsi: ucsi_glink: Add support for X1E80100 compatible string Anjelique Melendez
@ 2026-01-14 21:51 ` Dmitry Baryshkov
2026-01-15 9:14 ` Krzysztof Kozlowski
1 sibling, 0 replies; 14+ messages in thread
From: Dmitry Baryshkov @ 2026-01-14 21:51 UTC (permalink / raw)
To: Anjelique Melendez
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, heikki.krogerus,
gregkh, abel.vesa, linux-arm-msm, devicetree, linux-kernel,
linux-usb
On Wed, Jan 14, 2026 at 01:17:58PM -0800, Anjelique Melendez wrote:
> Add support for the X1E80100 compatible string which needs UCSI_DELAY_DEVICE_PDOS quirk.
>
> Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
> ---
> drivers/usb/typec/ucsi/ucsi_glink.c | 1 +
> 1 file changed, 1 insertion(+)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v4 4/4] soc: qcom: pmic_glink: Add charger PDR service path and service name to client data
2026-01-14 21:17 ` [PATCH v4 4/4] soc: qcom: pmic_glink: Add charger PDR service path and service name to client data Anjelique Melendez
@ 2026-01-14 21:52 ` Dmitry Baryshkov
2026-01-15 9:19 ` Krzysztof Kozlowski
1 sibling, 0 replies; 14+ messages in thread
From: Dmitry Baryshkov @ 2026-01-14 21:52 UTC (permalink / raw)
To: Anjelique Melendez
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, heikki.krogerus,
gregkh, abel.vesa, linux-arm-msm, devicetree, linux-kernel,
linux-usb
On Wed, Jan 14, 2026 at 01:17:59PM -0800, Anjelique Melendez wrote:
> Currently, the charger PD service path and service name are hard coded
> however these paths are not guaranteed to be the same between SOCs. For
> example, on Kaanapali and Glymur, Charger FW runs on SOCCP(another subsystem)
> which does not have any specific charger PDs defined.
>
> Define charger PDR service path and service name as client data so that
> each PMIC generation can properly define these paths.
>
> While at it, add qcom,kaanapali-pmic-glink and qcom,glymur-pmic-glink
> compatible strings.
>
> Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
> ---
> drivers/soc/qcom/pmic_glink.c | 66 ++++++++++++++++++++++-------------
> 1 file changed, 42 insertions(+), 24 deletions(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v4 1/4] dt-bindings: soc: qcom: qcom,pmic-glink: Update X1E80100 compatible string
2026-01-14 21:17 ` [PATCH v4 1/4] dt-bindings: soc: qcom: qcom,pmic-glink: Update X1E80100 compatible string Anjelique Melendez
2026-01-14 21:50 ` Dmitry Baryshkov
@ 2026-01-15 9:13 ` Krzysztof Kozlowski
1 sibling, 0 replies; 14+ messages in thread
From: Krzysztof Kozlowski @ 2026-01-15 9:13 UTC (permalink / raw)
To: Anjelique Melendez
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, heikki.krogerus,
gregkh, abel.vesa, linux-arm-msm, devicetree, linux-kernel,
linux-usb
On Wed, Jan 14, 2026 at 01:17:56PM -0800, Anjelique Melendez wrote:
> Currently, the X1E80100 compatible string is defined to fallback onto
> SM8550 which is incorrect as X1E80100 and SM8550 are not compatible
> devices. Update "qcom,x1e80100-pmic-glink" to be a standalone compatible
> string.
>
> For now leave the original X1E80100 definition with fallback to SM8550
> as is inorder to not break current definitions. This will be removed after
> a grace period.
Just do it in one commit. I don't understand what is the benefit of your
approach?
You still break ABI, still break users, just silently so they will not
notice they have isues?
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v4 3/4] usb: typec: ucsi: ucsi_glink: Add support for X1E80100 compatible string
2026-01-14 21:17 ` [PATCH v4 3/4] usb: typec: ucsi: ucsi_glink: Add support for X1E80100 compatible string Anjelique Melendez
2026-01-14 21:51 ` Dmitry Baryshkov
@ 2026-01-15 9:14 ` Krzysztof Kozlowski
2026-01-15 21:26 ` Bjorn Andersson
1 sibling, 1 reply; 14+ messages in thread
From: Krzysztof Kozlowski @ 2026-01-15 9:14 UTC (permalink / raw)
To: Anjelique Melendez
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, heikki.krogerus,
gregkh, abel.vesa, linux-arm-msm, devicetree, linux-kernel,
linux-usb
On Wed, Jan 14, 2026 at 01:17:58PM -0800, Anjelique Melendez wrote:
> Add support for the X1E80100 compatible string which needs UCSI_DELAY_DEVICE_PDOS quirk.
Please wrap commit message according to Linux coding style / submission
process (neither too early nor over the limit):
https://elixir.bootlin.com/linux/v6.4-rc1/source/Documentation/process/submitting-patches.rst#L597
>
> Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
> ---
> drivers/usb/typec/ucsi/ucsi_glink.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/usb/typec/ucsi/ucsi_glink.c b/drivers/usb/typec/ucsi/ucsi_glink.c
> index 11b3e24e34e2..e700c6a58a46 100644
> --- a/drivers/usb/typec/ucsi/ucsi_glink.c
> +++ b/drivers/usb/typec/ucsi/ucsi_glink.c
> @@ -379,6 +379,7 @@ static const struct of_device_id pmic_glink_ucsi_of_quirks[] = {
> { .compatible = "qcom,sm8350-pmic-glink", .data = &quirk_sc8180x, },
> { .compatible = "qcom,sm8450-pmic-glink", .data = &quirk_sm8450, },
> { .compatible = "qcom,sm8550-pmic-glink", .data = &quirk_sm8450, },
> + { .compatible = "qcom,x1e80100-pmic-glink", .data = &quirk_sm8450, },
So is it compatible with sm8550 or not? Based on this commit it would
be, so you need to clarify here why you decided not to make them
compatible.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v4 4/4] soc: qcom: pmic_glink: Add charger PDR service path and service name to client data
2026-01-14 21:17 ` [PATCH v4 4/4] soc: qcom: pmic_glink: Add charger PDR service path and service name to client data Anjelique Melendez
2026-01-14 21:52 ` Dmitry Baryshkov
@ 2026-01-15 9:19 ` Krzysztof Kozlowski
2026-01-15 20:00 ` Dmitry Baryshkov
1 sibling, 1 reply; 14+ messages in thread
From: Krzysztof Kozlowski @ 2026-01-15 9:19 UTC (permalink / raw)
To: Anjelique Melendez
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, heikki.krogerus,
gregkh, abel.vesa, linux-arm-msm, devicetree, linux-kernel,
linux-usb
On Wed, Jan 14, 2026 at 01:17:59PM -0800, Anjelique Melendez wrote:
> Currently, the charger PD service path and service name are hard coded
> however these paths are not guaranteed to be the same between SOCs. For
> example, on Kaanapali and Glymur, Charger FW runs on SOCCP(another subsystem)
None of your commits are properly wrapped. Please use standard IDE/SW
editing tools which solve all such nits. You really should not have
received such review.
> which does not have any specific charger PDs defined.
>
> Define charger PDR service path and service name as client data so that
> each PMIC generation can properly define these paths.
>
> While at it, add qcom,kaanapali-pmic-glink and qcom,glymur-pmic-glink
> compatible strings.
This is confusing. You either do the changes because something is not
correct OR you do them because they are part of Kaanapali/Glymur. Fixing
a bug AND adding new support are two separate commits.
Find the real rationale wahy you are doing this.
>
> Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
> ---
> drivers/soc/qcom/pmic_glink.c | 66 ++++++++++++++++++++++-------------
> 1 file changed, 42 insertions(+), 24 deletions(-)
...
> -static const unsigned long pmic_glink_sm8450_client_mask = BIT(PMIC_GLINK_CLIENT_BATT) |
> - BIT(PMIC_GLINK_CLIENT_ALTMODE) |
> - BIT(PMIC_GLINK_CLIENT_UCSI);
> +static const struct pmic_glink_data pmic_glink_adsp_data = {
> + .client_mask = BIT(PMIC_GLINK_CLIENT_BATT) |
> + BIT(PMIC_GLINK_CLIENT_ALTMODE) |
> + BIT(PMIC_GLINK_CLIENT_UCSI),
> + .charger_pdr_service_name = "tms/servreg",
> + .charger_pdr_service_path = "msm/adsp/charger_pd",
> +};
> +
> +static const struct pmic_glink_data pmic_glink_soccp_data = {
> + .client_mask = BIT(PMIC_GLINK_CLIENT_BATT) |
> + BIT(PMIC_GLINK_CLIENT_ALTMODE) |
> + BIT(PMIC_GLINK_CLIENT_UCSI),
> +};
>
> static const struct of_device_id pmic_glink_of_match[] = {
> - { .compatible = "qcom,pmic-glink", .data = &pmic_glink_sm8450_client_mask },
> + { .compatible = "qcom,glymur-pmic-glink", .data = &pmic_glink_soccp_data },
> + { .compatible = "qcom,kaanapali-pmic-glink", .data = &pmic_glink_soccp_data },
So these two are compatible? This should be somewhere clarified.
> + { .compatible = "qcom,pmic-glink", .data = &pmic_glink_adsp_data },
> {}
> };
> MODULE_DEVICE_TABLE(of, pmic_glink_of_match);
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v4 4/4] soc: qcom: pmic_glink: Add charger PDR service path and service name to client data
2026-01-15 9:19 ` Krzysztof Kozlowski
@ 2026-01-15 20:00 ` Dmitry Baryshkov
0 siblings, 0 replies; 14+ messages in thread
From: Dmitry Baryshkov @ 2026-01-15 20:00 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Anjelique Melendez, andersson, konradybcio, robh, krzk+dt,
conor+dt, heikki.krogerus, gregkh, abel.vesa, linux-arm-msm,
devicetree, linux-kernel, linux-usb
On Thu, Jan 15, 2026 at 10:19:20AM +0100, Krzysztof Kozlowski wrote:
> On Wed, Jan 14, 2026 at 01:17:59PM -0800, Anjelique Melendez wrote:
> > Currently, the charger PD service path and service name are hard coded
> > however these paths are not guaranteed to be the same between SOCs. For
> > example, on Kaanapali and Glymur, Charger FW runs on SOCCP(another subsystem)
>
> None of your commits are properly wrapped. Please use standard IDE/SW
> editing tools which solve all such nits. You really should not have
> received such review.
>
> > which does not have any specific charger PDs defined.
> >
> > Define charger PDR service path and service name as client data so that
> > each PMIC generation can properly define these paths.
> >
> > While at it, add qcom,kaanapali-pmic-glink and qcom,glymur-pmic-glink
> > compatible strings.
>
> This is confusing. You either do the changes because something is not
> correct OR you do them because they are part of Kaanapali/Glymur. Fixing
> a bug AND adding new support are two separate commits.
>
> Find the real rationale wahy you are doing this.
>
> >
> > Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
> > ---
> > drivers/soc/qcom/pmic_glink.c | 66 ++++++++++++++++++++++-------------
> > 1 file changed, 42 insertions(+), 24 deletions(-)
>
> > static const struct of_device_id pmic_glink_of_match[] = {
> > - { .compatible = "qcom,pmic-glink", .data = &pmic_glink_sm8450_client_mask },
> > + { .compatible = "qcom,glymur-pmic-glink", .data = &pmic_glink_soccp_data },
> > + { .compatible = "qcom,kaanapali-pmic-glink", .data = &pmic_glink_soccp_data },
>
> So these two are compatible? This should be somewhere clarified.
I think a lot of questions (both from the patch authors and patch
reviewers) come from the fact that the actual data is spread between
several drivers (this one, UCSI, charger). I'll take a look at pushing
all the data here and then necessary bits down to aux drivers.
>
> > + { .compatible = "qcom,pmic-glink", .data = &pmic_glink_adsp_data },
> > {}
> > };
> > MODULE_DEVICE_TABLE(of, pmic_glink_of_match);
> > --
> > 2.34.1
> >
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v4 3/4] usb: typec: ucsi: ucsi_glink: Add support for X1E80100 compatible string
2026-01-15 9:14 ` Krzysztof Kozlowski
@ 2026-01-15 21:26 ` Bjorn Andersson
0 siblings, 0 replies; 14+ messages in thread
From: Bjorn Andersson @ 2026-01-15 21:26 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Anjelique Melendez, konradybcio, robh, krzk+dt, conor+dt,
heikki.krogerus, gregkh, abel.vesa, linux-arm-msm, devicetree,
linux-kernel, linux-usb
On Thu, Jan 15, 2026 at 10:14:55AM +0100, Krzysztof Kozlowski wrote:
> On Wed, Jan 14, 2026 at 01:17:58PM -0800, Anjelique Melendez wrote:
> > Add support for the X1E80100 compatible string which needs UCSI_DELAY_DEVICE_PDOS quirk.
>
> Please wrap commit message according to Linux coding style / submission
> process (neither too early nor over the limit):
> https://elixir.bootlin.com/linux/v6.4-rc1/source/Documentation/process/submitting-patches.rst#L597
>
>
> >
> > Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
> > ---
> > drivers/usb/typec/ucsi/ucsi_glink.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/usb/typec/ucsi/ucsi_glink.c b/drivers/usb/typec/ucsi/ucsi_glink.c
> > index 11b3e24e34e2..e700c6a58a46 100644
> > --- a/drivers/usb/typec/ucsi/ucsi_glink.c
> > +++ b/drivers/usb/typec/ucsi/ucsi_glink.c
> > @@ -379,6 +379,7 @@ static const struct of_device_id pmic_glink_ucsi_of_quirks[] = {
> > { .compatible = "qcom,sm8350-pmic-glink", .data = &quirk_sc8180x, },
> > { .compatible = "qcom,sm8450-pmic-glink", .data = &quirk_sm8450, },
> > { .compatible = "qcom,sm8550-pmic-glink", .data = &quirk_sm8450, },
> > + { .compatible = "qcom,x1e80100-pmic-glink", .data = &quirk_sm8450, },
>
> So is it compatible with sm8550 or not? Based on this commit it would
> be, so you need to clarify here why you decided not to make them
> compatible.
>
pmic_glink is pretty much a MFD, for this child they are compatible, but
the MFD as a whole isn't.
With the current model of naming compatible data objects by the platform
that happens to be first, this is what we get.
I find that it would be better to name the quirk objects based on what
their actual impact, something I talked with Anjelique about introducing
recently.
Regards,
Bjorn
> Best regards,
> Krzysztof
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v4 2/4] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles
2026-01-14 21:17 ` [PATCH v4 2/4] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles Anjelique Melendez
@ 2026-01-15 23:10 ` Bjorn Andersson
0 siblings, 0 replies; 14+ messages in thread
From: Bjorn Andersson @ 2026-01-15 23:10 UTC (permalink / raw)
To: Anjelique Melendez
Cc: konradybcio, robh, krzk+dt, conor+dt, heikki.krogerus, gregkh,
abel.vesa, linux-arm-msm, devicetree, linux-kernel, linux-usb
On Wed, Jan 14, 2026 at 01:17:57PM -0800, Anjelique Melendez wrote:
> Document the Kaanpali compatible string to have fallback on SM8550.
> Document the Glymur compatible string to have fallback on X1E80100.
>
> Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
> ---
> .../devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
> index 012c5661115d..13503ae79a8d 100644
> --- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
> @@ -38,12 +38,18 @@ properties:
> - const: qcom,pmic-glink
> - items:
> - enum:
> + - qcom,kaanapali-pmic-glink
> - qcom,milos-pmic-glink
> - qcom,sm8650-pmic-glink
> - qcom,sm8750-pmic-glink
> - qcom,x1e80100-pmic-glink
> - const: qcom,sm8550-pmic-glink
> - const: qcom,pmic-glink
I'm sorry, Anjelique, taking another look at this I forgot about the
soccp-angle of the problem when we spoke.
Imagine when we add the next platform, using soccp and the other
properties of the Kaanapali pmic-glink solution.
This would require us to go:
compatible = "qcom,nextgen-pmic-glink", "qcom,kaanapali-pmic-glink", "qcom,sm8550-pmic-glink", "qcom,pmic-glink";
Because qcom,nextgen-pmic-glink isn't fully compatible with
qcom,sm8550-pmic-glink - as we see in pmic_glink.c.
> + - items:
> + - enum:
> + - qcom,glymur-pmic-glink
> + - const: qcom,x1e80100-pmic-glink
> + - const: qcom,pmic-glink
And the same goes here.
So, while both of these are almost compatible with the previous mobile
and compute target, respectively, they aren't actually compatible.
The commit message of this commit needs to spell out how the features
differ in these two new targets in order for anyone to be able to say
whether this patch is makes sense or not.
Regards,
Bjorn
>
> '#address-cells':
> const: 1
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2026-01-15 23:10 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-14 21:17 [PATCH v4 0/4] soc: qcom: pmic_glink: Add support for battery management running on SOCCP Anjelique Melendez
2026-01-14 21:17 ` [PATCH v4 1/4] dt-bindings: soc: qcom: qcom,pmic-glink: Update X1E80100 compatible string Anjelique Melendez
2026-01-14 21:50 ` Dmitry Baryshkov
2026-01-15 9:13 ` Krzysztof Kozlowski
2026-01-14 21:17 ` [PATCH v4 2/4] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles Anjelique Melendez
2026-01-15 23:10 ` Bjorn Andersson
2026-01-14 21:17 ` [PATCH v4 3/4] usb: typec: ucsi: ucsi_glink: Add support for X1E80100 compatible string Anjelique Melendez
2026-01-14 21:51 ` Dmitry Baryshkov
2026-01-15 9:14 ` Krzysztof Kozlowski
2026-01-15 21:26 ` Bjorn Andersson
2026-01-14 21:17 ` [PATCH v4 4/4] soc: qcom: pmic_glink: Add charger PDR service path and service name to client data Anjelique Melendez
2026-01-14 21:52 ` Dmitry Baryshkov
2026-01-15 9:19 ` Krzysztof Kozlowski
2026-01-15 20:00 ` Dmitry Baryshkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox