All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] Add support for PMK8350 PON_HLOS PMIC peripheral
@ 2021-03-05  5:38 satya priya
  2021-03-05  5:38 ` [PATCH 1/3] input: pm8941-pwrkey: add " satya priya
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: satya priya @ 2021-03-05  5:38 UTC (permalink / raw)
  To: Dmitry Torokhov, Rob Herring, Andy Gross, Bjorn Andersson
  Cc: David Collins, kgunda, linux-input, linux-kernel, devicetree,
	linux-arm-msm, satya priya

David Collins (2):
  input: pm8941-pwrkey: add support for PMK8350 PON_HLOS PMIC peripheral
  dt-bindings: input: pm8941-pwrkey: Add pmk8350 compatible strings

satya priya (1):
  dt-bindings: input: pm8941-pwrkey: Convert power key bindings to yaml

 .../bindings/input/qcom,pm8941-pwrkey.txt          |  53 -----------
 .../bindings/input/qcom,pm8941-pwrkey.yaml         |  78 ++++++++++++++++
 drivers/input/misc/pm8941-pwrkey.c                 | 103 ++++++++++++++-------
 3 files changed, 150 insertions(+), 84 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
 create mode 100644 Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml

-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member 
of Code Aurora Forum, hosted by The Linux Foundation


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

* [PATCH 1/3] input: pm8941-pwrkey: add support for PMK8350 PON_HLOS PMIC peripheral
  2021-03-05  5:38 [PATCH 0/3] Add support for PMK8350 PON_HLOS PMIC peripheral satya priya
@ 2021-03-05  5:38 ` satya priya
  2021-04-07 15:29   ` skakit
  2021-03-05  5:38 ` [PATCH 2/3] dt-bindings: input: pm8941-pwrkey: Convert power key bindings to yaml satya priya
  2021-03-05  5:38 ` [PATCH 3/3] dt-bindings: input: pm8941-pwrkey: Add pmk8350 compatible strings satya priya
  2 siblings, 1 reply; 9+ messages in thread
From: satya priya @ 2021-03-05  5:38 UTC (permalink / raw)
  To: Dmitry Torokhov, Rob Herring, Andy Gross, Bjorn Andersson
  Cc: David Collins, kgunda, linux-input, linux-kernel, devicetree,
	linux-arm-msm, satya priya

From: David Collins <collinsd@codeaurora.org>

On Qualcomm Technologies, Inc. PMIC PMK8350, the PON peripheral
is split into two peripherals: PON_HLOS and PON_PBS.  The
application processor only has write access to PON_HLOS which
limits it to only receiving PON interrupts.

Add support for the PMK8350 PON_HLOS peripheral so that its
KPDPWR_N and RESIN_N interrupts can be used to detect key
presses.

Signed-off-by: David Collins <collinsd@codeaurora.org>
Signed-off-by: satya priya <skakit@codeaurora.org>
---
 drivers/input/misc/pm8941-pwrkey.c | 103 ++++++++++++++++++++++++++-----------
 1 file changed, 72 insertions(+), 31 deletions(-)

diff --git a/drivers/input/misc/pm8941-pwrkey.c b/drivers/input/misc/pm8941-pwrkey.c
index cf81044..2044d187 100644
--- a/drivers/input/misc/pm8941-pwrkey.c
+++ b/drivers/input/misc/pm8941-pwrkey.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
- * Copyright (c) 2010-2011, Code Aurora Forum. All rights reserved.
+ * Copyright (c) 2010-2011, 2020, The Linux Foundation. All rights reserved.
  * Copyright (c) 2014, Sony Mobile Communications Inc.
  */
 
@@ -22,6 +22,8 @@
 #define PON_RT_STS			0x10
 #define  PON_KPDPWR_N_SET		BIT(0)
 #define  PON_RESIN_N_SET		BIT(1)
+#define  PON_GEN3_RESIN_N_SET		BIT(6)
+#define  PON_GEN3_KPDPWR_N_SET		BIT(7)
 
 #define PON_PS_HOLD_RST_CTL		0x5a
 #define PON_PS_HOLD_RST_CTL2		0x5b
@@ -38,8 +40,12 @@
 #define  PON_DBC_DELAY_MASK		0x7
 
 struct pm8941_data {
-	unsigned int pull_up_bit;
-	unsigned int status_bit;
+	unsigned int	pull_up_bit;
+	unsigned int	status_bit;
+	bool		supports_ps_hold_poff_config;
+	bool		supports_debounce_config;
+	const char	*name;
+	const char	*phys;
 };
 
 struct pm8941_pwrkey {
@@ -231,34 +237,40 @@ static int pm8941_pwrkey_probe(struct platform_device *pdev)
 
 	input_set_capability(pwrkey->input, EV_KEY, pwrkey->code);
 
-	pwrkey->input->name = "pm8941_pwrkey";
-	pwrkey->input->phys = "pm8941_pwrkey/input0";
-
-	req_delay = (req_delay << 6) / USEC_PER_SEC;
-	req_delay = ilog2(req_delay);
-
-	error = regmap_update_bits(pwrkey->regmap,
-				   pwrkey->baseaddr + PON_DBC_CTL,
-				   PON_DBC_DELAY_MASK,
-				   req_delay);
-	if (error) {
-		dev_err(&pdev->dev, "failed to set debounce: %d\n", error);
-		return error;
+	pwrkey->input->name = pwrkey->data->name;
+	pwrkey->input->phys = pwrkey->data->phys;
+
+	if (pwrkey->data->supports_debounce_config) {
+		req_delay = (req_delay << 6) / USEC_PER_SEC;
+		req_delay = ilog2(req_delay);
+
+		error = regmap_update_bits(pwrkey->regmap,
+					   pwrkey->baseaddr + PON_DBC_CTL,
+					   PON_DBC_DELAY_MASK,
+					   req_delay);
+		if (error) {
+			dev_err(&pdev->dev, "failed to set debounce: %d\n",
+				error);
+			return error;
+		}
 	}
 
-	error = regmap_update_bits(pwrkey->regmap,
-				   pwrkey->baseaddr + PON_PULL_CTL,
-				   pwrkey->data->pull_up_bit,
-				   pull_up ? pwrkey->data->pull_up_bit : 0);
-	if (error) {
-		dev_err(&pdev->dev, "failed to set pull: %d\n", error);
-		return error;
+	if (pwrkey->data->pull_up_bit) {
+		error = regmap_update_bits(pwrkey->regmap,
+					   pwrkey->baseaddr + PON_PULL_CTL,
+					   pwrkey->data->pull_up_bit,
+					   pull_up ? pwrkey->data->pull_up_bit :
+						     0);
+		if (error) {
+			dev_err(&pdev->dev, "failed to set pull: %d\n", error);
+			return error;
+		}
 	}
 
 	error = devm_request_threaded_irq(&pdev->dev, pwrkey->irq,
 					  NULL, pm8941_pwrkey_irq,
 					  IRQF_ONESHOT,
-					  "pm8941_pwrkey", pwrkey);
+					  pwrkey->data->name, pwrkey);
 	if (error) {
 		dev_err(&pdev->dev, "failed requesting IRQ: %d\n", error);
 		return error;
@@ -271,12 +283,14 @@ static int pm8941_pwrkey_probe(struct platform_device *pdev)
 		return error;
 	}
 
-	pwrkey->reboot_notifier.notifier_call = pm8941_reboot_notify,
-	error = register_reboot_notifier(&pwrkey->reboot_notifier);
-	if (error) {
-		dev_err(&pdev->dev, "failed to register reboot notifier: %d\n",
-			error);
-		return error;
+	if (pwrkey->data->supports_ps_hold_poff_config) {
+		pwrkey->reboot_notifier.notifier_call = pm8941_reboot_notify,
+		error = register_reboot_notifier(&pwrkey->reboot_notifier);
+		if (error) {
+			dev_err(&pdev->dev, "failed to register reboot notifier: %d\n",
+				error);
+			return error;
+		}
 	}
 
 	platform_set_drvdata(pdev, pwrkey);
@@ -289,7 +303,8 @@ static int pm8941_pwrkey_remove(struct platform_device *pdev)
 {
 	struct pm8941_pwrkey *pwrkey = platform_get_drvdata(pdev);
 
-	unregister_reboot_notifier(&pwrkey->reboot_notifier);
+	if (pwrkey->data->supports_ps_hold_poff_config)
+		unregister_reboot_notifier(&pwrkey->reboot_notifier);
 
 	return 0;
 }
@@ -297,16 +312,42 @@ static int pm8941_pwrkey_remove(struct platform_device *pdev)
 static const struct pm8941_data pwrkey_data = {
 	.pull_up_bit = PON_KPDPWR_PULL_UP,
 	.status_bit = PON_KPDPWR_N_SET,
+	.name = "pm8941_pwrkey",
+	.phys = "pm8941_pwrkey/input0",
+	.supports_ps_hold_poff_config = true,
+	.supports_debounce_config = true,
 };
 
 static const struct pm8941_data resin_data = {
 	.pull_up_bit = PON_RESIN_PULL_UP,
 	.status_bit = PON_RESIN_N_SET,
+	.name = "pm8941_resin",
+	.phys = "pm8941_resin/input0",
+	.supports_ps_hold_poff_config = true,
+	.supports_debounce_config = true,
+};
+
+static const struct pm8941_data pon_gen3_pwrkey_data = {
+	.status_bit = PON_GEN3_KPDPWR_N_SET,
+	.name = "pmic_pwrkey",
+	.phys = "pmic_pwrkey/input0",
+	.supports_ps_hold_poff_config = false,
+	.supports_debounce_config = false,
+};
+
+static const struct pm8941_data pon_gen3_resin_data = {
+	.status_bit = PON_GEN3_RESIN_N_SET,
+	.name = "pmic_resin",
+	.phys = "pmic_resin/input0",
+	.supports_ps_hold_poff_config = false,
+	.supports_debounce_config = false,
 };
 
 static const struct of_device_id pm8941_pwr_key_id_table[] = {
 	{ .compatible = "qcom,pm8941-pwrkey", .data = &pwrkey_data },
 	{ .compatible = "qcom,pm8941-resin", .data = &resin_data },
+	{ .compatible = "qcom,pmk8350-pwrkey", .data = &pon_gen3_pwrkey_data },
+	{ .compatible = "qcom,pmk8350-resin", .data = &pon_gen3_resin_data },
 	{ }
 };
 MODULE_DEVICE_TABLE(of, pm8941_pwr_key_id_table);
-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member 
of Code Aurora Forum, hosted by The Linux Foundation


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

* [PATCH 2/3] dt-bindings: input: pm8941-pwrkey: Convert power key bindings to yaml
  2021-03-05  5:38 [PATCH 0/3] Add support for PMK8350 PON_HLOS PMIC peripheral satya priya
  2021-03-05  5:38 ` [PATCH 1/3] input: pm8941-pwrkey: add " satya priya
