S3C: Backported openmoko's touchscreen filters
[linux-2.6/mini2440.git] / drivers / input / touchscreen / ts_filter_linear.h
blobfc27cf772280eaf6749e7339a22bd8ff31fd0485
1 #ifndef __TS_FILTER_LINEAR_H__
2 #define __TS_FILTER_LINEAR_H__
4 #include "ts_filter.h"
5 #include <linux/kobject.h>
7 /*
8 * Touchscreen linear filter.
10 * Copyright (C) 2008 by Openmoko, Inc.
11 * Author: Nelson Castillo <arhuaco@freaks-unidos.net>
15 #define TS_FILTER_LINEAR_NCONSTANTS 7
17 /* sysfs */
19 struct ts_filter_linear;
21 struct const_obj {
22 struct ts_filter_linear *tsfl;
23 struct kobject kobj;
26 #define to_const_obj(x) container_of(x, struct const_obj, kobj)
28 struct const_attribute {
29 struct attribute attr;
30 ssize_t (*show)(struct const_obj *const, struct const_attribute *attr,
31 char *buf);
32 ssize_t (*store)(struct const_obj *const, struct const_attribute *attr,
33 const char *buf, size_t count);
36 #define to_const_attr(x) container_of(x, struct const_attribute, attr)
38 /* filter configuration */
40 struct ts_filter_linear_configuration {
41 int constants[TS_FILTER_LINEAR_NCONSTANTS];
42 int coord0;
43 int coord1;
46 /* the filter */
48 struct ts_filter_linear {
49 struct ts_filter tsf;
50 struct ts_filter_linear_configuration *config;
52 int constants[TS_FILTER_LINEAR_NCONSTANTS];
54 /* sysfs */
55 struct const_obj c_obj;
56 struct kobj_type const_ktype;
57 struct const_attribute kattrs[TS_FILTER_LINEAR_NCONSTANTS];
58 struct attribute *attrs[TS_FILTER_LINEAR_NCONSTANTS + 1];
59 char attr_names[TS_FILTER_LINEAR_NCONSTANTS][2];
62 extern struct ts_filter_api ts_filter_linear_api;
64 #endif