devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] soc: qcom: pmic_glink: Add support for battery management running on SOCCP
@ 2025-10-27 21:22 Anjelique Melendez
  2025-10-27 21:22 ` [PATCH v2 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles Anjelique Melendez
  2025-10-27 21:22 ` [PATCH v2 2/2] soc: qcom: pmic_glink: Add charger PDR service path and service name to client data Anjelique Melendez
  0 siblings, 2 replies; 19+ messages in thread
From: Anjelique Melendez @ 2025-10-27 21:22 UTC (permalink / raw)
  To: andersson, konradybcio, robh, krzk+dt, conor+dt
  Cc: linux-arm-msm, devicetree, linux-kernel

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.

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 (2):
  dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur
    compatibles
  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 ++++++++++++-------
 2 files changed, 49 insertions(+), 24 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH v2 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles
  2025-10-27 21:22 [PATCH v2 0/2] soc: qcom: pmic_glink: Add support for battery management running on SOCCP Anjelique Melendez
@ 2025-10-27 21:22 ` Anjelique Melendez
  2025-10-28  3:58   ` Bjorn Andersson
  2025-10-28  8:29   ` Krzysztof Kozlowski
  2025-10-27 21:22 ` [PATCH v2 2/2] soc: qcom: pmic_glink: Add charger PDR service path and service name to client data Anjelique Melendez
  1 sibling, 2 replies; 19+ messages in thread
From: Anjelique Melendez @ 2025-10-27 21:22 UTC (permalink / raw)
  To: andersson, konradybcio, robh, krzk+dt, conor+dt
  Cc: linux-arm-msm, devicetree, linux-kernel

Document the Kaanapali and Glymur compatibles used to describe the PMIC
glink on each platform.
Kaanapali will have the same battery supply properties as sm8550 platforms
so define qcom,sm8550-pmic-glink as fallback for Kaanapali.
Glymur will have the same battery supply properties as x1e80100 platforms
so define qcom,x1e80100-pmic-glink as fallback for Glymur.

Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
---
 .../devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml      | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
index 7085bf88afab..c57022109419 100644
--- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
@@ -37,12 +37,19 @@ 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,sm8550-pmic-glink
+          - const: qcom,pmic-glink
 
   '#address-cells':
     const: 1
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 2/2] soc: qcom: pmic_glink: Add charger PDR service path and service name to client data
  2025-10-27 21:22 [PATCH v2 0/2] soc: qcom: pmic_glink: Add support for battery management running on SOCCP Anjelique Melendez
  2025-10-27 21:22 ` [PATCH v2 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles Anjelique Melendez
@ 2025-10-27 21:22 ` Anjelique Melendez
  2025-10-28  9:22   ` Konrad Dybcio
  2025-10-28 17:20   ` Abel Vesa
  1 sibling, 2 replies; 19+ messages in thread
From: Anjelique Melendez @ 2025-10-27 21:22 UTC (permalink / raw)
  To: andersson, konradybcio, robh, krzk+dt, conor+dt
  Cc: linux-arm-msm, devicetree, linux-kernel