@ 2021-03-05  5:38 ` satya priya
  2021-03-05 14:15   ` Rob Herring
  2021-03-05 14:40   ` Rob Herring
  2021-03-05  5:38 ` [PATCH 3/3] dt-bindings: input: pm8941-pwrkey: Add pmk8350 compatible strings satya priya
  2 siblings, 2 replies; 9+ messages in thread
From: satya priya @ 2021-03-05  5:38 UTC (permalink / raw)
  To: Dmitry Torokhov, Rob Herring, Andy Gross, Bjorn Andersson
  Cc: David Collins, kgunda, linux-input, linux-kernel, devicetree,
	linux-arm-msm, satya priya

Convert power key bindings from .txt to .yaml format.

Signed-off-by: satya priya <skakit@codeaurora.org>
---
 .../bindings/input/qcom,pm8941-pwrkey.txt          | 53 ---------------
 .../bindings/input/qcom,pm8941-pwrkey.yaml         | 76 ++++++++++++++++++++++
 2 files changed, 76 insertions(+), 53 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
 create mode 100644 Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml

diff --git a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
deleted file mode 100644
index 34ab576..0000000
--- a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
+++ /dev/null
@@ -1,53 +0,0 @@
-Qualcomm PM8941 PMIC Power Key
-
-PROPERTIES
-
-- compatible:
-	Usage: required
-	Value type: <string>
-	Definition: must be one of:
-		    "qcom,pm8941-pwrkey"
-		    "qcom,pm8941-resin"
-
-- reg:
-	Usage: required
-	Value type: <prop-encoded-array>
-	Definition: base address of registers for block
-
-- interrupts:
-	Usage: required
-	Value type: <prop-encoded-array>
-	Definition: key change interrupt; The format of the specifier is
-		    defined by the binding document describing the node's
-		    interrupt parent.
-
-- debounce:
-	Usage: optional
-	Value type: <u32>
-	Definition: time in microseconds that key must be pressed or released
-		    for state change interrupt to trigger.
-
-- bias-pull-up:
-	Usage: optional
-	Value type: <empty>
-	Definition: presence of this property indicates that the KPDPWR_N pin
-		    should be configured for pull up.
-
-- linux,code:
-	Usage: optional
-	Value type: <u32>
-	Definition: The input key-code associated with the power key.
-		    Use the linux event codes defined in
-		    include/dt-bindings/input/linux-event-codes.h
-		    When property is omitted KEY_POWER is assumed.
-
-EXAMPLE
-
-	pwrkey@800 {
-		compatible = "qcom,pm8941-pwrkey";
-		reg = <0x800>;
-		interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
-		debounce = <15625>;
-		bias-pull-up;
-		linux,code = <KEY_POWER>;
-	};
diff --git a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml
new file mode 100644
index 0000000..302866d
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml
@@ -0,0 +1,76 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/qcom,pm8941-pwrkey.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm PM8941 PMIC Power Key
+
+maintainers:
+ - Courtney Cavin <courtney.cavin@sonymobile.com>
+ - Vinod Koul <vkoul@kernel.org>
+
+properties:
+  compatible:
+    enum:
+      - qcom,pm8941-pwrkey
+      - qcom,pm8941-resin
+
+  interrupts:
+    description: |
+          Key change interrupt; The format of the specifier is
+          defined by the binding document describing the node's
+          interrupt parent.
+
+  debounce:
+    description: |
+          Time in microseconds that key must be pressed or
+          released for state change interrupt to trigger.
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  bias-pull-up:
+    description: |
+           Presence of this property indicates that the KPDPWR_N
+           pin should be configured for pull up.
+    $ref: /schemas/types.yaml#/definitions/flag
+
+  linux,code:
+    description: |
+           The input key-code associated with the power key.
+           Use the linux event codes defined in
+           include/dt-bindings/input/linux-event-codes.h
+           When property is omitted KEY_POWER is assumed.
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+required:
+ - compatible
+ - interrupts
+
+additionalProperties: false
+
+examples:
+ - |
+   #include <dt-bindings/interrupt-controller/irq.h>
+   #include <dt-bindings/input/linux-event-codes.h>
+   #include <dt-bindings/spmi/spmi.h>
+   spmi_bus: spmi@c440000 {
+     reg = <0x0c440000 0x1100>;
+     #address-cells = <2>;
+     #size-cells = <0>;
+     pmk8350: pmic@0 {
+       reg = <0x0 SPMI_USID>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       pmk8350_pon: pon_hlos@1300 {
+         reg = <0x1300>;
+         pwrkey {
+            compatible = "qcom,pm8941-pwrkey";
+            interrupts = < 0x0 0x8 0 IRQ_TYPE_EDGE_BOTH >;
+            debounce = <15625>;
+            bias-pull-up;
+            linux,code = <KEY_POWER>;
+         };
+       };
+     };
+   };
+...
-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member 
of Code Aurora Forum, hosted by The Linux Foundation


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

