doc.nit.ac.ir/.../3-Mazidi-8051.pdf
I recall some Mazdi believer who wanted to bit-bang I²C using a processor that had it in hardware.
It was not me who said that, but I have done it.
Why? What a terrible thing to do you probably shout.
Unfortunately, some I²C hardware implementations are not as good as they should be. So doing it the hard way is sometimes the only sensible way out of a tricky situation.