Patent Description:
A consumer electronic device (e.g., a laptop, a desktop, etc.) may supply power to a computing device (e.g., a cell phone) via, for example, a Universal Serial Bus (USB) port. The consumer electronic device may have one or more such USB ports. It may be desirable to optimize the supply of power to various USB ports. <CIT> relates to a computer system including multiple ports to which at least one external device is connected and which are connectable to multiple power supplying lines branched from a power supplying line for supplying electric power to the at least one external device; a switching unit which controls connections between the power supplying lines and the ports; and a controller which controls the switching unit so that two or more power supplying lines among the power supplying lines are connected to a first port, to which one of the at least one external device is connected, among the ports. <CIT> describes an information processor capable of supplying power to an external device includes a connector, a storage module, a receiver, a selector, and a power supply controller. The connector connects the external device to the information processor. The storage module stores identification information that identifies the external device and a power supply mode in association with each other. The power supply mode defines a condition of each element of the information processor to cause the external device to be chargeable. The receiver receives the identification information from the external device connected to the information processor. The selector selects the power supply mode stored in the storage module in association with the identification information. The power supply controller sets the element of the information processor according to the condition defined by the power supply mode. <CIT> describes a method including detecting an inrush current that flows out of a USB port of a first electronic device when a central processing unit (CPU) of the first electronic device is not being powered. The inrush current is detected by a novel inrush current detect circuit when a second electronic device is connected to the USB port. In one example, the first electronic device is a laptop computer having a battery and a USB DC-to-DC converter. The inrush current detect circuit enables the USB DC-to-DC converter such that the USB DC-to-DC converter receives power from the battery and supplies a regulated voltage to the second electronic device through the USB port while the CPU remains unpowered (not drawing power from the battery). <CIT> relates to a method, device and system for efficient allocation of an available current supply to a first and second USB power port. The current drawn by a device connected to the first power port is measured and the first power port designated as a priority port. A first current limit is assigned to the priority port, where the selected first current limit is the lowest available current limit setting that is greater than the measured current draw on the priority port. A second current limit is assigned to the second power port, where the assigned second current limit is the highest available current limit setting that is less than or equal to the available current minus the first current limit. The current drawn on the priority port is periodically measured and the first current limit and the second current limit are adjusted accordingly to efficiently distribute the available current. <CIT> describes a system that manages power allocated through a set of bus interfaces on a computer system. During operation, the system obtains a first request for revocable current beyond a reserved current for a first bus interface from the set of bus interfaces, wherein the request is associated with a first device connected to the first bus interface. Next, the system allocates the revocable current to the first bus interface from an extra-current budget for the set of bus interfaces. Upon detecting a connection of a second device that requires non-revocable current over the extra-current budget to a second bus interface from the set of bus interfaces, the system transmits a first notification to the first device to relinquish the revocable current. Finally, the system allocates the non-revocable current to the second device from the relinquished revocable current. <CIT> describes an electronic apparatus that performs a communication with a portable device detachably attached to a port of the apparatus. The apparatus supplies bus power to the portable device through the port. The apparatus includes a notification module configured to execute an operation of notifying the portable device whether the port is a first type port configured to supply a first charging current or a second type port configured to supply a second charging current higher than the first charging current. The apparatus controls, when a remaining level of a battery of the apparatus is lower than a threshold, an operation of the notification module such that the portable device recognizes the port as the first type port. <CIT> relates to an information processor which can change an output current to a port of a serial bus in the case of using an AC adopter and in the case of using a battery, as a power supply, in an information processor including a serial bus control part. A power source control part detects that either power source out of the AC adopter and the battery is connected with the information processor by using a detecting signal, and outputs a control signal corresponding to the result to the serial bus control part. The output current to the port is changed in accordance with a state of the control signal by using a current control circuit. These embodiments and additional non-claimed embodiments, which are examples of related techniques to help understanding the claimed invention, are further described below. The described embodiments are not to be regarded as necessarily defining the invention unless they fall within the scope of the claims.

The embodiments of the disclosure will be understood more fully from the detailed description given below and from the accompanying drawings of various embodiments of the disclosure, which, however, should not be taken to limit the disclosure to the specific embodiments, but are for explanation and understanding only.

A computing system can have one or more I/O ports, which may be, for example, USB ports (e.g., type-C USB ports). These ports can supply power to attached external devices and/or communicate with the external devices.

In some embodiments, a computing system may dynamically change a power profile of a port, e.g., based on a charge level of the battery of the system, an availability of power for the port, an operating state of the system, a user configurable parameter, etc. Merely as an example, when the battery charge level is above a threshold, the system can have a higher limit on current transmitted through the port and/or a higher voltage level of the port. However, as and when the battery gets depleted, the system may impose lower limits on the current transmitted through the port and/or limit the voltage level of the port. This, for example, ensures that the external device still receives some power when the battery charge level is low, yet the battery charge level is depleted at a much lower rate.

In some embodiments, when a port is not occupied, the system can disconnect or turn off the port, e.g., such that the port does not receive any power. As a result, there may be less, insignificant or zero leakage power through the port. Additionally, the system may reassign the power value originally assigned to the port to other ports of the system. Such dynamic switching of various ports and/or reassignment of power to various other ports may, for example, result in relatively high power assignment to occupied ports and zero power assignment to unoccupied ports.

In some embodiments, a port may be powered (e.g., to supply power to external devices connected to the port) even while, for example, the system operates in a low power mode of operation (e.g., operates in one of S0, S1, S2, S3, S4, or S5 system states). Furthermore, in an example, the system may dynamically change power profile of the ports, e.g., based on the operational state of the system, thereby ensuring that external devices receive power through the ports even while the system operates in a low power mode. Other technical effects will be evident from the various embodiments and figures.

In the following description, numerous details are discussed to provide a more thorough explanation of embodiments of the present disclosure. It will be apparent, however, to one skilled in the art, that embodiments of the present disclosure may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring embodiments of the present disclosure.

Some lines may be thicker, to indicate more constituent signal paths, and/or have arrows at one or more ends, to indicate primary information flow direction.

Throughout the specification, and in the claims, the term "connected" means a direct connection, such as electrical, mechanical, or magnetic connection between the things that are connected, without any intermediary devices. The term "coupled" means a direct or indirect connection, such as a direct electrical, mechanical, or magnetic connection between the things that are connected or an indirect connection, through one or more passive or active intermediary devices. The term "circuit" or "module" may refer to one or more passive and/or active components that are arranged to cooperate with one another to provide a desired function. The term "signal" may refer to at least one current signal, voltage signal, magnetic signal, or data/clock signal. The meaning of "a," "an," and "the" include plural references. The meaning of "in" includes "in" and "on. " The terms "substantially," "close," "approximately," "near," and "about," generally refer to being within +/- <NUM>% of a target value.

Unless otherwise specified the use of the ordinal adjectives "first," "second," and "third," etc., to describe a common object, merely indicate that different instances of like objects are being referred to, and are not intended to imply that the objects so described must be in a given sequence, either temporally, spatially, in ranking or in any other manner.

