All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 1/2] input: Add RAVE SP Powerbutton driver
@ 2018-03-07  2:01 Andrey Smirnov
  2018-03-07  2:01 ` [PATCH v3 2/2] dt-bindings: input: Add binding for RAVE SP input driver Andrey Smirnov
  2018-03-08 23:34 ` [PATCH v3 1/2] input: Add RAVE SP Powerbutton driver Dmitry Torokhov
  0 siblings, 2 replies; 4+ messages in thread
From: Andrey Smirnov @ 2018-03-07  2:01 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Andrey Smirnov, linux-input, linux-kernel, Rob Herring,
	Mark Rutland, devicetree, Guenter Roeck, Chris Healy,
	Lucas Stach

Add driver that properly handles input event emitted by RAVE SP
devices.

Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: linux-input@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: devicetree@vger.kernel.org
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: Chris Healy <cphealy@gmail.com>
Cc: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
---

Changes since [v2]:

	- Collected Reviewed-by from Lucas

Changes since [v1]:

	- Removed redundant dev.parent assignment

	- Various cosmetic changes

[v2] lkml.kernel.org/r/20180301165527.22274-1-andrew.smirnov@gmail.com
[v1] lkml.kernel.org/r/20180226154130.25774-1-andrew.smirnov@gmail.com

 drivers/input/misc/Kconfig             |  9 ++++
 drivers/input/misc/Makefile            |  1 +
 drivers/input/misc/rave-sp-pwrbutton.c | 94 ++++++++++++++++++++++++++++++++++
 3 files changed, 104 insertions(+)
 create mode 100644 drivers/input/misc/rave-sp-pwrbutton.c

diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
index 62a1312a7387..6a3c753b093b 100644
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
@@ -841,4 +841,13 @@ config INPUT_HISI_POWERKEY
 	  To compile this driver as a module, choose M here: the
 	  module will be called hisi_powerkey.
 
+config INPUT_RAVE_SP_PWRBUTTON
+	tristate "RAVE SP Power button Driver"
+	depends on RAVE_SP_CORE
+	help
+	  Say Y here if you want to enable power key reporting from RAVE SP
+
+	  To compile this driver as a module, choose M here: the
+	  module will be called rave-sp-pwrbutton.
+
 endif
diff --git a/drivers/input/misc/Makefile b/drivers/input/misc/Makefile
index a8f61af865aa..8cc58f362bb8 100644
--- a/drivers/input/misc/Makefile
+++ b/drivers/input/misc/Makefile
@@ -60,6 +60,7 @@ obj-$(CONFIG_INPUT_PMIC8XXX_PWRKEY)	+= pmic8xxx-pwrkey.o
 obj-$(CONFIG_INPUT_POWERMATE)		+= powermate.o
 obj-$(CONFIG_INPUT_PWM_BEEPER)		+= pwm-beeper.o
 obj-$(CONFIG_INPUT_PWM_VIBRA)		+= pwm-vibra.o
+obj-$(CONFIG_INPUT_RAVE_SP_PWRBUTTON)	+= rave-sp-pwrbutton.o
 obj-$(CONFIG_INPUT_RB532_BUTTON)	+= rb532_button.o
 obj-$(CONFIG_INPUT_REGULATOR_HAPTIC)	+= regulator-haptic.o
 obj-$(CONFIG_INPUT_RETU_PWRBUTTON)	+= retu-pwrbutton.o
