All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/6] input: pm8941-pwrkey: Add support for reboot reason
@ 2018-06-28 15:08 Vinod Koul
  2018-06-28 15:08 ` [PATCH v5 1/6] dt-bindings: power: reset: Add qcom pon binding Vinod Koul
                   ` (5 more replies)
  0 siblings, 6 replies; 16+ messages in thread
From: Vinod Koul @ 2018-06-28 15:08 UTC (permalink / raw)
  To: linux-input, linux-pm
  Cc: Bjorn Andersson, Dmitry Torokhov, Rob Herring, Sebastian Reichel,
	devicetree, linux-arm-msm, Vinod Koul

To add support for reboot reason there have been some attempts [1], [2]
in past. Based on these discussions we added a new pon driver and made
pwrkey and resin as child nodes to pon.

Since the pwrkey and resin are similar, abstract pwrkey driver
and then add support for resin in the same driver.

Since the patches touch reset and input subsystems, it would be nice if
folks can ACK and we carry thru one subsystem, I would prefer that to be
input, other way would work fine too.

[1]: https://patchwork.kernel.org/patch/9751627/
[2]: https://patchwork.kernel.org/patch/10381801/

Changes in v5:
 - Make pon driver tristate

Changes in v4:
 - Add Rob's ack
 - Fix typo and description in pon binding
 - Separate out resin binding to an independent patch

Changes in v3:
 - Add Bjorn's ack
 - Make variable for event code u32

Changes in v2:
 - Add Bjorn's ack
 - Fix power binding by removing reg property
 - Use single block for parent check in pm8941-pwrkey as suggested by
   Dimitry

Vinod Koul (6):
  dt-bindings: power: reset: Add qcom pon binding
  power: reset: qcom-pon: Add Qcom PON driver
  dt-bindings: Input: Add additional property to qcom pwrkey
  input: pm8941-pwrkey: Abstract register offsets and event code
  dt-bindings: power: reset: qcom: Add resin binding
  input: pm8941-pwrkey: Add resin entry

 .../bindings/input/qcom,pm8941-pwrkey.txt          | 10 +++
 .../devicetree/bindings/power/reset/qcom,pon.txt   | 45 +++++++++++
 drivers/input/misc/pm8941-pwrkey.c                 | 69 ++++++++++++----
 drivers/power/reset/Kconfig                        | 11 +++
 drivers/power/reset/Makefile                       |  1 +
 drivers/power/reset/qcom-pon.c                     | 91 ++++++++++++++++++++++
 6 files changed, 214 insertions(+), 13 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/power/reset/qcom,pon.txt
 create mode 100644 drivers/power/reset/qcom-pon.c

-- 
2.14.4

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

* [PATCH v5 1/6] dt-bindings: power: reset: Add qcom pon binding
  2018-06-28 15:08 [PATCH v5 0/6] input: pm8941-pwrkey: Add support for reboot reason Vinod Koul
@ 2018-06-28 15:08 ` Vinod Koul
  2018-07-03 17:19   ` Rob Herring
  2018-07-06 13:57   ` Sebastian Reichel
  2018-06-28 15:08 ` [PATCH v5 2/6] power: reset: qcom-pon: Add Qcom PON driver Vinod Koul
                   ` (4 subsequent siblings)
  5 siblings, 2 replies; 16+ messages in thread
From: Vinod Koul @ 2018-06-28 15:08 UTC (permalink / raw)
  To: linux-input, linux-pm
  Cc: Bjorn Andersson, Dmitry Torokhov, Rob Herring, Sebastian Reichel,
	devicetree, linux-arm-msm, Vinod Koul

The Power On device for Qcom PM 8xxx is a MFD supporting pwrkey and
resin along with the Android reboot-mode.

Add the binding describing this.

Suggested-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
---
 .../devicetree/bindings/power/reset/qcom,pon.txt   | 35 ++++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/power/reset/qcom,pon.txt

diff --git a/Documentation/devicetree/bindings/power/reset/qcom,pon.txt b/Documentation/devicetree/bindings/power/reset/qcom,pon.txt
new file mode 100644
index 000000000000..f32cdd358267
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/reset/qcom,pon.txt
@@ -0,0 +1,35 @@
+Qualcomm PON Device
+
+The Power On device for Qualcomm PM8xxx is MFD supporting pwrkey
+along with the Android reboot-mode.
+
+This DT node has pwrkey as sub node.
+
+Required Properties:
+-compatible: "qcom,pm8916-pon"
+-reg: Specifies the physical address of the pon register
+
+Optional subnode:
+-pwrkey: Specifies the subnode pwrkey and should follow the
+ qcom,pm8941-pwrkey.txt description.
+
+The rest of the properties should follow the generic reboot-mode description
+found in reboot-mode.txt
+
+Example:
+
+	pon@800 {
+		compatible = "qcom,pm8916-pon";
+
+		reg = <0x800>;
+		mode-bootloader = <0x2>;
+		mode-recovery = <0x1>;
+
+		pwrkey {
+			compatible = "qcom,pm8941-pwrkey";
+			interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
+			debounce = <15625>;
+			bias-pull-up;
+			linux,code = <KEY_POWER>;
+		};
+	};
-- 
2.14.4

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

* [PATCH v5 2/6] power: reset: qcom-pon: Add Qcom PON driver
  2018-06-28 15:08 [PATCH v5 0/6] input: pm8941-pwrkey: Add support for reboot reason Vinod Koul
  2018-06-28 15:08 ` [PATCH v5 1/6] dt-bindings: power: reset: Add qcom pon binding Vinod Koul
