Patent Description:
Modern computing devices have become extraordinarily complex with compute domains, physical sensors, and power systems that operate asynchronously. Asynchronous compute and the unpredictability of user input may lead to usage scenarios that are difficult to anticipate and can lead to device faults (e.g., reboots, lockups, etc.). In some scenarios, it may be necessary to reset the computing device to remedy some faults.

<CIT>, <CIT> and <CIT> are prior art documents.

This disclosure generally relates to resetting a computing device. One reset technique may involve power cycling (e.g., turning off and then back on) a power supply (e.g., a power management integrated circuit (PMIC)) of the computing device. For instance, responsive to a physical power button of the computing device being pressed for longer than a specified amount of time, a controller of the computing device may initiate a power cycling of the power supply. However, if a fault occurs in the power supply, such a reset technique may be ineffective in remedying the fault. For instance, a fault in the PMIC may result in a device that may be completely unresponsive and cannot be used until the battery drains completely and the device is unplugged from any charging cables, which may take hours or days. Such a delay may be undesirable.

<FIG> is a conceptual diagram illustrating a device that includes a true load disconnect, in accordance with one or more techniques of this disclosure. As shown in <FIG>, device <NUM> may include a plurality of power sources 102A-102N (collectively, "power sources <NUM>), a plurality of disconnect modules 1041A-104N (collectively, "disconnect modules <NUM>"), power management circuit <NUM>, load <NUM>, physical button <NUM>, and controller <NUM>. Examples of device <NUM> include, but are not limited to, a mobile phone, a camera device, a tablet computer, a smart display, a laptop computer, a desktop computer, a gaming system, a media player, an e-book reader, a television platform, a vehicle infotainment system or head unit, or a wearable computing device (e.g., a computerized watch, a head mounted device such as a VR/AR headset, computerized eyewear, a computerized glove).

Each of power sources <NUM> may be any component capable of providing electrical power to other components of device <NUM>, such as power management circuit <NUM>. Examples of power sources <NUM> include, but are not limited to, batteries, solar panels, physical connectors, wireless charging receive coils, etc. For instance, power source 102A may be an internal battery of device <NUM>, and power source 102B may be a charging cable connecting device <NUM> to an external power supply (e.g., a universal serial bus (USB) connection, such as a USB type-C connection).

Each of disconnect modules <NUM> may be configured to electrically disconnect a corresponding power source of power sources <NUM>. For instance, disconnect module 104A may be configured to electrically disconnect power source 102A from power management circuit <NUM>,. , and disconnect module 104N may be configured to electrically disconnect power source 102N from power management circuit <NUM>. Disconnect modules <NUM> may be any component capable of causing an electrical disconnect between a power source and a component of device <NUM>. For instance, a disconnect module of disconnect modules <NUM> may include one or more switches that, when opened, remove a current path between a power source of power sources <NUM> and power management circuit <NUM>. Examples of disconnect modules <NUM> include, but are not limited to, switches (e.g., transistors), fuses (e.g., resettable fuses), and the like.

Power management circuit <NUM> may be configured to supply electrical power to various components of device <NUM>, such as load <NUM>. In some examples, power management circuit <NUM> may be a power management integrated circuit (PMIC). Power management circuit <NUM> may include one or more power supplies, such as power regulator <NUM>, that supply power signals to load <NUM>. Power management circuit <NUM> may be configured to source electrical power from a wide variety of sources. For instance, depending on context, power management circuit <NUM> may source electrical power from one or more of power sources <NUM>. As one example, where no other power sources are available, power management circuit <NUM> may source electrical power from a battery of power sources <NUM>.

As noted above, power management circuit <NUM> may include power regulator <NUM>. Examples of power regulator <NUM> include, but are not limited to, switched mode power supplies (e.g., buck, boost, buck-boost, cuk, flyback, low-dropout, etc.). A voltage level of a power signal output by power regulator <NUM> may be adjustable. For instance, input power regulator <NUM> may output a DC power signal to load <NUM> at a set voltage level, such as a voltage level set by controller <NUM>. In some examples, power regulator <NUM> may include multiple power supplies that supply power signals having different voltage levels (e.g., <NUM> volts, <NUM> volts, <NUM> volts, etc.).

Load <NUM> may represent various components of system <NUM> that consume power. Examples of load <NUM> include, but are not limited to, a display, a memory device, a storage device, a central processing unit (CPU), graphical processing unit (GPU), modem, digital signal processor (DSP), etc..

Controller <NUM> may include circuitry configured to control operation of various components of device <NUM>. Examples of controller <NUM> include, but are not limited to, one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), systems on a chip (SoC), or other equivalent integrated or discrete logic circuitry, or analog circuitry.

