summaryrefslogtreecommitdiff
path: root/firmware/drivers/synaptics-mep.c
diff options
context:
space:
mode:
authorMark Arigo <markarigo@gmail.com>2008-12-19 03:31:26 +0000
committerMark Arigo <markarigo@gmail.com>2008-12-19 03:31:26 +0000
commit9bf93ba0075adf2b9e3291497e06918634d39880 (patch)
tree8c0ac278d72dba1e7633380a4f1422c1e58b9080 /firmware/drivers/synaptics-mep.c
parentb15d837d3397f7b48a578a986bb3613bc6affe61 (diff)
downloadrockbox-9bf93ba0075adf2b9e3291497e06918634d39880.zip
rockbox-9bf93ba0075adf2b9e3291497e06918634d39880.tar.gz
rockbox-9bf93ba0075adf2b9e3291497e06918634d39880.tar.bz2
rockbox-9bf93ba0075adf2b9e3291497e06918634d39880.tar.xz
Working touchpad for the Philips HDD1630 using the Synaptics driver. Like the m:robe 100, the strip is divided into up, select, and down button regions. You can't swipe like in the OF. The keymap still needs some work.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19480 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers/synaptics-mep.c')
-rw-r--r--firmware/drivers/synaptics-mep.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/firmware/drivers/synaptics-mep.c b/firmware/drivers/synaptics-mep.c
index 44b1860..858edf5 100644
--- a/firmware/drivers/synaptics-mep.c
+++ b/firmware/drivers/synaptics-mep.c
@@ -32,6 +32,7 @@
/* Driver for the Synaptics Touchpad based on the "Synaptics Modular Embedded
Protocol: 3-Wire Interface Specification" documentation */
+#if defined(MROBE_100)
#define ACK (GPIOD_INPUT_VAL & 0x1)
#define ACK_HI GPIOD_OUTPUT_VAL |= 0x1
#define ACK_LO GPIOD_OUTPUT_VAL &= ~0x1
@@ -45,6 +46,21 @@
#define DATA_LO GPIOD_OUTPUT_EN |= 0x4; GPIOD_OUTPUT_VAL &= ~0x4
#define DATA_CL GPIOD_OUTPUT_EN &= ~0x4
+#elif defined(PHILIPS_HDD1630)
+#define ACK (GPIOD_INPUT_VAL & 0x80)
+#define ACK_HI GPIOD_OUTPUT_VAL |= 0x80
+#define ACK_LO GPIOD_OUTPUT_VAL &= ~0x80
+
+#define CLK ((GPIOA_INPUT_VAL & 0x20) >> 5)
+#define CLK_HI GPIOA_OUTPUT_VAL |= 0x20
+#define CLK_LO GPIOA_OUTPUT_VAL &= ~0x20
+
+#define DATA ((GPIOA_INPUT_VAL & 0x10) >> 4)
+#define DATA_HI GPIOA_OUTPUT_EN |= 0x10; GPIOA_OUTPUT_VAL |= 0x10
+#define DATA_LO GPIOA_OUTPUT_EN |= 0x10; GPIOA_OUTPUT_VAL &= ~0x10
+#define DATA_CL GPIOA_OUTPUT_EN &= ~0x10
+#endif
+
#define LO 0
#define HI 1