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.
OK, I will do this too. Thank you for the explanation Peter
