System method for enumerating client devices embedded in a user device during reboot, wake up or restart of user device
AssigneeApple Inc.
InventorsAnand Dalal, Jonathan J. Andrews
Life of this patent
Estimating the term…
Loading patent…
AssigneeApple Inc.
InventorsAnand Dalal, Jonathan J. Andrews
Estimating the term…
A host device can enable operation with a client device based on stored or cached enumeration information. The enumeration information can be initially received from the client device during a first configuration process, and stored or cached in volatile and/or non-volatile storage accessible by the host device. During subsequent configuration processes, operation with the client device can be enabled based on the stored or cached enumeration information. Operation between the host device and the client device can be facilitated through a communication protocol, such as the universal serial bus (USB) protocol. A host device and client device can be connected via a traditional USB or USB High Speed Inter-Chip (HSIC) connection.
A method comprising:
A non-transitory computer-readable storage medium storing instructions operable to cause a host device to perform operations comprising:
A user device comprising:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
Program control for peripheral devices: where the program performs an interfacing function, e.g. device driver
Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units: handling…
Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central…:…
Energy efficient computing
About 4 years 4 months of term left · ends 9 Mar 2031 (estimated)
The present disclosure relates generally to host devices enabling operation with client devices based on enumeration information, and in particular to host devices enabling operation with client devices using enumeration information stored or cached by the host devices.
Computing devices have been in use for several decades. Examples of computing devices include, for example, desktop computers, laptop computers, mobile phones, smartphones, tablet devices, portable multimedia players, global positioning system devices, video game players, personal digital assistants (PDAs), portable email devices, multifunction devices, and/or the like. Examples of multi-function devices include various iPhone™ and iPod™ models manufactured and sold by Apple Inc., assignee of the present application. Computing devices can be used for performing a wide variety of tasks, from the simple to some of the most complex.
In some instances, two computing devices can be configured to communicate with one other. For example, two computing devices can be connected and communicate over a printed circuit board (“PCB”) trace or cable. To facilitate communication between computing devices, it is common to rely on standard communication protocols, such as the universal serial bus (USB) protocol. The USB specification requires that in order for operation between a host device and client device to be enabled, a configuration process must occur. In some instances, a configuration process can include a client device providing enumeration information (e.g., information about the client device) to the host device, and the host device enabling operation with the client device based on the provided enumeration information.
FIG. 1 illustrates a system including a host device connected to a client device according to an embodiment of the present invention.
FIG. 2 illustrates a system including a host device connected to a client device according to another embodiment of the present invention.
FIG. 3 is a hierarchical diagram illustrating an exemplary set of USB descriptors that can be included in a client device's enumeration information according to an embodiment of the present invention.
Some embodiments of the present invention provide techniques usable by a host device to quickly enable operation with a client device based on stored or cached enumeration information. In some embodiments, the enumeration information can be received from the client device during a first configuration process, and stored or cached in volatile and/or non-volatile storage accessible by the host device. During subsequent configuration processes, the host device can enable operation with the client device based on the stored or cached enumeration information. In some embodiments, communication between the host device and the client device can be facilitated through a communication protocol, such as the universal serial bus (USB) protocol.
Illustratively, a host device and a client device can be components of a multi-function device, such as an iPhone™ device manufactured and sold by Apple Inc. After powering on the multi-function device, the host device can detect the presence of the client device and initiate a configuration process. During the configuration process, the host device can determine if enumeration information for the client device has been previously stored or cached in its locally accessible volatile and/or non-volatile storage. If enumeration information for the client device has not been previously stored or cached, the host device can perform an enumeration process. In particular, the host device can request and receive enumeration information from the client device. Based on the received enumeration information, the host device can enable operation with the client device. The host device can further store or cache the received enumeration information in its volatile (e.g., dynamic random access memory) and/or non-volatile storage (e.g., hard disk, flash memory, etc.). During operation of the multi-function device, the client device can be temporarily powered off in order to conserve energy. After the client device is powered back on, the host device can initiate a subsequent configuration process. Because the host device previously stored the client device's enumeration information, the host device can use the stored enumeration information to enable operation with the client device instead of repeating the enumeration process.
In certain embodiments, a host device can be any suitable computing device without limitation. In some embodiments, a host device can be a component of a personal computer, laptop computer, tablet device, multimedia device, cellular phone, smartphone, global positioning system (GPS) device, gaming device, multi-function device, printer, household device, a smart hub device that permits two or more devices to communicate with one another, any portable or non-portable electro-mechanical device and/or the like. For example, a host device can be a single chip (integrated circuit) applications processor within a smartphone device that is configured to interact with various other co-processors or components of the smartphone device. In other embodiments, a host device can be a personal computer, laptop computer, tablet device, multimedia device, cellular phone, smartphone, global positioning system (GPS) device, gaming device, multi-function device, printer, household device, a smart hub that permits two or more devices to communicate with one another, any portable or non-portable electro-mechanical device and/or the like.