Writing HID driver for a USB phone handset IPEVO VP170 (0x1778:0x0403)

"Robin H. Johnson" <[email protected]>
Newsgroups gmane.linux.usb.devel
Message-ID <[email protected]>
Hi,

USB drivers in general are something a little new to me, but I picked up a USB
phone handset a little while ago, and while the USB-Audio portion of it works
great, none of the buttons actually do anything, and the LED doesn't light up
yet.

Here's the manuf's page on the phone: http://www.ipevo.com/v2/prod/p111444.htm

libhid appears to need hackery as it only looks at the EP1IN endpoint, while
this device uses EP3IN for the keypad, even fixing that to do a lookup of the
correct input and interface number it still doesn't like the unit, so I figured
probably better to post here and see if somebody had better pointers to being
able to use the data. A userspace app would probably be the most use, but I'll
settle for actually managing to receive the data!

Using Pete's binary usbmon, I can see that each of the 25 buttons has a unique
code, and pressing said button repeatedly cycles a second byte through values
0-3 (looping).

usb 2-1: new full speed USB device using ohci_hcd and address 2
usb 2-1: configuration #1 chosen from 1 choice
input: ÿ Free-1 USB Phone as /class/input/input4
input: USB HID v1.00 Device [ÿ Free-1 USB Phone] on usb-0001:01:0b.1-1

The iManufacturer is set to 0xFF.

Here is the interface and endpoint for the controls. I find it odd that the HID
Report Descriptor is not present. I suspect it will contain the LED control as
well.

    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Devices
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      50
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0007  1x 7 bytes
        bInterval              10



-- 
Robin Hugh Johnson
Gentoo Linux Developer & Council Member
E-Mail     : [email protected]
GnuPG FP   : 11AC BA4F 4778 E3F6 E4ED  F38E B27B 944E 3488 4E85

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
signature.asc (application/pgp-signature, 321 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.2 (GNU/Linux)
Comment: Robbat2 @ Orbis-Terrarum Networks - The text below is a digital signature. If it doesn't make any sense to you, ignore it.

iD8DBQFF/kxfPpIsIjIzwiwRAufvAKC/sSg3qDEgOObByienIQzBJw5lRQCeIlIa
7bd6vAKDuY9lnIB9FtWOXck=
=UHp+
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.