Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 1 | --- |
| 2 | Makefile.am | 9 -- |
| 3 | configure.ac | 3 |
| 4 | gpe-dist.am | 12 --- |
| 5 | h3600_ts.h | 216 ----------------------------------------------------------- |
| 6 | main.c | 210 ++------------------------------------------------------- |
| 7 | xtscal.in | 19 ----- |
| 8 | 6 files changed, 14 insertions(+), 455 deletions(-) |
| 9 | |
| 10 | Upstream-Status: Pending |
| 11 | |
| 12 | Index: xtscal-0.6.3/xtscal.in |
| 13 | =================================================================== |
| 14 | --- xtscal-0.6.3.orig/xtscal.in 2004-09-10 20:10:36.000000000 +0100 |
| 15 | +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 |
| 16 | @@ -1,19 +0,0 @@ |
| 17 | -#!/bin/sh |
| 18 | - |
| 19 | -module_id() { |
| 20 | - # Get model name |
| 21 | - echo `grep "^Hardware" /proc/cpuinfo | sed -e "s/.*: *//" | tr a-z A-Z` |
| 22 | -} |
| 23 | - |
| 24 | -case `module_id` in |
| 25 | - "HP IPAQ H3100" | "HP IPAQ H3800" ) |
| 26 | - ARGS="-rotate 90" ;; |
| 27 | - "HP IPAQ H3600" | "HP IPAQ H3700" | "HP IPAQ H3900" | *COLLIE | *POODLE) |
| 28 | - ARGS="-rotate 270" ;; |
| 29 | - # H2200: works without rotation |
| 30 | -esac |
| 31 | - |
| 32 | -# the things we do for autoconf |
| 33 | -prefix=@prefix@ |
| 34 | -exec_prefix=@exec_prefix@ |
| 35 | -exec @libexecdir@/xtscal.bin $ARGS $* |
| 36 | Index: xtscal-0.6.3/main.c |
| 37 | =================================================================== |
| 38 | --- xtscal-0.6.3.orig/main.c 2007-07-01 01:12:52.000000000 +0100 |
| 39 | +++ xtscal-0.6.3/main.c 2007-07-01 01:12:55.000000000 +0100 |
| 40 | @@ -22,12 +22,10 @@ |
| 41 | #include <X11/Xlib.h> |
| 42 | |
| 43 | #include <X11/extensions/Xrender.h> |
| 44 | -#include <X11/extensions/Xrandr.h> |
| 45 | #include <X11/Xft/Xft.h> |
| 46 | #include <X11/extensions/xcalibrate.h> |
| 47 | #include <X11/keysym.h> |
| 48 | |
| 49 | -#include "h3600_ts.h" |
| 50 | #include "calibrate.h" |
| 51 | |
| 52 | Display *dpy; |
| 53 | @@ -45,15 +43,11 @@ XftColor xftcol; |
| 54 | XftDraw *xftdraw; |
| 55 | XftFont *xftfont; |
| 56 | int screen_x, screen_y; |
| 57 | -int ts_fd; |
| 58 | int samples; |
| 59 | Pixmap bg_pixmap; |
| 60 | int flag_debug; |
| 61 | -int rotation = 0; |
| 62 | int error_base, event_base; |
| 63 | |
| 64 | -int using_xcalibrate; |
| 65 | - |
| 66 | int moving; |
| 67 | |
| 68 | #define CROSSHAIR_SIZE 25 |
| 69 | @@ -63,7 +57,6 @@ int moving; |
| 70 | #define ENOUGH 5 |
| 71 | #define MAX_SAMPLES 40 |
| 72 | |
| 73 | -#define RAW_DEVICE "/dev/h3600_tsraw" |
| 74 | #define FONTNAME "sans-10" |
| 75 | |
| 76 | struct point |
| 77 | @@ -287,12 +280,8 @@ sort_by_y (const void* a, const void *b) |
| 78 | void |
| 79 | set_calibration (calibration *cal) |
| 80 | { |
| 81 | - TS_CAL tc; |
| 82 | - int xtrans, ytrans, xscale, yscale, xyscale, yxscale; |
| 83 | calibration ocal = *cal; |
| 84 | |
| 85 | - if (using_xcalibrate) |
| 86 | - { |
| 87 | FILE *fp; |
| 88 | if (flag_debug) |
| 89 | printf ("constants are: %d %d %d %d %d %d %d\n", cal->a[1], cal->a[2], cal->a[0], cal->a[4], cal->a[5], cal->a[3], cal->a[6]); |
| 90 | @@ -304,29 +293,6 @@ set_calibration (calibration *cal) |
| 91 | } |
| 92 | fprintf (fp, "%d %d %d %d %d %d %d\n", cal->a[1], cal->a[2], cal->a[0], cal->a[4], cal->a[5], cal->a[3], cal->a[6]); |
| 93 | fclose (fp); |
| 94 | - return; |
| 95 | - } |
| 96 | - |
| 97 | - xtrans = cal->a[0] / cal->a[6]; |
| 98 | - ytrans = cal->a[3] / cal->a[6]; |
| 99 | - xscale = cal->a[1] * 256 / cal->a[6]; |
| 100 | - yscale = cal->a[5] * 256 / cal->a[6]; |
| 101 | - xyscale = cal->a[2] * 256 / cal->a[6]; |
| 102 | - yxscale = cal->a[4] * 256 / cal->a[6]; |
| 103 | - |
| 104 | - tc.xtrans = xtrans; |
| 105 | - tc.ytrans = ytrans; |
| 106 | - tc.xscale = xscale; |
| 107 | - tc.yscale = yscale; |
| 108 | - tc.xyswap = 0; |
| 109 | - |
| 110 | - printf ("%d %d %d %d %d\n", tc.xscale, tc.xtrans, tc.yscale, tc.ytrans, tc.xyswap); |
| 111 | - |
| 112 | - if (ioctl (ts_fd, TS_SET_CAL, (void *)&tc) != 0) |
| 113 | - { |
| 114 | - perror ("TS_SET_CAL"); |
| 115 | - exit (1); |
| 116 | - } |
| 117 | } |
| 118 | |
| 119 | void |
| 120 | @@ -398,80 +364,13 @@ handle_ts_event (int x, int y, int press |
| 121 | } |
| 122 | |
| 123 | void |
| 124 | -read_ts (void) |
| 125 | -{ |
| 126 | - TS_EVENT ts_ev; |
| 127 | - int r; |
| 128 | - |
| 129 | - r = read (ts_fd, &ts_ev, sizeof (ts_ev)); |
| 130 | - if (r == sizeof (ts_ev)) |
| 131 | - handle_ts_event (ts_ev.x, ts_ev.y, ts_ev.pressure); |
| 132 | -} |
| 133 | - |
| 134 | -void |
| 135 | -do_cal (char **args) |
| 136 | -{ |
| 137 | - TS_CAL tc; |
| 138 | - |
| 139 | - tc.xscale = atoi (args[0]); |
| 140 | - tc.xtrans = atoi (args[1]); |
| 141 | - tc.yscale = atoi (args[2]); |
| 142 | - tc.ytrans = atoi (args[3]); |
| 143 | - tc.xyswap = atoi (args[4]); |
| 144 | - |
| 145 | - if (flag_debug) |
| 146 | - fprintf (stderr, "setting: %d %d %d %d %d\n", |
| 147 | - tc.xtrans, tc.ytrans, tc.xscale, tc.yscale, tc.xyswap); |
| 148 | - |
| 149 | - if (ioctl (ts_fd, TS_SET_CAL, (void *)&tc) != 0) |
| 150 | - { |
| 151 | - perror ("TS_SET_CAL"); |
| 152 | - exit (1); |
| 153 | - } |
| 154 | - |
| 155 | - exit (0); |
| 156 | -} |
| 157 | - |
| 158 | -void |
| 159 | -show_cal (void) |
| 160 | -{ |
| 161 | - TS_CAL tc; |
| 162 | - |
| 163 | - if (ioctl (ts_fd, TS_GET_CAL, (void *)&tc) != 0) |
| 164 | - { |
| 165 | - perror ("TS_GET_CAL"); |
| 166 | - exit (1); |
| 167 | - } |
| 168 | - |
| 169 | - printf ("%d %d %d %d %d\n", tc.xscale, tc.xtrans, tc.yscale, tc.ytrans, tc.xyswap); |
| 170 | -} |
| 171 | - |
| 172 | -void |
| 173 | usage (const char *name) |
| 174 | { |
| 175 | - fprintf (stderr, "usage: %s -view\n", name); |
| 176 | - fprintf (stderr, " %s [-rotate <0 | 90 | 180 | 270>]\n", name); |
| 177 | - fprintf (stderr, " %s -cal <xs> <xt> <ys> <yt> <xyswap>\n", name); |
| 178 | - |
| 179 | + fprintf (stderr, "usage: %s [-debug]\n", name); |
| 180 | exit (1); |
| 181 | } |
| 182 | |
| 183 | int |
| 184 | -xrr_supported (void) |
| 185 | -{ |
| 186 | - int xrr_event_base, xrr_error_base; |
| 187 | - int xrr_major, xrr_minor; |
| 188 | - |
| 189 | - if (XRRQueryExtension (dpy, &xrr_event_base, &xrr_error_base) == False |
| 190 | - || XRRQueryVersion (dpy, &xrr_major, &xrr_minor) == 0 |
| 191 | - || xrr_major != 1 |
| 192 | - || xrr_minor < 1) |
| 193 | - return 0; |
| 194 | - |
| 195 | - return 1; |
| 196 | -} |
| 197 | - |
| 198 | -int |
| 199 | main (int argc, char *argv[]) |
| 200 | { |
| 201 | XSetWindowAttributes attributes; |
| 202 | @@ -480,31 +379,11 @@ main (int argc, char *argv[]) |
| 203 | int max_fd; |
| 204 | GC bg_gc; |
| 205 | int i; |
| 206 | - int have_xrandr; |
| 207 | |
| 208 | for (i = 1; i < argc; i++) |
| 209 | { |
| 210 | - if (!strcmp (argv[i], "-view")) |
| 211 | - { |
| 212 | - show_cal (); |
| 213 | - exit (0); |
| 214 | - } |
| 215 | - else if (!strcmp (argv[i], "-debug")) |
| 216 | + if (!strcmp (argv[i], "-debug")) |
| 217 | flag_debug = 1; |
| 218 | - else if (!strcmp (argv[i], "-cal")) |
| 219 | - { |
| 220 | - if (argc > (i + 5)) |
| 221 | - do_cal (argv + i + 1); |
| 222 | - else |
| 223 | - usage (argv[0]); |
| 224 | - } |
| 225 | - else if (!strcmp (argv[i], "-rotate")) |
| 226 | - { |
| 227 | - if (argc > (i + 1)) |
| 228 | - rotation = atoi (argv[++i]); |
| 229 | - else |
| 230 | - usage (argv[0]); |
| 231 | - } |
| 232 | else |
| 233 | usage (argv[0]); |
| 234 | } |
| 235 | @@ -531,48 +410,11 @@ main (int argc, char *argv[]) |
| 236 | fprintf (stderr, "failed to set raw mode: error %d\n", r); |
| 237 | exit (1); |
| 238 | } |
| 239 | - |
| 240 | - using_xcalibrate = 1; |
| 241 | - } |
| 242 | - |
| 243 | - have_xrandr = xrr_supported (); |
| 244 | - if (have_xrandr) |
| 245 | - { |
| 246 | - XRRScreenConfiguration *rr_screen; |
| 247 | - Rotation current_rotation; |
| 248 | - |
| 249 | - if (flag_debug) |
| 250 | - fprintf (stderr, "XRANDR is supported\n"); |
| 251 | - |
| 252 | - rr_screen = XRRGetScreenInfo (dpy, RootWindow (dpy, screen)); |
| 253 | - |
| 254 | - XRRRotations (dpy, screen, ¤t_rotation); |
| 255 | - |
| 256 | - XRRFreeScreenConfigInfo (rr_screen); |
| 257 | - |
| 258 | - if (flag_debug) |
| 259 | - fprintf (stderr, "Current RANDR rotation is %d\n", current_rotation); |
| 260 | - |
| 261 | - switch (current_rotation) |
| 262 | - { |
| 263 | - case RR_Rotate_270: |
| 264 | - rotation += 90; |
| 265 | - case RR_Rotate_180: |
| 266 | - rotation += 90; |
| 267 | - case RR_Rotate_90: |
| 268 | - rotation += 90; |
| 269 | - rotation %= 360; |
| 270 | - case RR_Rotate_0: |
| 271 | - break; |
| 272 | - default: |
| 273 | - fprintf (stderr, "Unknown RANDR rotation: %d\n", current_rotation); |
| 274 | - break; |
| 275 | - } |
| 276 | } |
| 277 | else |
| 278 | { |
| 279 | - if (flag_debug) |
| 280 | - fprintf (stderr, "XRANDR not supported\n"); |
| 281 | + perror ("XCALIBRATE extension missing"); |
| 282 | + exit (1); |
| 283 | } |
| 284 | |
| 285 | attributes.override_redirect = flag_debug ? False : True; |
| 286 | @@ -666,45 +508,17 @@ main (int argc, char *argv[]) |
| 287 | |
| 288 | for (i = 0; i < NR_POINTS; i++) |
| 289 | { |
| 290 | - switch (rotation) |
| 291 | - { |
| 292 | - case 0: |
| 293 | - cal.xfb[i] = cal.xscr[i]; |
| 294 | - cal.yfb[i] = cal.yscr[i]; |
| 295 | - break; |
| 296 | - case 90: |
| 297 | - cal.xfb[i] = cal.yscr[i]; |
| 298 | - cal.yfb[i] = screen_x - cal.xscr[i]; |
| 299 | - break; |
| 300 | - case 180: |
| 301 | - cal.xfb[i] = screen_x - cal.xscr[i]; |
| 302 | - cal.yfb[i] = screen_y - cal.yscr[i]; |
| 303 | - break; |
| 304 | - case 270: |
| 305 | - cal.xfb[i] = screen_y - cal.yscr[i]; |
| 306 | - cal.yfb[i] = cal.xscr[i]; |
| 307 | - break; |
| 308 | - } |
| 309 | + cal.xfb[i] = cal.xscr[i]; |
| 310 | + cal.yfb[i] = cal.yscr[i]; |
| 311 | + XCalibrateScreenToCoord (dpy, &cal.xfb[i], &cal.yfb[i]); |
| 312 | |
| 313 | if (flag_debug) |
| 314 | - printf ("rotation %d: (%d,%d) -> (%d,%d)\n", rotation, |
| 315 | + printf ("rotation conversion: (%d,%d) -> (%d,%d)\n", |
| 316 | cal.xscr[i], cal.yscr[i], cal.xfb[i], cal.yfb[i]); |
| 317 | } |
| 318 | |
| 319 | next_event (); |
| 320 | |
| 321 | - if (!using_xcalibrate) |
| 322 | - { |
| 323 | - ts_fd = open (RAW_DEVICE, O_RDONLY); |
| 324 | - if (ts_fd < 0) |
| 325 | - { |
| 326 | - perror (RAW_DEVICE); |
| 327 | - exit (1); |
| 328 | - } |
| 329 | - } |
| 330 | - |
| 331 | - max_fd = (xfd > ts_fd) ? xfd : ts_fd; |
| 332 | - |
| 333 | for (;;) |
| 334 | { |
| 335 | fd_set fds; |
| 336 | @@ -713,12 +527,8 @@ main (int argc, char *argv[]) |
| 337 | |
| 338 | FD_ZERO (&fds); |
| 339 | FD_SET (xfd, &fds); |
| 340 | - if (ts_fd != -1) |
| 341 | - FD_SET (ts_fd, &fds); |
| 342 | |
| 343 | - select (max_fd + 1, &fds, NULL, NULL, NULL); |
| 344 | - |
| 345 | - if (ts_fd != -1 && FD_ISSET (ts_fd, &fds)) |
| 346 | - read_ts (); |
| 347 | + select (xfd + 1, &fds, NULL, NULL, NULL); |
| 348 | } |
| 349 | } |
| 350 | + |
| 351 | Index: xtscal-0.6.3/configure.ac |
| 352 | =================================================================== |
| 353 | --- xtscal-0.6.3.orig/configure.ac 2004-09-10 20:11:12.000000000 +0100 |
| 354 | +++ xtscal-0.6.3/configure.ac 2007-07-01 01:12:55.000000000 +0100 |
| 355 | @@ -9,8 +9,7 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2]) |
| 356 | # Checks for programs. |
| 357 | AC_PROG_CC |
| 358 | |
| 359 | -PKG_CHECK_MODULES(XTSCAL, x11 xft xext xrandr xcalibrate) |
| 360 | +PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate) |
| 361 | |
| 362 | AC_CONFIG_FILES([Makefile]) |
| 363 | -AC_CONFIG_FILES([xtscal]) |
| 364 | AC_OUTPUT |
| 365 | Index: xtscal-0.6.3/gpe-dist.am |
| 366 | =================================================================== |
| 367 | --- xtscal-0.6.3.orig/gpe-dist.am 2004-06-02 23:07:13.000000000 +0100 |
| 368 | +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 |
| 369 | @@ -1,12 +0,0 @@ |
| 370 | -CVSTAG := $(shell echo $(PACKAGE)-$(VERSION) | tr [a-z.] [A-Z_]) |
| 371 | - |
| 372 | -dist-upload: dist |
| 373 | - scp $(PACKAGE)-$(VERSION).tar.bz2 $(USER)@handhelds.org:/home/ftp/pub/projects/gpe/source/ |
| 374 | - |
| 375 | -tag: |
| 376 | - cvs tag $(CVSTAG) |
| 377 | - |
| 378 | -retag: |
| 379 | - cvs tag -F $(CVSTAG) |
| 380 | - |
| 381 | -source: tag dist-upload |
| 382 | Index: xtscal-0.6.3/h3600_ts.h |
| 383 | =================================================================== |
| 384 | --- xtscal-0.6.3.orig/h3600_ts.h 2003-07-05 17:27:10.000000000 +0100 |
| 385 | +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 |
| 386 | @@ -1,216 +0,0 @@ |
| 387 | -/* |
| 388 | -* |
| 389 | -* Driver for the H3600 Touch Screen and other Atmel controlled devices. |
| 390 | -* |
| 391 | -* Copyright 2000 Compaq Computer Corporation. |
| 392 | -* |
| 393 | -* Use consistent with the GNU GPL is permitted, |
| 394 | -* provided that this copyright notice is |
| 395 | -* preserved in its entirety in all copies and derived works. |
| 396 | -* |
| 397 | -* COMPAQ COMPUTER CORPORATION MAKES NO WARRANTIES, EXPRESSED OR IMPLIED, |
| 398 | -* AS TO THE USEFULNESS OR CORRECTNESS OF THIS CODE OR ITS |
| 399 | -* FITNESS FOR ANY PARTICULAR PURPOSE. |
| 400 | -* |
| 401 | -* Author: Charles Flynn. |
| 402 | -* |
| 403 | -*/ |
| 404 | - |
| 405 | - |
| 406 | -#ifndef __H3600_TS_H__ |
| 407 | -#define __H3600_TS_H__ |
| 408 | - |
| 409 | -#include <linux/ioctl.h> |
| 410 | - |
| 411 | -enum h3600_ts_minor_devices { |
| 412 | - TS_MINOR = 0, |
| 413 | - TSRAW_MINOR = 1, |
| 414 | - KEY_MINOR = 2 |
| 415 | -}; |
| 416 | - |
| 417 | -typedef struct h3600_ts_calibration { |
| 418 | - int xscale; |
| 419 | - int xtrans; |
| 420 | - int yscale; |
| 421 | - int ytrans; |
| 422 | - int xyswap; |
| 423 | -} TS_CAL; |
| 424 | - |
| 425 | -typedef struct h3600_ts_event { |
| 426 | - unsigned short pressure; |
| 427 | - unsigned short x; |
| 428 | - unsigned short y; |
| 429 | - unsigned short pad; |
| 430 | -} TS_EVENT; |
| 431 | - |
| 432 | -/* Deprecated - do not use */ |
| 433 | -typedef struct h3600_ts_return { |
| 434 | - unsigned short pressure; |
| 435 | - unsigned short x; |
| 436 | - unsigned short y; |
| 437 | - unsigned short pad; |
| 438 | -} TS_RET; |
| 439 | - |
| 440 | -enum power_button_mode { |
| 441 | - PBM_SUSPEND = 0, |
| 442 | - PBM_GENERATE_KEYPRESS = 1 |
| 443 | -}; |
| 444 | - |
| 445 | - |
| 446 | -/* ++++++++++++++ +++++++++++++++++++++++++++++++++++++ */ |
| 447 | - |
| 448 | -typedef struct therm_dev { |
| 449 | - short data; |
| 450 | -} THERM_DEV; |
| 451 | - |
| 452 | -#define H3600_BATT_CHEM_ALKALINE 0x01 |
| 453 | -#define H3600_BATT_CHEM_NICD 0x02 |
| 454 | -#define H3600_BATT_CHEM_NIMH 0x03 |
| 455 | -#define H3600_BATT_CHEM_LION 0x04 |
| 456 | -#define H3600_BATT_CHEM_LIPOLY 0x05 |
| 457 | -#define H3600_BATT_CHEM_NOT_INSTALLED 0x06 |
| 458 | -#define H3600_BATT_CHEM_UNKNOWN 0xff |
| 459 | - |
| 460 | -/* These should match the apm_bios.h definitions */ |
| 461 | -#define H3600_AC_STATUS_AC_OFFLINE 0x00 |
| 462 | -#define H3600_AC_STATUS_AC_ONLINE 0x01 |
| 463 | -#define H3600_AC_STATUS_AC_BACKUP 0x02 /* What does this mean? */ |
| 464 | -#define H3600_AC_STATUS_AC_UNKNOWN 0xff |
| 465 | - |
| 466 | -/* These bitfields are rarely "or'd" together */ |
| 467 | -#define H3600_BATT_STATUS_HIGH 0x01 |
| 468 | -#define H3600_BATT_STATUS_LOW 0x02 |
| 469 | -#define H3600_BATT_STATUS_CRITICAL 0x04 |
| 470 | -#define H3600_BATT_STATUS_CHARGING 0x08 |
| 471 | -#define H3600_BATT_STATUS_CHARGE_MAIN 0x10 |
| 472 | -#define H3600_BATT_STATUS_DEAD 0x20 /* Battery will not charge */ |
| 473 | -#define H3600_BATT_NOT_INSTALLED 0x20 /* For expansion pack batteries */ |
| 474 | -#define H3600_BATT_STATUS_FULL 0x40 /* Battery fully charged (and connected to AC) */ |
| 475 | -#define H3600_BATT_STATUS_NOBATT 0x80 |
| 476 | -#define H3600_BATT_STATUS_UNKNOWN 0xff |
| 477 | - |
| 478 | -struct battery_data { |
| 479 | - unsigned char chemistry; |
| 480 | - unsigned char status; |
| 481 | - unsigned short voltage; /* Voltage for battery #0; unknown for battery #1 */ |
| 482 | - unsigned short percentage; /* Percentage of full charge */ |
| 483 | - unsigned short life; /* Life remaining in minutes */ |
| 484 | -}; |
| 485 | - |
| 486 | -struct h3600_battery { |
| 487 | - unsigned char ac_status; |
| 488 | - unsigned char battery_count; /* How many batteries we have */ |
| 489 | - struct battery_data battery[2]; |
| 490 | -}; |
| 491 | - |
| 492 | -/* -------- EEPROM and SPI Interfaces ---------------*/ |
| 493 | - |
| 494 | -#define EEPROM_RD_BUFSIZ 6 /* EEPROM reads are 16 bits */ |
| 495 | -#define EEPROM_WR_BUFSIZ 5 /* Allow room for 8bit 'addr' field in buffer*/ |
| 496 | -#define SPI_RD_BUFSIZ 16 /* SPI reads are 8 bits */ |
| 497 | -#define SPI_WR_BUFSIZ 7 |
| 498 | - |
| 499 | -/* The EEPROM is where internal programs are stored on the Amtel. |
| 500 | - You probably don't want to read or write these values */ |
| 501 | - |
| 502 | -typedef struct h3600_eeprom_read_request { |
| 503 | - unsigned char addr; /* 8bit Address Offset 0-255 */ |
| 504 | - unsigned char len; /* Number of 16bit words to read 0-128 */ |
| 505 | - unsigned short buff[EEPROM_RD_BUFSIZ]; |
| 506 | -} EEPROM_READ; |
| 507 | - |
| 508 | -typedef struct h3600_eeprom_write_request { |
| 509 | - unsigned char len; /* used only to compute the number of bytes to send */ |
| 510 | - unsigned char addr; /* 0-128 */ |
| 511 | - unsigned short buff[EEPROM_WR_BUFSIZ]; |
| 512 | -} EEPROM_WRITE; |
| 513 | - |
| 514 | -/* The SPI bus connects to EEPROMs located on sleeves plugged into |
| 515 | - the iPAQ. You may want to read these values */ |
| 516 | - |
| 517 | -typedef struct h3600_spi_read_request { |
| 518 | - unsigned short addr; /* 16bit Address Offset 0-128 */ |
| 519 | - unsigned char len; /* Number of bytes to read */ |
| 520 | - unsigned char buff[SPI_RD_BUFSIZ]; |
| 521 | -} SPI_READ; |
| 522 | - |
| 523 | -#define SPI_READ_STATUS_BYTE 0xffff /* Use this address to read the status byte */ |
| 524 | - |
| 525 | -typedef struct h3600_spi_write_request { |
| 526 | - unsigned short len; /* used only to compute the number of bytes to send */ |
| 527 | - unsigned short addr; /* this 16bit address accesses a single byte */ |
| 528 | - unsigned char buff[SPI_WR_BUFSIZ]; |
| 529 | -} SPI_WRITE; |
| 530 | - |
| 531 | - |
| 532 | -/* -------- end of EEPROM and SPI Interfaces ---------------*/ |
| 533 | - |
| 534 | -/* User space structures for IOCTL calls */ |
| 535 | - |
| 536 | -typedef struct h3600_ts_version { |
| 537 | - unsigned char host_version[8]; /* ascii "x.yy" */ |
| 538 | - unsigned char pack_version[8]; /* ascii "x.yy" */ |
| 539 | - unsigned char boot_type; /* TODO ?? */ |
| 540 | -} VER_RET; |
| 541 | - |
| 542 | -typedef struct h3600_ts_led { |
| 543 | - unsigned char OffOnBlink; /* 0=off 1=on 2=Blink */ |
| 544 | - unsigned char TotalTime; /* Units of 5 seconds */ |
| 545 | - unsigned char OnTime; /* units of 100m/s */ |
| 546 | - unsigned char OffTime; /* units of 100m/s */ |
| 547 | -} LED_IN; |
| 548 | - |
| 549 | -enum flite_mode { |
| 550 | - FLITE_MODE1 = 1, |
| 551 | - FLITE_AUTO_MODE = 1, /* for reference only */ |
| 552 | - FLITE_MANUAL_MODE = 2, /* Use this normally? */ |
| 553 | - FLITE_GET_LIGHT_SENSOR = 3 /* Returns light reading in "brightness" field */ |
| 554 | -}; |
| 555 | -enum flite_pwr { |
| 556 | - FLITE_PWR_OFF = 0, |
| 557 | - FLITE_PWR_ON = 1 |
| 558 | -}; |
| 559 | - |
| 560 | -typedef struct h3600_ts_flite { |
| 561 | - unsigned char mode; |
| 562 | - unsigned char pwr; |
| 563 | - unsigned char brightness; |
| 564 | -} FLITE_IN; |
| 565 | - |
| 566 | -/*************************** Updated "universal" structures *******************/ |
| 567 | - |
| 568 | -/* Sets backlight for both H3100 and H3600 models - technically "frontlight" for H3600 */ |
| 569 | -struct h3600_ts_backlight { |
| 570 | - enum flite_pwr power; /* 0 = off, 1 = on */ |
| 571 | - unsigned char brightness; /* 0 - 255 */ |
| 572 | -}; |
| 573 | - |
| 574 | -struct h3600_ts_contrast { /* Only useful on H3100 model */ |
| 575 | - unsigned char contrast; /* 0 - 255 */ |
| 576 | -}; |
| 577 | - |
| 578 | -/* IOCTL cmds user or kernel space */ |
| 579 | - |
| 580 | -/* Use 'f' as magic number */ |
| 581 | -#define IOC_H3600_TS_MAGIC 'f' |
| 582 | - |
| 583 | -/* TODO: Some of these IOWR values are just plain wrong */ |
| 584 | -#define GET_VERSION _IOR(IOC_H3600_TS_MAGIC, 1, struct h3600_ts_version ) |
| 585 | -#define READ_EEPROM _IOWR(IOC_H3600_TS_MAGIC, 2, struct h3600_eeprom_read_request) |
| 586 | -#define WRITE_EEPROM _IOWR(IOC_H3600_TS_MAGIC, 3, struct h3600_eeprom_write_request) |
| 587 | -#define GET_THERMAL _IOR(IOC_H3600_TS_MAGIC, 4, struct therm_dev) |
| 588 | -#define LED_ON _IOW(IOC_H3600_TS_MAGIC, 5, struct h3600_ts_led) |
| 589 | -#define GET_BATTERY_STATUS _IOR(IOC_H3600_TS_MAGIC, 6, struct h3600_battery) |
| 590 | -#define FLITE_ON _IOW(IOC_H3600_TS_MAGIC, 7, struct h3600_ts_flite) |
| 591 | -#define READ_SPI _IOWR(IOC_H3600_TS_MAGIC, 8, struct h3600_spi_read_request) |
| 592 | -#define WRITE_SPI _IOWR(IOC_H3600_TS_MAGIC, 9, struct h3600_spi_write_request) |
| 593 | -#define TS_GET_CAL _IOR(IOC_H3600_TS_MAGIC, 10, struct h3600_ts_calibration) |
| 594 | -#define TS_SET_CAL _IOW(IOC_H3600_TS_MAGIC, 11, struct h3600_ts_calibration) |
| 595 | - |
| 596 | -/* New IOCTL interfaces - defined to be more user friendly */ |
| 597 | -#define TS_GET_BACKLIGHT _IOR(IOC_H3600_TS_MAGIC, 20, struct h3600_ts_backlight) |
| 598 | -#define TS_SET_BACKLIGHT _IOW(IOC_H3600_TS_MAGIC, 20, struct h3600_ts_backlight) |
| 599 | -#define TS_GET_CONTRAST _IOR(IOC_H3600_TS_MAGIC, 21, struct h3600_ts_contrast) |
| 600 | -#define TS_SET_CONTRAST _IOW(IOC_H3600_TS_MAGIC, 21, struct h3600_ts_contrast) |
| 601 | - |
| 602 | -#endif |
| 603 | Index: xtscal-0.6.3/Makefile.am |
| 604 | =================================================================== |
| 605 | --- xtscal-0.6.3.orig/Makefile.am 2004-06-02 23:07:13.000000000 +0100 |
| 606 | +++ xtscal-0.6.3/Makefile.am 2007-07-02 12:51:02.000000000 +0100 |
| 607 | @@ -1,11 +1,8 @@ |
| 608 | -libexec_PROGRAMS = xtscal.bin |
| 609 | -bin_SCRIPTS = xtscal |
| 610 | +bin_PROGRAMS = xtscal |
| 611 | |
| 612 | -xtscal_bin_SOURCES = main.c calibrate.c calibrate.h h3600_ts.h |
| 613 | +xtscal_SOURCES = main.c calibrate.c calibrate.h |
| 614 | |
| 615 | -xtscal_bin_LDADD = @XTSCAL_LIBS@ |
| 616 | +xtscal_LDADD = @XTSCAL_LIBS@ |
| 617 | |
| 618 | INCLUDES = @XTSCAL_CFLAGS@ -DNR_POINTS=5 |
| 619 | |
| 620 | -include gpe-dist.am |
| 621 | - |