linux/drivers/input/keyboard/mpr121_touchkey.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Touchkey driver for Freescale MPR121 Controllor
 *
 * Copyright (C) 2011 Freescale Semiconductor, Inc.
 * Author: Zhang Jiejing <[email protected]>
 *
 * Based on mcs_touchkey.c
 */

#include <linux/bitops.h>
#include <linux/delay.h>
#include <linux/i2c.h>
#include <linux/input.h>
#include <linux/interrupt.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/property.h>
#include <linux/regulator/consumer.h>
#include <linux/slab.h>

/* Register definitions */
#define ELE_TOUCH_STATUS_0_ADDR
#define ELE_TOUCH_STATUS_1_ADDR
#define MHD_RISING_ADDR
#define NHD_RISING_ADDR
#define NCL_RISING_ADDR
#define FDL_RISING_ADDR
#define MHD_FALLING_ADDR
#define NHD_FALLING_ADDR
#define NCL_FALLING_ADDR
#define FDL_FALLING_ADDR
#define ELE0_TOUCH_THRESHOLD_ADDR
#define ELE0_RELEASE_THRESHOLD_ADDR
#define AFE_CONF_ADDR
#define FILTER_CONF_ADDR

/*
 * ELECTRODE_CONF_ADDR: This register configures the number of
 * enabled capacitance sensing inputs and its run/suspend mode.
 */
#define ELECTRODE_CONF_ADDR
#define ELECTRODE_CONF_QUICK_CHARGE
#define AUTO_CONFIG_CTRL_ADDR
#define AUTO_CONFIG_USL_ADDR
#define AUTO_CONFIG_LSL_ADDR
#define AUTO_CONFIG_TL_ADDR

/* Threshold of touch/release trigger */
#define TOUCH_THRESHOLD
#define RELEASE_THRESHOLD
/* Masks for touch and release triggers */
#define TOUCH_STATUS_MASK
/* MPR121 has 12 keys */
#define MPR121_MAX_KEY_COUNT

#define MPR121_MIN_POLL_INTERVAL
#define MPR121_MAX_POLL_INTERVAL

struct mpr121_touchkey {};

struct mpr121_init_register {};

static const struct mpr121_init_register init_reg_table[] =;

static void mpr121_vdd_supply_disable(void *data)
{}

static struct regulator *mpr121_vdd_supply_init(struct device *dev)
{}

static void mpr_touchkey_report(struct input_dev *dev)
{}

static irqreturn_t mpr_touchkey_interrupt(int irq, void *dev_id)
{}

static int mpr121_phys_init(struct mpr121_touchkey *mpr121,
			    struct i2c_client *client, int vdd_uv)
{}

static int mpr_touchkey_probe(struct i2c_client *client)
{}

static int mpr_suspend(struct device *dev)
{}

static int mpr_resume(struct device *dev)
{}

static DEFINE_SIMPLE_DEV_PM_OPS(mpr121_touchkey_pm_ops, mpr_suspend, mpr_resume);

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

#ifdef CONFIG_OF
static const struct of_device_id mpr121_touchkey_dt_match_table[] =;
MODULE_DEVICE_TABLE(of, mpr121_touchkey_dt_match_table);
#endif

static struct i2c_driver mpr_touchkey_driver =;

module_i2c_driver();

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