linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V1 1/2] input: misc: da9063: OnKey driver
  2015-04-08 14:53 [PATCH V1 0/2] Add OnKey support for DA9063 Steve Twiss
@ 2015-04-08 14:53 ` Steve Twiss
  2015-04-09  8:47   ` Paul Bolle
  2015-04-08 14:53 ` [PATCH V1 2/2] devicetree: Add bindings for DA9063 OnKey Steve Twiss
  1 sibling, 1 reply; 8+ messages in thread
From: Steve Twiss @ 2015-04-08 14:53 UTC (permalink / raw)
  To: Dmitry Torokhov, Lee Jones, Samuel Ortiz, Steve Twiss
  Cc: DT, David Dajun Chen, INPUT, Ian Campbell, Kumar Gala, LKML,
	Mark Rutland, Pawel Moll, Rob Herring

From: Steve Twiss <stwiss.opensource@diasemi.com>

Add OnKey driver support for DA9063

This patch is dependent on PATCH V1 2/2 

Signed-off-by: Steve Twiss <stwiss.opensource@diasemi.com>

---
This patch applies against linux-next and v4.0-rc6 


 MAINTAINERS                       |   2 +-
 drivers/input/misc/Kconfig        |  10 ++
 drivers/input/misc/Makefile       |   1 +
 drivers/input/misc/da9063-onkey.c | 227 ++++++++++++++++++++++++++++++++++++++
 drivers/mfd/da9063-core.c         |  55 +++++++++
 include/linux/mfd/da9063/pdata.h  |   1 +
 6 files changed, 295 insertions(+), 1 deletion(-)
 create mode 100644 drivers/input/misc/da9063-onkey.c

diff --git a/MAINTAINERS b/MAINTAINERS
index 1de6afa..97e20cf 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3138,7 +3138,7 @@ S:	Supported
 F:	Documentation/hwmon/da90??
 F:	drivers/gpio/gpio-da90??.c
 F:	drivers/hwmon/da90??-hwmon.c
-F:	drivers/input/misc/da90??_onkey.c
+F:	drivers/input/misc/da90???onkey.c
 F:	drivers/input/touchscreen/da9052_tsi.c
 F:	drivers/leds/leds-da90??.c
 F:	drivers/mfd/da903x.c
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
index 6deb8da..9d7a79d 100644
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
@@ -586,6 +586,16 @@ config INPUT_DA9055_ONKEY
 	  To compile this driver as a module, choose M here: the module
 	  will be called da9055_onkey.
 
+config INPUT_DA9063_ONKEY
+	tristate "Dialog DA9063 OnKey"
+	depends on MFD_DA9063
+	help
+	  Support the ONKEY of Dialog DA9063 Power Management IC as an
+	  input device reporting power button statue.
+
+	  To compile this driver as a module, choose M here: the module
+	  will be called da9063-onkey.
+
 config INPUT_DM355EVM
 	tristate "TI DaVinci DM355 EVM Keypad and IR Remote"
 	depends on MFD_DM355EVM_MSP
diff --git a/drivers/input/misc/Makefile b/drivers/input/misc/Makefile
index 403a1a5..50ae57e 100644
--- a/drivers/input/misc/Makefile
+++ b/drivers/input/misc/Makefile
@@ -25,6 +25,7 @@ obj-$(CONFIG_INPUT_CMA3000_I2C)		+= cma3000_d0x_i2c.o
 obj-$(CONFIG_INPUT_COBALT_BTNS)		+= cobalt_btns.o
 obj-$(CONFIG_INPUT_DA9052_ONKEY)	+= da9052_onkey.o
 obj-$(CONFIG_INPUT_DA9055_ONKEY)	+= da9055_onkey.o
+obj-$(CONFIG_INPUT_DA9063_ONKEY)	+= da9063-onkey.o
 obj-$(CONFIG_INPUT_DM355EVM)		+= dm355evm_keys.o
 obj-$(CONFIG_INPUT_E3X0_BUTTON)		+= e3x0-button.o
 obj-$(CONFIG_INPUT_DRV260X_HAPTICS)	+= drv260x.o
diff --git a/drivers/input/misc/da9063-onkey.c b/drivers/input/misc/da9063-onkey.c
new file mode 100644
index 0000000..325b8a2
--- /dev/null
+++ b/drivers/input/misc/da9063-onkey.c
@@ -0,0 +1,227 @@
+/* da9063-onkey.c - Onkey device driver for DA9063
+ * Copyright (C) 2013  Dialog Semiconductor Ltd.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ */
+
+#include <linux/module.h>
+#include <linux/errno.h>
+#include <linux/input.h>
+#include <linux/interrupt.h>
+#include <linux/platform_device.h>
+#include <linux/workqueue.h>
+#include <linux/regmap.h>
+#include <linux/of.h>
+#include <linux/mfd/da9063/core.h>
+#include <linux/mfd/da9063/pdata.h>
+#include <linux/mfd/da9063/registers.h>
+
+struct da9063_onkey {
+	struct	da9063 *hw;
+	struct delayed_work work;
+	struct	input_dev *input;
+	int irq;
+	bool key_power;
+};
+
+static void da9063_poll_on(struct work_struct *work)
+{
+	struct da9063_onkey *onkey = container_of(work, struct da9063_onkey,
+						  work.work);
+	unsigned int val;
+	int fault_log = 0;
+	bool poll = true;
+	int ret;
+
+	/* poll to see when the pin is released */
+	ret = regmap_read(onkey->hw->regmap, DA9063_REG_STATUS_A, &val);
+	if (ret < 0) {
+		dev_err(&onkey->input->dev,
+			"Failed to read ON status: %d\n", ret);
+		goto err_poll;
+	}
+
+	if (!(val & DA9063_NONKEY)) {
+		ret = regmap_update_bits(onkey->hw->regmap,
+					 DA9063_REG_CONTROL_B,
+					 DA9063_NONKEY_LOCK, 0);
+		if (ret < 0) {
+			dev_err(&onkey->input->dev,
+				"Failed to reset the Key Delay %d\n", ret);
+			goto err_poll;
+		}
+
+		input_report_key(onkey->input, KEY_POWER, 0);
+		input_sync(onkey->input);
+
+		poll = false;
+	}
+
+	/* if the fault log KEY_RESET is detected,
+	 * then clear it and shutdown via I2C
+	 */
+	ret = regmap_read(onkey->hw->regmap, DA9063_REG_FAULT_LOG, &fault_log);
+	if (ret < 0)
+		dev_warn(&onkey->input->dev, "Cannot read FAULT_LOG\n");
+
+	if (fault_log & DA9063_KEY_RESET) {
+		ret = regmap_write(onkey->hw->regmap,
+				   DA9063_REG_FAULT_LOG,
+				   DA9063_KEY_RESET);
+		if (ret < 0)
+			dev_warn(&onkey->input->dev,
+				 "Cannot reset KEY_RESET fault log\n");
+		else {
+			/* at this point we do any S/W housekeeping
+			 * and then send shutdown command
+			 */
+			dev_info(&onkey->input->dev,
+				 "Sending SHUTDOWN to DA9063 ...\n");
+			ret = regmap_write(onkey->hw->regmap,
+					   DA9063_REG_CONTROL_F,
+					   DA9063_SHUTDOWN);
+			if (ret < 0)
+				dev_err(&onkey->input->dev,
+					"Cannot SHUTDOWN DA9063\n");
+		}
+	}
+
+err_poll:
+	if (poll)
+		schedule_delayed_work(&onkey->work, 50);
+}
+
+static irqreturn_t da9063_onkey_irq_handler(int irq, void *data)
+{
+	struct da9063_onkey *onkey = data;
+	unsigned int val;
+	int ret;
+
+	ret = regmap_read(onkey->hw->regmap, DA9063_REG_STATUS_A, &val);
+	if (onkey->key_power && (ret >= 0) && (val & DA9063_NONKEY)) {
+		input_report_key(onkey->input, KEY_POWER, 1);
+		input_sync(onkey->input);
+		schedule_delayed_work(&onkey->work, 0);
+		dev_notice(&onkey->input->dev, "KEY_POWER pressed.\n");
+	} else {
+		input_report_key(onkey->input, KEY_SLEEP, 1);
+		input_sync(onkey->input);
+		input_report_key(onkey->input, KEY_SLEEP, 0);
+		input_sync(onkey->input);
+		dev_notice(&onkey->input->dev, "KEY_SLEEP pressed.\n");
+	}
+
+	return IRQ_HANDLED;
+}
+
+static int da9063_onkey_probe(struct platform_device *pdev)
+{
+	struct da9063 *da9063 = dev_get_drvdata(pdev->dev.parent);
+	struct da9063_pdata *pdata = dev_get_platdata(da9063->dev);
+	struct da9063_onkey *onkey;
+	bool kp_tmp = true;
+	int ret = 0;
+
+	if (pdata)
+		kp_tmp = pdata->key_power;
+	else {
+		kp_tmp = of_property_read_bool((&pdev->dev)->of_node,
+					       "dlg,disable-key-power");
+		kp_tmp = !kp_tmp;
+	}
+
+	onkey = devm_kzalloc(&pdev->dev, sizeof(struct da9063_onkey),
+			     GFP_KERNEL);
+	if (!onkey) {
+		dev_err(&pdev->dev, "Failed to allocate memory.\n");
+		ret = -ENOMEM;
+		goto err;
+	}
+
+	INIT_DELAYED_WORK(&onkey->work, da9063_poll_on);
+
+	onkey->input = devm_input_allocate_device(&pdev->dev);
+	if (!onkey->input) {
+		dev_err(&pdev->dev, "Failed to allocated input device.\n");
+		ret = -ENOMEM;
+		goto err;
+	}
+
+	ret = platform_get_irq_byname(pdev, "ONKEY");
+	if (ret < 0) {
+		dev_err(&pdev->dev, "Failed to get platform IRQ.\n");
+		goto err;
+	}
+	onkey->irq = ret;
+
+	ret = request_threaded_irq(onkey->irq, NULL,
+				   da9063_onkey_irq_handler,
+				   IRQF_TRIGGER_LOW | IRQF_ONESHOT,
+				   "ONKEY", onkey);
+	if (ret) {
+		dev_err(&pdev->dev,
+			"Failed to request input device IRQ.\n");
+		goto err;
+	}
+
+	onkey->hw = da9063;
+	onkey->key_power = kp_tmp;
+	onkey->input->evbit[0] = BIT_MASK(EV_KEY);
+	onkey->input->name = DA9063_DRVNAME_ONKEY;
+	onkey->input->phys = DA9063_DRVNAME_ONKEY "/input0";
+	onkey->input->dev.parent = &pdev->dev;
+
+	if (onkey->key_power)
+		input_set_capability(onkey->input, EV_KEY, KEY_POWER);
+	input_set_capability(onkey->input, EV_KEY, KEY_SLEEP);
+
+	ret = input_register_device(onkey->input);
+	if (ret) {
+		dev_err(&pdev->dev,
+			"Failed to register input device.\n");
+		goto err_irq;
+	}
+
+	platform_set_drvdata(pdev, onkey);
+	return 0;
+
+err_irq:
+	free_irq(onkey->irq, onkey);
+	cancel_delayed_work_sync(&onkey->work);
+err:
+	return ret;
+}
+
+static int da9063_onkey_remove(struct platform_device *pdev)
+{
+	struct	da9063_onkey *onkey = platform_get_drvdata(pdev);
+
+	free_irq(onkey->irq, onkey);
+	cancel_delayed_work_sync(&onkey->work);
+	input_unregister_device(onkey->input);
+	return 0;
+}
+
+static struct platform_driver da9063_onkey_driver = {
+	.probe	= da9063_onkey_probe,
+	.remove	= da9063_onkey_remove,
+	.driver	= {
+		.name	= DA9063_DRVNAME_ONKEY,
+		.owner	= THIS_MODULE,
+	},
+};
+
+module_platform_driver(da9063_onkey_driver);
+
+MODULE_AUTHOR("S Twiss <stwiss.opensource@diasemi.com>");
+MODULE_DESCRIPTION("Onkey device driver for Dialog DA9063");
+MODULE_LICENSE("GPL v2");
+MODULE_ALIAS("platform:" DA9063_DRVNAME_ONKEY);
diff --git a/drivers/mfd/da9063-core.c b/drivers/mfd/da9063-core.c
index facd361..b6d6f18 100644
--- a/drivers/mfd/da9063-core.c
+++ b/drivers/mfd/da9063-core.c
@@ -60,6 +60,7 @@ static struct resource da9063_rtc_resources[] = {
 
 static struct resource da9063_onkey_resources[] = {
 	{
+		.name	= "ONKEY",
 		.start	= DA9063_IRQ_ONKEY,
 		.end	= DA9063_IRQ_ONKEY,
 		.flags	= IORESOURCE_IRQ,
@@ -97,6 +98,7 @@ static const struct mfd_cell da9063_devs[] = {
 		.name		= DA9063_DRVNAME_ONKEY,
 		.num_resources	= ARRAY_SIZE(da9063_onkey_resources),
 		.resources	= da9063_onkey_resources,
+		.of_compatible = "dlg,da9063-onkey",
 	},
 	{
 		.name		= DA9063_DRVNAME_RTC,
@@ -109,12 +111,64 @@ static const struct mfd_cell da9063_devs[] = {
 	},
 };
 
+static int da9063_clear_fault_log(struct da9063 *da9063)
+{
+	int ret = 0;
+	int fault_log = 0;
+
+	ret = regmap_read(da9063->regmap, DA9063_REG_FAULT_LOG, &fault_log);
+	if (ret < 0) {
+		dev_err(da9063->dev, "Cannot read FAULT_LOG.\n");
+		return -EIO;
+	}
+
+	if (fault_log) {
+		if (fault_log & DA9063_TWD_ERROR)
+			dev_dbg(da9063->dev,
+				"Fault log entry detected: DA9063_TWD_ERROR\n");
+		if (fault_log & DA9063_POR)
+			dev_dbg(da9063->dev,
+				"Fault log entry detected: DA9063_POR\n");
+		if (fault_log & DA9063_VDD_FAULT)
+			dev_dbg(da9063->dev,
+				"Fault log entry detected: DA9063_VDD_FAULT\n");
+		if (fault_log & DA9063_VDD_START)
+			dev_dbg(da9063->dev,
+				"Fault log entry detected: DA9063_VDD_START\n");
+		if (fault_log & DA9063_TEMP_CRIT)
+			dev_dbg(da9063->dev,
+				"Fault log entry detected: DA9063_TEMP_CRIT\n");
+		if (fault_log & DA9063_KEY_RESET)
+			dev_dbg(da9063->dev,
+				"Fault log entry detected: DA9063_KEY_RESET\n");
+		if (fault_log & DA9063_NSHUTDOWN)
+			dev_dbg(da9063->dev,
+				"Fault log entry detected: DA9063_NSHUTDOWN\n");
+		if (fault_log & DA9063_WAIT_SHUT)
+			dev_dbg(da9063->dev,
+				"Fault log entry detected: DA9063_WAIT_SHUT\n");
+	}
+
+	ret = regmap_write(da9063->regmap,
+			   DA9063_REG_FAULT_LOG,
+			   fault_log);
+	if (ret < 0)
+		dev_err(da9063->dev,
+			"Cannot reset FAULT_LOG values %d\n", ret);
+
+	return ret;
+}
+
 int da9063_device_init(struct da9063 *da9063, unsigned int irq)
 {
 	struct da9063_pdata *pdata = da9063->dev->platform_data;
 	int model, variant_id, variant_code;
 	int ret;
 
+	ret = da9063_clear_fault_log(da9063);
+	if (ret < 0)
+		dev_err(da9063->dev, "Cannot clear fault log\n");
+
 	if (pdata) {
 		da9063->flags = pdata->flags;
 		da9063->irq_base = pdata->irq_base;
@@ -178,6 +232,7 @@ int da9063_device_init(struct da9063 *da9063, unsigned int irq)
 	if (ret)
 		dev_err(da9063->dev, "Cannot add MFD cells\n");
 
+
 	return ret;
 }
 
diff --git a/include/linux/mfd/da9063/pdata.h b/include/linux/mfd/da9063/pdata.h
index 95c8742..612383b 100644
--- a/include/linux/mfd/da9063/pdata.h
+++ b/include/linux/mfd/da9063/pdata.h
@@ -103,6 +103,7 @@ struct da9063;
 struct da9063_pdata {
 	int				(*init)(struct da9063 *da9063);
 	int				irq_base;
+	bool				key_power;
 	unsigned			flags;
 	struct da9063_regulators_pdata	*regulators_pdata;
 	struct led_platform_data	*leds_pdata;
-- 
end-of-patch for PATCH V1


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

* [PATCH V1 0/2]  Add OnKey support for DA9063
@ 2015-04-08 14:53 Steve Twiss
  2015-04-08 14:53 ` [PATCH V1 1/2] input: misc: da9063: OnKey driver Steve Twiss
  2015-04-08 14:53 ` [PATCH V1 2/2] devicetree: Add bindings for DA9063 OnKey Steve Twiss
  0 siblings, 2 replies; 8+ messages in thread
From: Steve Twiss @ 2015-04-08 14:53 UTC (permalink / raw)
  To: Dmitry Torokhov, Ian Campbell, Kumar Gala, Lee Jones,
	Mark Rutland, Pawel Moll, Rob Herring, Samuel Ortiz, Steve Twiss
  Cc: DT, David Dajun Chen, INPUT, LKML

From: Steve Twiss <stwiss.opensource@diasemi.com>

This patch set adds OnKey driver support for the Dialog
Semiconductor DA9063 PMIC.

[PATCH V1 1/2]: kernel driver onkey support
[PATCH V1 2/2]: device tree bindings document

Thank you,
Steve Twiss, Dialog Semiconductor Ltd.

S Twiss (2):
  input: misc: da9063: OnKey driver
  devicetree: Add bindings for DA9063 OnKey

 Documentation/devicetree/bindings/mfd/da9063.txt |  22 ++-
 MAINTAINERS                                      |   2 +-
 drivers/input/misc/Kconfig                       |  10 +
 drivers/input/misc/Makefile                      |   1 +
 drivers/input/misc/da9063-onkey.c                | 227 +++++++++++++++++++++++
 drivers/mfd/da9063-core.c                        |  55 ++++++
 include/linux/mfd/da9063/pdata.h                 |   1 +
 7 files changed, 315 insertions(+), 3 deletions(-)
 create mode 100644 drivers/input/misc/da9063-onkey.c

-- 
end-of-patch for PATCH V1


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

* [PATCH V1 2/2] devicetree: Add bindings for DA9063 OnKey
  2015-04-08 14:53 [PATCH V1 0/2] Add OnKey support for DA9063 Steve Twiss
  2015-04-08 14:53 ` [PATCH V1 1/2] input: misc: da9063: OnKey driver Steve Twiss