For the purposes of the present disclosure, phrases "A and/or B" and "A or B" mean (A), (B), or (A and B).

<FIG> schematically illustrates a computing system <NUM> (henceforth referred to as a "system <NUM>") comprising circuitry to dynamically control one or more input/output (I/O) ports, according to some embodiments. The system <NUM> may be any appropriate computing system, e.g., a laptop, a cellular or mobile phone, a pedestal computing device (e.g., a desktop), a smart phone, a tablet, a personal digital assistant (PDA), a pager, a wearable device, an Internet-of-things (IOT) device, a modem, a router, a set-top box, or an appropriate consumer electronic device. In some embodiments, the system <NUM> may be a non-battery operated system (e.g., receiving Alternating Current (AC) power), such as a desktop computer, a pedestal computing device, a server system, etc..

In <FIG>, some of the signal lines are illustrated using solid lines and some are illustrated using dotted lines merely for the sake of better illustrative clarity and merely to reduce clutter in the figure. Some of the signal lines in <FIG> are illustrated to intersect each other, but they may not be electrically coupled at the intersection point, as would be readily understood by those skilled in the art. When two signal lines intersect and are electrically coupled at the intersecting point, such an intersecting point is illustrated using a small dot, as would be readily understood by those skilled in the art.

In some embodiments, the system <NUM> comprises a power adapter <NUM> to receive an alternating current (AC) power, and to supply direct current (DC) power to charge a battery <NUM> and/or to operate the system <NUM>. The battery <NUM>, for example, supplies power to the system <NUM> when the power from the power adapter <NUM> is absent and/or the AC power is inadequate. In some embodiments, the battery <NUM> may be absent from the system <NUM> (e.g., if the system <NUM> is a desktop computer or a pedestal computing unit), and hence, the battery <NUM> is illustrated using dotted line. Although not illustrated in <FIG>, in some embodiments, the system <NUM> comprises charging circuitry to charge the battery <NUM>.

In embodiments, the system <NUM> further comprises an I/O port (henceforth also referred to as a "port") 118a and a port 118b. Although two ports 118a and 118b are illustrated in <FIG>, in some other embodiments, the system <NUM> may comprise a single port, three ports, four ports, or a higher number of ports. In some examples, one or both the ports 118a and 118b are USB ports, e.g., USB type-C (or USB-C) ports. In some other examples, one or both the ports 118a and 118b are Thunderbolt ports. In yet other example, one or both the ports 118a and 118b can operate both as a USB type-C port and a Thunderbolt port. In yet some other examples, one or both the ports 118a and 118b can be any other appropriate type of I/O ports using which external peripheral devices may be attached to the system <NUM>.

In embodiments, external devices (e.g., which are external to the system <NUM>, not illustrated in <FIG>) can be connected to the system <NUM> via the ports 118a and/or 118b. For example, an external device connected to the port 118a can communicate with the system <NUM> via the port 118a, and/or can receive power (e.g., to charge the external device) via the port 118a.

In embodiments, the system <NUM> comprises a port control circuitry <NUM> (henceforth also referred to as "circuitry <NUM>"). The circuitry <NUM> supplies signals 130a and 130b to the ports 118a and 118b via a switching circuit <NUM> (henceforth also referred to as "circuitry <NUM>").

In an example, the circuitry <NUM> may receive the signals 130a and 130b output by the circuitry <NUM>, and output signals 131a and 131b to the ports 118a and 118b, respectively. In some embodiments, the circuitry <NUM> may be configured by switching signals <NUM> from the controller <NUM>. Although not illustrated in <FIG>, the switching signals <NUM> may be a combination of a plurality of switching signals. In some embodiments and as illustrated in a subsequent figure, the circuitry <NUM> may comprise a plurality of switches.

In some embodiments, the circuitry <NUM> may control the port 118a by performing one of (i) disconnecting the port 118a from the circuitry <NUM> (e.g., by switching off one or more switches within the circuitry <NUM>), (ii) connecting the signal 131a to the signal 130a (e.g., such that the signal 130a is supplied to the port 118a), or (iii) connecting the signal 131a to the signal 130b (e.g., such that the signal 130b is supplied to the port 118a). In some embodiments, the circuitry <NUM> may control the port 118b by performing one of (i) disconnecting the port 118b from the circuitry <NUM> (e.g., by switching off one or more switches within the circuitry <NUM>), (ii) connecting the signal 131b to the signal 130a (e.g., such that the signal 130a is supplied to the port 118b), or (iii) connecting the signal 131b to the signal 130b (e.g., such that the signal 130b is supplied to the port 118b). Thus, the circuitry <NUM> may control whether the signal 130a or the signal 130b from the circuitry <NUM> is received by the port 118a (or whether no signal from the circuitry <NUM> is received by the port 118a), and may similarly control the port 118b.

In an example, the signals 130a and 130b are used by the system <NUM> to communicate with external devices connected to the ports 118a and 118b. In another example, the signals 130a and 130b are used by the system <NUM> to supply power to the external devices connected to the ports 118a and 118b (e.g., to charge the external devices).

In some embodiments, the signals 130a and 130b have voltages Va and Vb, respectively. The voltages Va and Vb can have any appropriate values, which may be based on a configuration of the circuitry <NUM>, the types of the ports 118a and 118b, types of external devices connected to the ports 118a and 118b, etc. Merely as an example, if the ports 118a and 118b are USB type-C ports, the voltage Va can be one of <NUM> volts (V), 9V, 12V, and 20V, and the voltage Vb can also be one of <NUM> volts (V), 9V, 12V, and 20V (although voltages Va and Vb can have another appropriate value). In some embodiments, the circuitry <NUM> controls the signals 130a and 130b such that the signals 130a and 130b can have maximum current values I_max_a and I_max_b, respectively.

In some embodiments, the circuitry <NUM> comprises voltage output circuitries 120a and 120b for respectively outputting the signals 130a and 130b with voltage levels Va and Vb, respectively. The voltage output circuitries 120a and 120b can be of any appropriate type (e.g., may comprise voltage regulators). In some embodiments, the circuitry <NUM> further comprises current limiting circuitries 110a and 110b for respectively controlling the maximum current values I_max_a and I_max_b of the signals 130a and 130b, respectively. The circuitry 110a and/or the circuitry 110b, for example, comprises operational amplifiers and/or other circuit elements that may limit the maximum currents of the signals 130a and 130b to the maximum current values I_max_a and I_max_b, respectively.

In some embodiments, the circuitry <NUM> further comprises current limiter registers 112a and 112b (henceforth referred to as registers 112a and 112b, respectively). In an example, a value written in the register 112a controls the maximum current value I_max_a. Merely as an example, assuming that the register 112a is a two-bit register, if <NUM> is written to the register 112a, the maximum current value I_max_a imposed by the current limiting circuitry 110a may be <NUM> milli-Amperes (mA); if <NUM> is written to the register 112a, the maximum current value I_max_a imposed by the current limiting circuitry 110a may be <NUM> Ampere (A); if <NUM> is written to the register 112a, the maximum current value I_max_a imposed by the current limiting circuitry 110a may be <NUM> A; and if <NUM> is written to the register 112a, the maximum current value I_max_a imposed by the current limiting circuitry 110a may be <NUM> A. The register 112b may also similarly control the maximum current value I_max_b.

