* [PATCHv5 0/3] DT Support for TWL4030 power button @ 2013-10-23 20:26 Sebastian Reichel 2013-10-23 20:26 ` [PATCHv5 1/3] Input: twl4030-pwrbutton - add device tree support Sebastian Reichel ` (2 more replies) 0 siblings, 3 replies; 7+ messages in thread From: Sebastian Reichel @ 2013-10-23 20:26 UTC (permalink / raw) To: Sebastian Reichel, Dmitry Torokhov Cc: Grant Likely, Rob Herring, Sebastian Reichel, Peter Ujfalusi, Sachin Kamat, linux-input, linux-kernel, devicetree Hi, This is the fifth iteration of DT support for the TWL4030 power button. Changes since v4 [0]: * do not change dev_dbg to dev_err for input_allocate_device, since it prints its own message. Call will be removed completly by another patchset [1]. [0] https://lkml.org/lkml/2013/10/23/372 [1] https://lkml.org/lkml/2013/10/23/390 -- Sebastian Sebastian Reichel (3): Input: twl4030-pwrbutton - add device tree support Input: twl4030-pwrbutton: use dev_err for errors Input: twl4030-pwrbutton: simplify driver using devm_* .../bindings/input/twl4030-pwrbutton.txt | 13 +++++++ drivers/input/misc/twl4030-pwrbutton.c | 44 +++++++++------------- 2 files changed, 30 insertions(+), 27 deletions(-) create mode 100644 Documentation/devicetree/bindings/input/twl4030-pwrbutton.txt -- 1.8.4.rc3 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCHv5 1/3] Input: twl4030-pwrbutton - add device tree support 2013-10-23 20:26 [PATCHv5 0/3] DT Support for TWL4030 power button Sebastian Reichel @ 2013-10-23 20:26 ` Sebastian Reichel [not found] ` <1382560002-6299-2-git-send-email-sre-8fiUuRrzOP0dnm+yROfE0A@public.gmane.org> 2013-10-23 20:26 ` [PATCHv5 2/3] Input: twl4030-pwrbutton: use dev_err for errors Sebastian Reichel 2013-10-23 20:26 ` [PATCHv5 3/3] Input: twl4030-pwrbutton: simplify driver using devm_* Sebastian Reichel 2 siblings, 1 reply; 7+ messages in thread From: Sebastian Reichel @ 2013-10-23 20:26 UTC (permalink / raw) To: Sebastian Reichel, Dmitry Torokhov Cc: Grant Likely, Rob Herring, Sebastian Reichel, Peter Ujfalusi, Sachin Kamat, linux-input, linux-kernel, devicetree Add device tree support for twl4030 power button driver. Signed-off-by: Sebastian Reichel <sre@debian.org> --- .../devicetree/bindings/input/twl4030-pwrbutton.txt | 13 +++++++++++++ drivers/input/misc/twl4030-pwrbutton.c | 16 ++++++++++++---- 2 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 Documentation/devicetree/bindings/input/twl4030-pwrbutton.txt diff --git a/Documentation/devicetree/bindings/input/twl4030-pwrbutton.txt b/Documentation/devicetree/bindings/input/twl4030-pwrbutton.txt new file mode 100644 index 0000000..945ec74 --- /dev/null +++ b/Documentation/devicetree/bindings/input/twl4030-pwrbutton.txt @@ -0,0 +1,13 @@ +* TWL4030's pwrbutton device tree bindings + +Required SoC Specific Properties: +- compatible: should be one of the following + - "ti,twl4030-pwrbutton": For controllers compatible with twl4030 +- interrupt: should be one of the following + - <8>: For controllers compatible with twl4030 + +Example: + twl_pwrbutton: pwrbutton { + compatible = "ti,twl4030-pwrbutton"; + interrupts = <8>; + }; diff --git a/drivers/input/misc/twl4030-pwrbutton.c b/drivers/input/misc/twl4030-pwrbutton.c index b9a05fd..a3a0fe3 100644 --- a/drivers/input/misc/twl4030-pwrbutton.c +++ b/drivers/input/misc/twl4030-pwrbutton.c @@ -52,7 +52,7 @@ static irqreturn_t powerbutton_irq(int irq, void *_pwr) return IRQ_HANDLED; } -static int __init twl4030_pwrbutton_probe(struct platform_device *pdev) +static int twl4030_pwrbutton_probe(struct platform_device *pdev) { struct input_dev *pwr; int irq = platform_get_irq(pdev, 0); @@ -106,16 +106,24 @@ static int __exit twl4030_pwrbutton_remove(struct platform_device *pdev) return 0; } +#if IS_ENABLED(CONFIG_OF) +static const struct of_device_id twl4030_pwrbutton_dt_match_table[] = { + { .compatible = "ti,twl4030-pwrbutton" }, + {}, +}; +MODULE_DEVICE_TABLE(of, twl4030_pwrbutton_dt_match_table); +#endif + static struct platform_driver twl4030_pwrbutton_driver = { + .probe = twl4030_pwrbutton_probe, .remove = __exit_p(twl4030_pwrbutton_remove), .driver = { .name = "twl4030_pwrbutton", .owner = THIS_MODULE, + .of_match_table = of_match_ptr(twl4030_pwrbutton_dt_match_table), }, }; - -module_platform_driver_probe(twl4030_pwrbutton_driver, - twl4030_pwrbutton_probe); +module_platform_driver(twl4030_pwrbutton_driver); MODULE_ALIAS("platform:twl4030_pwrbutton"); MODULE_DESCRIPTION("Triton2 Power Button"); -- 1.8.4.rc3 ^ permalink raw reply related [flat|nested] 7+ messages in thread
[parent not found: <1382560002-6299-2-git-send-email-sre-8fiUuRrzOP0dnm+yROfE0A@public.gmane.org>]
* Re: [PATCHv5 1/3] Input: twl4030-pwrbutton - add device tree support [not found] ` <1382560002-6299-2-git-send-email-sre-8fiUuRrzOP0dnm+yROfE0A@public.gmane.org> @ 2013-10-23 22:24 ` Rob Herring 2013-10-23 22:49 ` Sebastian Reichel 0 siblings, 1 reply; 7+ messages in thread From: Rob Herring @ 2013-10-23 22:24 UTC (permalink / raw) To: Sebastian Reichel, Sebastian Reichel, Dmitry Torokhov Cc: Grant Likely, Rob Herring, Peter Ujfalusi, Sachin Kamat, linux-input-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA On 10/23/2013 03:26 PM, Sebastian Reichel wrote: > Add device tree support for twl4030 power button driver. > > Signed-off-by: Sebastian Reichel <sre-8fiUuRrzOP0dnm+yROfE0A@public.gmane.org> > --- > .../devicetree/bindings/input/twl4030-pwrbutton.txt | 13 +++++++++++++ > drivers/input/misc/twl4030-pwrbutton.c | 16 ++++++++++++---- > 2 files changed, 25 insertions(+), 4 deletions(-) > create mode 100644 Documentation/devicetree/bindings/input/twl4030-pwrbutton.txt > > diff --git a/Documentation/devicetree/bindings/input/twl4030-pwrbutton.txt b/Documentation/devicetree/bindings/input/twl4030-pwrbutton.txt > new file mode 100644 > index 0000000..945ec74 > --- /dev/null > +++ b/Documentation/devicetree/bindings/input/twl4030-pwrbutton.txt > @@ -0,0 +1,13 @@ > +* TWL4030's pwrbutton device tree bindings > + > +Required SoC Specific Properties: > +- compatible: should be one of the following > + - "ti,twl4030-pwrbutton": For controllers compatible with twl4030 > +- interrupt: should be one of the following > + - <8>: For controllers compatible with twl4030 > + > +Example: > + twl_pwrbutton: pwrbutton { > + compatible = "ti,twl4030-pwrbutton"; > + interrupts = <8>; > + }; So a twl4030 device is only a power button? DT should describe the h/w not a node for a sub-function of a device. Rob > diff --git a/drivers/input/misc/twl4030-pwrbutton.c b/drivers/input/misc/twl4030-pwrbutton.c > index b9a05fd..a3a0fe3 100644 > --- a/drivers/input/misc/twl4030-pwrbutton.c > +++ b/drivers/input/misc/twl4030-pwrbutton.c > @@ -52,7 +52,7 @@ static irqreturn_t powerbutton_irq(int irq, void *_pwr) > return IRQ_HANDLED; > } > > -static int __init twl4030_pwrbutton_probe(struct platform_device *pdev) > +static int twl4030_pwrbutton_probe(struct platform_device *pdev) > { > struct input_dev *pwr; > int irq = platform_get_irq(pdev, 0); > @@ -106,16 +106,24 @@ static int __exit twl4030_pwrbutton_remove(struct platform_device *pdev) > return 0; > } > > +#if IS_ENABLED(CONFIG_OF) > +static const struct of_device_id twl4030_pwrbutton_dt_match_table[] = { > + { .compatible = "ti,twl4030-pwrbutton" }, > + {}, > +}; > +MODULE_DEVICE_TABLE(of, twl4030_pwrbutton_dt_match_table); > +#endif > + > static struct platform_driver twl4030_pwrbutton_driver = { > + .probe = twl4030_pwrbutton_probe, > .remove = __exit_p(twl4030_pwrbutton_remove), > .driver = { > .name = "twl4030_pwrbutton", > .owner = THIS_MODULE, > + .of_match_table = of_match_ptr(twl4030_pwrbutton_dt_match_table), > }, > }; > - > -module_platform_driver_probe(twl4030_pwrbutton_driver, > - twl4030_pwrbutton_probe); > +module_platform_driver(twl4030_pwrbutton_driver); > > MODULE_ALIAS("platform:twl4030_pwrbutton"); > MODULE_DESCRIPTION("Triton2 Power Button"); > -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCHv5 1/3] Input: twl4030-pwrbutton - add device tree support 2013-10-23 22:24 ` Rob Herring @ 2013-10-23 22:49 ` Sebastian Reichel 2013-10-25 19:40 ` Grant Likely 0 siblings, 1 reply; 7+ messages in thread From: Sebastian Reichel @ 2013-10-23 22:49 UTC (permalink / raw) To: Rob Herring Cc: Dmitry Torokhov, Grant Likely, Rob Herring, Peter Ujfalusi, Sachin Kamat, linux-input, linux-kernel, devicetree [-- Attachment #1: Type: text/plain, Size: 1006 bytes --] On Wed, Oct 23, 2013 at 05:24:14PM -0500, Rob Herring wrote: > So a twl4030 device is only a power button? DT should describe the h/w > not a node for a sub-function of a device. No. TWL4030 is a companion chip for the OMAP3 processor. It provides miscellaneous functionality, e.g.: * RTC * Watchdog * Regulators * Keypad Matrix * USB * Audio * Vibrator * GPIO * ... One part of the functionality is the power button. The patch assumes, that the twl4030-pwrbutton node is used as follows: twl { /* ... common stuff ... */ pwrbutton { compatible = "ti,twl4030-pwrbutton"; interrupts = <8>; }; }; See also: * Documentation/devicetree/bindings/mfd/twl-familly.txt * Documentation/devicetree/bindings/watchdog/twl4030-wdt.txt * Documentation/devicetree/bindings/sound/omap-twl4030.txt * Documentation/devicetree/bindings/mfd/twl4030-power.txt * Documentation/devicetree/bindings/mfd/twl4030-audio.txt * Documentation/devicetree/bindings/gpio/gpio-twl4030.txt -- Sebastian [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCHv5 1/3] Input: twl4030-pwrbutton - add device tree support 2013-10-23 22:49 ` Sebastian Reichel @ 2013-10-25 19:40 ` Grant Likely 0 siblings, 0 replies; 7+ messages in thread From: Grant Likely @ 2013-10-25 19:40 UTC (permalink / raw) To: Sebastian Reichel, Rob Herring Cc: Dmitry Torokhov, Rob Herring, Peter Ujfalusi, Sachin Kamat, linux-input, linux-kernel, devicetree On Thu, 24 Oct 2013 00:49:42 +0200, Sebastian Reichel <sre@debian.org> wrote: > On Wed, Oct 23, 2013 at 05:24:14PM -0500, Rob Herring wrote: > > So a twl4030 device is only a power button? DT should describe the h/w > > not a node for a sub-function of a device. > > No. TWL4030 is a companion chip for the OMAP3 processor. It provides > miscellaneous functionality, e.g.: > > * RTC > * Watchdog > * Regulators > * Keypad Matrix > * USB > * Audio > * Vibrator > * GPIO > * ... > > One part of the functionality is the power button. The patch > assumes, that the twl4030-pwrbutton node is used as follows: > > twl { > /* ... common stuff ... */ > > pwrbutton { > compatible = "ti,twl4030-pwrbutton"; > interrupts = <8>; > }; > }; > > See also: > * Documentation/devicetree/bindings/mfd/twl-familly.txt > * Documentation/devicetree/bindings/watchdog/twl4030-wdt.txt > * Documentation/devicetree/bindings/sound/omap-twl4030.txt > * Documentation/devicetree/bindings/mfd/twl4030-power.txt > * Documentation/devicetree/bindings/mfd/twl4030-audio.txt > * Documentation/devicetree/bindings/gpio/gpio-twl4030.txt Wow, that's crazy! It is all one device so put all the bindings into a single file. g, ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCHv5 2/3] Input: twl4030-pwrbutton: use dev_err for errors 2013-10-23 20:26 [PATCHv5 0/3] DT Support for TWL4030 power button Sebastian Reichel 2013-10-23 20:26 ` [PATCHv5 1/3] Input: twl4030-pwrbutton - add device tree support Sebastian Reichel @ 2013-10-23 20:26 ` Sebastian Reichel 2013-10-23 20:26 ` [PATCHv5 3/3] Input: twl4030-pwrbutton: simplify driver using devm_* Sebastian Reichel 2 siblings, 0 replies; 7+ messages in thread From: Sebastian Reichel @ 2013-10-23 20:26 UTC (permalink / raw) To: Sebastian Reichel, Dmitry Torokhov Cc: Grant Likely, Rob Herring, Sebastian Reichel, Peter Ujfalusi, Sachin Kamat, linux-input, linux-kernel, devicetree Use dev_err() to output errors instead of dev_dbg(). Signed-off-by: Sebastian Reichel <sre@debian.org> --- drivers/input/misc/twl4030-pwrbutton.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/input/misc/twl4030-pwrbutton.c b/drivers/input/misc/twl4030-pwrbutton.c index a3a0fe3..48639ff 100644 --- a/drivers/input/misc/twl4030-pwrbutton.c +++ b/drivers/input/misc/twl4030-pwrbutton.c @@ -74,13 +74,13 @@ static int twl4030_pwrbutton_probe(struct platform_device *pdev) IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING, "twl4030_pwrbutton", pwr); if (err < 0) { - dev_dbg(&pdev->dev, "Can't get IRQ for pwrbutton: %d\n", err); + dev_err(&pdev->dev, "Can't get IRQ for pwrbutton: %d\n", err); goto free_input_dev; } err = input_register_device(pwr); if (err) { - dev_dbg(&pdev->dev, "Can't register power button: %d\n", err); + dev_err(&pdev->dev, "Can't register power button: %d\n", err); goto free_irq; } -- 1.8.4.rc3 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCHv5 3/3] Input: twl4030-pwrbutton: simplify driver using devm_* 2013-10-23 20:26 [PATCHv5 0/3] DT Support for TWL4030 power button Sebastian Reichel 2013-10-23 20:26 ` [PATCHv5 1/3] Input: twl4030-pwrbutton - add device tree support Sebastian Reichel 2013-10-23 20:26 ` [PATCHv5 2/3] Input: twl4030-pwrbutton: use dev_err for errors Sebastian Reichel @ 2013-10-23 20:26 ` Sebastian Reichel 2 siblings, 0 replies; 7+ messages in thread From: Sebastian Reichel @ 2013-10-23 20:26 UTC (permalink / raw) To: Sebastian Reichel, Dmitry Torokhov Cc: Grant Likely, Rob Herring, Sebastian Reichel, Peter Ujfalusi, Sachin Kamat, linux-input, linux-kernel, devicetree Use managed irq resource to simplify the driver. Signed-off-by: Sebastian Reichel <sre@debian.org> --- drivers/input/misc/twl4030-pwrbutton.c | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/drivers/input/misc/twl4030-pwrbutton.c b/drivers/input/misc/twl4030-pwrbutton.c index 48639ff..be1759c 100644 --- a/drivers/input/misc/twl4030-pwrbutton.c +++ b/drivers/input/misc/twl4030-pwrbutton.c @@ -58,7 +58,7 @@ static int twl4030_pwrbutton_probe(struct platform_device *pdev) int irq = platform_get_irq(pdev, 0); int err; - pwr = input_allocate_device(); + pwr = devm_input_allocate_device(&pdev->dev); if (!pwr) { dev_dbg(&pdev->dev, "Can't allocate power button\n"); return -ENOMEM; @@ -70,40 +70,23 @@ static int twl4030_pwrbutton_probe(struct platform_device *pdev) pwr->phys = "twl4030_pwrbutton/input0"; pwr->dev.parent = &pdev->dev; - err = request_threaded_irq(irq, NULL, powerbutton_irq, + err = devm_request_threaded_irq(&pwr->dev, irq, NULL, powerbutton_irq, IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING, "twl4030_pwrbutton", pwr); if (err < 0) { dev_err(&pdev->dev, "Can't get IRQ for pwrbutton: %d\n", err); - goto free_input_dev; + return err; } err = input_register_device(pwr); if (err) { dev_err(&pdev->dev, "Can't register power button: %d\n", err); - goto free_irq; + return err; } platform_set_drvdata(pdev, pwr); return 0; - -free_irq: - free_irq(irq, pwr); -free_input_dev: - input_free_device(pwr); - return err; -} - -static int __exit twl4030_pwrbutton_remove(struct platform_device *pdev) -{ - struct input_dev *pwr = platform_get_drvdata(pdev); - int irq = platform_get_irq(pdev, 0); - - free_irq(irq, pwr); - input_unregister_device(pwr); - - return 0; } #if IS_ENABLED(CONFIG_OF) @@ -116,7 +99,6 @@ MODULE_DEVICE_TABLE(of, twl4030_pwrbutton_dt_match_table); static struct platform_driver twl4030_pwrbutton_driver = { .probe = twl4030_pwrbutton_probe, - .remove = __exit_p(twl4030_pwrbutton_remove), .driver = { .name = "twl4030_pwrbutton", .owner = THIS_MODULE, -- 1.8.4.rc3 ^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-10-25 19:40 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-10-23 20:26 [PATCHv5 0/3] DT Support for TWL4030 power button Sebastian Reichel 2013-10-23 20:26 ` [PATCHv5 1/3] Input: twl4030-pwrbutton - add device tree support Sebastian Reichel [not found] ` <1382560002-6299-2-git-send-email-sre-8fiUuRrzOP0dnm+yROfE0A@public.gmane.org> 2013-10-23 22:24 ` Rob Herring 2013-10-23 22:49 ` Sebastian Reichel 2013-10-25 19:40 ` Grant Likely 2013-10-23 20:26 ` [PATCHv5 2/3] Input: twl4030-pwrbutton: use dev_err for errors Sebastian Reichel 2013-10-23 20:26 ` [PATCHv5 3/3] Input: twl4030-pwrbutton: simplify driver using devm_* Sebastian Reichel
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).