diff --git a/drivers/input/misc/rave-sp-pwrbutton.c b/drivers/input/misc/rave-sp-pwrbutton.c
new file mode 100644
index 000000000000..bcab3cdb7ebd
--- /dev/null
+++ b/drivers/input/misc/rave-sp-pwrbutton.c
@@ -0,0 +1,94 @@
+// SPDX-License-Identifier: GPL-2.0+
+//
+// Power Button driver for RAVE SP
+//
+// Copyright (C) 2017 Zodiac Inflight Innovations
+//
+//
+
+#include <linux/input.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/mfd/rave-sp.h>
+#include <linux/platform_device.h>
+
+#define RAVE_SP_EVNT_BUTTON_PRESS	(RAVE_SP_EVNT_BASE + 0x00)
+
+struct rave_sp_power_button {
+	struct input_dev *idev;
+	struct notifier_block nb;
+};
+
+static int rave_sp_power_button_event(struct notifier_block *nb,
+				      unsigned long action, void *data)
+{
+	struct rave_sp_power_button *pb =
+		container_of(nb, struct rave_sp_power_button, nb);
+	const u8 event = rave_sp_action_unpack_event(action);
+	const u8 value = rave_sp_action_unpack_value(action);
+	struct input_dev *idev = pb->idev;
+
+	if (event == RAVE_SP_EVNT_BUTTON_PRESS) {
+		input_report_key(idev, KEY_POWER, value);
+		input_sync(idev);
+
+		return NOTIFY_STOP;
+	}
+
+	return NOTIFY_DONE;
+}
+
+static int rave_sp_pwrbutton_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct rave_sp_power_button *pb;
+	struct input_dev *idev;
+	int error;
+
+	pb = devm_kzalloc(dev, sizeof(*pb), GFP_KERNEL);
+	if (!pb)
+		return -ENOMEM;
+
+	idev = devm_input_allocate_device(dev);
+	if (!idev)
+		return -ENOMEM;
+
+	idev->name = pdev->name;
+
+	input_set_capability(idev, EV_KEY, KEY_POWER);
+
+	error = input_register_device(idev);
+	if (error)
+		return error;
+
+	pb->idev = idev;
+	pb->nb.notifier_call = rave_sp_power_button_event;
+	pb->nb.priority = 128;
+
+	error = devm_rave_sp_register_event_notifier(dev, &pb->nb);
+	if (error)
+		return error;
+
+	return 0;
+}
+
+static const struct of_device_id rave_sp_pwrbutton_of_match[] = {
+	{ .compatible = "zii,rave-sp-pwrbutton" },
+	{}
+};
+
+static struct platform_driver rave_sp_pwrbutton_driver = {
+	.probe = rave_sp_pwrbutton_probe,
+	.driver	= {
+		.name = KBUILD_MODNAME,
+		.of_match_table = rave_sp_pwrbutton_of_match,
+	},
+};
+module_platform_driver(rave_sp_pwrbutton_driver);
+
+MODULE_DEVICE_TABLE(of, rave_sp_pwrbutton_of_match);
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Andrey Vostrikov <andrey.vostrikov@cogentembedded.com>");
+MODULE_AUTHOR("Nikita Yushchenko <nikita.yoush@cogentembedded.com>");
+MODULE_AUTHOR("Andrey Smirnov <andrew.smirnov@gmail.com>");
+MODULE_DESCRIPTION("RAVE SP Power Button driver");
-- 
2.14.3

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

* [PATCH v3 2/2] dt-bindings: input: Add binding for RAVE SP input driver
  2018-03-07  2:01 [PATCH v3 1/2] input: Add RAVE SP Powerbutton driver Andrey Smirnov