Physical button <NUM> may be a button of device <NUM> that is configured to receive user input. For instance, physical button <NUM> may be a so-called "power button" that is configured to receive user input to turn device <NUM> on or off. Input received via physical button <NUM> may be provided to various components of device <NUM>, such as controller <NUM>. For instance, controller <NUM> may receive an indication of a state of physical button <NUM> (e.g., pressed or not pressed).

For any number of reasons, faults may occur within device <NUM>. For instance, asynchronous compute and the unpredictability of user input may lead to usage scenarios that are difficult to anticipate and can lead to faults within device <NUM> (e.g., reboots, lockups, etc.). In some scenarios, it may be necessary to reset device <NUM> to remedy some faults.

One reset technique may involve power cycling (e.g., turning off and then back on) a power supply (e.g., a power management integrated circuit (PMIC) of power management circuit <NUM> (e.g., power regulator <NUM>). For instance, responsive to physical button <NUM> being pressed for longer than a specified amount of time, controller <NUM> may initiate a power cycling of the power supply of power management circuit <NUM>. Such a cycling may cure many faults, especially those that occur in components of load <NUM>.

However, if a fault occurs in power management circuit <NUM>, such a reset technique may be ineffective in remedying the fault. For instance, a fault in power management circuit <NUM> may result in device <NUM> being completely unresponsive and unusable used until a battery drains completely and device <NUM> is unplugged from any charging cables, which may take hours or days.

In accordance with one or more techniques of this disclosure, device <NUM> is configured to perform a true load disconnect reset technique. To perform the true load disconnect reset technique, controller <NUM> electrically disconnects, and then electrically re-connects. all of power sources <NUM> from device <NUM> (e.g., without requiring actual physical disconnection). For instance, controller <NUM> may output signals to disconnect modules <NUM> that cause disconnect modules <NUM> to electrically disconnect power sources <NUM> from power management circuit <NUM>. As one example, where power source 102A is an internal battery of device <NUM>, controller <NUM> may cause disconnect module 104A to electrically disconnect the internal battery from power management circuit <NUM> (e.g., such that power management circuit <NUM> may cease receiving electrical power from the battery). As another example, where power source 102B is a USB cable carrying electrical energy from an external power supply to device <NUM>, controller <NUM> may cause disconnect module 104B to electrically disconnect (e.g., open) signal lines of the USB connection (e.g., such that the external power supply ceases providing electrical power to device <NUM>). As such, the true load disconnect reset technique of this disclosure may be effective at remedying a large number of faults, including faults in power management circuit <NUM>, such that device <NUM> may be recovered without having to wait for a battery to fully discharge and without having to unplug a charging cable.

<FIG> is a flowchart illustrating a technique that includes various resets of a computing device, in accordance with one or more techniques of this disclosure. For purposes of explanation, the technique of <FIG> is described in the context of device <NUM> of <FIG>. However, other computing devices may perform the technique of <FIG>.

Device <NUM> may determine whether a physical button is pressed (<NUM>). For instance, controller <NUM> may determine whether physical button <NUM> (e.g., a power button) is pressed. Responsive to determining that the physical button is not pressed ("No"' branch of <NUM>), device <NUM> may continue to monitor for pressing of the physical button (<NUM>).

Responsive to determining that the physical button is pressed ("Yes" branch of <NUM>), device <NUM> may start a timer (<NUM>). For instance, controller <NUM> may start a timer (e.g., that counts up). Device <NUM> may monitor for release of the physical button (<NUM>) and determines whether a value of the timer is greater than a first amount of time (<NUM>). In some examples, the first amount of time may be less than or equal to <NUM> seconds (e.g., <NUM> seconds, <NUM> seconds, <NUM> seconds). Responsive to determining that the physical button is released prior to the timer being greater than the first amount of time ("Yes" branch of <NUM>), device <NUM><NUM> may continue to monitor for pressing of the physical button (<NUM>) without performing any resets. Responsive to determining that the physical button is not released prior to the timer being greater than the first amount of time ("Yes" branch of <NUM>), device <NUM> may perform a first reset technique (<NUM>).

To perform the first reset technique, device <NUM> may perform a warm reset. For instance, controller <NUM> may set output regulation levels of one or more power regulators of power management circuit <NUM> (e.g., power regulator <NUM>) to default levels without disabling the one or more power regulators. For example, where a default output voltage level of power regulator <NUM> is <NUM> volts, controller <NUM> may cause power regulator <NUM> to output a power signal with a voltage level of <NUM> volts. In this way, controller <NUM> is considered to reset a PMIC of device <NUM> responsive to determining that a physical button of device <NUM> has been pressed for longer than a first amount of time.

Device <NUM> may continue monitor for release of the physical button (<NUM>) and determine whether the value of the timer is greater than a second amount of time that is greater than the first amount of time (<NUM>). In some examples, the second amount of time may be less than or equal to <NUM> seconds (e.g., <NUM> seconds, <NUM> seconds, <NUM> seconds). Responsive to determining that the physical button is released prior to the timer being greater than the second amount of time ("Yes" branch of <NUM>), device <NUM> may continue to monitor for pressing of the physical button (<NUM>) without performing any additional resets. Responsive to determining that the physical button is not released prior to the timer being greater than the second amount of time ("Yes" branch of <NUM>), device <NUM> may perform a second reset technique (<NUM>).

To perform the second reset technique, device <NUM> may perform a cold reset. For instance, controller <NUM> may disable the one or more power regulators of power management circuit <NUM>. For example, controller <NUM> may deactivate, and subsequently re-activate, power regulator <NUM>. In this way, controller <NUM> is considered to reset a PMIC of device <NUM> responsive to determining that a physical button of device <NUM> has been pressed for longer than a second amount of time.

Device <NUM> may continue monitor for release of the physical button (<NUM>) and determine whether the value of the timer is greater than a third amount of time that is greater than the second amount of time (<NUM>). In some examples, the third amount of time may be less than or equal to <NUM> seconds (e.g., <NUM> seconds, <NUM> seconds, <NUM> seconds, <NUM> seconds). Responsive to determining that the physical button is released prior to the timer being greater than the third amount of time ("Yes" branch of <NUM>), device <NUM> may continue to monitor for pressing of the physical button (<NUM>) without performing any additional resets. Responsive to determining that the physical button is not released prior to the timer being greater than the third amount of time ("Yes" branch of <NUM>), device <NUM> performs a third reset technique (<NUM>).

In accordance with one or more techniques of this disclosure, to perform the third reset technique, device <NUM> performs a true load disconnect procedure. Device <NUM> electrically disconnects and subsequently reconnects, all power sources from device <NUM>. Further details of one example of the true load disconnect procedure are discussed below with reference to <FIG>.

Device <NUM> may continue monitor for release of the physical button (<NUM>). Until the physical button is released, device <NUM> may not move to the beginning of the reset sequence. As such, responsive to determining that the physical button has not been released since disconnecting the power sources, device <NUM> may refrain from re-disconnecting the power sources. Such a refraining may provide various benefits. As one example, by refraining from re-disconnecting the power sources until the physical button is released, the techniques of this disclosure may disallow rolling resets.

It is understood that, in some embodiments, of the first reset technique or the second reset technique may be omitted. For instance, without performing one of the first or second reset techniques, responsive to determining that the physical button of the mobile computing device has been pressed for longer than the third amount of time, device <NUM> performs the third reset technique.

<FIG> is a flowchart illustrating a technique for a true load disconnect of a computing device, in accordance with one or more techniques of this disclosure. For purposes of explanation, the technique of <FIG> is described in the context of device <NUM> of <FIG>. However, other computing devices may perform the technique of <FIG>. The technique of <FIG> may be performed as the third reset (<NUM>) of <FIG>.

In general, the true load disconnect results in a disconnect between power sources and power sinks of device <NUM>. After all power sources are disconnected (e.g., electrically removed), the system is gracefully restarted (e.g., to provide user feedback that device <NUM> has been restarted).

Responsive to determining to perform the true load disconnect, device <NUM> electrically disconnects all power sources (<NUM>). For instance, controller <NUM> may electrically disconnect a battery (e.g., open switches, such as field-effect transistors (FETs), connecting internally batteries to power sinks), disable charging paths (e.g., deactivate wireless charging), enable self-discharge of a system voltage (e.g., Vsys self-discharge), electrically disconnect signal lines of USB connections (e.g., electrically disconnect configuration channel lines of a USB type-C connection (CC1, CC2)), etc..

Device <NUM> may wait a period of time (<NUM>) before electrically reconnecting the power sources (<NUM>). The period of time may be <NUM>, <NUM>, <NUM>, <NUM>, <NUM> seconds. After the period of time has elapsed, device <NUM> electrically reconnects the power sources. For instance, controller <NUM> may electrically reconnect a battery (e.g., close switches, such as field-effect transistors (FETs), connecting internally batteries to power sinks), enable charging paths (e.g., reactivate wireless charging), disable self-discharge of a system voltage (e.g., Vsys self-discharge), electrically reconnect signal lines of USB connections (the reconnection of configuration channel lines may cause an external power source to re-negotiate a power provision with device <NUM>), etc. With the power sources electrically reconnected, device <NUM> may restart.

As discussed above, electrically disconnecting all present power sources when performing the true load disconnect may present one or more advantages. As one example, where a fault occurs in a PMIC of device <NUM>, performing a warm reset or a cold reset may be insufficient to remedy the fault. In such a case, the fault may only be remedied by completely discharging a battery of device <NUM>. Where device <NUM> receives power from one or more external sources (e.g., over a USB connection), the fault may never be remedied so long as power continues to be received. As such, by electrically disconnecting all power sources, the techniques of this disclosure enable remedying of a large number of faults without having to wait for a battery to be discharged and without having to physically unplug charging cables.

The techniques described in this disclosure may be implemented, at least in part, in hardware, software, firmware, or any combination thereof. A control unit including hardware may also perform one or more of the techniques of this disclosure.

Such hardware, software, and firmware may be implemented within the same device or within separate devices to support the various techniques described in this disclosure. Depiction of different features as modules or units is intended to highlight different functional aspects and does not necessarily imply that such modules or units must be realized by separate hardware, firmware, or software components. Rather, functionality associated with one or more modules or units may be performed by separate hardware, firmware, or software components, or integrated within common or separate hardware, firmware, or software components.

The techniques described in this disclosure may also be embodied or encoded in an article of manufacture including a computer-readable storage medium encoded with instructions. Instructions embedded or encoded in an article of manufacture including a computer-readable storage medium encoded, may cause one or more programmable processors, or other processors, to implement one or more of the techniques described herein, such as when instructions included or encoded in the computer-readable storage medium are executed by the one or more processors. Computer readable storage media may include random access memory (RAM), read only memory (ROM), programmable read only memory (PROM), erasable programmable read only memory (EPROM), electronically erasable programmable read only memory (EEPROM), flash memory, a hard disk, a compact disc ROM (CD-ROM), a floppy disk, a cassette, magnetic media, optical media, or other computer readable media. In some examples, an article of manufacture may include one or more computer-readable storage media.

Claim 1:
A method comprising:
responsive to determining that a button (<NUM>) of a mobile computing device has been pressed for longer than a first amount of time, resetting, by a controller (<NUM>) of the mobile computing device, at a first time, a power management integrated circuit (<NUM>), PMIC, of the mobile computing device;
responsive to determining that the button of the mobile computing device has not been released since said
first time and has been pressed for longer than a second amount of time that is longer than the first amount of time, electrically disconnecting, by the controller of the mobile computing device, at a second time that is after the first time, all power sources (102A - 102N) from the mobile computing device; and
electrically reconnecting, by the controller of the mobile computing device, at a third time that is after the second time, the power sources to the mobile computing device.