@ 2015-04-08 14:53 ` Steve Twiss
  2015-04-09  9:21   ` Lee Jones
  1 sibling, 1 reply; 8+ messages in thread
From: Steve Twiss @ 2015-04-08 14:53 UTC (permalink / raw)
  To: Ian Campbell, Kumar Gala, Lee Jones, Mark Rutland, Pawel Moll,
	Rob Herring, Steve Twiss
  Cc: DT, David Dajun Chen, Dmitry Torokhov, INPUT, LKML, Samuel Ortiz

From: Steve Twiss <stwiss.opensource@diasemi.com>

Add device tree bindings for the DA9063 OnKey driver

This patch is dependent on PATCH V1 1/2 

Signed-off-by: Steve Twiss <stwiss.opensource@diasemi.com>

---
This patch applies against linux-next and v4.0-rc6 


 Documentation/devicetree/bindings/mfd/da9063.txt | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/mfd/da9063.txt b/Documentation/devicetree/bindings/mfd/da9063.txt
index 42c6fa6..3449b75 100644
--- a/Documentation/devicetree/bindings/mfd/da9063.txt
+++ b/Documentation/devicetree/bindings/mfd/da9063.txt
@@ -2,9 +2,10 @@
 
 DA9093 consists of a large and varied group of sub-devices (I2C Only):
 