@ 2018-06-28 15:08 ` Vinod Koul
  2018-07-06  6:33   ` Vinod
  2018-07-06 13:58   ` Sebastian Reichel
  2018-06-28 15:08 ` [PATCH v5 3/6] dt-bindings: Input: Add additional property to qcom pwrkey Vinod Koul
                   ` (3 subsequent siblings)
  5 siblings, 2 replies; 16+ messages in thread
From: Vinod Koul @ 2018-06-28 15:08 UTC (permalink / raw)
  To: linux-input, linux-pm
  Cc: Bjorn Andersson, Dmitry Torokhov, Rob Herring, Sebastian Reichel,
	devicetree, linux-arm-msm, Vinod Koul

Add support Qualcomm PM8xxx PON which is responsible for reboot
mode support.

Co-developed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
---
 drivers/power/reset/Kconfig    | 11 +++++
 drivers/power/reset/Makefile   |  1 +
 drivers/power/reset/qcom-pon.c | 91 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 103 insertions(+)
 create mode 100644 drivers/power/reset/qcom-pon.c

diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig
index df58fc878b3e..6533aa560aa1 100644
--- a/drivers/power/reset/Kconfig
+++ b/drivers/power/reset/Kconfig
@@ -104,6 +104,17 @@ config POWER_RESET_MSM
 	help
 	  Power off and restart support for Qualcomm boards.
 
+config POWER_RESET_QCOM_PON
+	tristate "Qualcomm power-on driver"
+	depends on ARCH_QCOM
+	depends on MFD_SPMI_PMIC
+	select REBOOT_MODE
+	help
+	  Power On support for Qualcomm boards.
+	  If you have a Qualcomm platform and need support for
+	  power-on and reboot reason, Say Y.
+	  If unsure, Say N.
+
 config POWER_RESET_OCELOT_RESET
 	bool "Microsemi Ocelot reset driver"
 	depends on MSCC_OCELOT || COMPILE_TEST
diff --git a/drivers/power/reset/Makefile b/drivers/power/reset/Makefile
index 7778c7485cf1..0aebee954ac1 100644
--- a/drivers/power/reset/Makefile
+++ b/drivers/power/reset/Makefile
@@ -11,6 +11,7 @@ obj-$(CONFIG_POWER_RESET_GPIO) += gpio-poweroff.o
 obj-$(CONFIG_POWER_RESET_GPIO_RESTART) += gpio-restart.o
 obj-$(CONFIG_POWER_RESET_HISI) += hisi-reboot.o
 obj-$(CONFIG_POWER_RESET_MSM) += msm-poweroff.o
+obj-$(CONFIG_POWER_RESET_QCOM_PON) += qcom-pon.o
 obj-$(CONFIG_POWER_RESET_OCELOT_RESET) += ocelot-reset.o
 obj-$(CONFIG_POWER_RESET_PIIX4_POWEROFF) += piix4-poweroff.o
 obj-$(CONFIG_POWER_RESET_LTC2952) += ltc2952-poweroff.o
diff --git a/drivers/power/reset/qcom-pon.c b/drivers/power/reset/qcom-pon.c
new file mode 100644
index 000000000000..0c4caaa7e88f
--- /dev/null
+++ b/drivers/power/reset/qcom-pon.c
@@ -0,0 +1,91 @@
+// SPDX-License-Identifier: GPL-2.0
+// Copyright (c) 2017-18 Linaro Limited
+
+#include <linux/delay.h>
+#include <linux/errno.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/of_platform.h>
+#include <linux/platform_device.h>
+#include <linux/reboot.h>
+#include <linux/reboot-mode.h>
+#include <linux/regmap.h>
+
+#define PON_SOFT_RB_SPARE		0x8f
+
+struct pm8916_pon {
+	struct device *dev;
+	struct regmap *regmap;
+	u32 baseaddr;
+	struct reboot_mode_driver reboot_mode;
+};
+
+static int pm8916_reboot_mode_write(struct reboot_mode_driver *reboot,
+				    unsigned int magic)
+{
+	struct pm8916_pon *pon = container_of
+			(reboot, struct pm8916_pon, reboot_mode);
+	int ret;
+
+	ret = regmap_update_bits(pon->regmap,
+				 pon->baseaddr + PON_SOFT_RB_SPARE,
+				 0xfc, magic << 2);
+	if (ret < 0)
+		dev_err(pon->dev, "update reboot mode bits failed\n");
+
+	return ret;
+}
+
+static int pm8916_pon_probe(struct platform_device *pdev)
+{
+	struct pm8916_pon *pon;
+	int error;
+
+	pon = devm_kzalloc(&pdev->dev, sizeof(*pon), GFP_KERNEL);
+	if (!pon)
+		return -ENOMEM;
+
+	pon->dev = &pdev->dev;
+
+	pon->regmap = dev_get_regmap(pdev->dev.parent, NULL);
+	if (!pon->regmap) {
+		dev_err(&pdev->dev, "failed to locate regmap\n");
+		return -ENODEV;
+	}
+
+	error = of_property_read_u32(pdev->dev.of_node, "reg",
+				     &pon->baseaddr);
+	if (error)
+		return error;
+
+	pon->reboot_mode.dev = &pdev->dev;
+	pon->reboot_mode.write = pm8916_reboot_mode_write;
+	error = devm_reboot_mode_register(&pdev->dev, &pon->reboot_mode);
+	if (error) {
+		dev_err(&pdev->dev, "can't register reboot mode\n");
+		return error;
+	}
+
+	platform_set_drvdata(pdev, pon);
+
+	return devm_of_platform_populate(&pdev->dev);
+}
+
+static const struct of_device_id pm8916_pon_id_table[] = {
+	{ .compatible = "qcom,pm8916-pon" },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, pm8916_pon_id_table);
+
+static struct platform_driver pm8916_pon_driver = {
+	.probe = pm8916_pon_probe,
+	.driver = {
+		.name = "pm8916-pon",
+		.of_match_table = of_match_ptr(pm8916_pon_id_table),
+	},
+};
+module_platform_driver(pm8916_pon_driver);
+
+MODULE_DESCRIPTION("pm8916 Power On driver");
+MODULE_LICENSE("GPL v2");
-- 
2.14.4

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

* [PATCH v5 3/6] dt-bindings: Input: Add additional property to qcom pwrkey
  2018-06-28 15:08 [PATCH v5 0/6] input: pm8941-pwrkey: Add support for reboot reason Vinod Koul
  2018-06-28 15:08 ` [PATCH v5 1/6] dt-bindings: power: reset: Add qcom pon binding Vinod Koul
  2018-06-28 15:08 ` [PATCH v5 2/6] power: reset: qcom-pon: Add Qcom PON driver Vinod Koul
@ 2018-06-28 15:08 ` Vinod Koul
  2018-07-07  5:15   ` Vinod
  2018-06-28 15:08 ` [PATCH v5 4/6] input: pm8941-pwrkey: Abstract register offsets and event code Vinod Koul
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 16+ messages in thread
From: Vinod Koul @ 2018-06-28 15:08 UTC (permalink / raw)
  To: linux-input, linux-pm
  Cc: Bjorn Andersson, Dmitry Torokhov, Rob Herring, Sebastian Reichel,
	devicetree, linux-arm-msm, Vinod Koul

Pwrkey and reset have similar properties so add additional
property for linux,code to use the code for sending events.

Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
---
 Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
index 07bf55f6e0b9..bf719396eadd 100644
--- a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
+++ b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
@@ -32,6 +32,14 @@ PROPERTIES
 	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 {
@@ -40,4 +48,5 @@ EXAMPLE
 		interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
 		debounce = <15625>;
 		bias-pull-up;
+		linux,code = <KEY_POWER>;
 	};
-- 
2.14.4

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

* [PATCH v5 4/6] input: pm8941-pwrkey: Abstract register offsets and event code
  2018-06-28 15:08 [PATCH v5 0/6] input: pm8941-pwrkey: Add support for reboot reason Vinod Koul
                   ` (2 preceding siblings ...)
  2018-06-28 15:08 ` [PATCH v5 3/6] dt-bindings: Input: Add additional property to qcom pwrkey Vinod Koul