* [PATCH 3/3] dt-bindings: input: pm8941-pwrkey: Add pmk8350 compatible strings
  2021-03-05  5:38 [PATCH 0/3] Add support for PMK8350 PON_HLOS PMIC peripheral satya priya
  2021-03-05  5:38 ` [PATCH 1/3] input: pm8941-pwrkey: add " satya priya
  2021-03-05  5:38 ` [PATCH 2/3] dt-bindings: input: pm8941-pwrkey: Convert power key bindings to yaml satya priya
@ 2021-03-05  5:38 ` satya priya
  2 siblings, 0 replies; 9+ messages in thread
From: satya priya @ 2021-03-05  5:38 UTC (permalink / raw)
  To: Dmitry Torokhov, Rob Herring, Andy Gross, Bjorn Andersson
  Cc: David Collins, kgunda, linux-input, linux-kernel, devicetree,
	linux-arm-msm, satya priya

From: David Collins <collinsd@codeaurora.org>

Add power key and resin compatible strings for the PMK8350 PMIC.
These are needed to distinguish key PON_HLOS register differences
between PMK8350 and previous PMIC PON modules.

Signed-off-by: David Collins <collinsd@codeaurora.org>
Signed-off-by: satya priya <skakit@codeaurora.org>
---
 Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml
index 302866d..32ac762 100644
--- a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml
+++ b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml
@@ -15,6 +15,8 @@ properties:
     enum:
       - qcom,pm8941-pwrkey
       - qcom,pm8941-resin
+      - qcom,pmk8350-pwrkey
+      - qcom,pmk8350-resin
 
   interrupts:
     description: |
-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member 
of Code Aurora Forum, hosted by The Linux Foundation


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

* Re: [PATCH 2/3] dt-bindings: input: pm8941-pwrkey: Convert power key bindings to yaml
  2021-03-05  5:38 ` [PATCH 2/3] dt-bindings: input: pm8941-pwrkey: Convert power key bindings to yaml satya priya