Currently, the charger PD service path and service name are hard coded
however these paths are not guaranteed to be the same between PMICs. 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 the 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 c0a4be5df926..aa5ba9a0285e 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;
+	char		*charger_pdr_service_name;
+	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;
@@ -285,7 +291,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;
@@ -302,12 +307,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),
@@ -315,27 +318,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);
@@ -345,13 +351,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);
@@ -365,23 +371,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_sm8450_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_kaanapali_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_kaanapali_data },
+	{ .compatible = "qcom,kaanapali-pmic-glink", .data = &pmic_glink_kaanapali_data },
+	{ .compatible = "qcom,pmic-glink", .data = &pmic_glink_sm8450_data },
 	{}
 };
 MODULE_DEVICE_TABLE(of, pmic_glink_of_match);
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles
  2025-10-27 21:22 ` [PATCH v2 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles Anjelique Melendez
@ 2025-10-28  3:58   ` Bjorn Andersson
  2025-10-28  8:29   ` Krzysztof Kozlowski
  1 sibling, 0 replies; 19+ messages in thread
From: Bjorn Andersson @ 2025-10-28  3:58 UTC (permalink / raw)
  To: Anjelique Melendez
  Cc: konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree,
	linux-kernel

On Mon, Oct 27, 2025 at 02:22:49PM -0700, Anjelique Melendez wrote:
> Document the Kaanapali and Glymur compatibles used to describe the PMIC
> glink on each platform.
> Kaanapali will have the same battery supply properties as sm8550 platforms
> so define qcom,sm8550-pmic-glink as fallback for Kaanapali.
> Glymur will have the same battery supply properties as x1e80100 platforms
> so define qcom,x1e80100-pmic-glink as fallback for Glymur.
> 
> Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
> ---
>  .../devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml      | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
> index 7085bf88afab..c57022109419 100644
> --- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
> @@ -37,12 +37,19 @@ properties:
>            - const: qcom,pmic-glink
>        - items:
>            - enum:
> +              - qcom,kaanapali-pmic-glink

This seems pretty reasonable, kaanapali-pmic-glink being "the same" as
sm8550-pmic-glink, just moved to a different core - with the changes
that implies.

>                - qcom,milos-pmic-glink
>                - qcom,sm8650-pmic-glink
>                - qcom,sm8750-pmic-glink
>                - qcom,x1e80100-pmic-glink

Why did we say x1e80100-pmic-glink is "the same" as sm8550-pmic-glink?

>            - const: qcom,sm8550-pmic-glink
>            - const: qcom,pmic-glink
> +      - items:
> +          - enum:
> +              - qcom,glymur-pmic-glink
> +          - const: qcom,x1e80100-pmic-glink

glymur-pmic-glink indeed has parts in common with x1e80100-pmic-glink,
so I guess that makes sense.

> +          - const: qcom,sm8550-pmic-glink

I don't think this should be here.

Regards,
Bjorn

> +          - const: qcom,pmic-glink
>  
>    '#address-cells':
>      const: 1
> -- 
> 2.34.1
> 

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles
  2025-10-27 21:22 ` [PATCH v2 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles Anjelique Melendez
  2025-10-28  3:58   ` Bjorn Andersson
@ 2025-10-28  8:29   ` Krzysztof Kozlowski
  2025-10-28  8:36     ` Krzysztof Kozlowski
  1 sibling, 1 reply; 19+ messages in thread
From: Krzysztof Kozlowski @ 2025-10-28  8:29 UTC (permalink / raw)
  To: Anjelique Melendez
  Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
	devicetree, linux-kernel

On Mon, Oct 27, 2025 at 02:22:49PM -0700, Anjelique Melendez wrote:
> Document the Kaanapali and Glymur compatibles used to describe the PMIC
> glink on each platform.
> Kaanapali will have the same battery supply properties as sm8550 platforms
> so define qcom,sm8550-pmic-glink as fallback for Kaanapali.
> Glymur will have the same battery supply properties as x1e80100 platforms
> so define qcom,x1e80100-pmic-glink as fallback for Glymur.

What does it mean "battery supply properties"? Binding does not define
them, so both paragraphs do not help me understanding the logic behind
such choice at all.

What are you describing in this binding? Battery properties? No, battery
properties go to the monitored-battery, right? So maybe you describe SW
interface...

> 
> Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
> ---
>  .../devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml      | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
> index 7085bf88afab..c57022109419 100644
> --- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
> @@ -37,12 +37,19 @@ properties:
>            - const: qcom,pmic-glink
>        - items:
>            - enum:
> +              - qcom,kaanapali-pmic-glink
>                - qcom,milos-pmic-glink
>                - qcom,sm8650-pmic-glink
>                - qcom,sm8750-pmic-glink

Why qcom,kaanapali-pmic-glink is not compatible with
qcom,sm8750-pmic-glink? If Glymur is compatible with previous
generation, I would expect that here too.

>                - 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,sm8550-pmic-glink
> +          - const: qcom,pmic-glink
>  
>    '#address-cells':
>      const: 1
> -- 
> 2.34.1
> 

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles
  2025-10-28  8:29   ` Krzysztof Kozlowski
@ 2025-10-28  8:36     ` Krzysztof Kozlowski
  2025-10-28  9:04       ` Konrad Dybcio
  2025-10-28 14:14       ` Bjorn Andersson
  0 siblings, 2 replies; 19+ messages in thread
From: Krzysztof Kozlowski @ 2025-10-28  8:36 UTC (permalink / raw)
  To: Anjelique Melendez
  Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
	devicetree, linux-kernel

On 28/10/2025 09:29, Krzysztof Kozlowski wrote:
> On Mon, Oct 27, 2025 at 02:22:49PM -0700, Anjelique Melendez wrote:
>> Document the Kaanapali and Glymur compatibles used to describe the PMIC
>> glink on each platform.
>> Kaanapali will have the same battery supply properties as sm8550 platforms
>> so define qcom,sm8550-pmic-glink as fallback for Kaanapali.
>> Glymur will have the same battery supply properties as x1e80100 platforms
>> so define qcom,x1e80100-pmic-glink as fallback for Glymur.
> 
> What does it mean "battery supply properties"? Binding does not define
> them, so both paragraphs do not help me understanding the logic behind
> such choice at all.
> 
> What are you describing in this binding? Battery properties? No, battery
> properties go to the monitored-battery, right? So maybe you describe SW
> interface...

Or maybe you describe the device that it is different? >
>>
>> Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
>> ---
>>  .../devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml      | 7 +++++++
>>  1 file changed, 7 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>> index 7085bf88afab..c57022109419 100644
>> --- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>> @@ -37,12 +37,19 @@ properties:
>>            - const: qcom,pmic-glink
>>        - items:
>>            - enum:
>> +              - qcom,kaanapali-pmic-glink
>>                - qcom,milos-pmic-glink
>>                - qcom,sm8650-pmic-glink
>>                - qcom,sm8750-pmic-glink
> 
> Why qcom,kaanapali-pmic-glink is not compatible with
> qcom,sm8750-pmic-glink? If Glymur is compatible with previous
> generation, I would expect that here too.

And again to re-iterate:

If X1E is compatible with SM8550 AND:
SM8750 is compatible with SM8550 THEN
WHY Glymur is compatible with previous generation but Kaanapali is not
compatible with previous generation?



Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles
  2025-10-28  8:36     ` Krzysztof Kozlowski
@ 2025-10-28  9:04       ` Konrad Dybcio
  2025-10-28  9:16         ` Krzysztof Kozlowski
  2025-10-28 14:14       ` Bjorn Andersson
  1 sibling, 1 reply; 19+ messages in thread
From: Konrad Dybcio @ 2025-10-28  9:04 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Anjelique Melendez
  Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
	devicetree, linux-kernel

On 10/28/25 9:36 AM, Krzysztof Kozlowski wrote:
> On 28/10/2025 09:29, Krzysztof Kozlowski wrote:
>> On Mon, Oct 27, 2025 at 02:22:49PM -0700, Anjelique Melendez wrote:
>>> Document the Kaanapali and Glymur compatibles used to describe the PMIC
>>> glink on each platform.
>>> Kaanapali will have the same battery supply properties as sm8550 platforms
>>> so define qcom,sm8550-pmic-glink as fallback for Kaanapali.
>>> Glymur will have the same battery supply properties as x1e80100 platforms
>>> so define qcom,x1e80100-pmic-glink as fallback for Glymur.
>>
>> What does it mean "battery supply properties"? Binding does not define
>> them, so both paragraphs do not help me understanding the logic behind
>> such choice at all.
>>
>> What are you describing in this binding? Battery properties? No, battery
>> properties go to the monitored-battery, right? So maybe you describe SW
>> interface...
> 
> Or maybe you describe the device that it is different? >

Certain versions of the pmic-glink stack expose services (such as battmgr)
which support different features (e.g. 8550 exposes state of health and
charge control, x1e exposes charge control, 8280 exposes neither)

There seems to be a similar situation here

>>>
>>> Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
>>> ---
>>>  .../devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml      | 7 +++++++
>>>  1 file changed, 7 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>> index 7085bf88afab..c57022109419 100644
>>> --- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>> @@ -37,12 +37,19 @@ properties:
>>>            - const: qcom,pmic-glink
>>>        - items:
>>>            - enum:
>>> +              - qcom,kaanapali-pmic-glink
>>>                - qcom,milos-pmic-glink
>>>                - qcom,sm8650-pmic-glink
>>>                - qcom,sm8750-pmic-glink
>>
>> Why qcom,kaanapali-pmic-glink is not compatible with
>> qcom,sm8750-pmic-glink? If Glymur is compatible with previous
>> generation, I would expect that here too.
> 
> And again to re-iterate:
> 
> If X1E is compatible with SM8550 AND:
> SM8750 is compatible with SM8550 THEN
> WHY Glymur is compatible with previous generation but Kaanapali is not
> compatible with previous generation?

The announcement date does not directly correlate to 'generation'

Konrad

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles
  2025-10-28  9:04       ` Konrad Dybcio
@ 2025-10-28  9:16         ` Krzysztof Kozlowski
  2025-10-28  9:19           ` Konrad Dybcio
  0 siblings, 1 reply; 19+ messages in thread
From: Krzysztof Kozlowski @ 2025-10-28  9:16 UTC (permalink / raw)
  To: Konrad Dybcio, Anjelique Melendez
  Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
	devicetree, linux-kernel

On 28/10/2025 10:04, Konrad Dybcio wrote:
> On 10/28/25 9:36 AM, Krzysztof Kozlowski wrote:
>> On 28/10/2025 09:29, Krzysztof Kozlowski wrote:
>>> On Mon, Oct 27, 2025 at 02:22:49PM -0700, Anjelique Melendez wrote:
>>>> Document the Kaanapali and Glymur compatibles used to describe the PMIC
>>>> glink on each platform.
>>>> Kaanapali will have the same battery supply properties as sm8550 platforms
>>>> so define qcom,sm8550-pmic-glink as fallback for Kaanapali.
>>>> Glymur will have the same battery supply properties as x1e80100 platforms
>>>> so define qcom,x1e80100-pmic-glink as fallback for Glymur.
>>>
>>> What does it mean "battery supply properties"? Binding does not define
>>> them, so both paragraphs do not help me understanding the logic behind
>>> such choice at all.
>>>
>>> What are you describing in this binding? Battery properties? No, battery
>>> properties go to the monitored-battery, right? So maybe you describe SW
>>> interface...
>>
>> Or maybe you describe the device that it is different? >
> 
> Certain versions of the pmic-glink stack expose services (such as battmgr)
> which support different features (e.g. 8550 exposes state of health and
> charge control, x1e exposes charge control, 8280 exposes neither)
> 
> There seems to be a similar situation here

Then say that. Otherwise it feels like describing current Linux
implementation and that would be obvious no-go. Why? Because then
argument is: change Linux driver implementation.

> 
>>>>
>>>> Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
>>>> ---
>>>>  .../devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml      | 7 +++++++
>>>>  1 file changed, 7 insertions(+)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>>> index 7085bf88afab..c57022109419 100644
>>>> --- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>>> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>>> @@ -37,12 +37,19 @@ properties:
>>>>            - const: qcom,pmic-glink
>>>>        - items:
>>>>            - enum:
>>>> +              - qcom,kaanapali-pmic-glink
>>>>                - qcom,milos-pmic-glink
>>>>                - qcom,sm8650-pmic-glink
>>>>                - qcom,sm8750-pmic-glink
>>>
>>> Why qcom,kaanapali-pmic-glink is not compatible with
>>> qcom,sm8750-pmic-glink? If Glymur is compatible with previous
>>> generation, I would expect that here too.
>>
>> And again to re-iterate:
>>
>> If X1E is compatible with SM8550 AND:
>> SM8750 is compatible with SM8550 THEN
>> WHY Glymur is compatible with previous generation but Kaanapali is not
>> compatible with previous generation?
> 
> The announcement date does not directly correlate to 'generation'
I don't know exactly this IP block/component, but in general these SoCs
follow some sort of previous design, thus term "generation" is correct
in many cases. Anyway don't be picky about wording.

You can remove the generation and statement will be the same.

If A is compatible with B AND
C is compatible with B
THEN

WHY D is compatible with (A and B) but E is not
compatible with (C and B)?

Easier for you?

Why nitpicking on wording "generation" instead of explaining the
problems or issues with bindings...


Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles
  2025-10-28  9:16         ` Krzysztof Kozlowski
@ 2025-10-28  9:19           ` Konrad Dybcio
  2025-10-28  9:21             ` Krzysztof Kozlowski
  0 siblings, 1 reply; 19+ messages in thread
From: Konrad Dybcio @ 2025-10-28  9:19 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Anjelique Melendez
  Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
	devicetree, linux-kernel

On 10/28/25 10:16 AM, Krzysztof Kozlowski wrote:
> On 28/10/2025 10:04, Konrad Dybcio wrote:
>> On 10/28/25 9:36 AM, Krzysztof Kozlowski wrote:
>>> On 28/10/2025 09:29, Krzysztof Kozlowski wrote:
>>>> On Mon, Oct 27, 2025 at 02:22:49PM -0700, Anjelique Melendez wrote:
>>>>> Document the Kaanapali and Glymur compatibles used to describe the PMIC
>>>>> glink on each platform.
>>>>> Kaanapali will have the same battery supply properties as sm8550 platforms
>>>>> so define qcom,sm8550-pmic-glink as fallback for Kaanapali.
>>>>> Glymur will have the same battery supply properties as x1e80100 platforms
>>>>> so define qcom,x1e80100-pmic-glink as fallback for Glymur.
>>>>
>>>> What does it mean "battery supply properties"? Binding does not define
>>>> them, so both paragraphs do not help me understanding the logic behind
>>>> such choice at all.
>>>>
>>>> What are you describing in this binding? Battery properties? No, battery
>>>> properties go to the monitored-battery, right? So maybe you describe SW
>>>> interface...
>>>
>>> Or maybe you describe the device that it is different? >
>>
>> Certain versions of the pmic-glink stack expose services (such as battmgr)
>> which support different features (e.g. 8550 exposes state of health and
>> charge control, x1e exposes charge control, 8280 exposes neither)
>>
>> There seems to be a similar situation here
> 
> Then say that. Otherwise it feels like describing current Linux
> implementation and that would be obvious no-go. Why? Because then
> argument is: change Linux driver implementation.
> 
>>
>>>>>
>>>>> Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
>>>>> ---
>>>>>  .../devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml      | 7 +++++++
>>>>>  1 file changed, 7 insertions(+)
>>>>>
>>>>> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>>>> index 7085bf88afab..c57022109419 100644
>>>>> --- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>>>> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>>>> @@ -37,12 +37,19 @@ properties:
>>>>>            - const: qcom,pmic-glink
>>>>>        - items:
>>>>>            - enum:
>>>>> +              - qcom,kaanapali-pmic-glink
>>>>>                - qcom,milos-pmic-glink
>>>>>                - qcom,sm8650-pmic-glink
>>>>>                - qcom,sm8750-pmic-glink
>>>>
>>>> Why qcom,kaanapali-pmic-glink is not compatible with
>>>> qcom,sm8750-pmic-glink? If Glymur is compatible with previous
>>>> generation, I would expect that here too.
>>>
>>> And again to re-iterate:
>>>
>>> If X1E is compatible with SM8550 AND:
>>> SM8750 is compatible with SM8550 THEN
>>> WHY Glymur is compatible with previous generation but Kaanapali is not
>>> compatible with previous generation?
>>
>> The announcement date does not directly correlate to 'generation'
> I don't know exactly this IP block/component, but in general these SoCs
> follow some sort of previous design, thus term "generation" is correct
> in many cases. Anyway don't be picky about wording.
> 
> You can remove the generation and statement will be the same.
> 
> If A is compatible with B AND
> C is compatible with B
> THEN
> 
> WHY D is compatible with (A and B) but E is not
> compatible with (C and B)?
> 
> Easier for you?
> 
> Why nitpicking on wording "generation" instead of explaining the
> problems or issues with bindings...

What I'm saying is that Kaanapali and Glymur are disjoint projects
that shouldn't be thought of as having a common base

Konrad

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles
  2025-10-28  9:19           ` Konrad Dybcio
@ 2025-10-28  9:21             ` Krzysztof Kozlowski
  2025-10-28  9:30               ` Krzysztof Kozlowski
  0 siblings, 1 reply; 19+ messages in thread
From: Krzysztof Kozlowski @ 2025-10-28  9:21 UTC (permalink / raw)
  To: Konrad Dybcio, Anjelique Melendez
  Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
	devicetree, linux-kernel

On 28/10/2025 10:19, Konrad Dybcio wrote:
>>>
>>>>>>
>>>>>> Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
>>>>>> ---
>>>>>>  .../devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml      | 7 +++++++
>>>>>>  1 file changed, 7 insertions(+)
>>>>>>
>>>>>> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>>>>> index 7085bf88afab..c57022109419 100644
>>>>>> --- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>>>>> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>>>>> @@ -37,12 +37,19 @@ properties:
>>>>>>            - const: qcom,pmic-glink
>>>>>>        - items:
>>>>>>            - enum:
>>>>>> +              - qcom,kaanapali-pmic-glink
>>>>>>                - qcom,milos-pmic-glink
>>>>>>                - qcom,sm8650-pmic-glink
>>>>>>                - qcom,sm8750-pmic-glink
>>>>>
>>>>> Why qcom,kaanapali-pmic-glink is not compatible with
>>>>> qcom,sm8750-pmic-glink? If Glymur is compatible with previous
>>>>> generation, I would expect that here too.
>>>>
>>>> And again to re-iterate:
>>>>
>>>> If X1E is compatible with SM8550 AND:
>>>> SM8750 is compatible with SM8550 THEN
>>>> WHY Glymur is compatible with previous generation but Kaanapali is not
>>>> compatible with previous generation?
>>>
>>> The announcement date does not directly correlate to 'generation'
>> I don't know exactly this IP block/component, but in general these SoCs
>> follow some sort of previous design, thus term "generation" is correct
>> in many cases. Anyway don't be picky about wording.
>>
>> You can remove the generation and statement will be the same.
>>
>> If A is compatible with B AND
>> C is compatible with B
>> THEN
>>
>> WHY D is compatible with (A and B) but E is not
>> compatible with (C and B)?
>>
>> Easier for you?
>>
>> Why nitpicking on wording "generation" instead of explaining the
>> problems or issues with bindings...
> 
> What I'm saying is that Kaanapali and Glymur are disjoint projects
> that shouldn't be thought of as having a common base


No, please go through my A B C D E list to understand the problem. I did
not suggest what you reply here.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 2/2] soc: qcom: pmic_glink: Add charger PDR service path and service name to client data
  2025-10-27 21:22 ` [PATCH v2 2/2] soc: qcom: pmic_glink: Add charger PDR service path and service name to client data Anjelique Melendez
@ 2025-10-28  9:22   ` Konrad Dybcio
  2025-10-28 17:20   ` Abel Vesa
  1 sibling, 0 replies; 19+ messages in thread
From: Konrad Dybcio @ 2025-10-28  9:22 UTC (permalink / raw)
  To: Anjelique Melendez, andersson, konradybcio, robh, krzk+dt,
	conor+dt
  Cc: linux-arm-msm, devicetree, linux-kernel

On 10/27/25 10:22 PM, 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 PMICs. 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 the qcom,kaanapali-pmic-glink and
> qcom,glymur-pmic-glink compatible strings.
> 
> Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
> ---

I think this change disqualifies Glymur from having a fallback to 8550,
since it couldn't have worked without ignoring the PDR

Konrad

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles
  2025-10-28  9:21             ` Krzysztof Kozlowski