@ 2018-06-28 15:08 ` Vinod Koul
  2018-06-28 15:08 ` [PATCH v5 5/6] dt-bindings: power: reset: qcom: Add resin binding Vinod Koul
  2018-06-28 15:08 ` [PATCH v5 6/6] input: pm8941-pwrkey: Add resin entry Vinod Koul
  5 siblings, 0 replies; 16+ messages in thread
From: Vinod Koul @ 2018-06-28 15:08 UTC (permalink / raw)
  To: linux-input, linux-pm
  Cc: Bjorn Andersson, Dmitry Torokhov, Rob Herring, Sebastian Reichel,
	devicetree, linux-arm-msm, Vinod Koul

In order to support resin thru the pwrkey driver (they are very
similar in nature) we need to abstract the handling in this driver.

First we abstract pull_up_bit and status_bit along in driver data.
The event code sent for key events is quiried from DT.

Since the device can be child of pon lookup regmap and reg from
parent if lookup fails (we are child).

Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
---
 drivers/input/misc/pm8941-pwrkey.c | 61 ++++++++++++++++++++++++++++++--------
 1 file changed, 48 insertions(+), 13 deletions(-)

diff --git a/drivers/input/misc/pm8941-pwrkey.c b/drivers/input/misc/pm8941-pwrkey.c
index 18ad956454f1..2047e34c0982 100644
--- a/drivers/input/misc/pm8941-pwrkey.c
+++ b/drivers/input/misc/pm8941-pwrkey.c
@@ -20,6 +20,7 @@
 #include <linux/log2.h>
 #include <linux/module.h>
 #include <linux/of.h>
+#include <linux/of_device.h>
 #include <linux/platform_device.h>
 #include <linux/reboot.h>
 #include <linux/regmap.h>
@@ -42,6 +43,10 @@
 #define PON_DBC_CTL			0x71
 #define  PON_DBC_DELAY_MASK		0x7
 
+struct pm8941_data {
+	unsigned int pull_up_bit;
+	unsigned int status_bit;
+};
 
 struct pm8941_pwrkey {
 	struct device *dev;
@@ -52,6 +57,9 @@ struct pm8941_pwrkey {
 
 	unsigned int revision;
 	struct notifier_block reboot_notifier;
+
+	u32 code;
+	const struct pm8941_data *data;
 };
 
 static int pm8941_reboot_notify(struct notifier_block *nb,
@@ -124,7 +132,8 @@ static irqreturn_t pm8941_pwrkey_irq(int irq, void *_data)
 	if (error)
 		return IRQ_HANDLED;
 
-	input_report_key(pwrkey->input, KEY_POWER, !!(sts & PON_KPDPWR_N_SET));
+	input_report_key(pwrkey->input, pwrkey->code,
+			 sts & pwrkey->data->status_bit);
 	input_sync(pwrkey->input);
 
 	return IRQ_HANDLED;
@@ -157,6 +166,7 @@ static int pm8941_pwrkey_probe(struct platform_device *pdev)
 {
 	struct pm8941_pwrkey *pwrkey;
 	bool pull_up;
+	struct device *parent;
 	u32 req_delay;
 	int error;
 
@@ -175,12 +185,30 @@ static int pm8941_pwrkey_probe(struct platform_device *pdev)
 		return -ENOMEM;
 
 	pwrkey->dev = &pdev->dev;
+	pwrkey->data = of_device_get_match_data(&pdev->dev);
 
-	pwrkey->regmap = dev_get_regmap(pdev->dev.parent, NULL);
+	parent = pdev->dev.parent;
+	pwrkey->regmap = dev_get_regmap(parent, NULL);
 	if (!pwrkey->regmap) {
-		dev_err(&pdev->dev, "failed to locate regmap\n");
-		return -ENODEV;
+		/*
+		 * we failed to get regmap for parent
+		 * Check if we are child on pon and read regmap and reg from
+		 * parent
+		 */
+		pwrkey->regmap = dev_get_regmap(parent->parent, NULL);
+		if (!pwrkey->regmap) {
+			dev_err(&pdev->dev, "failed to locate regmap\n");
+			return -ENODEV;
+		}
+
+		error = of_property_read_u32(parent->of_node,
+					     "reg", &pwrkey->baseaddr);
+	} else {
+		error = of_property_read_u32(pdev->dev.of_node, "reg",
+					     &pwrkey->baseaddr);
 	}
+	if (error)
+		return error;
 
 	pwrkey->irq = platform_get_irq(pdev, 0);
 	if (pwrkey->irq < 0) {
@@ -188,11 +216,6 @@ static int pm8941_pwrkey_probe(struct platform_device *pdev)
 		return pwrkey->irq;
 	}
 
-	error = of_property_read_u32(pdev->dev.of_node, "reg",
-				     &pwrkey->baseaddr);
-	if (error)
-		return error;
-
 	error = regmap_read(pwrkey->regmap, pwrkey->baseaddr + PON_REV2,
 			    &pwrkey->revision);
 	if (error) {
@@ -200,13 +223,20 @@ static int pm8941_pwrkey_probe(struct platform_device *pdev)
 		return error;
 	}
 
+	error = of_property_read_u32(pdev->dev.of_node, "linux,code",
+				     &pwrkey->code);
+	if (error) {
+		dev_info(&pdev->dev, "no linux,code assuming power%d\n", error);
+		pwrkey->code = KEY_POWER;
+	}
+
 	pwrkey->input = devm_input_allocate_device(&pdev->dev);
 	if (!pwrkey->input) {
 		dev_dbg(&pdev->dev, "unable to allocate input device\n");
 		return -ENOMEM;
 	}
 
-	input_set_capability(pwrkey->input, EV_KEY, KEY_POWER);
+	input_set_capability(pwrkey->input, EV_KEY, pwrkey->code);
 
 	pwrkey->input->name = "pm8941_pwrkey";
 	pwrkey->input->phys = "pm8941_pwrkey/input0";
@@ -225,8 +255,8 @@ static int pm8941_pwrkey_probe(struct platform_device *pdev)
 
 	error = regmap_update_bits(pwrkey->regmap,
 				   pwrkey->baseaddr + PON_PULL_CTL,
-				   PON_KPDPWR_PULL_UP,
-				   pull_up ? PON_KPDPWR_PULL_UP : 0);
+				   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;
@@ -271,8 +301,13 @@ static int pm8941_pwrkey_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static const struct pm8941_data pwrkey_data = {
+	.pull_up_bit = PON_KPDPWR_PULL_UP,
+	.status_bit = PON_KPDPWR_N_SET,
+};
+
 static const struct of_device_id pm8941_pwr_key_id_table[] = {
-	{ .compatible = "qcom,pm8941-pwrkey" },
+	{ .compatible = "qcom,pm8941-pwrkey", .data = &pwrkey_data },
 	{ }
 };
 MODULE_DEVICE_TABLE(of, pm8941_pwr_key_id_table);
-- 
2.14.4

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

* [PATCH v5 5/6] dt-bindings: power: reset: qcom: Add resin binding
  2018-06-28 15:08 [PATCH v5 0/6] input: pm8941-pwrkey: Add support for reboot reason Vinod Koul
                   ` (3 preceding siblings ...)
  2018-06-28 15:08 ` [PATCH v5 4/6] input: pm8941-pwrkey: Abstract register offsets and event code Vinod Koul
@ 2018-06-28 15:08 ` Vinod Koul
  2018-07-03 17:19   ` Rob Herring
  2018-07-07  5:14   ` Vinod
  2018-06-28 15:08 ` [PATCH v5 6/6] input: pm8941-pwrkey: Add resin entry Vinod Koul
  5 siblings, 2 replies; 16+ messages in thread
From: Vinod Koul @ 2018-06-28 15:08 UTC (permalink / raw)
  To: linux-input, linux-pm
  Cc: Bjorn Andersson, Dmitry Torokhov, Rob Herring, Sebastian Reichel,
	devicetree, linux-arm-msm, Vinod Koul

Resin is similar to pwrkey, add the description and example
for resin bindings

Signed-off-by: Vinod Koul <vkoul@kernel.org>
---
 .../devicetree/bindings/input/qcom,pm8941-pwrkey.txt       |  1 +
 Documentation/devicetree/bindings/power/reset/qcom,pon.txt | 14 ++++++++++++--
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
index bf719396eadd..34ab5763f494 100644
--- a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
+++ b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
@@ -7,6 +7,7 @@ PROPERTIES
 	Value type: <string>
 	Definition: must be one of:
 		    "qcom,pm8941-pwrkey"
+		    "qcom,pm8941-resin"
 
 - reg:
 	Usage: required
diff --git a/Documentation/devicetree/bindings/power/reset/qcom,pon.txt b/Documentation/devicetree/bindings/power/reset/qcom,pon.txt
index f32cdd358267..651491bb63b7 100644
--- a/Documentation/devicetree/bindings/power/reset/qcom,pon.txt
+++ b/Documentation/devicetree/bindings/power/reset/qcom,pon.txt
@@ -1,9 +1,9 @@
 Qualcomm PON Device
 
 The Power On device for Qualcomm PM8xxx is MFD supporting pwrkey
-along with the Android reboot-mode.
+and resin along with the Android reboot-mode.
 
-This DT node has pwrkey as sub node.
+This DT node has pwrkey and resin as sub nodes.
 
 Required Properties:
 -compatible: "qcom,pm8916-pon"
@@ -12,6 +12,8 @@ Required Properties:
 Optional subnode:
 -pwrkey: Specifies the subnode pwrkey and should follow the
  qcom,pm8941-pwrkey.txt description.
+-resin: Specifies the subnode resin and should follow the
+ qcom,pm8xxx-pwrkey.txt description.
 
 The rest of the properties should follow the generic reboot-mode description
 found in reboot-mode.txt
@@ -32,4 +34,12 @@ Example:
 			bias-pull-up;
 			linux,code = <KEY_POWER>;
 		};
+
+		resin {
+			compatible = "qcom,pm8941-resin";
+			interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
+			debounce = <15625>;
+			bias-pull-up;
+			linux,code = <KEY_VOLUMEDOWN>;
+		};
 	};
-- 
2.14.4

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

* [PATCH v5 6/6] input: pm8941-pwrkey: Add resin entry
  2018-06-28 15:08 [PATCH v5 0/6] input: pm8941-pwrkey: Add support for reboot reason Vinod Koul
                   ` (4 preceding siblings ...)
  2018-06-28 15:08 ` [PATCH v5 5/6] dt-bindings: power: reset: qcom: Add resin binding Vinod Koul
@ 2018-06-28 15:08 ` Vinod Koul
  5 siblings, 0 replies; 16+ messages in thread
