Input: gpio_mouse - kill off platform data
authorLinus Walleij <linus.walleij@linaro.org>
Thu, 19 Oct 2017 23:19:03 +0000 (16:19 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 20 Oct 2017 00:08:37 +0000 (17:08 -0700)
This is not used much: git grep  gpio_mouse_platform_data shows
that absolutely nothing in the kernel defines this platform
data.

It could be argued that the driver should be deleted. But that
is a bit harsh I think since it seems generally useful. So
this patch starts a series which repurposes it to be used with
hardware nodes from device tree or ACPI.

This first patch simply localize the platform data header and
allocates a dummy platform data.

Yes: this patch leaves the driver in a pretty useless state,
but since nothing is instantiating this driver, it doesn't
make it more useless than it already is. Later patches makes
use of the driver.

Acked-by: Hans-Christian Noren Egtvedt <egtvedt@samfundet.no>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/mouse/gpio_mouse.c
include/linux/gpio_mouse.h [deleted file]

index ced0739..dcaba1e 100644 (file)
 #include <linux/platform_device.h>
 #include <linux/input-polldev.h>
 #include <linux/gpio.h>
-#include <linux/gpio_mouse.h>
 
+#define GPIO_MOUSE_POLARITY_ACT_HIGH   0x00
+#define GPIO_MOUSE_POLARITY_ACT_LOW    0x01
+
+#define GPIO_MOUSE_PIN_UP      0
+#define GPIO_MOUSE_PIN_DOWN    1
+#define GPIO_MOUSE_PIN_LEFT    2
+#define GPIO_MOUSE_PIN_RIGHT   3
+#define GPIO_MOUSE_PIN_BLEFT   4
+#define GPIO_MOUSE_PIN_BMIDDLE 5
+#define GPIO_MOUSE_PIN_BRIGHT  6
+#define GPIO_MOUSE_PIN_MAX     7
+
+/**
+ * struct gpio_mouse_platform_data
+ * @scan_ms: integer in ms specifying the scan periode.
+ * @polarity: Pin polarity, active high or low.
+ * @up: GPIO line for up value.
+ * @down: GPIO line for down value.
+ * @left: GPIO line for left value.
+ * @right: GPIO line for right value.
+ * @bleft: GPIO line for left button.
+ * @bmiddle: GPIO line for middle button.
+ * @bright: GPIO line for right button.
+ * @pins: GPIO line numbers used for the mouse.
+ *
+ * This struct must be added to the platform_device in the board code.
+ * It is used by the gpio_mouse driver to setup GPIO lines and to
+ * calculate mouse movement.
+ */
+struct gpio_mouse_platform_data {
+       int scan_ms;
+       int polarity;
+
+       union {
+               struct {
+                       int up;
+                       int down;
+                       int left;
+                       int right;
+
+                       int bleft;
+                       int bmiddle;
+                       int bright;
+               };
+               int pins[GPIO_MOUSE_PIN_MAX];
+       };
+};
 
 /*
  * Timer function which is run every scan_ms ms when the device is opened.
@@ -47,17 +93,16 @@ static void gpio_mouse_scan(struct input_polled_dev *dev)
 
 static int gpio_mouse_probe(struct platform_device *pdev)
 {
-       struct gpio_mouse_platform_data *pdata = dev_get_platdata(&pdev->dev);
+       struct device *dev = &pdev->dev;
+       struct gpio_mouse_platform_data *pdata;
        struct input_polled_dev *input_poll;
        struct input_dev *input;
        int pin, i;
        int error;
 
-       if (!pdata) {
-               dev_err(&pdev->dev, "no platform data\n");
-               error = -ENXIO;
-               goto out;
-       }
+       pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
+       if (!pdata)
+               return -ENOMEM;
 
        if (pdata->scan_ms < 0) {
                dev_err(&pdev->dev, "invalid scan time\n");
diff --git a/include/linux/gpio_mouse.h b/include/linux/gpio_mouse.h
deleted file mode 100644 (file)
index 44ed7aa..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Driver for simulating a mouse on GPIO lines.
- *
- * Copyright (C) 2007 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#ifndef _GPIO_MOUSE_H
-#define _GPIO_MOUSE_H
-
-#define GPIO_MOUSE_POLARITY_ACT_HIGH   0x00
-#define GPIO_MOUSE_POLARITY_ACT_LOW    0x01
-
-#define GPIO_MOUSE_PIN_UP      0
-#define GPIO_MOUSE_PIN_DOWN    1
-#define GPIO_MOUSE_PIN_LEFT    2
-#define GPIO_MOUSE_PIN_RIGHT   3
-#define GPIO_MOUSE_PIN_BLEFT   4
-#define GPIO_MOUSE_PIN_BMIDDLE 5
-#define GPIO_MOUSE_PIN_BRIGHT  6
-#define GPIO_MOUSE_PIN_MAX     7
-
-/**
- * struct gpio_mouse_platform_data
- * @scan_ms: integer in ms specifying the scan periode.
- * @polarity: Pin polarity, active high or low.
- * @up: GPIO line for up value.
- * @down: GPIO line for down value.
- * @left: GPIO line for left value.
- * @right: GPIO line for right value.
- * @bleft: GPIO line for left button.
- * @bmiddle: GPIO line for middle button.
- * @bright: GPIO line for right button.
- *
- * This struct must be added to the platform_device in the board code.
- * It is used by the gpio_mouse driver to setup GPIO lines and to
- * calculate mouse movement.
- */
-struct gpio_mouse_platform_data {
-       int scan_ms;
-       int polarity;
-
-       union {
-               struct {
-                       int up;
-                       int down;
-                       int left;
-                       int right;
-
-                       int bleft;
-                       int bmiddle;
-                       int bright;
-               };
-               int pins[GPIO_MOUSE_PIN_MAX];
-       };
-};
-
-#endif /* _GPIO_MOUSE_H */