Re: [PATCH 5/6] mc13783: add power button support
From: Wanlong Gao <hidden>
Date: 2011-07-22 01:07:11
Also in:
linux-arm-kernel
On 07/22/2011 02:04 AM, Philippe Rétornaz wrote:
quoted hunk ↗ jump to hunk
This adds support for the power-on buttons of MC13783 PMIC. This is done using a misc input device. Signed-off-by: Philippe Rétornaz<redacted> --- drivers/input/misc/Kconfig | 10 + drivers/input/misc/Makefile | 1 + drivers/input/misc/mc13783-pwrbutton.c | 288 ++++++++++++++++++++++++++++++++ drivers/mfd/mc13xxx-core.c | 4 + include/linux/mfd/mc13783.h | 1 + include/linux/mfd/mc13xxx.h | 17 ++ 6 files changed, 321 insertions(+), 0 deletions(-) create mode 100644 drivers/input/misc/mc13783-pwrbutton.cdiff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig index 45dc6aa..4272658 100644 --- a/drivers/input/misc/Kconfig +++ b/drivers/input/misc/Kconfig@@ -100,6 +100,16 @@ config INPUT_MAX8925_ONKEY To compile this driver as a module, choose M here: the module will be called max8925_onkey.
+struct mc13783_pwrb {
+ struct input_dev *pwr;
+ struct mc13xxx *mc13783;
+#define MC13783_PWRB_B1_POL_INVERT (1<< 0)
+#define MC13783_PWRB_B2_POL_INVERT (1<< 1)
+#define MC13783_PWRB_B3_POL_INVERT (1<< 2)
+ int flags;
+ unsigned short keymap[3];It seems like you just use the keymap[0]?
+static int __devinit mc13783_pwrbutton_probe(struct platform_device *pdev)
+{
+ struct mc13xxx_buttons_platform_data *pdata;
+ struct mc13xxx *mc13783 = dev_get_drvdata(pdev->dev.parent);
+ struct input_dev *pwr;
+ struct mc13783_pwrb *priv;
+ int err = 0;
+ int reg = 0;
+
+ pdata = dev_get_platdata(&pdev->dev);
+ if (pdata == NULL) {why not !pdata ? be consistent with below?
+static int __devexit mc13783_pwrbutton_remove(struct platform_device *pdev)
+{
+ struct mc13783_pwrb *priv = platform_get_drvdata(pdev);
+ struct mc13xxx_buttons_platform_data *pdata;
+ pdata = dev_get_platdata(&pdev->dev);
+
+ mc13xxx_lock(priv->mc13783);
+
+ if (pdata->b3on_flags& MC13783_BUTTON_ENABLE)
+ mc13xxx_irq_free(priv->mc13783, MC13783_IRQ_ONOFD3, priv);
+ if (pdata->b2on_flags& MC13783_BUTTON_ENABLE)
+ mc13xxx_irq_free(priv->mc13783, MC13783_IRQ_ONOFD2, priv);
+ if (pdata->b1on_flags& MC13783_BUTTON_ENABLE)
+ mc13xxx_irq_free(priv->mc13783, MC13783_IRQ_ONOFD1, priv);
+
+ mc13xxx_unlock(priv->mc13783);
+
+ input_unregister_device(priv->pwr);
+ kfree(priv);platform_set_drvdata(pdev, NULL);
+ + return 0; +} +
-- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html