@ 2021-03-05 14:15   ` Rob Herring
  2021-03-05 14:40   ` Rob Herring
  1 sibling, 0 replies; 9+ messages in thread
From: Rob Herring @ 2021-03-05 14:15 UTC (permalink / raw)
  To: satya priya
  Cc: linux-arm-msm, linux-kernel, Bjorn Andersson, Dmitry Torokhov,
	David Collins, Andy Gross, devicetree, kgunda, Rob Herring,
	linux-input

On Fri, 05 Mar 2021 11:08:40 +0530, satya priya wrote:
> Convert power key bindings from .txt to .yaml format.
> 
> Signed-off-by: satya priya <skakit@codeaurora.org>
> ---
>  .../bindings/input/qcom,pm8941-pwrkey.txt          | 53 ---------------
>  .../bindings/input/qcom,pm8941-pwrkey.yaml         | 76 ++++++++++++++++++++++
>  2 files changed, 76 insertions(+), 53 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
>  create mode 100644 Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml
> 

My bot found errors running 'make dt_binding_check' on your patch:

yamllint warnings/errors:
./Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml:10:2: [warning] wrong indentation: expected 2 but found 1 (indentation)
./Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml:46:2: [warning] wrong indentation: expected 2 but found 1 (indentation)
./Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml:52:2: [warning] wrong indentation: expected 2 but found 1 (indentation)

