Für I2C über 2 normale IO Pins sollte man ziehmlich leicht Code finden. Das mit dem SPI interface klingt möglich, hängt aber eventuell von der konkreten SPI hardware ab. Vermutlich wird man zumindestens eine Dioden brauchen um einen Open-Collector Ausgang zu imitieren. Zumindestens das Clockstrtching wird mit der SPI-hardware Probleme machen. Wenn man die Daten von vornherein langsam schickt sollte das aber eher selten vorkommen.

Einen 100% normkonformen I2C Bus wird man kaum hinkriegen, dazu braucht man treiber mit begrenzter Anstiegsgeschwindigkeit. Mit den meisten Geräten sollte es aber gehen, wenn die Kabel kurz bleiben.