#define pr_fmt(fmt) …
#define RESERVE …
#define SYNC_PULSE …
#define BIN0_PULSE …
#define BIN1_PULSE …
#define ANALOG_MIN_PULSE …
#define ANALOG_MAX_PULSE …
#define ANALOG_DELTA …
#define BIN_SAMPLE …
#define NO_SYNC …
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/parport.h>
#include <linux/input.h>
#include <linux/hrtimer.h>
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
static unsigned int walkera0701_pp_no;
module_param_named(port, walkera0701_pp_no, int, 0);
MODULE_PARM_DESC(…) …;
struct walkera_dev { … };
static struct walkera_dev w_dev;
static inline void walkera0701_parse_frame(struct walkera_dev *w)
{ … }
static inline int read_ack(struct pardevice *p)
{ … }
static void walkera0701_irq_handler(void *handler_data)
{ … }
static enum hrtimer_restart timer_handler(struct hrtimer
*handle)
{ … }
static int walkera0701_open(struct input_dev *dev)
{ … }
static void walkera0701_close(struct input_dev *dev)
{ … }
static void walkera0701_attach(struct parport *pp)
{ … }
static void walkera0701_detach(struct parport *port)
{ … }
static struct parport_driver walkera0701_parport_driver = …;
module_parport_driver(…) …;