dtschema/dtc warnings/errors:

See https://patchwork.ozlabs.org/patch/1447638

This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit.


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

* Re: [PATCH 2/3] dt-bindings: input: pm8941-pwrkey: Convert power key bindings to yaml
  2021-03-05  5:38 ` [PATCH 2/3] dt-bindings: input: pm8941-pwrkey: Convert power key bindings to yaml satya priya
  2021-03-05 14:15   ` Rob Herring
@ 2021-03-05 14:40   ` Rob Herring
  2021-03-25  6:12     ` skakit
  1 sibling, 1 reply; 9+ messages in thread
From: Rob Herring @ 2021-03-05 14:40 UTC (permalink / raw)
  To: satya priya
  Cc: Dmitry Torokhov, Andy Gross, Bjorn Andersson, David Collins,
	kgunda, linux-input, linux-kernel, devicetree, linux-arm-msm

On Fri, Mar 05, 2021 at 11:08:40AM +0530, satya priya wrote:
> Convert power key bindings from .txt to .yaml format.
> 
> Signed-off-by: satya priya <skakit@codeaurora.org>
> ---
>  .../bindings/input/qcom,pm8941-pwrkey.txt          | 53 ---------------
>  .../bindings/input/qcom,pm8941-pwrkey.yaml         | 76 ++++++++++++++++++++++
>  2 files changed, 76 insertions(+), 53 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
>  create mode 100644 Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml

You need to convert the main pm8941 binding first if not done already 
and then reference this binding from it.

And let's have 1 complete example instead of fragments.

