devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V2 1/2] mfd: AS3722: add dt node properties for system power controller
@ 2013-12-20 13:23 Laxman Dewangan
  2013-12-20 13:24 ` [PATCH V2 2/2] power: reset: as3722: add power-off driver Laxman Dewangan
  2013-12-20 13:48 ` [PATCH V2 1/2] mfd: AS3722: add dt node properties for system power controller Lee Jones
  0 siblings, 2 replies; 5+ messages in thread
From: Laxman Dewangan @ 2013-12-20 13:23 UTC (permalink / raw)
  To: anton, lee.jones
  Cc: dwmw2, mark.rutland, rob, ijc+devicetree, swarren, devicetree,
	linux-doc, linux-kernel, Laxman Dewangan

ams AS3722 device supports the power off by turning off its all rails.

Add dt node properties to enable this functionality on this device.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
---
Changes form V1:
- Rephrase sentence and mention that propery is boolean type.
- Added Tested by.

 Documentation/devicetree/bindings/mfd/as3722.txt |   11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/Documentation/devicetree/bindings/mfd/as3722.txt b/Documentation/devicetree/bindings/mfd/as3722.txt
index fc2191e..8edcb9b 100644
--- a/Documentation/devicetree/bindings/mfd/as3722.txt
+++ b/Documentation/devicetree/bindings/mfd/as3722.txt
@@ -112,6 +112,15 @@ Following are properties of regulator subnode.
 		ams,enable-tracking: Enable tracking with SD1, only supported
 			by LDO3.
 
+Power-off:
+=========
+AS3722 supports the system power off by turning off all its rail. This
+is provided through pm_power_off.
+The device node should have the following properties to enable this
+functionality
+ams,system-power-controller: Boolean, to enable the power off functionality
+        through this device.
+
 Example:
 --------
 #include <dt-bindings/mfd/as3722.h>