In some embodiments, the circuitry <NUM> may generate the signals 130a and 130b based on receiving power from the power adapter <NUM> and/or power from the battery <NUM>. For example, when the power adapter <NUM> is coupled to the AC supply, the circuitry <NUM> may receive power from the power adapter <NUM> (and optionally from the battery <NUM> as well). When the power adapter is not coupled to the AC supply, the circuitry <NUM> may receive power from the battery <NUM>.

In some embodiments, a current monitor circuitry <NUM> (henceforth also referred to as "circuitry <NUM>") may estimate currents Ia and Ib of the signals 130a and 130b, respectively. The circuitry <NUM> may estimate the currents Ia and Ib of the signals 130a and 130b using any appropriate method. Merely as an example, resistors R134a and R134b may be connected in the signal lines 130a and 130b, respectively. The circuitry <NUM> may measure the voltage drops across the resistors R134a and R134b to respectively estimate the currents Ia and Ib of the signals 130a and 130b, as illustrated in <FIG>. In some embodiments, the circuitry <NUM> may provide the estimates of the currents Ia and Ib of the signals 130a and 130b, respectively, to the controller <NUM> as, for example, current information <NUM>.

In some embodiments, the port 118a may transmit a configuration signal 136a to the circuitry <NUM> when, for example, an external device is attached or coupled to the port 118a. The configuration signal 136a may indicate a type of the external device, a configuration of the external device, a voltage requirement of the external device, and/or the like. Merely as an example, if a first external device is coupled to the port 118a during a first time-period and if the first external device is rated or configured to receive 5V from the port 118a, then the configuration signal 136a may indicate that information - accordingly, the circuitry 120a may output the signal 130a with the voltage Va being 5V (and the switching circuitry <NUM> may supply the signal 130a to the port 118a). In some embodiments, the configuration signal 136a may also indicate a current requirement of the first external device. Merely as an example, the first external device may have a maximum current requirement of <NUM> A, and the configuration signal 136a may indicate such a maximum current requirement to the circuitry <NUM>. In some embodiments, the configuration signal 136b may also indicate to the circuitry <NUM> similar information about external devices being coupled to the port 118b. In some embodiments, if no external device is coupled or attached to a port (e.g., port 118a), the corresponding configuration signal (e.g., configuration signal 136a) may also indicate such information to the circuitry <NUM>. In some embodiments, the port 118b may also transmit a similar configuration signal 136b to the circuitry <NUM>.

In some embodiments, the system <NUM> comprises a platform policy manager (PPM) controller <NUM>. In some embodiments, the controller <NUM> may be implemented using hardware, software, or a combination of hardware and software. In some embodiments, the controller <NUM> may be implemented using appropriate logic and/or circuitry. In some embodiments, the controller <NUM> may control various aspects of an operation of the system <NUM>. In some embodiments, the controller <NUM> may generate switching signals <NUM> for controlling the switching circuitry <NUM>, which is discussed in further detail in a subsequent figure.

In some embodiments, the controller <NUM> may receive a current battery charge level from the battery <NUM>, e.g., if the battery <NUM> is present in the system <NUM>. For example, the controller <NUM> may receive an indication as to whether the battery <NUM> is about <NUM>% charged, about <NUM>% charged, etc. In some embodiments, the controller <NUM> may also receive other appropriate information about the battery <NUM>, e.g., an indication of whether the battery <NUM> is current being charged using power from an external AC source, a rate with which the battery <NUM> is being charged, a rate with which the charge of the battery is being depleted, an estimated amount of time the charge of the battery <NUM> is likely to last, etc. All such information received by the controller <NUM> from the battery is collectively referred to as battery charge information <NUM> in <FIG>. Although <FIG> illustrates the controller <NUM> receiving the battery charge information <NUM> from the battery <NUM>, in some examples, the controller <NUM> may receive the battery charge information <NUM> from another appropriate component connected to the battery <NUM> (e.g., a battery control circuitry, a battery fuel gauge, a battery charge gauge, and/or the like, not illustrated in <FIG>).

In some embodiments, the controller <NUM> may receive AC power information <NUM>, which, for example, may indicate whether AC power is available for charging the battery <NUM> and/or operating the system <NUM>. Although <FIG> illustrates the controller <NUM> receiving the AC power information <NUM> from the power adapter <NUM>, in some examples, the controller <NUM> may receive the AC power information <NUM> from another appropriate source (e.g., an operating system, a power control circuitry, a power manager, etc., not illustrated in <FIG>).

In some embodiments, the controller <NUM> may receive user input <NUM>. The user input <NUM> may, for example, configure the controller <NUM> to appropriately control the ports <NUM>, as will be discussed herein in further detail. Examples of user input are discussed herein later, e.g., with respect to <FIG> and <FIG>.

In some embodiments, the controller <NUM> may receive system state information <NUM>. The system state information <NUM> may, for example, indicate a current operational state of the system <NUM>. For example, the system <NUM> may operate in a normal or regular state, a low power state, an off state, a hibernation state, or the like. Merely as an example, the system <NUM> may operate in one of various states defined in the Advanced Configuration and Power Interface (ACPI) specification (e.g., revision <NUM> released on September <NUM>, or any earlier or later versions). For example, the ACPI specification discusses a SO working state or normal operation state, and low power states S1, S2, S3, and S4. For example, state S1 is a power on suspend (POS) state during which, for example, processor caches may be flushed, and the processors may stop executing instructions. State S2 may be a CPU powered off state, and dirty cache may be flushed to random access memory (RAM). State S3 may be a standby, sleep, or suspend to RAM (STR) state, in which the RAM may remain powered. State S4 may be a hibernation or suspend to disk state, and contents of the main memory may be saved to non-volatile memory such as a hard drive, and the system may be powered down. State S5 may be a soft off state, and the power supply unit (PSU) may still supply power, at a minimum, to the power button to allow return to state S0, and some components may remain powered so the computer can wake on input from the keyboard, clock, modem, etc. In some embodiments, the system state information <NUM> may indicate a current operating state of the system <NUM>, e.g., whether the system <NUM> operates in one of states S0,. The controller <NUM> may receive the system state information <NUM> from an appropriate source (e.g., an operating system, a power control circuitry, a state control circuitry, etc., not illustrated in <FIG>).

In some embodiments, the controller <NUM> may also receive port information <NUM> from the circuitry <NUM>. The port information <NUM>, for example, may include information such as whether any external devices are coupled or attached to the ports 118a and 118b, ratings and voltage/current requirements of any device attached to the ports 118a and 118b, and/or the like.