@ 2018-03-07  2:01 ` Andrey Smirnov
  2018-03-08  2:04   ` Rob Herring
  2018-03-08 23:34 ` [PATCH v3 1/2] input: Add RAVE SP Powerbutton driver Dmitry Torokhov
  1 sibling, 1 reply; 4+ messages in thread
From: Andrey Smirnov @ 2018-03-07  2:01 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Andrey Smirnov, linux-input, linux-kernel, Rob Herring,
	Mark Rutland, devicetree, Guenter Roeck, Chris Healy,
	Lucas Stach

Add Device Tree bindings for RAVE SP input drvier - an MFD cell of
parent RAVE SP driver (documented in
Documentation/devicetree/bindings/mfd/zii,rave-sp.txt).

Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: linux-input@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: devicetree@vger.kernel.org
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: Chris Healy <cphealy@gmail.com>
Cc: Lucas Stach <l.stach@pengutronix.de>
Acked-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
---

Changes since [v2]:

	- Collected Acked-by from Lucas

	- Removed unnecessary status="okay"

No changes between v1 and v2, so v1 is not referenced here.

[v2] lkml.kernel.org/r/20180301165527.22274-2-andrew.smirnov@gmail.com

 .../bindings/input/zii,rave-sp-pwrbutton.txt       | 23 ++++++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/input/zii,rave-sp-pwrbutton.txt

diff --git a/Documentation/devicetree/bindings/input/zii,rave-sp-pwrbutton.txt b/Documentation/devicetree/bindings/input/zii,rave-sp-pwrbutton.txt
new file mode 100644
index 000000000000..b217018d03e9
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/zii,rave-sp-pwrbutton.txt
@@ -0,0 +1,23 @@
+Zodiac Inflight Innovations RAVE Supervisory Processor Power Button Bindings
+
+RAVE SP input device is a "MFD cell" device corresponding to power
+button functionality of RAVE Supervisory Processor. It is expected
+that its Device Tree node is specified as a child of the node
+corresponding to the parent RAVE SP device (as documented in
+Documentation/devicetree/bindings/mfd/zii,rave-sp.txt)
+
+Required properties:
+
+- compatible: Should be "zii,rave-sp-pwrbutton"
+
+Example:
+
+	rave-sp {
+		compatible = "zii,rave-sp-rdu1";
+		current-speed = <38400>;
+
+		pwrbutton {
+			compatible = "zii,rave-sp-pwrbutton";
+		};
+	}
+
-- 
2.14.3

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

* Re: [PATCH v3 2/2] dt-bindings: input: Add binding for RAVE SP input driver
  2018-03-07  2:01 ` [PATCH v3 2/2] dt-bindings: input: Add binding for RAVE SP input driver Andrey Smirnov
@ 2018-03-08  2:04   ` Rob Herring
  0 siblings, 0 replies; 4+ messages in thread
From: Rob Herring @ 2018-03-08  2:04 UTC (permalink / raw)
  To: Andrey Smirnov
  Cc: Dmitry Torokhov, linux-input, linux-kernel, Mark Rutland,
	devicetree, Guenter Roeck, Chris Healy, Lucas Stach

On Tue, Mar 06, 2018 at 06:01:34PM -0800, Andrey Smirnov wrote:
> Add Device Tree bindings for RAVE SP input drvier - an MFD cell of
> parent RAVE SP driver (documented in
> Documentation/devicetree/bindings/mfd/zii,rave-sp.txt).
> 
> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> Cc: linux-input@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: devicetree@vger.kernel.org
> Cc: Guenter Roeck <linux@roeck-us.net>
> Cc: Chris Healy <cphealy@gmail.com>
> Cc: Lucas Stach <l.stach@pengutronix.de>
> Acked-by: Lucas Stach <l.stach@pengutronix.de>
> Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
> ---
> 
> Changes since [v2]:
> 
> 	- Collected Acked-by from Lucas
> 
> 	- Removed unnecessary status="okay"
> 
> No changes between v1 and v2, so v1 is not referenced here.
> 
> [v2] lkml.kernel.org/r/20180301165527.22274-2-andrew.smirnov@gmail.com
> 
>  .../bindings/input/zii,rave-sp-pwrbutton.txt       | 23 ++++++++++++++++++++++
>  1 file changed, 23 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/input/zii,rave-sp-pwrbutton.txt

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

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

* Re: [PATCH v3 1/2] input: Add RAVE SP Powerbutton driver
  2018-03-07  2:01 [PATCH v3 1/2] input: Add RAVE SP Powerbutton driver Andrey Smirnov
  2018-03-07  2:01 ` [PATCH v3 2/2] dt-bindings: input: Add binding for RAVE SP input driver Andrey Smirnov
