[sane-devel] Trying to understand GL640

2007-08-10 Thread Gerald Murray

The enum is probably from a different datasheet, possibly an earlier
hardware version?

A USB control message has an 8 byte setup packet with format
   byte requesttype,
   byte request,
   word value,
   word index,
   word length,
   .. remainder of packet, if any, follows

The value shown in the enum is the value to be inserted into the "word value"
field above when sending a USB control message.
In the backend canon630u-common.c function gl640WriteControl uses
that enum value and inserts it into the field "value" and sends the USB
control message.

I did not see the USB control message discussed in that .pdf.
Do not confuse that enum and its values with the General Purpose
Registers (which actually exist in hardware) on page 10.
The USB control message is a structure of data bytes which
are in transport to/from host/device; it does not have hardware
registers.

regards,
Gerald





[sane-devel] Trying to understand GL640

2007-08-09 Thread Robert Brijder
Hello,

I am trying to understand the GL640USB IEEE-1284 to USB Bridge. I have
looked at a few implementations of this bridge. Each time the
following registers are used (this code is from the canon630u
backend):

/* Register codes for the bridge.  These are NOT the registers for the
   scanner chip on the other side of the bridge. */
typedef enum
{
  GL640_BULK_SETUP = 0x82,
  GL640_EPP_ADDR = 0x83,
  GL640_EPP_DATA_READ = 0x84,
  GL640_EPP_DATA_WRITE = 0x85,
  GL640_SPP_STATUS = 0x86,
  GL640_SPP_CONTROL = 0x87,
  GL640_SPP_DATA = 0x88,
  GL640_GPIO_OE = 0x89,
  GL640_GPIO_READ = 0x8a,
  GL640_GPIO_WRITE = 0x8b
}
GL640_Request;

However, I have gone through the official datasheet supplied by
Genesys and could not find any documentation on these register
addresses. In fact, according to page 10 in the datasheet, the
registers on the above addresses have different meanings. What am I
missing here??

Thanks,
Robert