I2C with its fixed bus speed is much more predictable. At only 100KHz
it is likely that an interrupt-driven transfer will still leave plenty
of cpu cycles for other code to run on typical hardware, so most
drivers will just default to that behaviour. Some drivers may prefer
polled mode for small transfers, or in the case of the bit-banged
driver there is no choice and polled mode has to be used. When
interrupt-driven transfers are the default it is still possible for
the driver to work in a polled-only environment such as RedBoot or
during application startup simply by checking whether or not
interrupts are currently enabled. The M68K/MCF52xx I2C driver provides
an example of this.