linux/drivers/i2c/busses/i2c-taos-evm.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Driver for the TAOS evaluation modules
 * These devices include an I2C controller which can be controlled over the
 * serial port.
 *
 * Copyright (C) 2007 Jean Delvare <[email protected]>
 */

#include <linux/delay.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/interrupt.h>
#include <linux/input.h>
#include <linux/serio.h>
#include <linux/init.h>
#include <linux/i2c.h>

#define TAOS_BUFFER_SIZE

#define TAOS_STATE_INIT
#define TAOS_STATE_IDLE
#define TAOS_STATE_EOFF
#define TAOS_STATE_RECV

#define TAOS_CMD_RESET
#define TAOS_CMD_ECHO_ON
#define TAOS_CMD_ECHO_OFF

static DECLARE_WAIT_QUEUE_HEAD(wq);

struct taos_data {};

/* TAOS TSL2550 EVM */
static const struct i2c_board_info tsl2550_info =;

/* Instantiate i2c devices based on the adapter name */
static struct i2c_client *taos_instantiate_device(struct i2c_adapter *adapter)
{}

static int taos_smbus_xfer(struct i2c_adapter *adapter, u16 addr,
			   unsigned short flags, char read_write, u8 command,
			   int size, union i2c_smbus_data *data)
{}

static u32 taos_smbus_func(struct i2c_adapter *adapter)
{}

static const struct i2c_algorithm taos_algorithm =;

static irqreturn_t taos_interrupt(struct serio *serio, unsigned char data,
				  unsigned int flags)
{}

/* Extract the adapter name from the buffer received after reset.
   The buffer is modified and a pointer inside the buffer is returned. */
static char *taos_adapter_name(char *buffer)
{}

static int taos_connect(struct serio *serio, struct serio_driver *drv)
{}

static void taos_disconnect(struct serio *serio)
{}

static const struct serio_device_id taos_serio_ids[] =;
MODULE_DEVICE_TABLE(serio, taos_serio_ids);

static struct serio_driver taos_drv =;

module_serio_driver();

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();