-Device                   Supply Names    Description
-------                   ------------    -----------
+Device			 Supply Names	 Description
+------			 ------------	 -----------
 da9063-regulator        :               : LDOs & BUCKs
+da9063-onkey            :               : On Key
 da9063-rtc              :               : Real-Time Clock
 da9063-watchdog         :               : Watchdog
 
@@ -51,6 +52,18 @@ Sub-nodes:
   the DA9063. There are currently no entries in this binding, however
   compatible = "dlg,da9063-rtc" should be added if a node is created.
 
+- onkey : This node defines the OnKey settings for controlling the key
+  functionality of the device. The node should contain the compatible keyword
+  with the value "dlg,da9063-onkey".
+
+  The platform data needs to match the OTP content of high address register
+  DA9063_REG_CONFIG_I and the device tree entry "dlg,disable-key-power" can
+  be used to control this. If the onkey node contains "dlg,disable-key-power"
+  then the power down using a long key-press is disabled. If this entry is
+  missing then by default the key-press triggered power down is enabled.
+  By toggling this key-power keyword the OnKey driver will support KEY_POWER
+  and KEY_SLEEP key presses.
+
 - watchdog : This node defines settings for the Watchdog timer associated
   with the DA9063. There are currently no entries in this binding, however
   compatible = "dlg,da9063-watchdog" should be added if a node is created.