> 
> diff --git a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
> deleted file mode 100644
> index 34ab576..0000000
> --- a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
> +++ /dev/null
> @@ -1,53 +0,0 @@
> -Qualcomm PM8941 PMIC Power Key
> -
> -PROPERTIES
> -
> -- compatible:
> -	Usage: required
> -	Value type: <string>
> -	Definition: must be one of:
> -		    "qcom,pm8941-pwrkey"
> -		    "qcom,pm8941-resin"
> -
> -- reg:
> -	Usage: required
> -	Value type: <prop-encoded-array>
> -	Definition: base address of registers for block
> -
> -- interrupts:
> -	Usage: required
> -	Value type: <prop-encoded-array>
> -	Definition: key change interrupt; The format of the specifier is
> -		    defined by the binding document describing the node's
> -		    interrupt parent.
> -
> -- debounce:
> -	Usage: optional
> -	Value type: <u32>
> -	Definition: time in microseconds that key must be pressed or released
> -		    for state change interrupt to trigger.
> -
> -- bias-pull-up:
> -	Usage: optional
> -	Value type: <empty>
> -	Definition: presence of this property indicates that the KPDPWR_N pin
> -		    should be configured for pull up.
> -
> -- linux,code:
> -	Usage: optional
> -	Value type: <u32>
> -	Definition: The input key-code associated with the power key.
> -		    Use the linux event codes defined in
> -		    include/dt-bindings/input/linux-event-codes.h
> -		    When property is omitted KEY_POWER is assumed.
> -
> -EXAMPLE
> -
> -	pwrkey@800 {
> -		compatible = "qcom,pm8941-pwrkey";
> -		reg = <0x800>;
> -		interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
> -		debounce = <15625>;
> -		bias-pull-up;
> -		linux,code = <KEY_POWER>;
> -	};
> diff --git a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml
> new file mode 100644
> index 0000000..302866d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml
> @@ -0,0 +1,76 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/input/qcom,pm8941-pwrkey.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm PM8941 PMIC Power Key
> +
> +maintainers:
> + - Courtney Cavin <courtney.cavin@sonymobile.com>
> + - Vinod Koul <vkoul@kernel.org>
> +
> +properties:
> +  compatible:
> +    enum:
> +      - qcom,pm8941-pwrkey
> +      - qcom,pm8941-resin
> +
> +  interrupts:
> +    description: |
> +          Key change interrupt; The format of the specifier is
> +          defined by the binding document describing the node's
> +          interrupt parent.
> +
> +  debounce:
> +    description: |
> +          Time in microseconds that key must be pressed or
> +          released for state change interrupt to trigger.
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +
> +  bias-pull-up:
> +    description: |
> +           Presence of this property indicates that the KPDPWR_N
> +           pin should be configured for pull up.
> +    $ref: /schemas/types.yaml#/definitions/flag
> +
> +  linux,code:
> +    description: |
> +           The input key-code associated with the power key.
> +           Use the linux event codes defined in
> +           include/dt-bindings/input/linux-event-codes.h
> +           When property is omitted KEY_POWER is assumed.
> +    $ref: /schemas/types.yaml#/definitions/uint32

Already has a type definition. Need to reference input.yaml.

> +
> +required:
> + - compatible
> + - interrupts
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> +   #include <dt-bindings/interrupt-controller/irq.h>
> +   #include <dt-bindings/input/linux-event-codes.h>
> +   #include <dt-bindings/spmi/spmi.h>
> +   spmi_bus: spmi@c440000 {
> +     reg = <0x0c440000 0x1100>;
> +     #address-cells = <2>;
> +     #size-cells = <0>;
> +     pmk8350: pmic@0 {
> +       reg = <0x0 SPMI_USID>;
> +       #address-cells = <1>;
> +       #size-cells = <0>;
> +       pmk8350_pon: pon_hlos@1300 {
> +         reg = <0x1300>;
> +         pwrkey {
> +            compatible = "qcom,pm8941-pwrkey";
> +            interrupts = < 0x0 0x8 0 IRQ_TYPE_EDGE_BOTH >;
> +            debounce = <15625>;
> +            bias-pull-up;
> +            linux,code = <KEY_POWER>;
> +         };
> +       };
> +     };
> +   };
> +...
> -- 
> QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member 
> of Code Aurora Forum, hosted by The Linux Foundation
> 

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

* Re: [PATCH 2/3] dt-bindings: input: pm8941-pwrkey: Convert power key bindings to yaml
  2021-03-05 14:40   ` Rob Herring
@ 2021-03-25  6:12     ` skakit
  0 siblings, 0 replies; 9+ messages in thread
From: skakit @ 2021-03-25  6:12 UTC (permalink / raw)
  To: Rob Herring
  Cc: Dmitry Torokhov, Andy Gross, Bjorn Andersson, David Collins,
	kgunda, linux-input, linux-kernel, devicetree, linux-arm-msm

Hi Rob,

On 2021-03-05 20:10, Rob Herring wrote:
> On Fri, Mar 05, 2021 at 11:08:40AM +0530, satya priya wrote:
>> Convert power key bindings from .txt to .yaml format.
>> 
>> Signed-off-by: satya priya <skakit@codeaurora.org>
>> ---
>>  .../bindings/input/qcom,pm8941-pwrkey.txt          | 53 
>> ---------------
>>  .../bindings/input/qcom,pm8941-pwrkey.yaml         | 76 
>> ++++++++++++++++++++++
>>  2 files changed, 76 insertions(+), 53 deletions(-)
>>  delete mode 100644 
>> Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
>>  create mode 100644 
>> Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml
> 
> You need to convert the main pm8941 binding first if not done already
> and then reference this binding from it.
> 