@ 2025-10-28  9:30               ` Krzysztof Kozlowski
  2025-10-28 22:55                 ` Anjelique Melendez
  0 siblings, 1 reply; 19+ messages in thread
From: Krzysztof Kozlowski @ 2025-10-28  9:30 UTC (permalink / raw)
  To: Konrad Dybcio, Anjelique Melendez
  Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
	devicetree, linux-kernel

On 28/10/2025 10:21, Krzysztof Kozlowski wrote:
> On 28/10/2025 10:19, Konrad Dybcio wrote:
>>>>
>>>>>>>
>>>>>>> Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
>>>>>>> ---
>>>>>>>  .../devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml      | 7 +++++++
>>>>>>>  1 file changed, 7 insertions(+)
>>>>>>>
>>>>>>> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>>>>>> index 7085bf88afab..c57022109419 100644
>>>>>>> --- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>>>>>> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>>>>>> @@ -37,12 +37,19 @@ properties:
>>>>>>>            - const: qcom,pmic-glink
>>>>>>>        - items:
>>>>>>>            - enum:
>>>>>>> +              - qcom,kaanapali-pmic-glink
>>>>>>>                - qcom,milos-pmic-glink
>>>>>>>                - qcom,sm8650-pmic-glink
>>>>>>>                - qcom,sm8750-pmic-glink
>>>>>>
>>>>>> Why qcom,kaanapali-pmic-glink is not compatible with
>>>>>> qcom,sm8750-pmic-glink? If Glymur is compatible with previous
>>>>>> generation, I would expect that here too.
>>>>>
>>>>> And again to re-iterate:
>>>>>
>>>>> If X1E is compatible with SM8550 AND:
>>>>> SM8750 is compatible with SM8550 THEN
>>>>> WHY Glymur is compatible with previous generation but Kaanapali is not
>>>>> compatible with previous generation?
>>>>
>>>> The announcement date does not directly correlate to 'generation'
>>> I don't know exactly this IP block/component, but in general these SoCs
>>> follow some sort of previous design, thus term "generation" is correct
>>> in many cases. Anyway don't be picky about wording.
>>>
>>> You can remove the generation and statement will be the same.
>>>
>>> If A is compatible with B AND
>>> C is compatible with B
>>> THEN
>>>
>>> WHY D is compatible with (A and B) but E is not
>>> compatible with (C and B)?
>>>
>>> Easier for you?
>>>
>>> Why nitpicking on wording "generation" instead of explaining the
>>> problems or issues with bindings...
>>
>> What I'm saying is that Kaanapali and Glymur are disjoint projects
>> that shouldn't be thought of as having a common base
> 
> 
> No, please go through my A B C D E list to understand the problem. I did
> not suggest what you reply here.


