Why I2C designed to work with pull-up resistors and not pull-down ones?

Electrically it makes sense because ground is the one common connection to all devices on a IIC bus. That's a lot less of a restriction than forcing power to be the common connection to all IIC devices, as would be required if the lines were driven high and floated low via pulldowns.

Note that IIC devices don't all need to be powered from the same net or the same voltage. This would not be true if both bus lines had to be driven to the single common power voltage.


In the good old days, TTL drivers were much better at pulling a signal down than pulling it up. Therefore, protocols like I2C, but also interrupt lines, reset, and others, were all implemented using a pull-up with distributed pull-down.


It's easier to use ground as a common reference among subsystems that might have varying supply voltages. If you use PNP transistors to pull up to a supply voltage, all subsystems would have to be connected to the same supply.