From: Vinod Koul @ 2018-06-28 15:08 UTC (permalink / raw)
  To: linux-input, linux-pm
  Cc: Bjorn Andersson, Dmitry Torokhov, Rob Herring, Sebastian Reichel,
	devicetree, linux-arm-msm, Vinod Koul

Since handling is abstracted in this driver, we need to add resin entry
in id table along with pwrkey_data.

Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
---
 drivers/input/misc/pm8941-pwrkey.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/input/misc/pm8941-pwrkey.c b/drivers/input/misc/pm8941-pwrkey.c
index 2047e34c0982..6547a57f5222 100644
--- a/drivers/input/misc/pm8941-pwrkey.c
+++ b/drivers/input/misc/pm8941-pwrkey.c
@@ -29,6 +29,7 @@
 
 #define PON_RT_STS			0x10
 #define  PON_KPDPWR_N_SET		BIT(0)
+#define  PON_RESIN_N_SET		BIT(1)
 
 #define PON_PS_HOLD_RST_CTL		0x5a
 #define PON_PS_HOLD_RST_CTL2		0x5b
@@ -39,6 +40,7 @@
 
 #define PON_PULL_CTL			0x70
 #define  PON_KPDPWR_PULL_UP		BIT(1)
+#define  PON_RESIN_PULL_UP		BIT(0)
 
 #define PON_DBC_CTL			0x71
 #define  PON_DBC_DELAY_MASK		0x7
@@ -306,8 +308,14 @@ static const struct pm8941_data pwrkey_data = {
 	.status_bit = PON_KPDPWR_N_SET,
 };
 
+static const struct pm8941_data resin_data = {
+	.pull_up_bit = PON_RESIN_PULL_UP,
+	.status_bit = PON_RESIN_N_SET,
+};
+
 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 },
 	{ }
 };
 MODULE_DEVICE_TABLE(of, pm8941_pwr_key_id_table);
-- 
2.14.4

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

* Re: [PATCH v5 1/6] dt-bindings: power: reset: Add qcom pon binding
  2018-06-28 15:08 ` [PATCH v5 1/6] dt-bindings: power: reset: Add qcom pon binding Vinod Koul
@ 2018-07-03 17:19   ` Rob Herring
  2018-07-06 13:57   ` Sebastian Reichel
  1 sibling, 0 replies; 16+ messages in thread
From: Rob Herring @ 2018-07-03 17:19 UTC (permalink / raw)
  To: Vinod Koul
  Cc: linux-input, linux-pm, Bjorn Andersson, Dmitry Torokhov,
	Sebastian Reichel, devicetree, linux-arm-msm

On Thu, Jun 28, 2018 at 08:38:45PM +0530, Vinod Koul wrote:
> The Power On device for Qcom PM 8xxx is a MFD supporting pwrkey and
> resin along with the Android reboot-mode.
> 
> Add the binding describing this.
> 
> Suggested-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> Signed-off-by: Vinod Koul <vkoul@kernel.org>
> ---
>  .../devicetree/bindings/power/reset/qcom,pon.txt   | 35 ++++++++++++++++++++++
>  1 file changed, 35 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/power/reset/qcom,pon.txt

Reviewed-by: Rob Herring <robh@kernel.org>

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

* Re: [PATCH v5 5/6] dt-bindings: power: reset: qcom: Add resin binding
  2018-06-28 15:08 ` [PATCH v5 5/6] dt-bindings: power: reset: qcom: Add resin binding Vinod Koul
@ 2018-07-03 17:19   ` Rob Herring
  2018-07-07  5:14   ` Vinod
  1 sibling, 0 replies; 16+ messages in thread
From: Rob Herring @ 2018-07-03 17:19 UTC (permalink / raw)
  To: Vinod Koul
  Cc: linux-input, linux-pm, Bjorn Andersson, Dmitry Torokhov,
	Sebastian Reichel, devicetree, linux-arm-msm