Heh, and don't get me started on driver...

{ .compatible = "qcom,glymur-pmic-glink", .data =
&pmic_glink_kaanapali_data },
{ .compatible = "qcom,kaanapali-pmic-glink", .data =
&pmic_glink_kaanapali_data },

So how is now Glymur using Kaanapali, so basically compatible with it?

Even more questions I did not consider.



Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles
  2025-10-28  8:36     ` Krzysztof Kozlowski
  2025-10-28  9:04       ` Konrad Dybcio
@ 2025-10-28 14:14       ` Bjorn Andersson
  2025-11-05 13:07         ` Kamal Wadhwa
  1 sibling, 1 reply; 19+ messages in thread
From: Bjorn Andersson @ 2025-10-28 14:14 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Anjelique Melendez, konradybcio, robh, krzk+dt, conor+dt,
	linux-arm-msm, devicetree, linux-kernel

On Tue, Oct 28, 2025 at 09:36:09AM +0100, Krzysztof Kozlowski wrote:
> On 28/10/2025 09:29, Krzysztof Kozlowski wrote:
> > On Mon, Oct 27, 2025 at 02:22:49PM -0700, Anjelique Melendez wrote:
> >> Document the Kaanapali and Glymur compatibles used to describe the PMIC
> >> glink on each platform.
> >> Kaanapali will have the same battery supply properties as sm8550 platforms
> >> so define qcom,sm8550-pmic-glink as fallback for Kaanapali.
> >> Glymur will have the same battery supply properties as x1e80100 platforms
> >> so define qcom,x1e80100-pmic-glink as fallback for Glymur.
> > 
> > What does it mean "battery supply properties"? Binding does not define
> > them, so both paragraphs do not help me understanding the logic behind
> > such choice at all.
> > 
> > What are you describing in this binding? Battery properties? No, battery
> > properties go to the monitored-battery, right? So maybe you describe SW
> > interface...
> 
> Or maybe you describe the device that it is different? >
> >>
> >> Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
> >> ---
> >>  .../devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml      | 7 +++++++
> >>  1 file changed, 7 insertions(+)
> >>
> >> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
> >> index 7085bf88afab..c57022109419 100644
> >> --- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
> >> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
> >> @@ -37,12 +37,19 @@ properties:
> >>            - const: qcom,pmic-glink
> >>        - items:
> >>            - enum:
> >> +              - qcom,kaanapali-pmic-glink
> >>                - qcom,milos-pmic-glink
> >>                - qcom,sm8650-pmic-glink
> >>                - qcom,sm8750-pmic-glink
> > 
> > Why qcom,kaanapali-pmic-glink is not compatible with
> > qcom,sm8750-pmic-glink? If Glymur is compatible with previous
> > generation, I would expect that here too.
> 
> And again to re-iterate:
> 
> If X1E is compatible with SM8550 AND:
> SM8750 is compatible with SM8550 THEN
> WHY Glymur is compatible with previous generation but Kaanapali is not
> compatible with previous generation?
> 