Okay.

> And let's have 1 complete example instead of fragments.
> 

Sure.

>> 
>> diff --git 
>> a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt 
>> b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
>> deleted file mode 100644
>> index 34ab576..0000000
>> --- a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
>> +++ /dev/null
>> @@ -1,53 +0,0 @@
>> -Qualcomm PM8941 PMIC Power Key
>> -
>> -PROPERTIES
>> -
>> -- compatible:
>> -	Usage: required
>> -	Value type: <string>
>> -	Definition: must be one of:
>> -		    "qcom,pm8941-pwrkey"
>> -		    "qcom,pm8941-resin"
>> -
>> -- reg:
>> -	Usage: required
>> -	Value type: <prop-encoded-array>
>> -	Definition: base address of registers for block
>> -
>> -- interrupts:
>> -	Usage: required
>> -	Value type: <prop-encoded-array>
>> -	Definition: key change interrupt; The format of the specifier is
>> -		    defined by the binding document describing the node's
>> -		    interrupt parent.
>> -
>> -- debounce:
>> -	Usage: optional
>> -	Value type: <u32>
>> -	Definition: time in microseconds that key must be pressed or 
>> released
>> -		    for state change interrupt to trigger.
>> -
>> -- bias-pull-up:
>> -	Usage: optional
>> -	Value type: <empty>
>> -	Definition: presence of this property indicates that the KPDPWR_N 
>> pin
>> -		    should be configured for pull up.
>> -
>> -- linux,code:
>> -	Usage: optional
>> -	Value type: <u32>
>> -	Definition: The input key-code associated with the power key.
>> -		    Use the linux event codes defined in
>> -		    include/dt-bindings/input/linux-event-codes.h
>> -		    When property is omitted KEY_POWER is assumed.
>> -
>> -EXAMPLE
>> -
>> -	pwrkey@800 {
>> -		compatible = "qcom,pm8941-pwrkey";
>> -		reg = <0x800>;
>> -		interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
>> -		debounce = <15625>;
>> -		bias-pull-up;
>> -		linux,code = <KEY_POWER>;
>> -	};
>> diff --git 
>> a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml 
>> b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml
>> new file mode 100644
>> index 0000000..302866d
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.yaml
>> @@ -0,0 +1,76 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/input/qcom,pm8941-pwrkey.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Qualcomm PM8941 PMIC Power Key
>> +
>> +maintainers:
>> + - Courtney Cavin <courtney.cavin@sonymobile.com>
>> + - Vinod Koul <vkoul@kernel.org>
>> +
>> +properties:
>> +  compatible:
>> +    enum:
>> +      - qcom,pm8941-pwrkey
>> +      - qcom,pm8941-resin
>> +
>> +  interrupts:
>> +    description: |
>> +          Key change interrupt; The format of the specifier is
>> +          defined by the binding document describing the node's
>> +          interrupt parent.
>> +
>> +  debounce:
>> +    description: |
>> +          Time in microseconds that key must be pressed or
>> +          released for state change interrupt to trigger.
>> +    $ref: /schemas/types.yaml#/definitions/uint32
>> +
>> +  bias-pull-up:
>> +    description: |
>> +           Presence of this property indicates that the KPDPWR_N
>> +           pin should be configured for pull up.
>> +    $ref: /schemas/types.yaml#/definitions/flag
>> +
>> +  linux,code:
>> +    description: |
>> +           The input key-code associated with the power key.
>> +           Use the linux event codes defined in
>> +           include/dt-bindings/input/linux-event-codes.h
>> +           When property is omitted KEY_POWER is assumed.
>> +    $ref: /schemas/types.yaml#/definitions/uint32
> 
> Already has a type definition. Need to reference input.yaml.
> 

Okay.