On Thu, Jun 28, 2018 at 08:38:49PM +0530, Vinod Koul wrote:
> Resin is similar to pwrkey, add the description and example
> for resin bindings
> 
> Signed-off-by: Vinod Koul <vkoul@kernel.org>
> ---
>  .../devicetree/bindings/input/qcom,pm8941-pwrkey.txt       |  1 +
>  Documentation/devicetree/bindings/power/reset/qcom,pon.txt | 14 ++++++++++++--
>  2 files changed, 13 insertions(+), 2 deletions(-)

Reviewed-by: Rob Herring <robh@kernel.org>

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

* Re: [PATCH v5 2/6] power: reset: qcom-pon: Add Qcom PON driver
  2018-06-28 15:08 ` [PATCH v5 2/6] power: reset: qcom-pon: Add Qcom PON driver Vinod Koul
@ 2018-07-06  6:33   ` Vinod
  2018-07-06 13:58   ` Sebastian Reichel
  1 sibling, 0 replies; 16+ messages in thread
From: Vinod @ 2018-07-06  6:33 UTC (permalink / raw)
  To: Sebastian Reichel
  Cc: Bjorn Andersson, Dmitry Torokhov, Rob Herring, linux-input,
	linux-pm, devicetree, linux-arm-msm

Hi Sebastian,

On 28-06-18, 20:38, Vinod Koul wrote:
> Add support Qualcomm PM8xxx PON which is responsible for reboot
> mode support.

Any feedback for this patch/series?

> Co-developed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> Signed-off-by: Vinod Koul <vkoul@kernel.org>
> ---
>  drivers/power/reset/Kconfig    | 11 +++++
>  drivers/power/reset/Makefile   |  1 +
>  drivers/power/reset/qcom-pon.c | 91 ++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 103 insertions(+)
>  create mode 100644 drivers/power/reset/qcom-pon.c
> 
> diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig
> index df58fc878b3e..6533aa560aa1 100644
> --- a/drivers/power/reset/Kconfig
> +++ b/drivers/power/reset/Kconfig
> @@ -104,6 +104,17 @@ config POWER_RESET_MSM
>  	help
>  	  Power off and restart support for Qualcomm boards.
>  
> +config POWER_RESET_QCOM_PON
> +	tristate "Qualcomm power-on driver"
> +	depends on ARCH_QCOM
> +	depends on MFD_SPMI_PMIC
> +	select REBOOT_MODE
> +	help
> +	  Power On support for Qualcomm boards.
> +	  If you have a Qualcomm platform and need support for
> +	  power-on and reboot reason, Say Y.
> +	  If unsure, Say N.
> +
>  config POWER_RESET_OCELOT_RESET
>  	bool "Microsemi Ocelot reset driver"
>  	depends on MSCC_OCELOT || COMPILE_TEST
> diff --git a/drivers/power/reset/Makefile b/drivers/power/reset/Makefile
> index 7778c7485cf1..0aebee954ac1 100644
> --- a/drivers/power/reset/Makefile
> +++ b/drivers/power/reset/Makefile
> @@ -11,6 +11,7 @@ obj-$(CONFIG_POWER_RESET_GPIO) += gpio-poweroff.o
>  obj-$(CONFIG_POWER_RESET_GPIO_RESTART) += gpio-restart.o
>  obj-$(CONFIG_POWER_RESET_HISI) += hisi-reboot.o
>  obj-$(CONFIG_POWER_RESET_MSM) += msm-poweroff.o
> +obj-$(CONFIG_POWER_RESET_QCOM_PON) += qcom-pon.o
>  obj-$(CONFIG_POWER_RESET_OCELOT_RESET) += ocelot-reset.o
>  obj-$(CONFIG_POWER_RESET_PIIX4_POWEROFF) += piix4-poweroff.o
>  obj-$(CONFIG_POWER_RESET_LTC2952) += ltc2952-poweroff.o
> diff --git a/drivers/power/reset/qcom-pon.c b/drivers/power/reset/qcom-pon.c
> new file mode 100644
> index 000000000000..0c4caaa7e88f
> --- /dev/null
> +++ b/drivers/power/reset/qcom-pon.c
> @@ -0,0 +1,91 @@
> +// SPDX-License-Identifier: GPL-2.0
> +// Copyright (c) 2017-18 Linaro Limited
> +
> +#include <linux/delay.h>
> +#include <linux/errno.h>
> +#include <linux/kernel.h>
> +#include <linux/module.h>
> +#include <linux/of.h>
> +#include <linux/of_platform.h>
> +#include <linux/platform_device.h>
> +#include <linux/reboot.h>
> +#include <linux/reboot-mode.h>
> +#include <linux/regmap.h>
> +
> +#define PON_SOFT_RB_SPARE		0x8f
> +
> +struct pm8916_pon {
> +	struct device *dev;
> +	struct regmap *regmap;
> +	u32 baseaddr;
> +	struct reboot_mode_driver reboot_mode;
> +};
> +
> +static int pm8916_reboot_mode_write(struct reboot_mode_driver *reboot,
> +				    unsigned int magic)
> +{
> +	struct pm8916_pon *pon = container_of
> +			(reboot, struct pm8916_pon, reboot_mode);
> +	int ret;
> +
> +	ret = regmap_update_bits(pon->regmap,
> +				 pon->baseaddr + PON_SOFT_RB_SPARE,
> +				 0xfc, magic << 2);
> +	if (ret < 0)
> +		dev_err(pon->dev, "update reboot mode bits failed\n");
> +
> +	return ret;
> +}
> +
> +static int pm8916_pon_probe(struct platform_device *pdev)
> +{
> +	struct pm8916_pon *pon;
> +	int error;
> +
> +	pon = devm_kzalloc(&pdev->dev, sizeof(*pon), GFP_KERNEL);
> +	if (!pon)
> +		return -ENOMEM;
> +
> +	pon->dev = &pdev->dev;
> +
> +	pon->regmap = dev_get_regmap(pdev->dev.parent, NULL);
> +	if (!pon->regmap) {
> +		dev_err(&pdev->dev, "failed to locate regmap\n");
> +		return -ENODEV;
> +	}
> +
> +	error = of_property_read_u32(pdev->dev.of_node, "reg",
> +				     &pon->baseaddr);
> +	if (error)
> +		return error;
> +
> +	pon->reboot_mode.dev = &pdev->dev;
> +	pon->reboot_mode.write = pm8916_reboot_mode_write;
> +	error = devm_reboot_mode_register(&pdev->dev, &pon->reboot_mode);
> +	if (error) {
> +		dev_err(&pdev->dev, "can't register reboot mode\n");
> +		return error;
> +	}
> +
> +	platform_set_drvdata(pdev, pon);
> +
> +	return devm_of_platform_populate(&pdev->dev);
> +}
> +
> +static const struct of_device_id pm8916_pon_id_table[] = {
> +	{ .compatible = "qcom,pm8916-pon" },
> +	{ }
> +};
> +MODULE_DEVICE_TABLE(of, pm8916_pon_id_table);
> +
> +static struct platform_driver pm8916_pon_driver = {
> +	.probe = pm8916_pon_probe,
> +	.driver = {
> +		.name = "pm8916-pon",
> +		.of_match_table = of_match_ptr(pm8916_pon_id_table),
> +	},
> +};
> +module_platform_driver(pm8916_pon_driver);
> +
> +MODULE_DESCRIPTION("pm8916 Power On driver");
> +MODULE_LICENSE("GPL v2");
> -- 
> 2.14.4

-- 
~Vinod

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

* Re: [PATCH v5 1/6] dt-bindings: power: reset: Add qcom pon binding
  2018-06-28 15:08 ` [PATCH v5 1/6] dt-bindings: power: reset: Add qcom pon binding Vinod Koul
  2018-07-03 17:19   ` Rob Herring
@ 2018-07-06 13:57   ` Sebastian Reichel
  1 sibling, 0 replies; 16+ messages in thread