There are effectively two different implementations of the pmic glink
firmware (in particular the interface); one designed for Windows
products and one designed for Android products.

Then for each implementation there's incremental additions over the
years.


By not accounting for this in the fallback compatibles, we're relying on
a growing list of "specific compatibles" in qcom_battmgr_of_variants[].

In addition to this, we have the addition of USB4/TBT support in Hamoa.

Enter Glymur and Kaanapali, the implementation has moved to SoCCP, so we
should no longer do the PDR stuff.


IMHO this binding should have fallbacks for the major "versions",
mobile, and compute. But perhaps even for compute/usb4, mobile/soccp and
compute/usb4/soccp?

Regards,
Bjorn

> 
> 
> Best regards,
> Krzysztof

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 2/2] soc: qcom: pmic_glink: Add charger PDR service path and service name to client data
  2025-10-27 21:22 ` [PATCH v2 2/2] soc: qcom: pmic_glink: Add charger PDR service path and service name to client data Anjelique Melendez
  2025-10-28  9:22   ` Konrad Dybcio
@ 2025-10-28 17:20   ` Abel Vesa
  2025-10-28 23:30     ` Anjelique Melendez
  1 sibling, 1 reply; 19+ messages in thread
From: Abel Vesa @ 2025-10-28 17:20 UTC (permalink / raw)
  To: Anjelique Melendez
  Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
	devicetree, linux-kernel

On 25-10-27 14:22:50, 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 PMICs. 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 the 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 c0a4be5df926..aa5ba9a0285e 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;
> +	char		*charger_pdr_service_name;
> +	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;
> @@ -285,7 +291,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;
> @@ -302,12 +307,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),
> @@ -315,27 +318,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;
> +		}
>  	}