In some embodiments, based on one or more of the battery charge information <NUM>, the AC power information <NUM>, the user input <NUM>, the current information <NUM>, the port information <NUM>, the system state information <NUM>, and/or the like, the controller <NUM> may control the ports 118a and 118b. In an example, the controller <NUM> may control, for example, the port 118a by controlling a current profile of the port 118a (e.g., by setting a maximum current that can be supplied to the port 118a) and/ by controlling a voltage profile of the port 118a (e.g., by controlling the circuitry <NUM>, thereby controlling whether the voltage Va or the voltage Vb is supplied to the port 118a). In another example, the controller <NUM> controls , for example, the port 118a by disconnecting the port 118a from the circuitry <NUM> via the circuitry <NUM>.

In some embodiments, the controller <NUM> may control the current profile of the ports <NUM> by generating a control signal <NUM> to control the circuitry <NUM>. For example, the controller <NUM> may control the contents of the registers 112a and/or 112b of the circuitry <NUM>, e.g., via the control signal <NUM>. Also, as discussed, in an example, the registers 112a and 112b control the maximum current values I_max_a and I_max_b imposed by the circuitry 110a and 110b, respectively, on the signals 130a and 130b (although in another example, the registers 112a and 112b may control the actual currents Ia and Ib of the signals 130a and 130b). Thus, in some embodiments, the controller <NUM> may control the maximum current values I_max_a and I_max_b of the signals 130a and 130b, respectively, e.g., via the control signal <NUM>. Although <FIG> illustrates a single signal line corresponding to the control signal <NUM>, in some embodiments, the control signal <NUM> may comprises at least two separate control signals for respectively controlling the registers 112a and 112b.

Merely as an example, when the battery <NUM> is fully charged (or charged above a high threshold limit) and/or when the power adapter <NUM> receives AC power, the controller <NUM> may not desire to control the current profile of the signals 130a and 130b. In such a situation, the current profile of the signals 130a and 130b (e.g., the maximum current values I_max_a and I_max_b of the signals 130a and 130b) may be determined by various other factors, e.g., based on configuration or rating of the external devices connected to the ports 118a and 118b (e.g., as indicated by the configuration signals 136a and 136b), based on the configuration of the circuitry <NUM>, etc. However, when the battery <NUM> is not fully charged (or charged below the high threshold limit) and/or when the power adapter does not receive any AC power, the controller <NUM> may start controlling the current profile of the signals 130a and/or 130b, e.g., by imposing limits on the maximum current values I_max_a and/or I_max_b.

For example, a configuration or rating of an external device (which may be a cellular phone, for example) connected to the port 118a may dictate that the maximum current value I_max_a be <NUM> A, e.g., which may be used to charge the cellular phone. As long as the battery <NUM> is fully charged (or charged above the high threshold limit) and/or when the power adapter receives AC power, the circuitry <NUM> may set the maximum current value I_max_a to be <NUM> A, e.g., without any intervention from the controller <NUM>. However, if the power adapter does not receive the AC power and/or if, for example, the charge level of the battery <NUM> is below the high threshold level, the controller <NUM> may decrease the maximum current value I_max_a. For example, the controller <NUM> may write an appropriate value in the register 112a using the control signal <NUM>, which may result in the circuitry 110a decreasing the maximum current value I_max_a.

Controlling the current profile of the ports 118a and/or 118b is discussed in further details in a co-pending U. Patent Application Number __ (Attorney docket number P113016),.

<FIG> schematically illustrates an example implementation of the switching circuitry <NUM> of the system <NUM> of <FIG>, according to some embodiments. In the example implementation of <FIG>, the circuitry <NUM> may comprise switches 216a, 216b, and 216c. The switches 216a, 216b, and 216c can be implemented using any appropriate components, e.g., any appropriate type of transistors. In some embodiments, the switching signals <NUM> may comprise three separate switching signals 238a, 238b, and 238c, which may be supplied from the controller <NUM> to control the switches 216a, 216b, and 216c, respectively.

In some embodiments, the switches 216a and 216c may be connected in series between the signals 130a and 131b. Also, the switch 216b may be connected between the signals 130b and 131b. In some embodiments, the signal 131a may be generated from a connection between the switches 216a and 216c.

There may be different example scenarios for operating the circuitry <NUM>, as follows:.

It should be appreciated that while <FIG> illustrates an example implementation of the circuitry <NUM>, the circuitry <NUM> can be implemented in any other appropriate manner, as would be readily understood by those skilled in the art based on the teachings of this disclosure. Furthermore, additional switches may be added to the circuitry <NUM> to introduce even more flexibility and options (e.g., additional switches may be introduced to introduce an option of the port 118a receiving the signal 130b, and the port 118b receiving the signal 130a).

Referring again to <FIG>, the controller <NUM> may appropriately control the circuitry <NUM> so that it may be possible to supply any of the two voltages Va and Vb to any of the ports 118a and 118b. Thus, the controller <NUM> may appropriately control the circuitry <NUM> so that it may be possible to control the voltages supplied to these ports. Hence, the controller <NUM> may appropriately control the circuitry <NUM> to control a voltage profile of the ports 118a and/or 118b.

Also, as previously discussed with respect to <FIG> herein, the system <NUM> may also control the currents Ia and/or Ib (or at least the maximum possible values of these currents), thereby controlling the current profile of the ports 118a and 118b. Thus, the system <NUM> of <FIG> may control the power supplied to the ports 118a and 118b, e.g., by appropriately controlling the voltage profile and the current profile of each port. Hence, the system <NUM> may control a power profile of the ports 118a and 118b.

Controlling a current profile, a voltage profile, and/or a power profile of the ports 118a and/or 118b are discussed in further details in a co-pending U. Patent Application Number __ (Attorney docket number P113016).

<FIG> and <FIG> illustrate controlling two ports 118a and 118b. However, in some other embodiments, more than two ports may be controlled. <FIG> schematically illustrates a computing system <NUM> (henceforth also referred to as a "system <NUM>") comprising circuitry to dynamically control four I/O ports, according to some embodiments. For example, the system <NUM> comprises the ports 118a, 118b of <FIG>, and also comprises ports 318a and 318b. The system <NUM> further comprises a port control circuitry <NUM> (also referred to herein as "circuitry <NUM>") for controlling the ports 318a and 318b, where the circuitry <NUM> may be at least in part similar to the circuitry <NUM>.

The switching circuitry <NUM> (also referred to herein as "circuitry <NUM>") may receive signals 330a and 330b from the circuitry <NUM>. The signal 330a may have a voltage, current, and a maximum current of Va', Ia', and I_max_a', respectively. The signal 330b may have a voltage, current, and a maximum current of Vb', Ib', and I_max_b', respectively. The circuitry <NUM> may supply signals 331a and 331b to the ports 318a and 318b, respectively, where the signal 331a may be one of signals 330a and 330b, and the signal 331b may be one of signals 330a and 330b. The current monitor circuitry <NUM> may monitor current levels of the signals 331a and 331b, for example, using resistors R334a and R334b, respectively, and transmit the measurement information via the current information <NUM> to the controller <NUM>. The ports 318a and 318b may transmit configuration signals 336a and 336b, respectively, to the circuitry <NUM>. The circuitry <NUM> may transmit port information <NUM> to the controller <NUM>, and may exchange control signals <NUM> with the controller <NUM>.

