linux/drivers/input/touchscreen/bcm_iproc_tsc.c

// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (C) 2015 Broadcom Corporation
*
*/
#include <linux/module.h>
#include <linux/init.h>
#include <linux/input.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/keyboard.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <linux/of.h>
#include <asm/irq.h>
#include <linux/io.h>
#include <linux/clk.h>
#include <linux/serio.h>
#include <linux/mfd/syscon.h>
#include <linux/regmap.h>

#define IPROC_TS_NAME

#define PEN_DOWN_STATUS
#define PEN_UP_STATUS

#define X_MIN
#define Y_MIN
#define X_MAX
#define Y_MAX

/* Value given by controller for invalid coordinate. */
#define INVALID_COORD

/* Register offsets */
#define REGCTL1
#define REGCTL2
#define INTERRUPT_THRES
#define INTERRUPT_MASK

#define INTERRUPT_STATUS
#define CONTROLLER_STATUS
#define FIFO_DATA
#define FIFO_DATA_X_Y_MASK
#define ANALOG_CONTROL

#define AUX_DATA
#define DEBOUNCE_CNTR_STAT
#define SCAN_CNTR_STAT
#define REM_CNTR_STAT

#define SETTLING_TIMER_STAT
#define SPARE_REG
#define SOFT_BYPASS_CONTROL
#define SOFT_BYPASS_DATA


/* Bit values for INTERRUPT_MASK and INTERRUPT_STATUS regs */
#define TS_PEN_INTR_MASK
#define TS_FIFO_INTR_MASK

/* Bit values for CONTROLLER_STATUS reg1 */
#define TS_PEN_DOWN

/* Shift values for control reg1 */
#define SCANNING_PERIOD_SHIFT
#define DEBOUNCE_TIMEOUT_SHIFT
#define SETTLING_TIMEOUT_SHIFT
#define TOUCH_TIMEOUT_SHIFT

/* Shift values for coordinates from fifo */
#define X_COORD_SHIFT
#define Y_COORD_SHIFT

/* Bit values for REGCTL2 */
#define TS_CONTROLLER_EN_BIT
#define TS_CONTROLLER_AVGDATA_SHIFT
#define TS_CONTROLLER_AVGDATA_MASK
#define TS_CONTROLLER_PWR_LDO
#define TS_CONTROLLER_PWR_ADC
#define TS_CONTROLLER_PWR_BGP
#define TS_CONTROLLER_PWR_TS
#define TS_WIRE_MODE_BIT

#define dbg_reg(dev, priv, reg)

struct tsc_param {};

struct iproc_ts_priv {};

/*
 * Set default values the same as hardware reset values
 * except for fifo_threshold with is set to 1.
 */
static const struct tsc_param iproc_default_config =;

static void ts_reg_dump(struct iproc_ts_priv *priv)
{}

static irqreturn_t iproc_touchscreen_interrupt(int irq, void *data)
{}

static int iproc_ts_start(struct input_dev *idev)
{}

static void iproc_ts_stop(struct input_dev *dev)
{}

static int iproc_get_tsc_config(struct device *dev, struct iproc_ts_priv *priv)
{}

static int iproc_ts_probe(struct platform_device *pdev)
{}

static const struct of_device_id iproc_ts_of_match[] =;
MODULE_DEVICE_TABLE(of, iproc_ts_of_match);

static struct platform_driver iproc_ts_driver =;

module_platform_driver();

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