But this does nothing on Kaanapali and Glymur. Am I wrong?

Yes, you do not have a charger PD on Glymur, but you do have an ssr,
for which you do need to register a notifier instead.

You need to be doing something like this:
https://gitlab.com/Linaro/arm64-laptops/linux/-/commit/2cd84e303d263d8fd5de3730714a16c29cc6788b

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles
  2025-10-28  9:30               ` Krzysztof Kozlowski
@ 2025-10-28 22:55                 ` Anjelique Melendez
  2025-10-29  5:26                   ` Krzysztof Kozlowski
  0 siblings, 1 reply; 19+ messages in thread
From: Anjelique Melendez @ 2025-10-28 22:55 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Konrad Dybcio
  Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
	devicetree, linux-kernel



On 10/28/2025 2:30 AM, Krzysztof Kozlowski wrote:
> On 28/10/2025 10:21, Krzysztof Kozlowski wrote:
>> On 28/10/2025 10:19, Konrad Dybcio wrote:
>>>>>
>>>>>>>>
>>>>>>>> Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
>>>>>>>> ---
>>>>>>>>   .../devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml      | 7 +++++++
>>>>>>>>   1 file changed, 7 insertions(+)
>>>>>>>>
>>>>>>>> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>>>>>>> index 7085bf88afab..c57022109419 100644
>>>>>>>> --- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>>>>>>> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>>>>>>> @@ -37,12 +37,19 @@ properties:
>>>>>>>>             - const: qcom,pmic-glink
>>>>>>>>         - items:
>>>>>>>>             - enum:
>>>>>>>> +              - qcom,kaanapali-pmic-glink
>>>>>>>>                 - qcom,milos-pmic-glink
>>>>>>>>                 - qcom,sm8650-pmic-glink
>>>>>>>>                 - qcom,sm8750-pmic-glink
>>>>>>>
>>>>>>> Why qcom,kaanapali-pmic-glink is not compatible with
>>>>>>> qcom,sm8750-pmic-glink? If Glymur is compatible with previous
>>>>>>> generation, I would expect that here too.
>>>>>>
>>>>>> And again to re-iterate:
>>>>>>
>>>>>> If X1E is compatible with SM8550 AND:
>>>>>> SM8750 is compatible with SM8550 THEN
>>>>>> WHY Glymur is compatible with previous generation but Kaanapali is not
>>>>>> compatible with previous generation?
>>>>>
>>>>> The announcement date does not directly correlate to 'generation'
>>>> I don't know exactly this IP block/component, but in general these SoCs
>>>> follow some sort of previous design, thus term "generation" is correct
>>>> in many cases. Anyway don't be picky about wording.
>>>>
>>>> You can remove the generation and statement will be the same.
>>>>
>>>> If A is compatible with B AND
>>>> C is compatible with B
>>>> THEN
>>>>
>>>> WHY D is compatible with (A and B) but E is not
>>>> compatible with (C and B)?

I think some of the confusion is relating to both UCSI and battmngr aux 
drivers using SM8550 as compatible strings...

Really we should be thinking about this as:

	SM8750 is compatible with SM8550 UCSI and SM8550 BATTMGR
	X1E is compatible with SM8550 UCSI and X1E BATTMGR

or
	A is compatible with B and C
	E is compatible with B and D


More specifically:

SM8750 has the same UCSI quirks (UCSI_DELAY_DEVICE_PDOS) as SM8550, so 
we would want to use SM8550 compatible string in UCSI driver.
SM8750 also exposes the same features, state of health and charge 
control, in battmgr driver, so should use the SM8550 compatible string 
for battmgr driver as well.

Like SM8750, X1E has the same UCSI quirks (UCSI_DELAY_DEVICE_PDOS) as 
SM8550, so will use the SM8550 compatible.
BUT X1E only wants to have charge control exposed in battmngr driver. So 
instead of using the SM8550 compatible, we should use the X1E compatible 
in battmgr driver [1]



Now we have Kaanapali and Glymur being introduced...

Kaanapali IS compatible with SM8750, however since SM8750 did not 
introduce any new "quirks" or features that Kaanapali should inherit, we 
can simply define Kaanapali as compatible as SM8550 as well.

Glymur IS compatible with X1E and since X1E introduces a new "feature" 
that we would like Glymur to inherit, we need to explicitly defined 
Glymur as compatible to X1E.



If the reuse of SM8550 as compatible in both drivers is causing 
confusion, perhaps we instead add an X1E compatible string to the UCSI 
driver. i.e.

--- a/drivers/usb/typec/ucsi/ucsi_glink.c
+++ b/drivers/usb/typec/ucsi/ucsi_glink.c
@@ -319,6 +319,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, },
     {}
  };



Then we can have the bindings like:

--- 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:
@@ -37,12 +38,17 @@ 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


[1] 
https://lore.kernel.org/all/20250917-qcom_battmgr_update-v5-5-270ade9ffe13@oss.qualcomm.com/
> 
> 
> Heh, and don't get me started on driver...
> 
> { .compatible = "qcom,glymur-pmic-glink", .data =
> &pmic_glink_kaanapali_data },
> { .compatible = "qcom,kaanapali-pmic-glink", .data =
> &pmic_glink_kaanapali_data },
> 
> So how is now Glymur using Kaanapali, so basically compatible with it?
> 
> Even more questions I did not consider.
> 
> 

Both Kaanapali and Glymur are running on SOCCP, so we should not define 
PDR paths. Since both platforms have will have the same pmic_glink 
services running(i.e. altmode, ucsi, and battmgr),we can reuse the 
pmic_glink_data for both. I have no problem with instead defining 
pmic_glink_kaanapali_data and pmic_glink_glymur_data separately but I 
figured upstream would not like code reuse.


> 
> Best regards,
> Krzysztof


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 2/2] soc: qcom: pmic_glink: Add charger PDR service path and service name to client data
  2025-10-28 17:20   ` Abel Vesa
@ 2025-10-28 23:30     ` Anjelique Melendez
  2025-10-29  8:41       ` Abel Vesa
  0 siblings, 1 reply; 19+ messages in thread
From: Anjelique Melendez @ 2025-10-28 23:30 UTC (permalink / raw)
  To: Abel Vesa
  Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
	devicetree, linux-kernel



