#include <linux/delay.h>
#include <linux/module.h>
#include <linux/ioport.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/serio.h>
#include <linux/errno.h>
#include <linux/err.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <asm/io.h>
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
#define CT82C710_DEV_IDLE …
#define CT82C710_RX_FULL …
#define CT82C710_TX_IDLE …
#define CT82C710_RESET …
#define CT82C710_INTS_ON …
#define CT82C710_ERROR_FLAG …
#define CT82C710_CLEAR …
#define CT82C710_ENABLE …
#define CT82C710_IRQ …
#define CT82C710_DATA …
#define CT82C710_STATUS …
static struct serio *ct82c710_port;
static struct platform_device *ct82c710_device;
static struct resource ct82c710_iores;
static irqreturn_t ct82c710_interrupt(int cpl, void *dev_id)
{ … }
static int ct82c170_wait(void)
{ … }
static void ct82c710_close(struct serio *serio)
{ … }
static int ct82c710_open(struct serio *serio)
{ … }
static int ct82c710_write(struct serio *port, unsigned char c)
{ … }
static int __init ct82c710_detect(void)
{ … }
static int ct82c710_probe(struct platform_device *dev)
{ … }
static void ct82c710_remove(struct platform_device *dev)
{ … }
static struct platform_driver ct82c710_driver = …;
static int __init ct82c710_init(void)
{ … }
static void __exit ct82c710_exit(void)
{ … }
module_init(…) …;
module_exit(ct82c710_exit);