Input: gpio_mouse - kill off platform data
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>
This commit is contained in:
parent
60942e674e
commit
c5053e695d
@ -12,8 +12,54 @@
|
|||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#include <linux/input-polldev.h>
|
#include <linux/input-polldev.h>
|
||||||
#include <linux/gpio.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.
|
* 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)
|
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_polled_dev *input_poll;
|
||||||
struct input_dev *input;
|
struct input_dev *input;
|
||||||
int pin, i;
|
int pin, i;
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
if (!pdata) {
|
pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
|
||||||
dev_err(&pdev->dev, "no platform data\n");
|
if (!pdata)
|
||||||
error = -ENXIO;
|
return -ENOMEM;
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pdata->scan_ms < 0) {
|
if (pdata->scan_ms < 0) {
|
||||||
dev_err(&pdev->dev, "invalid scan time\n");
|
dev_err(&pdev->dev, "invalid scan time\n");
|
||||||
|
@ -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 */
|
|
Loading…
Reference in New Issue
Block a user