aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authormerge <null@invalid>2008-12-29 12:11:49 +0000
committerAndy Green <agreen@pads.home.warmcat.com>2008-12-29 12:11:49 +0000
commit4f0d7f43b8a9d35be25f520834bbb13f2dae10f3 (patch)
treec75c07e7c55a1004996754651484514e7530d38e /include
parent39a497b0421174c3f23ef3dffb0675a4db3aa3a0 (diff)
MERGE-via-pending-tracking-hist-this-patch-gets-the-linux-mci-
pending-tracking-hist top was this-patch-gets-the-linux-mci- / f45f6d893a0dc65a6041a2c0127e9970427a85da ... parent commitmessage: From: Balaji Rao <balajirrao@openmoko.org> This patch gets the Linux mci stack to use the voltage it negotiated before with the uSD card on resume. Without this, it always reverts to and stays at 3.3V. Signed-off-by: Balaji Rao <balajirrao@openmoko.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/ts_filter.h16
-rw-r--r--include/linux/ts_filter_linear.h64
2 files changed, 75 insertions, 5 deletions
diff --git a/include/linux/ts_filter.h b/include/linux/ts_filter.h
index 715f1badbf4..167104482dd 100644
--- a/include/linux/ts_filter.h
+++ b/include/linux/ts_filter.h
@@ -7,6 +7,8 @@
* (c) 2008 Andy Green <andy@openmoko.com>
*/
+#include <linux/platform_device.h>
+
#define MAX_TS_FILTER_CHAIN 4 /* max filters you can chain up */
#define MAX_TS_FILTER_COORDS 3 /* X, Y and Z (pressure) */
@@ -15,8 +17,9 @@ struct ts_filter;
/* operations that a filter can perform
*/
struct ts_filter_api {
- struct ts_filter * (*create)(void *config, int count_coords);
- void (*destroy)(struct ts_filter *filter);
+ struct ts_filter * (*create)(struct platform_device *pdev, void *config,
+ int count_coords);
+ void (*destroy)(struct platform_device *pdev, struct ts_filter *filter);
void (*clear)(struct ts_filter *filter);
int (*process)(struct ts_filter *filter, int *coords);
void (*scale)(struct ts_filter *filter, int *coords);
@@ -41,10 +44,13 @@ struct ts_filter {
* array and fills in ->next pointers to create the chain
*/
-extern int ts_filter_create_chain(struct ts_filter_api **api, void **config,
- struct ts_filter **list, int count_coords);
+extern int ts_filter_create_chain(struct platform_device *pdev,
+ struct ts_filter_api **api, void **config,
+ struct ts_filter **list, int count_coords);
/* helper to destroy a whole chain from the list of filter pointers */
-extern void ts_filter_destroy_chain(struct ts_filter **list);
+extern void ts_filter_destroy_chain(struct platform_device *pdev,
+ struct ts_filter **list);
+
#endif
diff --git a/include/linux/ts_filter_linear.h b/include/linux/ts_filter_linear.h
new file mode 100644
index 00000000000..dab53907a90
--- /dev/null
+++ b/include/linux/ts_filter_linear.h
@@ -0,0 +1,64 @@
+#ifndef __TS_FILTER_LINEAR_H__
+#define __TS_FILTER_LINEAR_H__
+
+#include <linux/ts_filter.h>
+#include <linux/kobject.h>
+
+/*
+ * touchscreen linear filter.
+ *
+ * Copyright (C) 2008 by Openmoko, Inc.
+ * Author: Nelson Castillo <arhuaco@freaks-unidos.net>
+ *
+ */
+
+#define TS_FILTER_LINEAR_NCONSTANTS 7
+
+/* sysfs */
+
+struct ts_filter_linear;
+
+struct const_obj {
+ struct ts_filter_linear *tsfl;
+ struct kobject kobj;
+};
+
+#define to_const_obj(x) container_of(x, struct const_obj, kobj)
+
+struct const_attribute {
+ struct attribute attr;
+ ssize_t (*show)(struct const_obj *const, struct const_attribute *attr,
+ char *buf);
+ ssize_t (*store)(struct const_obj *const, struct const_attribute *attr,
+ const char *buf, size_t count);
+};
+
+#define to_const_attr(x) container_of(x, struct const_attribute, attr)
+
+/* filter configuration */
+
+struct ts_filter_linear_configuration {
+ int constants[TS_FILTER_LINEAR_NCONSTANTS];
+ int coord0;
+ int coord1;
+};
+
+/* the filter */
+
+struct ts_filter_linear {
+ struct ts_filter tsf;
+ struct ts_filter_linear_configuration *config;
+
+ int constants[TS_FILTER_LINEAR_NCONSTANTS];
+
+ /* sysfs */
+ struct const_obj c_obj;
+ struct kobj_type const_ktype;
+ struct const_attribute kattrs[TS_FILTER_LINEAR_NCONSTANTS];
+ struct attribute *attrs[TS_FILTER_LINEAR_NCONSTANTS + 1];
+ char attr_names[TS_FILTER_LINEAR_NCONSTANTS][2];
+};
+
+extern struct ts_filter_api ts_filter_linear_api;
+
+#endif