On 10/28/2025 10:20 AM, Abel Vesa wrote:
> On 25-10-27 14:22:50, Anjelique Melendez wrote:

>> -		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;
>> +		}
>>   	}
> 
> But this does nothing on Kaanapali and Glymur. Am I wrong?
> 
> Yes, you do not have a charger PD on Glymur, but you do have an ssr,
> for which you do need to register a notifier instead.
> 
> You need to be doing something like this:
> https://gitlab.com/Linaro/arm64-laptops/linux/-/commit/2cd84e303d263d8fd5de3730714a16c29cc6788b

Please take a look at this change, just applied: 
https://lore.kernel.org/all/20250919175025.2988948-1-anjelique.melendez@oss.qualcomm.com/.


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles
  2025-10-28 22:55                 ` Anjelique Melendez
@ 2025-10-29  5:26                   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 19+ messages in thread
From: Krzysztof Kozlowski @ 2025-10-29  5:26 UTC (permalink / raw)
  To: Anjelique Melendez, Konrad Dybcio
  Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
	devicetree, linux-kernel

On 28/10/2025 23:55, Anjelique Melendez wrote:
> 
> 
> On 10/28/2025 2:30 AM, Krzysztof Kozlowski wrote:
>> On 28/10/2025 10:21, Krzysztof Kozlowski wrote:
>>> On 28/10/2025 10:19, Konrad Dybcio wrote:
>>>>>>
>>>>>>>>>
>>>>>>>>> Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
>>>>>>>>> ---
>>>>>>>>>   .../devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml      | 7 +++++++
>>>>>>>>>   1 file changed, 7 insertions(+)
>>>>>>>>>
>>>>>>>>> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>>>>>>>> index 7085bf88afab..c57022109419 100644
>>>>>>>>> --- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>>>>>>>> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>>>>>>>>> @@ -37,12 +37,19 @@ properties:
>>>>>>>>>             - const: qcom,pmic-glink
>>>>>>>>>         - items:
>>>>>>>>>             - enum:
>>>>>>>>> +              - qcom,kaanapali-pmic-glink
>>>>>>>>>                 - qcom,milos-pmic-glink
>>>>>>>>>                 - qcom,sm8650-pmic-glink
>>>>>>>>>                 - qcom,sm8750-pmic-glink
>>>>>>>>
>>>>>>>> Why qcom,kaanapali-pmic-glink is not compatible with
>>>>>>>> qcom,sm8750-pmic-glink? If Glymur is compatible with previous
>>>>>>>> generation, I would expect that here too.
>>>>>>>
>>>>>>> And again to re-iterate:
>>>>>>>
>>>>>>> If X1E is compatible with SM8550 AND:
>>>>>>> SM8750 is compatible with SM8550 THEN
>>>>>>> WHY Glymur is compatible with previous generation but Kaanapali is not
>>>>>>> compatible with previous generation?
>>>>>>
>>>>>> The announcement date does not directly correlate to 'generation'
>>>>> I don't know exactly this IP block/component, but in general these SoCs
>>>>> follow some sort of previous design, thus term "generation" is correct
>>>>> in many cases. Anyway don't be picky about wording.
>>>>>
>>>>> You can remove the generation and statement will be the same.
>>>>>
>>>>> If A is compatible with B AND
>>>>> C is compatible with B
>>>>> THEN
>>>>>
>>>>> WHY D is compatible with (A and B) but E is not
>>>>> compatible with (C and B)?
> 
> I think some of the confusion is relating to both UCSI and battmngr aux 
> drivers using SM8550 as compatible strings...
> 
> Really we should be thinking about this as:
> 
> 	SM8750 is compatible with SM8550 UCSI and SM8550 BATTMGR
> 	X1E is compatible with SM8550 UCSI and X1E BATTMGR

That's not what I said there. We don't speak here about these.

We speak ONLY about this compatible. How you map your compatible to
UCSI, BATTMGR, FOO and BAR does not matter, although I asked about
re-using of Kaanapali drvdata in one of my last replies.

> 
> or
> 	A is compatible with B and C
> 	E is compatible with B and D

No, that was just because Konrad got focused on word "generation". Use
my earlier comment.

> 
> 
> More specifically:
> 
> SM8750 has the same UCSI quirks (UCSI_DELAY_DEVICE_PDOS) as SM8550, so 
> we would want to use SM8550 compatible string in UCSI driver.
> SM8750 also exposes the same features, state of health and charge 
> control, in battmgr driver, so should use the SM8550 compatible string 
> for battmgr driver as well.
> 
> Like SM8750, X1E has the same UCSI quirks (UCSI_DELAY_DEVICE_PDOS) as 
> SM8550, so will use the SM8550 compatible.
> BUT X1E only wants to have charge control exposed in battmngr driver. So 
> instead of using the SM8550 compatible, we should use the X1E compatible 
> in battmgr driver [1]
> 
> 
> 
> Now we have Kaanapali and Glymur being introduced...
> 
> Kaanapali IS compatible with SM8750, however since SM8750 did not 
> introduce any new "quirks" or features that Kaanapali should inherit, we 
> can simply define Kaanapali as compatible as SM8550 as well.
> 
> Glymur IS compatible with X1E and since X1E introduces a new "feature" 
> that we would like Glymur to inherit, we need to explicitly defined 
> Glymur as compatible to X1E.

I don't understand whether you are explaining your patch - why it is
done like that - or agreeing that your patch is wrong.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 2/2] soc: qcom: pmic_glink: Add charger PDR service path and service name to client data
  2025-10-28 23:30     ` Anjelique Melendez
@ 2025-10-29  8:41       ` Abel Vesa
  0 siblings, 0 replies; 19+ messages in thread
From: Abel Vesa @ 2025-10-29  8:41 UTC (permalink / raw)
  To: Anjelique Melendez
  Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
	devicetree, linux-kernel

On 25-10-28 16:30:28, Anjelique Melendez wrote:
> 
> 
> On 10/28/2025 10:20 AM, Abel Vesa wrote:
> > On 25-10-27 14:22:50, Anjelique Melendez wrote:
> 
> > > -		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;
> > > +		}
> > >   	}
> > 
> > But this does nothing on Kaanapali and Glymur. Am I wrong?
> > 
> > Yes, you do not have a charger PD on Glymur, but you do have an ssr,
> > for which you do need to register a notifier instead.
> > 
> > You need to be doing something like this:
> > https://gitlab.com/Linaro/arm64-laptops/linux/-/commit/2cd84e303d263d8fd5de3730714a16c29cc6788b
> 
> Please take a look at this change, just applied: https://lore.kernel.org/all/20250919175025.2988948-1-anjelique.melendez@oss.qualcomm.com/.

Fair enough. I think your approach is even cleaner.

Thanks.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles
  2025-10-28 14:14       ` Bjorn Andersson