>> +
>> +required:
>> + - compatible
>> + - interrupts
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> +   #include <dt-bindings/interrupt-controller/irq.h>
>> +   #include <dt-bindings/input/linux-event-codes.h>
>> +   #include <dt-bindings/spmi/spmi.h>
>> +   spmi_bus: spmi@c440000 {
>> +     reg = <0x0c440000 0x1100>;
>> +     #address-cells = <2>;
>> +     #size-cells = <0>;
>> +     pmk8350: pmic@0 {
>> +       reg = <0x0 SPMI_USID>;
>> +       #address-cells = <1>;
>> +       #size-cells = <0>;
>> +       pmk8350_pon: pon_hlos@1300 {
>> +         reg = <0x1300>;
>> +         pwrkey {
>> +            compatible = "qcom,pm8941-pwrkey";
>> +            interrupts = < 0x0 0x8 0 IRQ_TYPE_EDGE_BOTH >;
>> +            debounce = <15625>;
>> +            bias-pull-up;
>> +            linux,code = <KEY_POWER>;
>> +         };
>> +       };
>> +     };
>> +   };
>> +...
>> --
>> QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a 
>> member
>> of Code Aurora Forum, hosted by The Linux Foundation
>> 

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

* Re: [PATCH 1/3] input: pm8941-pwrkey: add support for PMK8350 PON_HLOS PMIC peripheral
  2021-03-05  5:38 ` [PATCH 1/3] input: pm8941-pwrkey: add " satya priya
@ 2021-04-07 15:29   ` skakit
  2021-04-08  6:24     ` Dmitry Torokhov
  0 siblings, 1 reply; 9+ messages in thread
From: skakit @ 2021-04-07 15:29 UTC (permalink / raw)
  To: Dmitry Torokhov, Rob Herring, Andy Gross, Bjorn Andersson
  Cc: David Collins, kgunda, linux-input, linux-kernel, devicetree,
	linux-arm-msm

Gentle Reminder!

Thanks,
Satya Priya
On 2021-03-05 11:08, satya priya wrote:
> From: David Collins <collinsd@codeaurora.org>
> 
> On Qualcomm Technologies, Inc. PMIC PMK8350, the PON peripheral
> is split into two peripherals: PON_HLOS and PON_PBS.  The
> application processor only has write access to PON_HLOS which
> limits it to only receiving PON interrupts.
> 
> Add support for the PMK8350 PON_HLOS peripheral so that its
> KPDPWR_N and RESIN_N interrupts can be used to detect key
> presses.
> 
> Signed-off-by: David Collins <collinsd@codeaurora.org>
> Signed-off-by: satya priya <skakit@codeaurora.org>
> ---
>  drivers/input/misc/pm8941-pwrkey.c | 103 
> ++++++++++++++++++++++++++-----------
>  1 file changed, 72 insertions(+), 31 deletions(-)
> 
> diff --git a/drivers/input/misc/pm8941-pwrkey.c
> b/drivers/input/misc/pm8941-pwrkey.c
> index cf81044..2044d187 100644
> --- a/drivers/input/misc/pm8941-pwrkey.c
> +++ b/drivers/input/misc/pm8941-pwrkey.c

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

* Re: [PATCH 1/3] input: pm8941-pwrkey: add support for PMK8350 PON_HLOS PMIC peripheral
  2021-04-07 15:29   ` skakit
@ 2021-04-08  6:24     ` Dmitry Torokhov
  0 siblings, 0 replies; 9+ messages in thread
From: Dmitry Torokhov @ 2021-04-08  6:24 UTC (permalink / raw)
  To: skakit
  Cc: Rob Herring, Andy Gross, Bjorn Andersson, David Collins, kgunda,
	linux-input, linux-kernel, devicetree, linux-arm-msm

Hi Satya,

On Wed, Apr 07, 2021 at 08:59:39PM +0530, skakit@codeaurora.org wrote:
> Gentle Reminder!

Sorry, please address Rob's comments on the bindings, the driver code
looks OK to me.

Thanks.

-- 
Dmitry

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

end of thread, other threads:[~2021-04-08  6:24 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-05  5:38 [PATCH 0/3] Add support for PMK8350 PON_HLOS PMIC peripheral satya priya
2021-03-05  5:38 ` [PATCH 1/3] input: pm8941-pwrkey: add " satya priya
2021-04-07 15:29   ` skakit
2021-04-08  6:24     ` Dmitry Torokhov
2021-03-05  5:38 ` [PATCH 2/3] dt-bindings: input: pm8941-pwrkey: Convert power key bindings to yaml satya priya
2021-03-05 14:15   ` Rob Herring
2021-03-05 14:40   ` Rob Herring
2021-03-25  6:12     ` skakit
2021-03-05  5:38 ` [PATCH 3/3] dt-bindings: input: pm8941-pwrkey: Add pmk8350 compatible strings satya priya

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.