linux/drivers/input/touchscreen/colibri-vf50-ts.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Toradex Colibri VF50 Touchscreen driver
 *
 * Copyright 2015 Toradex AG
 *
 * Originally authored by Stefan Agner for 3.0 kernel
 */

#include <linux/delay.h>
#include <linux/err.h>
#include <linux/gpio/consumer.h>
#include <linux/iio/consumer.h>
#include <linux/iio/types.h>
#include <linux/input.h>
#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/pinctrl/consumer.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <linux/types.h>

#define DRIVER_NAME

#define VF_ADC_MAX

#define COLI_TOUCH_MIN_DELAY_US
#define COLI_TOUCH_MAX_DELAY_US
#define COLI_PULLUP_MIN_DELAY_US
#define COLI_PULLUP_MAX_DELAY_US
#define COLI_TOUCH_NO_OF_AVGS
#define COLI_TOUCH_REQ_ADC_CHAN

struct vf50_touch_device {};

/*
 * Enables given plates and measures touch parameters using ADC
 */
static int adc_ts_measure(struct iio_channel *channel,
			  struct gpio_desc *plate_p, struct gpio_desc *plate_m)
{}

/*
 * Enable touch detection using falling edge detection on XM
 */
static void vf50_ts_enable_touch_detection(struct vf50_touch_device *vf50_ts)
{}

/*
 * ADC touch screen sampling bottom half irq handler
 */
static irqreturn_t vf50_ts_irq_bh(int irq, void *private)
{}

static int vf50_ts_open(struct input_dev *dev_input)
{}

static void vf50_ts_close(struct input_dev *dev_input)
{}

static int vf50_ts_get_gpiod(struct device *dev, struct gpio_desc **gpio_d,
			     const char *con_id, enum gpiod_flags flags)
{}

static void vf50_ts_channel_release(void *data)
{}

static int vf50_ts_probe(struct platform_device *pdev)
{}

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

static struct platform_driver vf50_touch_driver =;
module_platform_driver();

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