#include <linux/types.h>
#include <linux/interrupt.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/input.h>
#include <linux/input/cma3000.h>
#include <linux/module.h>
#include "cma3000_d0x.h"
#define CMA3000_WHOAMI …
#define CMA3000_REVID …
#define CMA3000_CTRL …
#define CMA3000_STATUS …
#define CMA3000_RSTR …
#define CMA3000_INTSTATUS …
#define CMA3000_DOUTX …
#define CMA3000_DOUTY …
#define CMA3000_DOUTZ …
#define CMA3000_MDTHR …
#define CMA3000_MDFFTMR …
#define CMA3000_FFTHR …
#define CMA3000_RANGE2G …
#define CMA3000_RANGE8G …
#define CMA3000_BUSI2C …
#define CMA3000_MODEMASK …
#define CMA3000_GRANGEMASK …
#define CMA3000_STATUS_PERR …
#define CMA3000_INTSTATUS_FFDET …
#define CMA3000_SETDELAY …
#define CMA3000_INTDELAY …
#define BIT_TO_2G …
#define BIT_TO_8G …
struct cma3000_accl_data { … };
#define CMA3000_READ(data, reg, msg) …
#define CMA3000_SET(data, reg, val, msg) …
static int mode_to_mg[8][2] = …;
static void decode_mg(struct cma3000_accl_data *data, int *datax,
int *datay, int *dataz)
{ … }
static irqreturn_t cma3000_thread_irq(int irq, void *dev_id)
{ … }
static int cma3000_reset(struct cma3000_accl_data *data)
{ … }
static int cma3000_poweron(struct cma3000_accl_data *data)
{ … }
static int cma3000_poweroff(struct cma3000_accl_data *data)
{ … }
static int cma3000_open(struct input_dev *input_dev)
{ … }
static void cma3000_close(struct input_dev *input_dev)
{ … }
void cma3000_suspend(struct cma3000_accl_data *data)
{ … }
EXPORT_SYMBOL(…);
void cma3000_resume(struct cma3000_accl_data *data)
{ … }
EXPORT_SYMBOL(…);
struct cma3000_accl_data *cma3000_init(struct device *dev, int irq,
const struct cma3000_bus_ops *bops)
{ … }
EXPORT_SYMBOL(…);
void cma3000_exit(struct cma3000_accl_data *data)
{ … }
EXPORT_SYMBOL(…);
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;