Various elements and signals newly introduced in the system <NUM> (e.g., as compared to the system <NUM>) may be at least in part similar to the corresponding components of the system <NUM> (e.g., the circuitry <NUM> may be at least in part similar to the circuitry <NUM>, the configuration signals 336a, 336b may be at least in part similar to the configuration signals 136a, 136b, etc.), and hence, these elements and signals will not be discussed in further details herein.

In some examples, the ports 118a and 118b may be front USB ports (e.g., type-C USM ports) of a desktop computing device, and the ports 318a and 318b may be back USM ports (e.g., type-C USM ports) of the desktop computing device. For example, the ports 118a, 118b may be located at or near the front side of the computing device, whereas the ports 318a, 318b may be located at or near the back side. In some examples, the ports 118a, 118b, 318a, and 318b may be any appropriate USB ports (e.g., type-C USM ports) of an appropriate computing device.

Various modification of the system <NUM> may be easily envisioned by those skilled in the art, based on the teachings of this disclosure. For example, although <FIG> illustrates the circuitry <NUM> controlling ports 118a, 118b and the circuitry <NUM> controlling ports 318a, 318b, each of these circuitries may control any different number of ports. In some embodiments, the circuitries <NUM> and <NUM> may be combined in a single circuitry. Similarly, in some embodiments, the circuitries <NUM> and <NUM> may be combined in a single switching circuitry. In some embodiments, instead of a single controller <NUM>, there may be two controllers for the two corresponding circuitries <NUM> and <NUM>. Other modifications of the system <NUM> may also be easily envisioned by those skilled in the art, based on the teachings of this disclosure.

In some embodiments, as discussed with respect to <FIG>, the circuitry <NUM> may dynamically monitor the ports 118a, 118b, e.g., via the configuration signals 136a, 136b. Similarly, in some embodiments, the circuitry <NUM> may dynamically monitor the ports 318a, 318b, e.g., via the configuration signals 336a, 336b. For example, based on such monitoring, the circuitries <NUM>, <NUM> may determine if, at any point in time, a port is not occupied by an external device (e.g., no external device is attached to or coupled to the port). The circuitries <NUM>, <NUM> may transmit such occupancy information (e.g., where individual ports are occupied or not) to the controller <NUM> via, for example, the port information signals <NUM> and <NUM>, respectively.

In some embodiments, if a port is not occupied, the controller <NUM> may "turn off" the port via, for example, the circuitry <NUM> or the circuitry <NUM>. Merely as an example, if the port 318b is not currently occupied, the controller <NUM> may "turn off" or disconnect the port 318b from the circuitry <NUM> by appropriately configuring the circuitry <NUM> via the switching signals <NUM>.

In some embodiments, the controller <NUM> may take into account various factors in determining whether to turn off a port (where turning off a port, e.g., the port 318b, may imply disconnecting the port 318b from the circuitry <NUM> by appropriately configuring the circuitry <NUM> via the switching signals <NUM>). Merely as an example, the controller <NUM> may take into account a historical usage of a port, a frequency of use of the port, and/or a current occupancy information of the port in determining whether to turn off the port. For example, a desktop computer may have a few USB type-C ports in the front and a few USB type-C ports in the back side. The back side may not be easily accessible to the user, and hence, the user may use the back-side ports less frequently. For example, the user may use a back-side port for connecting a display to the computing device, and may not use another back-side port at all. Whenever the user may need to use a USB port (e.g., to connect a cell phone or a peripheral device to the computing device), the user may use the front-side ports (e.g., because the front-side ports may be easily accessible to the user). Accordingly, a back-side port (e.g., the port 318b) may historically have very few or zero occupancy rate in the past. Accordingly, the controller <NUM> may turn off the port 318b on a permanent or semi-permanent basis (e.g., until a peripheral device is connected to the port 318b). However, because a front-side port 118b may be frequently used, the controller <NUM> may not turn off the port 118b.

In some embodiments, the controller <NUM> may turn off a port if the port is not being occupied for at least a threshold period of time. In some embodiments, the controller <NUM> may turn off a port if the port is not currently being occupied. In some embodiments, the controller <NUM> may turn off a port if the port is being occupied less frequently in the past and also is not current being occupied. In some embodiments, the controller <NUM> may turn off a port based on the combination of the above factors. In some embodiments, the controller <NUM> may turn off a port based on one or more other criterion, e.g., availability of power from the battery <NUM> and/or the adapter <NUM> to fully or partially power the port.

In some embodiments, turning off a port may prevent or reduce leakage current through the port. In some embodiments, turning off a port may free power that may be assigned to other occupied ports. For example, in some embodiments, the controller <NUM> may have certain maximum power that may be assigned to various ports. Merely as an example, the controller <NUM> may have a maximum of <NUM> Watts (W) to assign to the ports (although such a wattage is merely an example and merely for explaining the principles of this disclosure). Such a maximum wattage limitation may be based on power available from the battery <NUM> and/or the adapter <NUM>, power requirement by other components of the system <NUM>, a system operating state of the system <NUM>, and/or the like. In a simple example, the controller <NUM> may assign <NUM> W to each of the ports 118a, 118b, 318a, and 318b. Based on the such a <NUM> W assignment, the controller <NUM> may determine an appropriate power profile (e.g., a voltage profile and/or a current profile) for the ports.

However, the controller may decide to turn off, for example, ports 118a and 318b (e.g., based on various criteria discussed herein above). Turning off the two ports may make available <NUM> W to be assigned to the remaining ports 118b and 318a, which may be occupied by external devices. The controller <NUM> may assign power to these two occupied ports, e.g., based on power requirements of the external devices connected to these two ports. For example, if a device connected to the port 118b may demand more power than a device connected to the port 318a, the controller <NUM> may assign, for example, <NUM> W to the port 118b and may assign <NUM> W to the port 318a. For example, the controller <NUM> may control the voltage profile and/or the current profile of these two ports to assign such power in such a manner. For example, a voltage level and/or a maximum current level of the signal 131b to the port 118b may be more than these parameters of the signal 331a to the port 318a, thereby assigning more power to the port 318a than the port 118b.

Thus, in an example, if the ports 118a and 318b were not turned off, the controller <NUM> would have <NUM> W to be assigned to four ports. However, turning off these two ports may make available <NUM> W for assignment to merely two occupied ports (e.g., instead of the four ports). Thus, in some embodiments, the controller <NUM> may selectively turn on or turn off individual ports, and re-assign power from turned off ports to remaining occupied ports.

In some embodiments, when assigning power to occupied ports, the controller <NUM> may take into account power requirement (e.g., voltage requirement and/or current requirement) of external devices connected to these ports. For example, in the above discussed example, a device connected to the port 118b may demand more power than a device connected to the port 318a. Accordingly, the controller <NUM> may assign, for example, <NUM> W to the port 118b and may assign <NUM> W to the port 318a.