@ 2025-11-05 13:07         ` Kamal Wadhwa
  0 siblings, 0 replies; 19+ messages in thread
From: Kamal Wadhwa @ 2025-11-05 13:07 UTC (permalink / raw)
  To: Bjorn Andersson
  Cc: Krzysztof Kozlowski, Anjelique Melendez, konradybcio, robh,
	krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel

On Tue, Oct 28, 2025 at 09:14:10AM -0500, Bjorn Andersson wrote:
> On Tue, Oct 28, 2025 at 09:36:09AM +0100, Krzysztof Kozlowski wrote:
> > On 28/10/2025 09:29, Krzysztof Kozlowski wrote:
> > > On Mon, Oct 27, 2025 at 02:22:49PM -0700, Anjelique Melendez wrote:
> > >> Document the Kaanapali and Glymur compatibles used to describe the PMIC
> > >> glink on each platform.
> > >> Kaanapali will have the same battery supply properties as sm8550 platforms
> > >> so define qcom,sm8550-pmic-glink as fallback for Kaanapali.
> > >> Glymur will have the same battery supply properties as x1e80100 platforms
> > >> so define qcom,x1e80100-pmic-glink as fallback for Glymur.
> > > 
> > > What does it mean "battery supply properties"? Binding does not define
> > > them, so both paragraphs do not help me understanding the logic behind
> > > such choice at all.
> > > 
> > > What are you describing in this binding? Battery properties? No, battery
> > > properties go to the monitored-battery, right? So maybe you describe SW
> > > interface...
> > 
> > Or maybe you describe the device that it is different? >
> > >>
> > >> Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
> > >> ---
> > >>  .../devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml      | 7 +++++++
> > >>  1 file changed, 7 insertions(+)
> > >>
> > >> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
> > >> index 7085bf88afab..c57022109419 100644
> > >> --- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
> > >> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
> > >> @@ -37,12 +37,19 @@ properties:
> > >>            - const: qcom,pmic-glink
> > >>        - items:
> > >>            - enum:
> > >> +              - qcom,kaanapali-pmic-glink
> > >>                - qcom,milos-pmic-glink
> > >>                - qcom,sm8650-pmic-glink
> > >>                - qcom,sm8750-pmic-glink
> > > 
> > > Why qcom,kaanapali-pmic-glink is not compatible with
> > > qcom,sm8750-pmic-glink? If Glymur is compatible with previous
> > > generation, I would expect that here too.
> > 
> > And again to re-iterate:
> > 
> > If X1E is compatible with SM8550 AND:
> > SM8750 is compatible with SM8550 THEN
> > WHY Glymur is compatible with previous generation but Kaanapali is not
> > compatible with previous generation?
> > 
> 
> There are effectively two different implementations of the pmic glink
> firmware (in particular the interface); one designed for Windows
> products and one designed for Android products.
> 
> Then for each implementation there's incremental additions over the
> years.
> 
> 
> By not accounting for this in the fallback compatibles, we're relying on
> a growing list of "specific compatibles" in qcom_battmgr_of_variants[].
> 
> In addition to this, we have the addition of USB4/TBT support in Hamoa.
> 
> Enter Glymur and Kaanapali, the implementation has moved to SoCCP, so we
> should no longer do the PDR stuff.
> 
> 
> IMHO this binding should have fallbacks for the major "versions",
> mobile, and compute. But perhaps even for compute/usb4, mobile/soccp and
> compute/usb4/soccp?

Thanks! this makes sense. Then should we do this way..
- We do not touch the existing "ADSP based mobile/compute" items
- Add 2 new items for SoCCP based targets for - MOBILE-SoCCP & COMPUTE-SoCCP
like below?

      - items:
          - enum:
              - 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,kaanapali-pmic-glink       /* MOBILE - SoCCP for pmicglink No PDR */
+         - const: qcom,sm8550-pmic-glink       /* battmgr - mobile    */
+         - const: qcom,pmic-glink
+     - items:
+         - enum:
+            - qcom,glymur-pmic-glink          /* COMPUTE - SoCCP */
+         - const: qcom,kaanapali-pmic-glink    /* pmic-glink (SoCCP/ No PDR) */
+         - const: qcom,x1e80100-pmic-glink     /* battmgr - Compute    */
+         - const: qcom,sm8550-pmic-glink       /* ucsi */
+         - const: qcom,pmic-glink

Regards,
Kamal

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2025-11-05 13:07 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-27 21:22 [PATCH v2 0/2] soc: qcom: pmic_glink: Add support for battery management running on SOCCP Anjelique Melendez
2025-10-27 21:22 ` [PATCH v2 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add Kaanapali and Glymur compatibles Anjelique Melendez
2025-10-28  3:58   ` Bjorn Andersson
2025-10-28  8:29   ` Krzysztof Kozlowski
2025-10-28  8:36     ` Krzysztof Kozlowski
2025-10-28  9:04       ` Konrad Dybcio
2025-10-28  9:16         ` Krzysztof Kozlowski
2025-10-28  9:19           ` Konrad Dybcio
2025-10-28  9:21             ` Krzysztof Kozlowski
2025-10-28  9:30               ` Krzysztof Kozlowski
2025-10-28 22:55                 ` Anjelique Melendez
2025-10-29  5:26                   ` Krzysztof Kozlowski
2025-10-28 14:14       ` Bjorn Andersson
2025-11-05 13:07         ` Kamal Wadhwa
2025-10-27 21:22 ` [PATCH v2 2/2] soc: qcom: pmic_glink: Add charger PDR service path and service name to client data Anjelique Melendez
2025-10-28  9:22   ` Konrad Dybcio
2025-10-28 17:20   ` Abel Vesa
2025-10-28 23:30     ` Anjelique Melendez
2025-10-29  8:41       ` Abel Vesa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).