From: Sebastian Reichel @ 2018-07-06 13:57 UTC (permalink / raw)
  To: Vinod Koul
  Cc: linux-input, linux-pm, Bjorn Andersson, Dmitry Torokhov,
	Rob Herring, devicetree, linux-arm-msm

[-- Attachment #1: Type: text/plain, Size: 1923 bytes --]

Hi,

On Thu, Jun 28, 2018 at 08:38:45PM +0530, Vinod Koul wrote:
> The Power On device for Qcom PM 8xxx is a MFD supporting pwrkey and
> resin along with the Android reboot-mode.
> 
> Add the binding describing this.
> 
> Suggested-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> Signed-off-by: Vinod Koul <vkoul@kernel.org>
> ---

Thanks, queued to power-supply-next.

-- Sebastian

>  .../devicetree/bindings/power/reset/qcom,pon.txt   | 35 ++++++++++++++++++++++
>  1 file changed, 35 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/power/reset/qcom,pon.txt
> 
> diff --git a/Documentation/devicetree/bindings/power/reset/qcom,pon.txt b/Documentation/devicetree/bindings/power/reset/qcom,pon.txt
> new file mode 100644
> index 000000000000..f32cdd358267
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/power/reset/qcom,pon.txt
> @@ -0,0 +1,35 @@
> +Qualcomm PON Device
> +
> +The Power On device for Qualcomm PM8xxx is MFD supporting pwrkey
> +along with the Android reboot-mode.
> +
> +This DT node has pwrkey as sub node.
> +
> +Required Properties:
> +-compatible: "qcom,pm8916-pon"
> +-reg: Specifies the physical address of the pon register
> +
> +Optional subnode:
> +-pwrkey: Specifies the subnode pwrkey and should follow the
> + qcom,pm8941-pwrkey.txt description.
> +
> +The rest of the properties should follow the generic reboot-mode description
> +found in reboot-mode.txt
> +
> +Example:
> +
> +	pon@800 {
> +		compatible = "qcom,pm8916-pon";
> +
> +		reg = <0x800>;
> +		mode-bootloader = <0x2>;
> +		mode-recovery = <0x1>;
> +
> +		pwrkey {
> +			compatible = "qcom,pm8941-pwrkey";
> +			interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
> +			debounce = <15625>;
> +			bias-pull-up;
> +			linux,code = <KEY_POWER>;
> +		};
> +	};
> -- 
> 2.14.4
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [PATCH v5 2/6] power: reset: qcom-pon: Add Qcom PON driver
  2018-06-28 15:08 ` [PATCH v5 2/6] power: reset: qcom-pon: Add Qcom PON driver Vinod Koul
  2018-07-06  6:33   ` Vinod
@ 2018-07-06 13:58   ` Sebastian Reichel
  1 sibling, 0 replies; 16+ messages in thread
From: Sebastian Reichel @ 2018-07-06 13:58 UTC (permalink / raw)
  To: Vinod Koul
  Cc: linux-input, linux-pm, Bjorn Andersson, Dmitry Torokhov,
	Rob Herring, devicetree, linux-arm-msm

[-- Attachment #1: Type: text/plain, Size: 4854 bytes --]

Hi,

On Thu, Jun 28, 2018 at 08:38:46PM +0530, Vinod Koul wrote:
> Add support Qualcomm PM8xxx PON which is responsible for reboot
> mode support.
> 
> Co-developed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> Signed-off-by: Vinod Koul <vkoul@kernel.org>
> ---

Thanks, queued to power-supply-next.

-- Sebastian

>  drivers/power/reset/Kconfig    | 11 +++++
>  drivers/power/reset/Makefile   |  1 +
>  drivers/power/reset/qcom-pon.c | 91 ++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 103 insertions(+)
>  create mode 100644 drivers/power/reset/qcom-pon.c
> 
> diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig
> index df58fc878b3e..6533aa560aa1 100644
> --- a/drivers/power/reset/Kconfig
> +++ b/drivers/power/reset/Kconfig
> @@ -104,6 +104,17 @@ config POWER_RESET_MSM
>  	help
>  	  Power off and restart support for Qualcomm boards.
>  
> +config POWER_RESET_QCOM_PON
> +	tristate "Qualcomm power-on driver"
> +	depends on ARCH_QCOM
> +	depends on MFD_SPMI_PMIC
> +	select REBOOT_MODE
> +	help
> +	  Power On support for Qualcomm boards.
> +	  If you have a Qualcomm platform and need support for
> +	  power-on and reboot reason, Say Y.
> +	  If unsure, Say N.
> +
>  config POWER_RESET_OCELOT_RESET
>  	bool "Microsemi Ocelot reset driver"
>  	depends on MSCC_OCELOT || COMPILE_TEST
> diff --git a/drivers/power/reset/Makefile b/drivers/power/reset/Makefile
> index 7778c7485cf1..0aebee954ac1 100644
> --- a/drivers/power/reset/Makefile
> +++ b/drivers/power/reset/Makefile
> @@ -11,6 +11,7 @@ obj-$(CONFIG_POWER_RESET_GPIO) += gpio-poweroff.o
>  obj-$(CONFIG_POWER_RESET_GPIO_RESTART) += gpio-restart.o
>  obj-$(CONFIG_POWER_RESET_HISI) += hisi-reboot.o
>  obj-$(CONFIG_POWER_RESET_MSM) += msm-poweroff.o
> +obj-$(CONFIG_POWER_RESET_QCOM_PON) += qcom-pon.o
>  obj-$(CONFIG_POWER_RESET_OCELOT_RESET) += ocelot-reset.o
>  obj-$(CONFIG_POWER_RESET_PIIX4_POWEROFF) += piix4-poweroff.o
>  obj-$(CONFIG_POWER_RESET_LTC2952) += ltc2952-poweroff.o
> diff --git a/drivers/power/reset/qcom-pon.c b/drivers/power/reset/qcom-pon.c
> new file mode 100644
> index 000000000000..0c4caaa7e88f
> --- /dev/null
> +++ b/drivers/power/reset/qcom-pon.c
> @@ -0,0 +1,91 @@
> +// SPDX-License-Identifier: GPL-2.0
> +// Copyright (c) 2017-18 Linaro Limited
> +
> +#include <linux/delay.h>
> +#include <linux/errno.h>
> +#include <linux/kernel.h>
> +#include <linux/module.h>
> +#include <linux/of.h>
> +#include <linux/of_platform.h>
> +#include <linux/platform_device.h>
> +#include <linux/reboot.h>
> +#include <linux/reboot-mode.h>
> +#include <linux/regmap.h>
> +
> +#define PON_SOFT_RB_SPARE		0x8f
> +
> +struct pm8916_pon {
> +	struct device *dev;
> +	struct regmap *regmap;
> +	u32 baseaddr;
> +	struct reboot_mode_driver reboot_mode;
> +};
> +
> +static int pm8916_reboot_mode_write(struct reboot_mode_driver *reboot,
> +				    unsigned int magic)
> +{
> +	struct pm8916_pon *pon = container_of
> +			(reboot, struct pm8916_pon, reboot_mode);
> +	int ret;
> +
> +	ret = regmap_update_bits(pon->regmap,
> +				 pon->baseaddr + PON_SOFT_RB_SPARE,
> +				 0xfc, magic << 2);
> +	if (ret < 0)
> +		dev_err(pon->dev, "update reboot mode bits failed\n");
> +
> +	return ret;
> +}
> +
> +static int pm8916_pon_probe(struct platform_device *pdev)
> +{
> +	struct pm8916_pon *pon;
> +	int error;
> +
> +	pon = devm_kzalloc(&pdev->dev, sizeof(*pon), GFP_KERNEL);
> +	if (!pon)
> +		return -ENOMEM;
> +
> +	pon->dev = &pdev->dev;
> +
> +	pon->regmap = dev_get_regmap(pdev->dev.parent, NULL);
> +	if (!pon->regmap) {
> +		dev_err(&pdev->dev, "failed to locate regmap\n");
> +		return -ENODEV;
> +	}
> +
> +	error = of_property_read_u32(pdev->dev.of_node, "reg",
> +				     &pon->baseaddr);
> +	if (error)
> +		return error;
> +
> +	pon->reboot_mode.dev = &pdev->dev;
> +	pon->reboot_mode.write = pm8916_reboot_mode_write;
> +	error = devm_reboot_mode_register(&pdev->dev, &pon->reboot_mode);
> +	if (error) {
> +		dev_err(&pdev->dev, "can't register reboot mode\n");
> +		return error;
> +	}
> +
> +	platform_set_drvdata(pdev, pon);
> +
> +	return devm_of_platform_populate(&pdev->dev);
> +}
> +
> +static const struct of_device_id pm8916_pon_id_table[] = {
> +	{ .compatible = "qcom,pm8916-pon" },
> +	{ }
> +};
> +MODULE_DEVICE_TABLE(of, pm8916_pon_id_table);
> +
> +static struct platform_driver pm8916_pon_driver = {
> +	.probe = pm8916_pon_probe,
> +	.driver = {
> +		.name = "pm8916-pon",
> +		.of_match_table = of_match_ptr(pm8916_pon_id_table),
> +	},
> +};
> +module_platform_driver(pm8916_pon_driver);
> +
> +MODULE_DESCRIPTION("pm8916 Power On driver");
> +MODULE_LICENSE("GPL v2");
> -- 
> 2.14.4
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [PATCH v5 5/6] dt-bindings: power: reset: qcom: Add resin binding
  2018-06-28 15:08 ` [PATCH v5 5/6] dt-bindings: power: reset: qcom: Add resin binding Vinod Koul
  2018-07-03 17:19   ` Rob Herring
@ 2018-07-07  5:14   ` Vinod
  2018-07-07 20:24     ` Sebastian Reichel
  1 sibling, 1 reply; 16+ messages in thread
From: Vinod @ 2018-07-07  5:14 UTC (permalink / raw)
  To: Sebastian Reichel
  Cc: Bjorn Andersson, linux-input, linux-pm, Dmitry Torokhov,
	Rob Herring, devicetree, linux-arm-msm

Hello Sebastian,

On 28-06-18, 20:38, Vinod Koul wrote:
> Resin is similar to pwrkey, add the description and example
> for resin bindings

I think this should go thru your tree as well

> 
> Signed-off-by: Vinod Koul <vkoul@kernel.org>
> ---
>  .../devicetree/bindings/input/qcom,pm8941-pwrkey.txt       |  1 +
>  Documentation/devicetree/bindings/power/reset/qcom,pon.txt | 14 ++++++++++++--
>  2 files changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
> index bf719396eadd..34ab5763f494 100644
> --- a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
> +++ b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
> @@ -7,6 +7,7 @@ PROPERTIES
>  	Value type: <string>
>  	Definition: must be one of:
>  		    "qcom,pm8941-pwrkey"
> +		    "qcom,pm8941-resin"
>  
>  - reg:
>  	Usage: required
> diff --git a/Documentation/devicetree/bindings/power/reset/qcom,pon.txt b/Documentation/devicetree/bindings/power/reset/qcom,pon.txt
> index f32cdd358267..651491bb63b7 100644
> --- a/Documentation/devicetree/bindings/power/reset/qcom,pon.txt
> +++ b/Documentation/devicetree/bindings/power/reset/qcom,pon.txt
> @@ -1,9 +1,9 @@
>  Qualcomm PON Device
>  
>  The Power On device for Qualcomm PM8xxx is MFD supporting pwrkey
> -along with the Android reboot-mode.
> +and resin along with the Android reboot-mode.
>  
> -This DT node has pwrkey as sub node.
> +This DT node has pwrkey and resin as sub nodes.
>  
>  Required Properties:
>  -compatible: "qcom,pm8916-pon"
> @@ -12,6 +12,8 @@ Required Properties:
>  Optional subnode:
>  -pwrkey: Specifies the subnode pwrkey and should follow the
>   qcom,pm8941-pwrkey.txt description.
> +-resin: Specifies the subnode resin and should follow the
> + qcom,pm8xxx-pwrkey.txt description.
>  
>  The rest of the properties should follow the generic reboot-mode description
>  found in reboot-mode.txt
> @@ -32,4 +34,12 @@ Example:
>  			bias-pull-up;
>  			linux,code = <KEY_POWER>;
>  		};
> +
> +		resin {
> +			compatible = "qcom,pm8941-resin";
> +			interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
> +			debounce = <15625>;
> +			bias-pull-up;
> +			linux,code = <KEY_VOLUMEDOWN>;
> +		};
>  	};
> -- 
> 2.14.4

-- 
~Vinod

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

* Re: [PATCH v5 3/6] dt-bindings: Input: Add additional property to qcom pwrkey
  2018-06-28 15:08 ` [PATCH v5 3/6] dt-bindings: Input: Add additional property to qcom pwrkey Vinod Koul
@ 2018-07-07  5:15   ` Vinod
  2018-07-30 13:55     ` Vinod
  0 siblings, 1 reply; 16+ messages in thread
From: Vinod @ 2018-07-07  5:15 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Bjorn Andersson, linux-input, linux-pm, Rob Herring,
	Sebastian Reichel, devicetree, linux-arm-msm

Hi Dmitry,

On 28-06-18, 20:38, Vinod Koul wrote:
> Pwrkey and reset have similar properties so add additional
> property for linux,code to use the code for sending events.

Can you please review the input patches.

> 
> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> Reviewed-by: Rob Herring <robh@kernel.org>
> Signed-off-by: Vinod Koul <vkoul@kernel.org>
> ---
>  Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
> index 07bf55f6e0b9..bf719396eadd 100644
> --- a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
> +++ b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
> @@ -32,6 +32,14 @@ PROPERTIES
>  	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 {
> @@ -40,4 +48,5 @@ EXAMPLE
>  		interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
>  		debounce = <15625>;
>  		bias-pull-up;
> +		linux,code = <KEY_POWER>;
>  	};
> -- 
> 2.14.4

-- 
~Vinod

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

* Re: [PATCH v5 5/6] dt-bindings: power: reset: qcom: Add resin binding
  2018-07-07  5:14   ` Vinod
@ 2018-07-07 20:24     ` Sebastian Reichel
  0 siblings, 0 replies; 16+ messages in thread
From: Sebastian Reichel @ 2018-07-07 20:24 UTC (permalink / raw)
  To: Vinod
  Cc: Bjorn Andersson, linux-input, linux-pm, Dmitry Torokhov,
	Rob Herring, devicetree, linux-arm-msm

[-- Attachment #1: Type: text/plain, Size: 2646 bytes --]

Hi Vinod,

On Sat, Jul 07, 2018 at 10:44:14AM +0530, Vinod wrote:
> On 28-06-18, 20:38, Vinod Koul wrote:
> > Resin is similar to pwrkey, add the description and example
> > for resin bindings
> 
> I think this should go thru your tree as well

Right. I just queued this one with Rob's Reviewed-by.

-- Sebastian

> > Signed-off-by: Vinod Koul <vkoul@kernel.org>
> > ---
> >  .../devicetree/bindings/input/qcom,pm8941-pwrkey.txt       |  1 +
> >  Documentation/devicetree/bindings/power/reset/qcom,pon.txt | 14 ++++++++++++--
> >  2 files changed, 13 insertions(+), 2 deletions(-)
> > 
> > diff --git a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
> > index bf719396eadd..34ab5763f494 100644
> > --- a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
> > +++ b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
> > @@ -7,6 +7,7 @@ PROPERTIES
> >  	Value type: <string>
> >  	Definition: must be one of:
> >  		    "qcom,pm8941-pwrkey"
> > +		    "qcom,pm8941-resin"
> >  
> >  - reg:
> >  	Usage: required
> > diff --git a/Documentation/devicetree/bindings/power/reset/qcom,pon.txt b/Documentation/devicetree/bindings/power/reset/qcom,pon.txt
> > index f32cdd358267..651491bb63b7 100644
> > --- a/Documentation/devicetree/bindings/power/reset/qcom,pon.txt
> > +++ b/Documentation/devicetree/bindings/power/reset/qcom,pon.txt
> > @@ -1,9 +1,9 @@
> >  Qualcomm PON Device
> >  
> >  The Power On device for Qualcomm PM8xxx is MFD supporting pwrkey
> > -along with the Android reboot-mode.
> > +and resin along with the Android reboot-mode.
> >  
> > -This DT node has pwrkey as sub node.
> > +This DT node has pwrkey and resin as sub nodes.
> >  
> >  Required Properties:
> >  -compatible: "qcom,pm8916-pon"
> > @@ -12,6 +12,8 @@ Required Properties:
> >  Optional subnode:
> >  -pwrkey: Specifies the subnode pwrkey and should follow the
> >   qcom,pm8941-pwrkey.txt description.
> > +-resin: Specifies the subnode resin and should follow the
> > + qcom,pm8xxx-pwrkey.txt description.
> >  
> >  The rest of the properties should follow the generic reboot-mode description
> >  found in reboot-mode.txt
> > @@ -32,4 +34,12 @@ Example:
> >  			bias-pull-up;
> >  			linux,code = <KEY_POWER>;
> >  		};
> > +
> > +		resin {
> > +			compatible = "qcom,pm8941-resin";
> > +			interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
> > +			debounce = <15625>;
> > +			bias-pull-up;
> > +			linux,code = <KEY_VOLUMEDOWN>;
> > +		};
> >  	};
> > -- 
> > 2.14.4
> 
> -- 
> ~Vinod

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [PATCH v5 3/6] dt-bindings: Input: Add additional property to qcom pwrkey
  2018-07-07  5:15   ` Vinod
@ 2018-07-30 13:55     ` Vinod
  0 siblings, 0 replies; 16+ messages in thread