In some embodiments, power available for assignment to various ports may change dynamically. For example, when the system <NUM> receives AC power via the adapter <NUM> and/or when the charge level of the battery <NUM> is above a threshold level, the system <NUM> may have higher power for assignment to the ports. However, when the system is not receiving AC power, when power requirement of various other components of the system <NUM> is high, and/or when the charge level of the battery <NUM> is below a threshold level, the system <NUM> may have lower power for assignments to the ports. The system <NUM> may, in such scenarios, selectively turn off one or more ports and/or reduce power profiles of one or more ports.

In some embodiments, the selective turning on and off of ports, and selective supply of power to the ports can occur when the system operates in the S0 working state or normal operation state of operation, as well as when the system operates in a low power state (e.g., in one of the states S1, S2, S3, S4, or S5 discussed previously).

For example, when the system enters the low power mode (e.g., one of the states S3, S4, or S5), several components of the system <NUM> may be deactivated, turned off, or put in a sleep mode. However, the circuitries <NUM> and/or <NUM> (or at least some components of these circuitries) may continue to be operational and may continue to monitor or scan the configuration signals 136a, 136b, 336a, and/or 336b. If a port is occupied (e.g., as indicated by the corresponding configuration signal), the circuitries <NUM> and/or <NUM> may continue supplying power to the occupied port. For example, if none of the ports are occupied, the controller <NUM>, the circuitry <NUM>, the switching circuitries <NUM>, <NUM>, etc. can enter a low power or sleep mode when the system operates in one of the states S3, S4, or S5 - however, the circuitries <NUM> and/or <NUM> may continue to be operational and may continue to monitor the configuration signals 136a, 136b, 336a, and/or 336b. If and when a port is occupied, components for supplying power to the port can be activated and the system <NUM> can supply power to the port (e.g., based on a power profile selected by the controller <NUM>).

Thus, even when the system <NUM> is in a low power state (e.g., is a standby state, sleep state, suspend to RAM state, hibernation state, suspend to disk state, a soft off state, etc.), the system <NUM> can continue providing power to the occupied ports. The unoccupied ports, for example, may be turned off or disconnected.

In some embodiments, power available for assignment to various ports may change dynamically based on a state of the system <NUM>. For example, when the system <NUM> is in a S0 working state, many other components of the system (e.g., a processor, a memory, a display, etc.) may be operational. Accordingly, relatively less power may be available for assignment to the occupied ports. However, when the system <NUM> enters a low power state (e.g., one of the states S3, S4, or S5), many components of the system <NUM> (e.g., processor, cache, memory, display, etc.) may enter a low power mode or off mode, and hence, may consume less power or no power. Accordingly, when the system <NUM> enters a low power state, power available for assignment to the ports may increase, and accordingly, the controller <NUM> may increase the power profile (e.g., assign more power) to the occupied ports. Such reassignment of power profiles may be based on available power from the battery <NUM> and/or AC power from the adapter <NUM>, as previously discussed herein.

<FIG> illustrates a flowchart depicting a method <NUM> for dynamically turning off or on one or more ports and/or dynamically adjusting power profiles of one or more ports, according to some embodiments. Although the blocks in the flowchart with reference to <FIG> are shown in a particular order, the order of the actions can be modified. Thus, the illustrated embodiments can be performed in a different order, and some actions/blocks may be performed in parallel. Some of the blocks and/or operations listed in <FIG> are optional in accordance with certain embodiments. The numbering of the blocks presented is for the sake of clarity and is not intended to prescribe an order of operations in which the various blocks must occur.

At <NUM>, a system (e.g., the circuitries <NUM> and/or <NUM>, and/or the controller <NUM> of the system <NUM>) may dynamically scan and monitor the ports (e.g., ports 118a, 118b, 318a, and 318b) by, for example, monitoring the configuration signals 136a, 136b, 336a, and/or 336b. The scanning and monitoring may, for example, involve determining if a port is occupied by an external device, a power requirement of the external device (e.g., a minimum and/or maximum power demand of the device), etc. Also at <NUM>, the system (e.g., the current monitor circuitry <NUM>) may estimate a current supplied to the ports. Also at <NUM>, the system may also collect battery charge information (e.g., battery charge information <NUM>). Also at <NUM>, the system may receive system state information (e.g., system state information <NUM>), e.g., whether the system operates in one of S0, S1, S2, S3, S4, or S5 states, or another low power state. Also at <NUM>, the system (e.g., the controller <NUM>) may possibly receive user input (e.g., user input <NUM>) configuring the ports.

User input <NUM> may be received in a variety of manners. Merely as an example, as illustrated in <FIG>, a user interface window <NUM> on a display screen of the system <NUM> may display a warning as follows: "The battery charge of the laptop is likely to be exhausted in about <NUM> minutes (remaining battery charge level - <NUM>%). Do you want to (i) keep on charging the cell phone attached to the laptop without reducing the power delivered to the cell phone, (ii) stop charging the cell phone and turn off the port (that may prolong the battery charge to about <NUM> minutes), or (iii) reduce the power delivered to the cell phone (that may prolong the battery charge to about <NUM> minutes)?" In this example, the laptop represents the system <NUM>, and the cell phone represents an external device connected to, for example, the port 118a. Based on a user selecting one of the three options, the controller <NUM> may perform a corresponding action. In some embodiments, the warning may also display a default action, e.g., the option (iii). It is to be noted that the language and nature of the warning is merely an example, and any other appropriate type of warning message may be displayed (e.g., to warn the user and/or to seek appropriate user input).

<FIG> illustrates another example user interface window <NUM> providing options to configure the ports, according to some embodiments. The window <NUM> may provide a first example option as follows: "The back-side USB port number <NUM> has not been used in the last <NUM> days. Do you want to turn off this port and save power? If you connect a device to this port, the port will automatically be turned on. " Options to select "Yes" or "No" is provided. The window <NUM> may provide a second example option as follows: "If a USB port has not been used for certain period, select an option: (i) Turn of the USB port after not being used for <NUM> day; (ii) Turn of the USB port after not being used for <NUM> hour; (iii) Turn of the USB port whenever not being used; or (iv) Never turnoff my USB ports. " In some embodiments, instead of or in addition to the four options illustrated in <FIG>, various other options may also be displayed. Merely as an example, an addition option may be displayed as follows: "(v) Control current for the unused port by reducing a maximum current limit for the unused port, and reassign the current to other ports that are being occupied. " In some embodiments, selecting the option (v) may reduce the current allocation of the unused port to <NUM> mA, and the current may be reassigned to one or more other ports that may be currently occupied. In some embodiments, a sixth option that may be displayed (and although not illustrated in <FIG>) may be as follows: "(vi) dynamically identify and adjust current for individual USB ports. " Based on a user selecting one of these options, the controller <NUM> may perform a corresponding action. It is to be noted that the language and nature of the window <NUM> is merely an example, and any other appropriate type of window may be displayed.

Referring again to <FIG>, at <NUM>, the system may also generate a resource map of the ports. The resource map of a port may, for example, track the current supplied to the port, track a maximum permissible current value of the current supplied to the port (e.g., maximum current value I_max_a), voltage level of the signal supplied to the port, total power available for assignment to ports, etc..

At <NUM>, power profiles may be assigned to the ports. For example, the system may assign current profiles and/or voltage profiles to one or more ports.