@@ -73,6 +86,11 @@ Example:
 			compatible = "dlg,da9063-watchdog";
 		};
 
+		onkey {
+			compatible = "dlg,da9063-onkey";
+			dlg,disable-key-power;
+		};
+
 		regulators {
 			DA9063_BCORE1: bcore1 {
 				regulator-name = "BCORE1";
-- 
end-of-patch for PATCH V1


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

* Re: [PATCH V1 1/2] input: misc: da9063: OnKey driver
  2015-04-08 14:53 ` [PATCH V1 1/2] input: misc: da9063: OnKey driver Steve Twiss
@ 2015-04-09  8:47   ` Paul Bolle
  2015-04-09 10:12     ` Opensource [Steve Twiss]
  0 siblings, 1 reply; 8+ messages in thread
From: Paul Bolle @ 2015-04-09  8:47 UTC (permalink / raw)
  To: Steve Twiss
  Cc: Dmitry Torokhov, Lee Jones, Samuel Ortiz, DT, David Dajun Chen,
	INPUT, Ian Campbell, Kumar Gala, LKML, Mark Rutland, Pawel Moll,
	Rob Herring

A license mismatch was all I spotted.

On Wed, 2015-04-08 at 15:53 +0100, Steve Twiss wrote:
> From: Steve Twiss <stwiss.opensource@diasemi.com>
> 
> Add OnKey driver support for DA9063
> 
> This patch is dependent on PATCH V1 2/2 

(But I also spotted this line. And then I checked 2/2, which has:
    This patch is dependent on PATCH V1 1/2

Which makes it all rather confusing.

Anyhow, neither patch should need to carry such a line. The 1/2 and 2/2
in the Subject: line should suffice.)

> Signed-off-by: Steve Twiss <stwiss.opensource@diasemi.com>
> 
> ---
> This patch applies against linux-next and v4.0-rc6 

> --- /dev/null
> +++ b/drivers/input/misc/da9063-onkey.c
> @@ -0,0 +1,227 @@
> +/* da9063-onkey.c - Onkey device driver for DA9063
> + * Copyright (C) 2013  Dialog Semiconductor Ltd.
> + *
> + * This library is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU Library General Public
> + * License as published by the Free Software Foundation; either
> + * version 2 of the License, or (at your option) any later version.
> + *
> + * This library is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + * Library General Public License for more details.
> + */

This states the license is GPL v2 or later.

> +MODULE_LICENSE("GPL v2");

And (according to include/linux/module.h) this states the license is
(just) GPL v2.


Paul Bolle


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

* Re: [PATCH V1 2/2] devicetree: Add bindings for DA9063 OnKey
  2015-04-08 14:53 ` [PATCH V1 2/2] devicetree: Add bindings for DA9063 OnKey Steve Twiss
@ 2015-04-09  9:21   ` Lee Jones
  2015-04-09 10:31     ` Opensource [Steve Twiss]
  0 siblings, 1 reply; 8+ messages in thread
From: Lee Jones @ 2015-04-09  9:21 UTC (permalink / raw)
  To: Steve Twiss
  Cc: Ian Campbell, Kumar Gala, Mark Rutland, Pawel Moll, Rob Herring,
	DT, David Dajun Chen, Dmitry Torokhov, INPUT, LKML, Samuel Ortiz

On Wed, 08 Apr 2015, Steve Twiss wrote:

> From: Steve Twiss <stwiss.opensource@diasemi.com>

What format is this?  Why aren't you using `git send-email`?

> Add device tree bindings for the DA9063 OnKey driver
> 
> This patch is dependent on PATCH V1 1/2 

How can there be dependencies between a binding document and a driver
patch?

> Signed-off-by: Steve Twiss <stwiss.opensource@diasemi.com>
> 
> ---
> This patch applies against linux-next and v4.0-rc6 
> 
> 
>  Documentation/devicetree/bindings/mfd/da9063.txt | 22 ++++++++++++++++++++--
>  1 file changed, 20 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/mfd/da9063.txt b/Documentation/devicetree/bindings/mfd/da9063.txt
> index 42c6fa6..3449b75 100644
> --- a/Documentation/devicetree/bindings/mfd/da9063.txt
> +++ b/Documentation/devicetree/bindings/mfd/da9063.txt
> @@ -2,9 +2,10 @@
>  
>  DA9093 consists of a large and varied group of sub-devices (I2C Only):
>  
> -Device                   Supply Names    Description
> -------                   ------------    -----------
> +Device			 Supply Names	 Description
> +------			 ------------	 -----------
>  da9063-regulator        :               : LDOs & BUCKs
> +da9063-onkey            :               : On Key
>  da9063-rtc              :               : Real-Time Clock
>  da9063-watchdog         :               : Watchdog
>  
> @@ -51,6 +52,18 @@ Sub-nodes:
>    the DA9063. There are currently no entries in this binding, however
>    compatible = "dlg,da9063-rtc" should be added if a node is created.
>  
> +- onkey : This node defines the OnKey settings for controlling the key
> +  functionality of the device. The node should contain the compatible keyword

s/keyword/property/

> +  with the value "dlg,da9063-onkey".
> +
> +  The platform data needs to match the OTP content of high address register

It's wrong to mention platform data here.  Just tell us what the
property is for.

> +  DA9063_REG_CONFIG_I and the device tree entry "dlg,disable-key-power" can

I feel like you're burying the dlg,disable-key-power documentation in
side a long winded paragraph.  It's better to start the line with it,
like:

Optional Properties:

dlg,disable-key-power:  Disable power-down using a long key-press.  If
			absent <blah> ... 

> +  be used to control this. If the onkey node contains "dlg,disable-key-power"
> +  then the power down using a long key-press is disabled. If this entry is
> +  missing then by default the key-press triggered power down is enabled.
> +  By toggling this key-power keyword the OnKey driver will support KEY_POWER
> +  and KEY_SLEEP key presses.
> +
>  - watchdog : This node defines settings for the Watchdog timer associated
>    with the DA9063. There are currently no entries in this binding, however
>    compatible = "dlg,da9063-watchdog" should be added if a node is created.
> @@ -73,6 +86,11 @@ Example:
>  			compatible = "dlg,da9063-watchdog";
>  		};
>  
> +		onkey {
> +			compatible = "dlg,da9063-onkey";
> +			dlg,disable-key-power;
> +		};
> +
>  		regulators {
>  			DA9063_BCORE1: bcore1 {
>  				regulator-name = "BCORE1";

-- 
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] 8+ messages in thread

* RE: [PATCH V1 1/2] input: misc: da9063: OnKey driver
  2015-04-09  8:47   ` Paul Bolle
@ 2015-04-09 10:12     ` Opensource [Steve Twiss]
  2015-04-09 12:01       ` Paul Bolle
  0 siblings, 1 reply; 8+ messages in thread
From: Opensource [Steve Twiss] @ 2015-04-09 10:12 UTC (permalink / raw)
  To: Paul Bolle
  Cc: Dmitry Torokhov, Lee Jones, Samuel Ortiz, DT, David Dajun Chen,
	INPUT, Ian Campbell, Kumar Gala, LKML, Mark Rutland, Pawel Moll,
	Rob Herring

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 1400 bytes --]

On 09 April 2015 09:48 Paul Bolle wrote:

> > This patch is dependent on PATCH V1 2/2
>     This patch is dependent on PATCH V1 1/2
> Which makes it all rather confusing.

It is a bit circular, I'll take that out for the next patch

> > +++ b/drivers/input/misc/da9063-onkey.c
> > @@ -0,0 +1,227 @@
> > +/* da9063-onkey.c - Onkey device driver for DA9063
> > + * Copyright (C) 2013  Dialog Semiconductor Ltd.
> > + *
> > + * This library is free software; you can redistribute it and/or
> > + * modify it under the terms of the GNU Library General Public
> > + * License as published by the Free Software Foundation; either
> > + * version 2 of the License, or (at your option) any later version.
> > + *
> > + * This library is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> GNU
> > + * Library General Public License for more details.
> > + */
> 
> This states the license is GPL v2 or later.
> 
> > +MODULE_LICENSE("GPL v2");
> 
> And (according to include/linux/module.h) this states the license is
> (just) GPL v2.

Ah, I'll fix that for the future.

Thanks for the comments,
Regards,
Steve
ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

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

* RE: [PATCH V1 2/2] devicetree: Add bindings for DA9063 OnKey
  2015-04-09  9:21   ` Lee Jones
@ 2015-04-09 10:31     ` Opensource [Steve Twiss]
  0 siblings, 0 replies; 8+ messages in thread
From: Opensource [Steve Twiss] @ 2015-04-09 10:31 UTC (permalink / raw)
  To: Lee Jones
  Cc: Ian Campbell, Kumar Gala, Mark Rutland, Pawel Moll, Rob Herring,
	DT, David Dajun Chen, Dmitry Torokhov, INPUT, LKML, Samuel Ortiz

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 1426 bytes --]

On 09 April 2015 10:22 Lee Jones wrote

> > From: Steve Twiss <stwiss.opensource@diasemi.com>
> What format is this?  Why aren't you using `git send-email`?

I am using a git format-patch to generate the patches but our in-house IT
department complications disallow the use of git send-email.

> > This patch is dependent on PATCH V1 1/2
> How can there be dependencies between a binding document and a driver
> patch?

I'll remove those circular dependencies for the next patch

> > +- onkey : This node defines the OnKey settings for controlling the key
> > +  functionality of the device. The node should contain the compatible
> keyword
> 
> s/keyword/property/

... will do that search and replace

> > +  DA9063_REG_CONFIG_I and the device tree entry "dlg,disable-key-
> power" can
> 
> I feel like you're burying the dlg,disable-key-power documentation in
> side a long winded paragraph.  It's better to start the line with it,
> like:
> 
> Optional Properties:
> 
> dlg,disable-key-power:  Disable power-down using a long key-press.  If
> 			absent <blah> ...
> 

okay, I'll make that change.

Thanks for the comments,
I'll send PATCH V2 after I make the changes requested by yourself and Paul Bolle
(see https://lkml.org/lkml/2015/4/9/150).

Regards,
Steve
ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

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

* Re: [PATCH V1 1/2] input: misc: da9063: OnKey driver
  2015-04-09 10:12     ` Opensource [Steve Twiss]
@ 2015-04-09 12:01       ` Paul Bolle
  0 siblings, 0 replies; 8+ messages in thread
From: Paul Bolle @ 2015-04-09 12:01 UTC (permalink / raw)
  To: Opensource [Steve Twiss]
  Cc: Dmitry Torokhov, Lee Jones, Samuel Ortiz, DT, David Dajun Chen,
	INPUT, Ian Campbell, Kumar Gala, LKML, Mark Rutland, Pawel Moll,
	Rob Herring

On Thu, 2015-04-09 at 10:12 +0000, Opensource [Steve Twiss] wrote:
> On 09 April 2015 09:48 Paul Bolle wrote:
> 
> > > This patch is dependent on PATCH V1 2/2
> >     This patch is dependent on PATCH V1 1/2
> > Which makes it all rather confusing.
> 
> It is a bit circular, I'll take that out for the next patch
> 
> > > +++ b/drivers/input/misc/da9063-onkey.c
> > > @@ -0,0 +1,227 @@
> > > +/* da9063-onkey.c - Onkey device driver for DA9063
> > > + * Copyright (C) 2013  Dialog Semiconductor Ltd.
> > > + *
> > > + * This library is free software; you can redistribute it and/or
> > > + * modify it under the terms of the GNU Library General Public
> > > + * License as published by the Free Software Foundation; either
> > > + * version 2 of the License, or (at your option) any later version.
> > > + *
> > > + * This library is distributed in the hope that it will be useful,
> > > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > GNU
> > > + * Library General Public License for more details.
> > > + */
> > 
> > This states the license is GPL v2 or later.
> > 
> > > +MODULE_LICENSE("GPL v2");
> > 
> > And (according to include/linux/module.h) this states the license is
> > (just) GPL v2.
> 
> Ah, I'll fix that for the future.

My reading comprehension is declining. Because I only now noticed that
the comment at the top of this file states the license is LGPL v2 or
later (note the L).

Grepping the tree for "Library General" gave over 100 hits, a few of
them even in drivers/, so I suppose LPGL v2 is fine for the kernel. It
_feels_ a bit odd to use it for a driver, but that might just be me.


Paul Bolle


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

end of thread, other threads:[~2015-04-09 12:01 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-08 14:53 [PATCH V1 0/2] Add OnKey support for DA9063 Steve Twiss
2015-04-08 14:53 ` [PATCH V1 1/2] input: misc: da9063: OnKey driver Steve Twiss
2015-04-09  8:47   ` Paul Bolle
2015-04-09 10:12     ` Opensource [Steve Twiss]
2015-04-09 12:01       ` Paul Bolle
2015-04-08 14:53 ` [PATCH V1 2/2] devicetree: Add bindings for DA9063 OnKey Steve Twiss
2015-04-09  9:21   ` Lee Jones
2015-04-09 10:31     ` Opensource [Steve Twiss]

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