From: Vinod @ 2018-07-30 13:55 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Bjorn Andersson, linux-input, linux-pm, Rob Herring,
	Sebastian Reichel, devicetree, linux-arm-msm

On 07-07-18, 10:45, Vinod wrote:
> Hi Dmitry,
> 
> On 28-06-18, 20:38, Vinod Koul wrote:
> > Pwrkey and reset have similar properties so add additional
> > property for linux,code to use the code for sending events.
> 
> Can you please review the input patches.

Gentle reminder...

> > 
> > Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> > Reviewed-by: Rob Herring <robh@kernel.org>
> > Signed-off-by: Vinod Koul <vkoul@kernel.org>
> > ---
> >  Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt | 9 +++++++++
> >  1 file changed, 9 insertions(+)
> > 
> > diff --git a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
> > index 07bf55f6e0b9..bf719396eadd 100644
> > --- a/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
> > +++ b/Documentation/devicetree/bindings/input/qcom,pm8941-pwrkey.txt
> > @@ -32,6 +32,14 @@ PROPERTIES
> >  	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 {
> > @@ -40,4 +48,5 @@ EXAMPLE
> >  		interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
> >  		debounce = <15625>;
> >  		bias-pull-up;
> > +		linux,code = <KEY_POWER>;
> >  	};
> > -- 
> > 2.14.4
> 
> -- 
> ~Vinod
> --
> To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
~Vinod

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