At <NUM>, the system (e.g., the controller <NUM>) may decide whether to turn off any port and/or turn on any port. Such a decision may be based on, for example, monitoring the ports to see if the ports are occupied, power available to support external devices occupying the ports, etc. For example, a port may be turned off if the port is not being occupied for at least a threshold period of time, is used infrequently, is currently unoccupied, if available power (e.g., from the battery <NUM> and/or the power adapter <NUM>) is not sufficient to power all the ports, if the port is physically located at a back side of the system and is infrequently used, and/or the like. In an example, a port may be turned on if a previously turned off port is currently being occupied by an external device.

If "Yes" at <NUM>, then at <NUM>, one or more ports may be turned off and/or one or more ports may be turned on (e.g., by the switching circuitries <NUM> and/or <NUM>), and the method <NUM> may proceed to block <NUM>. If "No" at <NUM>, the method <NUM> may directly proceed to block <NUM>.

At <NUM>, the system may decide whether to adjust power profiles of the ports. Such decision may be based on, for example, power available to support the ports, number of ports that are not turned off or are turned on, a system state (e.g., whether the system is operating at state S0, S3, S4, S5, etc.), battery charge information, etc..

For example, if a port is turned off at <NUM>, the power originally assigned to this port may be reassigned to the remaining occupied ports. In another example, if a power requirement of a device coupled to a port is higher than the power assigned to the power and if additional power is available for reassignment, then the power assigned to the port may be increased. In yet another example, if a port was turned off in the past and is just turned on, this may involve readjustment of the power profiles of the occupied ports (e.g., assuming that a total available power for all the ports is not increased to fully cater to the just turned on port).

In yet another example, the power profile may be dynamically adjusted, and such dynamic adjustment may be based on a system state (e.g., whether the system is operating at state S0, S3, S4, S5, etc.), etc. For example, a change in the system state may involve reassignment of the power profiles (e.g., as a change in a system state may change a total power available for assignment to the ports).

If "Yes" at <NUM>, the method <NUM> proceeds to <NUM>, where the power profile may be adjusted dynamically. For example, a power profile (e.g., a voltage profile and/or a current profile) may be dynamically adjusted for a port, e.g., a type-C USB port, as discussed in details herein in this disclosure (e.g., discussed with respect to <FIG>). In some embodiments, the method <NUM> may then loop back to block <NUM>. If "No" at <NUM>, the method <NUM> may loop back to block <NUM>.

<FIG> illustrates a flowchart depicting a method <NUM> for dynamically adjusting power profiles of one or more ports based on a system state, according to some embodiments. Although the blocks in the flowchart with reference to <FIG> are shown in a particular order, the order of the actions can be modified. Thus, the illustrated embodiments can be performed in a different order, and some actions/blocks may be performed in parallel. Some of the blocks and/or operations listed in <FIG> are optional in accordance with certain embodiments. The numbering of the blocks presented is for the sake of clarity and is not intended to prescribe an order of operations in which the various blocks must occur.

At <NUM>, a system (e.g., the system <NUM>) may operate in a working state (e.g., the S0 state). At <NUM>, power profiles of various ports (e.g., ports 118a, 118b, 318a, 318b) may be assigned and/or adjusted, and/or one or more ports are turned on or turned off dynamically, if necessary. Such adjustment or assignment of the power profiles and/or turning on or off the ports may be, for example, performed in accordance with the method <NUM> of <FIG>.

At <NUM>, a decision may be made as to whether to enter a low power state. Such a decision may be based on multiple factors, e.g., current operating load of the system, inactivity of the system for a threshold period of time, etc., as is well known to those skilled in the art.

If "No" at <NUM>, the method <NUM> loops back to block <NUM> of the method <NUM>. If "Yes" at <NUM>, the method <NUM> proceeds to block <NUM>, where the system may operate in a low power state (e.g., one of states S1, S2, S3, S4, S5, or another appropriate low power mode).

At <NUM>, power profiles of various ports may be assigned and/or adjusted, and/or one or more ports are turned on or turned off, if necessary. Such adjustment or assignment of the power profiles and/or turning on or off the ports may be, for example, performed in accordance with the method <NUM> of <FIG>. Merely as an example, a change of a system state may change an available power for the ports, based on which the power profiles may be adjusted.

At <NUM>, a decision is made as to whether to exit the low power state. Such a decision may be based on multiple factors, e.g., current operating load of the system, activity of the system, etc., as is well known to those skilled in the art. If "No" at <NUM>, the method <NUM> loops back to block <NUM> of the method <NUM>. If "Yes" at <NUM>, the method <NUM> loops back to block <NUM> of the method <NUM>.

<FIG> illustrates a computer system or a SoC (System-on-Chip) <NUM>, where a power profile of a port (e.g., ports 118a, 118b, 318a, and/or 318b) may be dynamically changed and/or a port may be selectively turned on or off for various system states, in accordance with some embodiments. It is pointed out that those elements of <FIG> having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such.

In some embodiments, computing device <NUM> represents an appropriate computing device, such as a computing tablet, a mobile phone or smart-phone, a laptop, a desktop, an IOT device, a server, a set-top box, a wireless-enabled e-reader, or the like. It will be understood that certain components are shown generally, and not all components of such a device are shown in computing device <NUM>.

In some embodiments, computing device <NUM> includes a first processor <NUM>. The various embodiments of the present disclosure may also comprise a network interface within <NUM> such as a wireless interface so that a system embodiment may be incorporated into a wireless device, for example, cell phone or personal digital assistant.

In one embodiment, processor <NUM> can include one or more physical devices, such as microprocessors, application processors, microcontrollers, programmable logic devices, or other processing means. The processing operations performed by processor <NUM> include the execution of an operating platform or operating system on which applications and/or device functions are executed. The processing operations include operations related to I/O with a human user or with other devices, operations related to power management, and/or operations related to connecting the computing device <NUM> to another device. The processing operations may also include operations related to audio I/O and/or display I/O.

In one embodiment, computing device <NUM> includes audio subsystem <NUM>, which represents hardware (e.g., audio hardware and audio circuits) and software (e.g., drivers, codecs) components associated with providing audio functions to the computing device. Audio functions can include speaker and/or headphone output, as well as microphone input. Devices for such functions can be integrated into computing device <NUM>, or connected to the computing device <NUM>. In one embodiment, a user interacts with the computing device <NUM> by providing audio commands that are received and processed by processor <NUM>.

Display subsystem <NUM> represents hardware (e.g., display devices) and software (e.g., drivers) components that provide a visual and/or tactile display for a user to interact with the computing device <NUM>. Display subsystem <NUM> includes display interface <NUM>, which includes the particular screen or hardware device used to provide a display to a user. In one embodiment, display interface <NUM> includes logic separate from processor <NUM> to perform at least some processing related to the display. In one embodiment, display subsystem <NUM> includes a touch screen (or touch pad) device that provides both output and input to a user.

