An open-drain output contains a transistor that connects the pin to ground when switched on and leaves it floating when switched off. It can pull a line low, but it cannot drive it high. A pull-up resistor to a supply rail provides the high level whenever no device is pulling down. (Older bipolar circuits call the same idea "open-collector".)

Why boards use it

  • Several devices on one line. Any number of open-drain outputs can share a line. The line is high only when all of them release it, and low if any one pulls it down. This "wired-AND" behaviour is ideal for combining power-good signals or interrupt requests.
  • Level translation for free. The high level is set by whatever rail the pull-up connects to, so a chip powered at 1.8 V can signal to a 3.3 V device through a 3.3 V pull-up, within the chip's ratings.
  • Bus protocols. SMBus and I2C are open-drain by design, so devices can take turns on the same two wires.

Where you meet it on a laptop board

Signal typeExample namesPulled up to
Power goodPGOOD, VR_PWRGD, SYS_PWROKA standby or run rail
ResetRSMRST#, EC_RST#A standby rail
Interrupts and alertsSMB_ALERT#, EC_SCI#3.3 V or 1.8 V rail
Bus linesSMB_CLK, SMB_DATA, I2C_SCL, I2C_SDA3.3 V or 1.8 V rail

Diagnosing open-drain lines

Because the high level comes from a pull-up, a line that should be high but reads low has three suspects:

  1. The pull-up rail is missing — check the rail at the far end of the pull-up resistor.
  2. The pull-up resistor is open — compare voltages on its two ends.
  3. One of the connected devices is pulling low — maybe correctly (a regulator reporting a fault) or because it is damaged or leaky.

To find which device holds the line low, isolate them one at a time where the schematic allows, or compare the line's resistance to ground with a known-good board. The pattern is described in more detail in Pull-Up and Pull-Down Resistors in Laptop Schematics.

Common mistakes

  • Expecting an open-drain output to show a high level with no pull-up fitted.
  • Assuming the chip that "owns" the signal is the one pulling it low — any device on the line can.
  • Forgetting that the pull-up rail may only exist in certain power states, so the line will read low in standby even on a healthy board.