end of thread, other threads:[~2018-07-30 13:55 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-28 15:08 [PATCH v5 0/6] input: pm8941-pwrkey: Add support for reboot reason Vinod Koul
2018-06-28 15:08 ` [PATCH v5 1/6] dt-bindings: power: reset: Add qcom pon binding Vinod Koul
2018-07-03 17:19   ` Rob Herring
2018-07-06 13:57   ` Sebastian Reichel
2018-06-28 15:08 ` [PATCH v5 2/6] power: reset: qcom-pon: Add Qcom PON driver Vinod Koul
2018-07-06  6:33   ` Vinod
2018-07-06 13:58   ` Sebastian Reichel
2018-06-28 15:08 ` [PATCH v5 3/6] dt-bindings: Input: Add additional property to qcom pwrkey Vinod Koul
2018-07-07  5:15   ` Vinod
2018-07-30 13:55     ` Vinod
2018-06-28 15:08 ` [PATCH v5 4/6] input: pm8941-pwrkey: Abstract register offsets and event code Vinod Koul
2018-06-28 15:08 ` [PATCH v5 5/6] dt-bindings: power: reset: qcom: Add resin binding Vinod Koul
2018-07-03 17:19   ` Rob Herring
2018-07-07  5:14   ` Vinod
2018-07-07 20:24     ` Sebastian Reichel
2018-06-28 15:08 ` [PATCH v5 6/6] input: pm8941-pwrkey: Add resin entry Vinod Koul

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.