Patent ID: 7536486

Claim:
A method, implemented in a portable device, the method comprising: sending a class descriptor to a host device, the class descriptor describing a class of the portable device; detecting whether a request for an operating system (OS) descriptor has been sent by the host device, the OS descriptor describing a functionality supported by the portable device; communicating with the host device, using a base functionality, if the request for the OS descriptor is not received; sending the OS descriptor to the host device, and detecting whether the host device is using a base functionality protocol or an enhanced functionality protocol to communicate with the portable device based at least in part on the received OS descriptor, the enhanced functionality protocol allowing additional features of the portable device to be accessed by the host device and/or allowing more functionality of the portable device to be used by the host device; and communicating, using the enhanced functionality protocol, with the host device, if it is detected that the host device is using the enhanced functionality protocol to communicate with the portable device, and otherwise using the base functionality protocol to communicate with the host device.