linux/drivers/input/keyboard/tca6416-keypad.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Driver for keys on TCA6416 I2C IO expander
 *
 * Copyright (C) 2010 Texas Instruments
 *
 * Author : Sriramakrishnan.A.G. <[email protected]>
 */

#include <linux/types.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/interrupt.h>
#include <linux/workqueue.h>
#include <linux/i2c.h>
#include <linux/input.h>
#include <linux/tca6416_keypad.h>

#define TCA6416_INPUT
#define TCA6416_OUTPUT
#define TCA6416_INVERT
#define TCA6416_DIRECTION

#define TCA6416_POLL_INTERVAL

static const struct i2c_device_id tca6416_id[] =;
MODULE_DEVICE_TABLE(i2c, tca6416_id);

struct tca6416_keypad_chip {};

static int tca6416_write_reg(struct tca6416_keypad_chip *chip, int reg, u16 val)
{}

static int tca6416_read_reg(struct tca6416_keypad_chip *chip, int reg, u16 *val)
{}

static void tca6416_keys_scan(struct input_dev *input)
{}

/*
 * This is threaded IRQ handler and this can (and will) sleep.
 */
static irqreturn_t tca6416_keys_isr(int irq, void *dev_id)
{}

static int tca6416_keys_open(struct input_dev *dev)
{}

static void tca6416_keys_close(struct input_dev *dev)
{}

static int tca6416_setup_registers(struct tca6416_keypad_chip *chip)
{}

static int tca6416_keypad_probe(struct i2c_client *client)
{}

static struct i2c_driver tca6416_keypad_driver =;

static int __init tca6416_keypad_init(void)
{}

subsys_initcall(tca6416_keypad_init);

static void __exit tca6416_keypad_exit(void)
{}
module_exit(tca6416_keypad_exit);

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