@ 2018-03-08 23:34 ` Dmitry Torokhov
  1 sibling, 0 replies; 4+ messages in thread
From: Dmitry Torokhov @ 2018-03-08 23:34 UTC (permalink / raw)
  To: Andrey Smirnov
  Cc: linux-input, linux-kernel, Rob Herring, Mark Rutland, devicetree,
	Guenter Roeck, Chris Healy, Lucas Stach

On Tue, Mar 06, 2018 at 06:01:33PM -0800, Andrey Smirnov wrote:
> Add driver that properly handles input event emitted by RAVE SP
> devices.
> 
> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> Cc: linux-input@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: devicetree@vger.kernel.org
> Cc: Guenter Roeck <linux@roeck-us.net>
> Cc: Chris Healy <cphealy@gmail.com>
> Cc: Lucas Stach <l.stach@pengutronix.de>
> Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
> Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>

Applied, thank you.

> ---
> 
> Changes since [v2]:
> 
> 	- Collected Reviewed-by from Lucas
> 
> Changes since [v1]:
> 
> 	- Removed redundant dev.parent assignment
> 
> 	- Various cosmetic changes
> 
> [v2] lkml.kernel.org/r/20180301165527.22274-1-andrew.smirnov@gmail.com
> [v1] lkml.kernel.org/r/20180226154130.25774-1-andrew.smirnov@gmail.com
> 
>  drivers/input/misc/Kconfig             |  9 ++++
>  drivers/input/misc/Makefile            |  1 +
>  drivers/input/misc/rave-sp-pwrbutton.c | 94 ++++++++++++++++++++++++++++++++++
>  3 files changed, 104 insertions(+)
>  create mode 100644 drivers/input/misc/rave-sp-pwrbutton.c
> 
> diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
> index 62a1312a7387..6a3c753b093b 100644
> --- a/drivers/input/misc/Kconfig
> +++ b/drivers/input/misc/Kconfig
> @@ -841,4 +841,13 @@ config INPUT_HISI_POWERKEY
>  	  To compile this driver as a module, choose M here: the
>  	  module will be called hisi_powerkey.
>  
> +config INPUT_RAVE_SP_PWRBUTTON
> +	tristate "RAVE SP Power button Driver"
> +	depends on RAVE_SP_CORE
> +	help
> +	  Say Y here if you want to enable power key reporting from RAVE SP
> +
> +	  To compile this driver as a module, choose M here: the
> +	  module will be called rave-sp-pwrbutton.
> +
>  endif
> diff --git a/drivers/input/misc/Makefile b/drivers/input/misc/Makefile
> index a8f61af865aa..8cc58f362bb8 100644
> --- a/drivers/input/misc/Makefile
> +++ b/drivers/input/misc/Makefile
> @@ -60,6 +60,7 @@ obj-$(CONFIG_INPUT_PMIC8XXX_PWRKEY)	+= pmic8xxx-pwrkey.o
>  obj-$(CONFIG_INPUT_POWERMATE)		+= powermate.o
>  obj-$(CONFIG_INPUT_PWM_BEEPER)		+= pwm-beeper.o
>  obj-$(CONFIG_INPUT_PWM_VIBRA)		+= pwm-vibra.o
> +obj-$(CONFIG_INPUT_RAVE_SP_PWRBUTTON)	+= rave-sp-pwrbutton.o
>  obj-$(CONFIG_INPUT_RB532_BUTTON)	+= rb532_button.o
>  obj-$(CONFIG_INPUT_REGULATOR_HAPTIC)	+= regulator-haptic.o
>  obj-$(CONFIG_INPUT_RETU_PWRBUTTON)	+= retu-pwrbutton.o
> diff --git a/drivers/input/misc/rave-sp-pwrbutton.c b/drivers/input/misc/rave-sp-pwrbutton.c
> new file mode 100644
> index 000000000000..bcab3cdb7ebd
> --- /dev/null
> +++ b/drivers/input/misc/rave-sp-pwrbutton.c
> @@ -0,0 +1,94 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +//
> +// Power Button driver for RAVE SP
> +//
> +// Copyright (C) 2017 Zodiac Inflight Innovations
> +//
> +//
> +
> +#include <linux/input.h>
> +#include <linux/kernel.h>
> +#include <linux/module.h>
> +#include <linux/mfd/rave-sp.h>
> +#include <linux/platform_device.h>
> +
> +#define RAVE_SP_EVNT_BUTTON_PRESS	(RAVE_SP_EVNT_BASE + 0x00)
> +
> +struct rave_sp_power_button {
> +	struct input_dev *idev;
> +	struct notifier_block nb;
> +};
> +
> +static int rave_sp_power_button_event(struct notifier_block *nb,
> +				      unsigned long action, void *data)
> +{
> +	struct rave_sp_power_button *pb =
> +		container_of(nb, struct rave_sp_power_button, nb);
> +	const u8 event = rave_sp_action_unpack_event(action);
> +	const u8 value = rave_sp_action_unpack_value(action);
> +	struct input_dev *idev = pb->idev;
> +
> +	if (event == RAVE_SP_EVNT_BUTTON_PRESS) {
> +		input_report_key(idev, KEY_POWER, value);
> +		input_sync(idev);
> +
> +		return NOTIFY_STOP;
> +	}
> +
> +	return NOTIFY_DONE;
> +}
> +
> +static int rave_sp_pwrbutton_probe(struct platform_device *pdev)
> +{
> +	struct device *dev = &pdev->dev;
> +	struct rave_sp_power_button *pb;
> +	struct input_dev *idev;
> +	int error;
> +
> +	pb = devm_kzalloc(dev, sizeof(*pb), GFP_KERNEL);
> +	if (!pb)
> +		return -ENOMEM;
> +
> +	idev = devm_input_allocate_device(dev);
> +	if (!idev)
> +		return -ENOMEM;
> +
> +	idev->name = pdev->name;
> +
> +	input_set_capability(idev, EV_KEY, KEY_POWER);
> +
> +	error = input_register_device(idev);
> +	if (error)
> +		return error;
> +
> +	pb->idev = idev;
> +	pb->nb.notifier_call = rave_sp_power_button_event;
> +	pb->nb.priority = 128;
> +
> +	error = devm_rave_sp_register_event_notifier(dev, &pb->nb);
> +	if (error)
> +		return error;
> +
> +	return 0;
> +}
> +
> +static const struct of_device_id rave_sp_pwrbutton_of_match[] = {
> +	{ .compatible = "zii,rave-sp-pwrbutton" },
> +	{}
> +};
> +
> +static struct platform_driver rave_sp_pwrbutton_driver = {
> +	.probe = rave_sp_pwrbutton_probe,
> +	.driver	= {
> +		.name = KBUILD_MODNAME,
> +		.of_match_table = rave_sp_pwrbutton_of_match,
> +	},
> +};
> +module_platform_driver(rave_sp_pwrbutton_driver);
> +
> +MODULE_DEVICE_TABLE(of, rave_sp_pwrbutton_of_match);
> +MODULE_LICENSE("GPL");
> +MODULE_AUTHOR("Andrey Vostrikov <andrey.vostrikov@cogentembedded.com>");
> +MODULE_AUTHOR("Nikita Yushchenko <nikita.yoush@cogentembedded.com>");
> +MODULE_AUTHOR("Andrey Smirnov <andrew.smirnov@gmail.com>");
> +MODULE_DESCRIPTION("RAVE SP Power Button driver");
> -- 
> 2.14.3
> 

-- 
Dmitry

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

end of thread, other threads:[~2018-03-08 23:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-07  2:01 [PATCH v3 1/2] input: Add RAVE SP Powerbutton driver Andrey Smirnov
2018-03-07  2:01 ` [PATCH v3 2/2] dt-bindings: input: Add binding for RAVE SP input driver Andrey Smirnov
2018-03-08  2:04   ` Rob Herring
2018-03-08 23:34 ` [PATCH v3 1/2] input: Add RAVE SP Powerbutton driver Dmitry Torokhov

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.