#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/serio.h>
#include <linux/err.h>
#include <linux/platform_device.h>
#include <linux/io.h>
#include <linux/of.h>
#include <linux/slab.h>
#include <linux/delay.h>
#define SECURE_PROCESSOR_COMMAND …
#define COMMAND_RETURN_STATUS …
#define COMMAND_FIFO_STATUS …
#define PJ_RST_INTERRUPT …
#define PJ_INTERRUPT_MASK …
#define PORT_MASK …
#define DATA_MASK …
#define PORT_SHIFT …
#define KEYBOARD_PORT …
#define TOUCHPAD_PORT …
#define CMD_CNTR_MASK …
#define MAX_PENDING_CMDS …
#define SP_COMMAND_COMPLETE_RESET …
#define INT_0 …
#define CMD_STS_MASK …
struct olpc_apsp { … };
static int olpc_apsp_write(struct serio *port, unsigned char val)
{ … }
static irqreturn_t olpc_apsp_rx(int irq, void *dev_id)
{ … }
static int olpc_apsp_open(struct serio *port)
{ … }
static void olpc_apsp_close(struct serio *port)
{ … }
static int olpc_apsp_probe(struct platform_device *pdev)
{ … }
static void olpc_apsp_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id olpc_apsp_dt_ids[] = …;
MODULE_DEVICE_TABLE(of, olpc_apsp_dt_ids);
static struct platform_driver olpc_apsp_driver = …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
module_platform_driver(…) …;