@@ -120,6 +129,8 @@ ams3722 {
 	compatible = "ams,as3722";
 	reg = <0x48>;
 
+	ams,system-power-controller;
+
 	interrupt-parent = <&intc>;
 	interrupt-controller;
 	#interrupt-cells = <2>;
-- 
1.7.9.5

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

* [PATCH V2 2/2] power: reset: as3722: add power-off driver
  2013-12-20 13:23 [PATCH V2 1/2] mfd: AS3722: add dt node properties for system power controller Laxman Dewangan
@ 2013-12-20 13:24 ` Laxman Dewangan
  2013-12-24  1:28   ` Anton Vorontsov
  2013-12-20 13:48 ` [PATCH V2 1/2] mfd: AS3722: add dt node properties for system power controller Lee Jones
  1 sibling, 1 reply; 5+ messages in thread
From: Laxman Dewangan @ 2013-12-20 13:24 UTC (permalink / raw)
  To: anton, lee.jones
  Cc: dwmw2, mark.rutland, rob, ijc+devicetree, swarren, devicetree,
	linux-doc, linux-kernel, Laxman Dewangan

ams AS3722 supports the power off functionality to turn off
system.

Add power off driver for ams AS3722.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
---
Changes from V1:
- Just added tested by.

 drivers/power/reset/Kconfig           |    6 +++
 drivers/power/reset/Makefile          |    1 +
 drivers/power/reset/as3722-poweroff.c |   96 +++++++++++++++++++++++++++++++++
 3 files changed, 103 insertions(+)
 create mode 100644 drivers/power/reset/as3722-poweroff.c

diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig
index 9b3ea53..6d452a7 100644
--- a/drivers/power/reset/Kconfig
+++ b/drivers/power/reset/Kconfig
@@ -6,6 +6,12 @@ menuconfig POWER_RESET
 
 	  Say Y here to enable board reset and power off
 
+config POWER_RESET_AS3722
+	bool "ams AS3722 power-off driver"
+	depends on MFD_AS3722 && POWER_RESET
+	help
+	  This driver supports turning off board via a ams AS3722 power-off.
+
 config POWER_RESET_GPIO
 	bool "GPIO power-off driver"
 	depends on OF_GPIO && POWER_RESET
diff --git a/drivers/power/reset/Makefile b/drivers/power/reset/Makefile
index 3e6ed88..a5b4a77 100644
--- a/drivers/power/reset/Makefile
+++ b/drivers/power/reset/Makefile
@@ -1,3 +1,4 @@
+obj-$(CONFIG_POWER_RESET_AS3722) += as3722-poweroff.o
 obj-$(CONFIG_POWER_RESET_GPIO) += gpio-poweroff.o
 obj-$(CONFIG_POWER_RESET_MSM) += msm-poweroff.o
 obj-$(CONFIG_POWER_RESET_QNAP) += qnap-poweroff.o
diff --git a/drivers/power/reset/as3722-poweroff.c b/drivers/power/reset/as3722-poweroff.c
new file mode 100644
index 0000000..6849711
--- /dev/null
+++ b/drivers/power/reset/as3722-poweroff.c
@@ -0,0 +1,96 @@
+/*
+ * Power off driver for ams AS3722 device.
+ *
+ * Copyright (c) 2013, NVIDIA CORPORATION.  All rights reserved.
+ *
+ * Author: Laxman Dewangan <ldewangan@nvidia.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ */
+
+#include <linux/mfd/as3722.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/of_device.h>
+#include <linux/platform_device.h>
+#include <linux/slab.h>
+
+struct as3722_poweroff {
+	struct device *dev;
+	struct as3722 *as3722;
+};
+
+static struct as3722_poweroff *as3722_pm_poweroff;
+
+static void as3722_pm_power_off(void)
+{
+	int ret;
+
+	if (!as3722_pm_poweroff) {
+		pr_err("AS3722 poweroff is not initialised\n");
+		return;
+	}
+
+	ret = as3722_update_bits(as3722_pm_poweroff->as3722,
+		AS3722_RESET_CONTROL_REG, AS3722_POWER_OFF, AS3722_POWER_OFF);
+	if (ret < 0)
+		dev_err(as3722_pm_poweroff->dev,
+			"RESET_CONTROL_REG update failed, %d\n", ret);
+}
+
+static int as3722_poweroff_probe(struct platform_device *pdev)
+{
+	struct as3722_poweroff *as3722_poweroff;
+	struct device_node *np = pdev->dev.parent->of_node;
+
+	if (!np)
+		return -EINVAL;
+
+	if (!of_property_read_bool(np, "ams,system-power-controller"))
+		return 0;
+
+	as3722_poweroff = devm_kzalloc(&pdev->dev, sizeof(*as3722_poweroff),
+				GFP_KERNEL);
+	if (!as3722_poweroff)
+		return -ENOMEM;
+
+	as3722_poweroff->as3722 = dev_get_drvdata(pdev->dev.parent);
+	as3722_poweroff->dev = &pdev->dev;
+	as3722_pm_poweroff = as3722_poweroff;
+	if (!pm_power_off)
+		pm_power_off = as3722_pm_power_off;
+
+	return 0;
+}
+
+static int as3722_poweroff_remove(struct platform_device *pdev)
+{
+	if (pm_power_off == as3722_pm_power_off)
+		pm_power_off = NULL;
+	as3722_pm_poweroff = NULL;
+
+	return 0;
+}
+
+static struct platform_driver as3722_poweroff_driver = {
+	.driver = {
+		.name = "as3722-power-off",
+		.owner = THIS_MODULE,
+	},
+	.probe = as3722_poweroff_probe,
+	.remove = as3722_poweroff_remove,
+};
+
+module_platform_driver(as3722_poweroff_driver);
+
+MODULE_DESCRIPTION("Power off driver for ams AS3722 PMIC Device");
+MODULE_ALIAS("platform:as3722-power-off");
+MODULE_AUTHOR("Laxman Dewangan <ldewangan@nvidia.com>");
+MODULE_LICENSE("GPL v2");
-- 
1.7.9.5

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

* Re: [PATCH V2 1/2] mfd: AS3722: add dt node properties for system power controller
  2013-12-20 13:23 [PATCH V2 1/2] mfd: AS3722: add dt node properties for system power controller Laxman Dewangan
  2013-12-20 13:24 ` [PATCH V2 2/2] power: reset: as3722: add power-off driver Laxman Dewangan
@ 2013-12-20 13:48 ` Lee Jones
  2013-12-20 16:09   ` Stephen Warren
  1 sibling, 1 reply; 5+ messages in thread
From: Lee Jones @ 2013-12-20 13:48 UTC (permalink / raw)
  To: Laxman Dewangan
  Cc: anton, dwmw2, mark.rutland, rob, ijc+devicetree, swarren,
	devicetree, linux-doc, linux-kernel

On Fri, 20 Dec 2013, Laxman Dewangan wrote:

> ams AS3722 device supports the power off by turning off its all rails.
> 
> Add dt node properties to enable this functionality on this device.
> 
> Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
> Tested-by: Stephen Warren <swarren@nvidia.com>

I'm guessing I can use this as an Ack?

> ---
> Changes form V1:
> - Rephrase sentence and mention that propery is boolean type.
> - Added Tested by.
> 
>  Documentation/devicetree/bindings/mfd/as3722.txt |   11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/mfd/as3722.txt b/Documentation/devicetree/bindings/mfd/as3722.txt
> index fc2191e..8edcb9b 100644
> --- a/Documentation/devicetree/bindings/mfd/as3722.txt
> +++ b/Documentation/devicetree/bindings/mfd/as3722.txt
> @@ -112,6 +112,15 @@ Following are properties of regulator subnode.
>  		ams,enable-tracking: Enable tracking with SD1, only supported
>  			by LDO3.
>  
> +Power-off:
> +=========
> +AS3722 supports the system power off by turning off all its rail. This
> +is provided through pm_power_off.
> +The device node should have the following properties to enable this
> +functionality
> +ams,system-power-controller: Boolean, to enable the power off functionality
> +        through this device.
> +
>  Example:
>  --------
>  #include <dt-bindings/mfd/as3722.h>
> @@ -120,6 +129,8 @@ ams3722 {
>  	compatible = "ams,as3722";
>  	reg = <0x48>;
>  
> +	ams,system-power-controller;
> +
>  	interrupt-parent = <&intc>;
>  	interrupt-controller;
>  	#interrupt-cells = <2>;

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

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

* Re: [PATCH V2 1/2] mfd: AS3722: add dt node properties for system power controller
  2013-12-20 13:48 ` [PATCH V2 1/2] mfd: AS3722: add dt node properties for system power controller Lee Jones
@ 2013-12-20 16:09   ` Stephen Warren
  0 siblings, 0 replies; 5+ messages in thread
From: Stephen Warren @ 2013-12-20 16:09 UTC (permalink / raw)
  To: Lee Jones, Laxman Dewangan
  Cc: anton, dwmw2, mark.rutland, rob, ijc+devicetree, swarren,
	devicetree, linux-doc, linux-kernel

On 12/20/2013 06:48 AM, Lee Jones wrote:
> On Fri, 20 Dec 2013, Laxman Dewangan wrote:
> 
>> ams AS3722 device supports the power off by turning off its all rails.
>>
>> Add dt node properties to enable this functionality on this device.
>>
>> Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
>> Tested-by: Stephen Warren <swarren@nvidia.com>
> 
> I'm guessing I can use this as an Ack?

You mean for the DT binding? I'm not actually in MAINTAINERS for DT
binding reviews any more, but this binding change is identical to that
which appears in a bunch of other drivers, so I'd tend not to think it
needs an ack.

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

* Re: [PATCH V2 2/2] power: reset: as3722: add power-off driver
  2013-12-20 13:24 ` [PATCH V2 2/2] power: reset: as3722: add power-off driver Laxman Dewangan
@ 2013-12-24  1:28   ` Anton Vorontsov
  0 siblings, 0 replies; 5+ messages in thread
From: Anton Vorontsov @ 2013-12-24  1:28 UTC (permalink / raw)
  To: Laxman Dewangan
  Cc: lee.jones, dwmw2, mark.rutland, rob, ijc+devicetree, swarren,
	devicetree, linux-doc, linux-kernel

On Fri, Dec 20, 2013 at 06:54:00PM +0530, Laxman Dewangan wrote:
> ams AS3722 supports the power off functionality to turn off
> system.
> 
> Add power off driver for ams AS3722.
> 
> Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
> Tested-by: Stephen Warren <swarren@nvidia.com>
> ---
> Changes from V1:
> - Just added tested by.

Both applied, thanks a lot!

Anton

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

end of thread, other threads:[~2013-12-24  1:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-20 13:23 [PATCH V2 1/2] mfd: AS3722: add dt node properties for system power controller Laxman Dewangan
2013-12-20 13:24 ` [PATCH V2 2/2] power: reset: as3722: add power-off driver Laxman Dewangan
2013-12-24  1:28   ` Anton Vorontsov
2013-12-20 13:48 ` [PATCH V2 1/2] mfd: AS3722: add dt node properties for system power controller Lee Jones
2013-12-20 16:09   ` Stephen Warren

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).