mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-04-21 12:27:27 +03:00
[s3c24xx] Add 2.6.31 patches
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@17665 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
#ifndef __BQ27000_BATTERY_H__
|
||||
#define __BQ27000_BATTERY_H__
|
||||
|
||||
void bq27000_charging_state_change(struct platform_device *pdev);
|
||||
|
||||
struct bq27000_platform_data {
|
||||
const char *name;
|
||||
int rsense_mohms;
|
||||
int (*hdq_read)(int);
|
||||
int (*hdq_write)(int, u8);
|
||||
int (*hdq_initialized)(void);
|
||||
int (*get_charger_online_status)(void);
|
||||
int (*get_charger_active_status)(void);
|
||||
};
|
||||
|
||||
#endif
|
||||
35
target/linux/s3c24xx/files-2.6.31/include/linux/glamofb.h
Normal file
35
target/linux/s3c24xx/files-2.6.31/include/linux/glamofb.h
Normal file
@@ -0,0 +1,35 @@
|
||||
#ifndef _LINUX_GLAMOFB_H
|
||||
#define _LINUX_GLAMOFB_H
|
||||
|
||||
#include <linux/fb.h>
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
struct glamo_core;
|
||||
struct glamofb_handle;
|
||||
|
||||
struct glamo_fb_platform_data {
|
||||
int width, height;
|
||||
|
||||
int num_modes;
|
||||
struct fb_videomode *modes;
|
||||
|
||||
struct glamo_core *core;
|
||||
};
|
||||
|
||||
int glamofb_cmd_mode(struct glamofb_handle *gfb, int on);
|
||||
int glamofb_cmd_write(struct glamofb_handle *gfb, u_int16_t val);
|
||||
|
||||
#ifdef CONFIG_MFD_GLAMO
|
||||
void glamo_lcm_reset(struct platform_device *pdev, int level);
|
||||
#else
|
||||
#define glamo_lcm_reset(...) do {} while (0)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#define GLAMOFB_ENGINE_ENABLE _IOW('F', 0x1, __u32)
|
||||
#define GLAMOFB_ENGINE_DISABLE _IOW('F', 0x2, __u32)
|
||||
#define GLAMOFB_ENGINE_RESET _IOW('F', 0x3, __u32)
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,5 @@
|
||||
struct gta02_vib_platform_data {
|
||||
int (* enable_fiq)(void);
|
||||
void (*disable_fiq)(void);
|
||||
void (*kick_fiq)(void);
|
||||
};
|
||||
18
target/linux/s3c24xx/files-2.6.31/include/linux/gta02_hdq.h
Normal file
18
target/linux/s3c24xx/files-2.6.31/include/linux/gta02_hdq.h
Normal file
@@ -0,0 +1,18 @@
|
||||
#ifndef __GTA02HDQ_H__
|
||||
#define __GTA02HDQ_H__
|
||||
|
||||
/* platform data */
|
||||
|
||||
struct gta02_hdq_platform_data {
|
||||
/*
|
||||
* give an opportunity to use us as parent for
|
||||
* devices that depend on us
|
||||
*/
|
||||
void (*attach_child_devices)(struct device *parent_device);
|
||||
};
|
||||
|
||||
int gta02hdq_read(int address);
|
||||
int gta02hdq_write(int address, u8 data);
|
||||
int gta02hdq_initialized(void);
|
||||
|
||||
#endif
|
||||
32
target/linux/s3c24xx/files-2.6.31/include/linux/hdq.h
Normal file
32
target/linux/s3c24xx/files-2.6.31/include/linux/hdq.h
Normal file
@@ -0,0 +1,32 @@
|
||||
#ifndef __LINUX_HDQ_H__
|
||||
#define __LINUX_HDQ_H__
|
||||
|
||||
#include <linux/device.h>
|
||||
|
||||
#define HDQ_SAMPLE_PERIOD_US 10
|
||||
|
||||
/* platform data */
|
||||
|
||||
struct hdq_platform_data {
|
||||
/*
|
||||
* give an opportunity to use us as parent for
|
||||
* devices that depend on us
|
||||
*/
|
||||
void (*attach_child_devices)(struct device *parent_device);
|
||||
|
||||
void (*gpio_dir_out)(void);
|
||||
void (*gpio_dir_in)(void);
|
||||
void (*gpio_set)(int);
|
||||
int (*gpio_get)(void);
|
||||
|
||||
int (*enable_fiq)(void);
|
||||
void (*disable_fiq)(void);
|
||||
void (*kick_fiq)(void);
|
||||
|
||||
};
|
||||
|
||||
int hdq_read(int address);
|
||||
int hdq_write(int address, u8 data);
|
||||
int hdq_initialized(void);
|
||||
|
||||
#endif
|
||||
12
target/linux/s3c24xx/files-2.6.31/include/linux/jbt6k74.h
Normal file
12
target/linux/s3c24xx/files-2.6.31/include/linux/jbt6k74.h
Normal file
@@ -0,0 +1,12 @@
|
||||
#ifndef __JBT6K74_H__
|
||||
#define __JBT6K74_H__
|
||||
|
||||
#include <linux/spi/spi.h>
|
||||
|
||||
struct jbt6k74_platform_data {
|
||||
void (*reset)(int devindex, int level);
|
||||
void (*probe_completed)(struct device *dev);
|
||||
void (*enable_pixel_clock)(struct device *dev, int enable);
|
||||
};
|
||||
|
||||
#endif
|
||||
151
target/linux/s3c24xx/files-2.6.31/include/linux/lis302dl.h
Normal file
151
target/linux/s3c24xx/files-2.6.31/include/linux/lis302dl.h
Normal file
@@ -0,0 +1,151 @@
|
||||
#ifndef _LINUX_LIS302DL_H
|
||||
#define _LINUX_LIS302DL_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/input.h>
|
||||
#include <linux/workqueue.h>
|
||||
|
||||
struct lis302dl_info;
|
||||
|
||||
struct lis302dl_platform_data {
|
||||
char *name;
|
||||
unsigned long pin_chip_select;
|
||||
unsigned long pin_clk;
|
||||
unsigned long pin_mosi;
|
||||
unsigned long pin_miso;
|
||||
int open_drain;
|
||||
int interrupt;
|
||||
void (*lis302dl_suspend_io)(struct lis302dl_info *, int resuming);
|
||||
};
|
||||
|
||||
struct lis302dl_info {
|
||||
struct lis302dl_platform_data *pdata;
|
||||
struct device *dev;
|
||||
struct input_dev *input_dev;
|
||||
unsigned int flags;
|
||||
unsigned int threshold;
|
||||
unsigned int duration;
|
||||
uint32_t overruns;
|
||||
struct {
|
||||
unsigned int threshold; /* mg */
|
||||
unsigned int duration; /* ms */
|
||||
} wakeup;
|
||||
|
||||
struct spi_device *spi;
|
||||
uint8_t regs[0x40];
|
||||
};
|
||||
|
||||
enum lis302dl_reg {
|
||||
LIS302DL_REG_WHO_AM_I = 0x0f,
|
||||
LIS302DL_REG_CTRL1 = 0x20,
|
||||
LIS302DL_REG_CTRL2 = 0x21,
|
||||
LIS302DL_REG_CTRL3 = 0x22,
|
||||
LIS302DL_REG_HP_FILTER_RESET = 0x23,
|
||||
LIS302DL_REG_STATUS = 0x27,
|
||||
LIS302DL_REG_OUT_X = 0x29,
|
||||
LIS302DL_REG_OUT_Y = 0x2b,
|
||||
LIS302DL_REG_OUT_Z = 0x2d,
|
||||
LIS302DL_REG_FF_WU_CFG_1 = 0x30,
|
||||
LIS302DL_REG_FF_WU_SRC_1 = 0x31,
|
||||
LIS302DL_REG_FF_WU_THS_1 = 0x32,
|
||||
LIS302DL_REG_FF_WU_DURATION_1 = 0x33,
|
||||
LIS302DL_REG_FF_WU_CFG_2 = 0x34,
|
||||
LIS302DL_REG_FF_WU_SRC_2 = 0x35,
|
||||
LIS302DL_REG_FF_WU_THS_2 = 0x36,
|
||||
LIS302DL_REG_FF_WU_DURATION_2 = 0x37,
|
||||
LIS302DL_REG_CLICK_CFG = 0x38,
|
||||
LIS302DL_REG_CLICK_SRC = 0x39,
|
||||
LIS302DL_REG_CLICK_THSY_X = 0x3b,
|
||||
LIS302DL_REG_CLICK_THSZ = 0x3c,
|
||||
LIS302DL_REG_CLICK_TIME_LIMIT = 0x3d,
|
||||
LIS302DL_REG_CLICK_LATENCY = 0x3e,
|
||||
LIS302DL_REG_CLICK_WINDOW = 0x3f,
|
||||
};
|
||||
|
||||
enum lis302dl_reg_ctrl1 {
|
||||
LIS302DL_CTRL1_Xen = 0x01,
|
||||
LIS302DL_CTRL1_Yen = 0x02,
|
||||
LIS302DL_CTRL1_Zen = 0x04,
|
||||
LIS302DL_CTRL1_STM = 0x08,
|
||||
LIS302DL_CTRL1_STP = 0x10,
|
||||
LIS302DL_CTRL1_FS = 0x20,
|
||||
LIS302DL_CTRL1_PD = 0x40,
|
||||
LIS302DL_CTRL1_DR = 0x80,
|
||||
};
|
||||
|
||||
enum lis302dl_reg_ctrl2 {
|
||||
LIS302DL_CTRL2_HPC1 = 0x01,
|
||||
LIS302DL_CTRL2_HPC2 = 0x02,
|
||||
LIS302DL_CTRL2_HPFF1 = 0x04,
|
||||
LIS302DL_CTRL2_HPFF2 = 0x08,
|
||||
LIS302DL_CTRL2_FDS = 0x10,
|
||||
LIS302DL_CTRL2_BOOT = 0x40,
|
||||
LIS302DL_CTRL2_SIM = 0x80,
|
||||
};
|
||||
enum lis302dl_reg_ctrl3 {
|
||||
LIS302DL_CTRL3_PP_OD = 0x40,
|
||||
LIS302DL_CTRL3_IHL = 0x80,
|
||||
};
|
||||
|
||||
enum lis302dl_reg_status {
|
||||
LIS302DL_STATUS_XDA = 0x01,
|
||||
LIS302DL_STATUS_YDA = 0x02,
|
||||
LIS302DL_STATUS_ZDA = 0x04,
|
||||
LIS302DL_STATUS_XYZDA = 0x08,
|
||||
LIS302DL_STATUS_XOR = 0x10,
|
||||
LIS302DL_STATUS_YOR = 0x20,
|
||||
LIS302DL_STATUS_ZOR = 0x40,
|
||||
LIS302DL_STATUS_XYZOR = 0x80,
|
||||
};
|
||||
|
||||
/* Wakeup/freefall interrupt defs */
|
||||
enum lis302dl_reg_ffwucfg {
|
||||
LIS302DL_FFWUCFG_XLIE = 0x01,
|
||||
LIS302DL_FFWUCFG_XHIE = 0x02,
|
||||
LIS302DL_FFWUCFG_YLIE = 0x04,
|
||||
LIS302DL_FFWUCFG_YHIE = 0x08,
|
||||
LIS302DL_FFWUCFG_ZLIE = 0x10,
|
||||
LIS302DL_FFWUCFG_ZHIE = 0x20,
|
||||
LIS302DL_FFWUCFG_LIR = 0x40,
|
||||
LIS302DL_FFWUCFG_AOI = 0x80,
|
||||
};
|
||||
|
||||
enum lis302dl_reg_ffwuths {
|
||||
LIS302DL_FFWUTHS_DCRM = 0x80,
|
||||
};
|
||||
|
||||
enum lis302dl_reg_ffwusrc {
|
||||
LIS302DL_FFWUSRC_XL = 0x01,
|
||||
LIS302DL_FFWUSRC_XH = 0x02,
|
||||
LIS302DL_FFWUSRC_YL = 0x04,
|
||||
LIS302DL_FFWUSRC_YH = 0x08,
|
||||
LIS302DL_FFWUSRC_ZL = 0x10,
|
||||
LIS302DL_FFWUSRC_ZH = 0x20,
|
||||
LIS302DL_FFWUSRC_IA = 0x40,
|
||||
};
|
||||
|
||||
enum lis302dl_reg_cloik_src {
|
||||
LIS302DL_CLICKSRC_SINGLE_X = 0x01,
|
||||
LIS302DL_CLICKSRC_DOUBLE_X = 0x02,
|
||||
LIS302DL_CLICKSRC_SINGLE_Y = 0x04,
|
||||
LIS302DL_CLICKSRC_DOUBLE_Y = 0x08,
|
||||
LIS302DL_CLICKSRC_SINGLE_Z = 0x10,
|
||||
LIS302DL_CLICKSRC_DOUBLE_Z = 0x20,
|
||||
LIS302DL_CLICKSRC_IA = 0x40,
|
||||
};
|
||||
|
||||
#define LIS302DL_WHO_AM_I_MAGIC 0x3b
|
||||
|
||||
#define LIS302DL_F_WUP_FF_1 0x0001 /* wake up from free fall */
|
||||
#define LIS302DL_F_WUP_FF_2 0x0002
|
||||
#define LIS302DL_F_WUP_FF 0x0003
|
||||
#define LIS302DL_F_WUP_CLICK 0x0004
|
||||
#define LIS302DL_F_POWER 0x0010
|
||||
#define LIS302DL_F_FS 0x0020 /* ADC full scale */
|
||||
#define LIS302DL_F_INPUT_OPEN 0x0040 /* Set if input device is opened */
|
||||
#define LIS302DL_F_IRQ_WAKE 0x0080 /* IRQ is setup in wake mode */
|
||||
#define LIS302DL_F_DR 0x0100 /* Data rate, 400Hz/100Hz */
|
||||
|
||||
#endif /* _LINUX_LIS302DL_H */
|
||||
|
||||
51
target/linux/s3c24xx/files-2.6.31/include/linux/mfd/glamo.h
Normal file
51
target/linux/s3c24xx/files-2.6.31/include/linux/mfd/glamo.h
Normal file
@@ -0,0 +1,51 @@
|
||||
#ifndef __GLAMO_MFD_H
|
||||
#define __GLAMO_MFD_H
|
||||
|
||||
struct glamo_core;
|
||||
struct glamo_spigpio_platform_data;
|
||||
struct glamo_fb_platform_data;
|
||||
|
||||
struct glamo_mmc_platform_data {
|
||||
int (*glamo_mmc_use_slow)(void);
|
||||
|
||||
struct glamo_core *core;
|
||||
};
|
||||
|
||||
struct glamo_platform_data {
|
||||
struct glamo_fb_platform_data *fb_data;
|
||||
struct glamo_spigpio_platform_data *spigpio_data;
|
||||
struct glamo_mmc_platform_data *mmc_data;
|
||||
int gpio_base;
|
||||
|
||||
unsigned int osci_clock_rate;
|
||||
|
||||
int (*glamo_irq_is_wired)(void);
|
||||
void (*glamo_external_reset)(int);
|
||||
void (*registered)(struct device *dev);
|
||||
};
|
||||
|
||||
enum glamo_engine {
|
||||
GLAMO_ENGINE_CAPTURE = 0,
|
||||
GLAMO_ENGINE_ISP = 1,
|
||||
GLAMO_ENGINE_JPEG = 2,
|
||||
GLAMO_ENGINE_MPEG_ENC = 3,
|
||||
GLAMO_ENGINE_MPEG_DEC = 4,
|
||||
GLAMO_ENGINE_LCD = 5,
|
||||
GLAMO_ENGINE_CMDQ = 6,
|
||||
GLAMO_ENGINE_2D = 7,
|
||||
GLAMO_ENGINE_3D = 8,
|
||||
GLAMO_ENGINE_MMC = 9,
|
||||
GLAMO_ENGINE_MICROP0 = 10,
|
||||
GLAMO_ENGINE_RISC = 11,
|
||||
GLAMO_ENGINE_MICROP1_MPEG_ENC = 12,
|
||||
GLAMO_ENGINE_MICROP1_MPEG_DEC = 13,
|
||||
#if 0
|
||||
GLAMO_ENGINE_H264_DEC = 14,
|
||||
GLAMO_ENGINE_RISC1 = 15,
|
||||
GLAMO_ENGINE_SPI = 16,
|
||||
#endif
|
||||
__NUM_GLAMO_ENGINES
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,74 @@
|
||||
#ifndef __TS_FILTER_H__
|
||||
#define __TS_FILTER_H__
|
||||
|
||||
/*
|
||||
* Touchscreen filter.
|
||||
*
|
||||
* (c) 2008,2009 Andy Green <andy@openmoko.com>
|
||||
*/
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#define MAX_TS_FILTER_COORDS 3 /* X, Y and Z (pressure). */
|
||||
|
||||
struct ts_filter;
|
||||
struct ts_filter_configuration;
|
||||
|
||||
/* Operations that a filter can perform. */
|
||||
|
||||
struct ts_filter_api {
|
||||
/* Create the filter - mandatory. */
|
||||
struct ts_filter * (*create)(
|
||||
struct platform_device *pdev,
|
||||
const struct ts_filter_configuration *config,
|
||||
int count_coords);
|
||||
/* Destroy the filter - mandatory. */
|
||||
void (*destroy)(struct ts_filter *filter);
|
||||
/* Clear the filter - optional. */
|
||||
void (*clear)(struct ts_filter *filter);
|
||||
|
||||
|
||||
/*
|
||||
* The next three API functions only make sense if all of them are
|
||||
* set for a filter. If a filter has the next three methods then
|
||||
* it can propagate coordinates in the chain.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Process the filter.
|
||||
* It returns non-zero if the filter reaches an error.
|
||||
*/
|
||||
int (*process)(struct ts_filter *filter, int *coords);
|
||||
/*
|
||||
* Is the filter ready to return a point?
|
||||
* Please do not code side effects in this function.
|
||||
*/
|
||||
int (*haspoint)(struct ts_filter *filter);
|
||||
/*
|
||||
* Get a point.
|
||||
* Do not call unless the filter actually has a point to deliver.
|
||||
*/
|
||||
void (*getpoint)(struct ts_filter *filter, int *coords);
|
||||
|
||||
/*
|
||||
* Scale the points - optional.
|
||||
* A filter could only scale coordinates.
|
||||
*/
|
||||
void (*scale)(struct ts_filter *filter, int *coords);
|
||||
};
|
||||
|
||||
/*
|
||||
* Generic filter configuration. Actual configurations have this structure
|
||||
* as a member.
|
||||
*/
|
||||
struct ts_filter_configuration {
|
||||
};
|
||||
|
||||
struct ts_filter {
|
||||
/* Operations for this filter. */
|
||||
const struct ts_filter_api *api;
|
||||
/* Number of coordinates to process. */
|
||||
int count_coords;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,58 @@
|
||||
#ifndef __TS_FILTER_CHAIN_H__
|
||||
#define __TS_FILTER_CHAIN_H__
|
||||
|
||||
/*
|
||||
* Touchscreen filter chains.
|
||||
*
|
||||
* (c) 2008,2009 Andy Green <andy@openmoko.com>
|
||||
*/
|
||||
|
||||
#include "ts_filter.h"
|
||||
|
||||
#include <linux/err.h>
|
||||
|
||||
struct ts_filter_chain_configuration {
|
||||
/* API to use. */
|
||||
const struct ts_filter_api *api;
|
||||
/* Generic filter configuration. Different for each filter. */
|
||||
const struct ts_filter_configuration *config;
|
||||
};
|
||||
|
||||
struct ts_filter_chain;
|
||||
|
||||
#ifdef CONFIG_TOUCHSCREEN_FILTER
|
||||
|
||||
/*
|
||||
* Create a filter chain. It will allocate an array of
|
||||
* null-terminated pointers to filters. On error it will return
|
||||
* an error you can check with IS_ERR.
|
||||
*/
|
||||
extern struct ts_filter_chain *ts_filter_chain_create(
|
||||
struct platform_device *pdev,
|
||||
const struct ts_filter_chain_configuration conf[],
|
||||
int count_coords);
|
||||
|
||||
/* Destroy the chain. */
|
||||
extern void ts_filter_chain_destroy(struct ts_filter_chain *c);
|
||||
|
||||
/* Clear the filter chain. */
|
||||
extern void ts_filter_chain_clear(struct ts_filter_chain *c);
|
||||
|
||||
/*
|
||||
* Try to get one point. Returns 0 if no points are available.
|
||||
* coords will be used as temporal space, thus you supply a point
|
||||
* using coords but you shouldn't rely on its value on return unless
|
||||
* it returns a nonzero value that is not -1.
|
||||
* If one of the filters find an error then this function will
|
||||
* return -1.
|
||||
*/
|
||||
int ts_filter_chain_feed(struct ts_filter_chain *c, int *coords);
|
||||
|
||||
#else /* !CONFIG_TOUCHSCREEN_FILTER */
|
||||
#define ts_filter_chain_create(pdev, config, count_coords) (NULL)
|
||||
#define ts_filter_chain_destroy(c) do { } while (0)
|
||||
#define ts_filter_chain_clear(c) do { } while (0)
|
||||
#define ts_filter_chain_feed(c, coords) (1)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,36 @@
|
||||
#ifndef __TS_FILTER_GROUP_H__
|
||||
#define __TS_FILTER_GROUP_H__
|
||||
|
||||
#include "ts_filter.h"
|
||||
|
||||
/*
|
||||
* Touchscreen group filter.
|
||||
*
|
||||
* Copyright (C) 2008,2009 by Openmoko, Inc.
|
||||
* Author: Nelson Castillo <arhuaco@freaks-unidos.net>
|
||||
*
|
||||
*/
|
||||
|
||||
struct ts_filter_group_configuration {
|
||||
/* Size of the filter. */
|
||||
int length;
|
||||
/*
|
||||
* If two points are separated by this distance or less they
|
||||
* are considered to be members of the same group.
|
||||
*/
|
||||
int close_enough;
|
||||
/* Minimum allowed size for the biggest group in the sample set. */
|
||||
int threshold;
|
||||
/*
|
||||
* Number of times we try to get a group of points with at least
|
||||
* threshold points.
|
||||
*/
|
||||
int attempts;
|
||||
|
||||
/* Generic filter configuration. */
|
||||
struct ts_filter_configuration config;
|
||||
};
|
||||
|
||||
extern const struct ts_filter_api ts_filter_group_api;
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,31 @@
|
||||
#ifndef __TS_FILTER_LINEAR_H__
|
||||
#define __TS_FILTER_LINEAR_H__
|
||||
|
||||
#include "ts_filter.h"
|
||||
#include <linux/kobject.h>
|
||||
|
||||
/*
|
||||
* Touchscreen linear filter.
|
||||
*
|
||||
* Copyright (C) 2008,2009 by Openmoko, Inc.
|
||||
* Author: Nelson Castillo <arhuaco@freaks-unidos.net>
|
||||
*
|
||||
*/
|
||||
|
||||
#define TS_FILTER_LINEAR_NCONSTANTS 7
|
||||
|
||||
struct ts_filter_linear_configuration {
|
||||
/* Calibration constants. */
|
||||
int constants[TS_FILTER_LINEAR_NCONSTANTS];
|
||||
/* First coordinate. */
|
||||
int coord0;
|
||||
/* Second coordinate. */
|
||||
int coord1;
|
||||
|
||||
/* Generic filter configuration. */
|
||||
struct ts_filter_configuration config;
|
||||
};
|
||||
|
||||
extern const struct ts_filter_api ts_filter_linear_api;
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,28 @@
|
||||
#ifndef __TS_FILTER_MEAN_H__
|
||||
#define __TS_FILTER_MEAN_H__
|
||||
|
||||
#include "ts_filter.h"
|
||||
|
||||
/*
|
||||
* Touchscreen filter.
|
||||
*
|
||||
* mean
|
||||
*
|
||||
* (c) 2008,2009
|
||||
* Andy Green <andy@openmoko.com>
|
||||
* Nelson Castillo <arhuaco@freaks-unidos.net>
|
||||
*/
|
||||
|
||||
/* Configuration for this filter. */
|
||||
struct ts_filter_mean_configuration {
|
||||
/* Number of points for the mean. */
|
||||
int length;
|
||||
|
||||
/* Generic filter configuration. */
|
||||
struct ts_filter_configuration config;
|
||||
};
|
||||
|
||||
/* API functions for the mean filter */
|
||||
extern const struct ts_filter_api ts_filter_mean_api;
|
||||
|
||||
#endif /* __TS_FILTER_MEAN_H__ */
|
||||
@@ -0,0 +1,32 @@
|
||||
#ifndef __TS_FILTER_MEDIAN_H__
|
||||
#define __TS_FILTER_MEDIAN_H__
|
||||
|
||||
#include "ts_filter.h"
|
||||
|
||||
/*
|
||||
* Touchscreen filter.
|
||||
*
|
||||
* median
|
||||
*
|
||||
* (c) 2008 Andy Green <andy@openmoko.com>
|
||||
*/
|
||||
|
||||
struct ts_filter_median_configuration {
|
||||
/* Size of the filter. */
|
||||
int extent;
|
||||
/* Precomputed midpoint. */
|
||||
int midpoint;
|
||||
/* A reference value for us to check if we are going fast or slow. */
|
||||
int decimation_threshold;
|
||||
/* How many points to replace if we're going fast. */
|
||||
int decimation_above;
|
||||
/* How many points to replace if we're going slow. */
|
||||
int decimation_below;
|
||||
|
||||
/* Generic configuration. */
|
||||
struct ts_filter_configuration config;
|
||||
};
|
||||
|
||||
extern const struct ts_filter_api ts_filter_median_api;
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user