I/O controller <NUM> represents hardware devices and software components related to interaction with a user. I/O controller <NUM> is operable to manage hardware that is part of audio subsystem <NUM> and/or display subsystem <NUM>. Additionally, I/O controller <NUM> illustrates a connection point for additional devices that connect to computing device <NUM> through which a user might interact with the system. For example, devices that can be attached to the computing device <NUM> might include microphone devices, speaker or stereo systems, video systems or other display devices, keyboard or keypad devices, or other I/O devices for use with specific applications such as card readers or other devices.

As mentioned above, I/O controller <NUM> can interact with audio subsystem <NUM> and/or display subsystem <NUM>. For example, input through a microphone or other audio device can provide input or commands for one or more applications or functions of the computing device <NUM>. Additionally, audio output can be provided instead of, or in addition to display output. In another example, if display subsystem <NUM> includes a touch screen, the display device also acts as an input device, which can be at least partially managed by I/O controller <NUM>. There can also be additional buttons or switches on the computing device <NUM> to provide I/O functions managed by I/O controller <NUM>.

In one embodiment, I/O controller <NUM> manages devices such as accelerometers, cameras, light sensors or other environmental sensors, or other hardware that can be included in the computing device <NUM>. The input can be part of direct user interaction, as well as providing environmental input to the system to influence its operations (such as filtering for noise, adjusting displays for brightness detection, applying a flash for a camera, or other features).

In one embodiment, computing device <NUM> includes power management <NUM> that manages battery power usage, charging of the battery, and features related to power saving operation. Memory subsystem <NUM> includes memory devices for storing information in computing device <NUM>. Memory can include nonvolatile (state does not change if power to the memory device is interrupted) and/or volatile (state is indeterminate if power to the memory device is interrupted) memory devices. Memory subsystem <NUM> can store application data, user data, music, photos, documents, or other data, as well as system data (whether long-term or temporary) related to the execution of the applications and functions of the computing device <NUM>. In one embodiment, computing device <NUM> includes a clock generation subsystem <NUM> to generate a clock signal.

Elements of embodiments are also provided as a machine-readable medium (e.g., memory <NUM>) for storing the computer-executable instructions (e.g., instructions to implement any other processes discussed herein). The machine-readable medium (e.g., memory <NUM>) may include, but is not limited to, flash memory, optical disks, CD-ROMs, DVD ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, phase change memory (PCM), or other types of machine-readable media suitable for storing electronic or computer-executable instructions. For example, embodiments of the disclosure may be downloaded as a computer program (e.g., BIOS) which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals via a communication link (e.g., a modem or network connection).

Connectivity <NUM> includes hardware devices (e.g., wireless and/or wired connectors and communication hardware) and software components (e.g., drivers, protocol stacks) to enable the computing device <NUM> to communicate with external devices. The computing device <NUM> could be separate devices, such as other computing devices, wireless access points or base stations, as well as peripherals such as headsets, printers, or other devices.

Connectivity <NUM> can include multiple different types of connectivity. To generalize, the computing device <NUM> is illustrated with cellular connectivity <NUM> and wireless connectivity <NUM>. Cellular connectivity <NUM> refers generally to cellular network connectivity provided by wireless carriers, such as provided via GSM (global system for mobile communications) or variations or derivatives, CDMA (code division multiple access) or variations or derivatives, TDM (time division multiplexing) or variations or derivatives, or other cellular service standards. Wireless connectivity (or wireless interface) <NUM> refers to wireless connectivity that is not cellular, and can include personal area networks (such as Bluetooth, Near Field, etc.), local area networks (such as Wi-Fi), and/or wide area networks (such as WiMax), or other wireless communication.

Peripheral connections <NUM> include hardware interfaces and connectors, as well as software components (e.g., drivers, protocol stacks) to make peripheral connections. It will be understood that the computing device <NUM> could both be a peripheral device ("to" <NUM>) to other computing devices, as well as have peripheral devices ("from" <NUM>) connected to it. The computing device <NUM> commonly has a "docking" connector to connect to other computing devices for purposes such as managing (e.g., downloading and/or uploading, changing, synchronizing) content on computing device <NUM>. Additionally, a docking connector can allow computing device <NUM> to connect to certain peripherals that allow the computing device <NUM> to control content output, for example, to audiovisual or other systems.

In addition to a proprietary docking connector or other proprietary connection hardware, the computing device <NUM> can make peripheral connections <NUM> via common or standards-based connectors. Common types can include a Universal Serial Bus (USB) connector (which can include any of a number of different hardware interfaces), DisplayPort including MiniDisplayPort (MDP), High Definition Multimedia Interface (HDMI), Firewire, or other types.

In some embodiments, the peripheral connections <NUM> may comprise or may be attached to one or more I/O ports, e.g., ports 118a. 118b, 318a and/or 318b. In some embodiments, the computing device <NUM> may comprise arrangement to assign and/or adjust the power profiles of these ports, and/or selectively turn off or on these ports, e.g., as discussed with respect to <FIG>.

While the disclosure has been described in conjunction with specific embodiments thereof, many alternatives, modifications and variations of such embodiments will be apparent to those of ordinary skill in the art in light of the foregoing description. The embodiments of the disclosure are intended to embrace all such alternatives, modifications, and variations as to fall within the broad scope of the appended claims.

In addition, well known power/ground connections to integrated circuit (IC) chips and other components may or may not be shown within the presented figures, for simplicity of illustration and discussion, and so as not to obscure the disclosure. Further, arrangements may be shown in block diagram form in order to avoid obscuring the disclosure, and also in view of the fact that specifics with respect to implementation of such block diagram arrangements are highly dependent upon the platform within which the present disclosure is to be implemented (i.e., such specifics should be well within purview of one skilled in the art). Where specific details (e.g., circuits) are set forth in order to describe example embodiments of the disclosure, it should be apparent to one skilled in the art that the disclosure can be practiced without, or with variation of, these specific details. The description is thus to be regarded as illustrative instead of limiting.

Claim 1:
An apparatus (<NUM>) comprising:
first and second ports (118a, 118b) each to receive a device external to the apparatus; and
a controller (<NUM>) to selectively turn on or turn off the first port (118a) and to assign or adjust a power profile of a power supplied by a port control circuitry (<NUM>) to the first port (118a); and characterized by:
current monitoring circuitry (<NUM>) to monitor current levels supplied to each of the first and second ports (118a, 118b) and to transmit the measured current information (<NUM>) to the controller (<NUM>); and wherein:
the controller (<NUM>) is to assign or adjust the power profile of the power supplied by the port control circuitry (<NUM>) to the first port (118a) based on the measured current information and one or more of:
charging information associated with a battery (<NUM>) of the apparatus (<NUM>); or
availability of Alternating Current, AC, power for powering the apparatus (<NUM>); and:
wherein the controller (<NUM>) is further to adjust the power profile of the power supplied by the port control circuitry (<NUM>) to the first port (118a) to increase the amount of power supplied to the first port in response to the apparatus transitioning from a normal working state to a low power state;
wherein the normal working state comprises a S0 state, and
wherein the low power state comprises one of a S3 standby or sleep state, a S4 hibernation or suspend to disk state, or a S5 soft off state.