Here is a summary of what I am trying to do.
I have an IO board which has many inputs and outputs and an SD card slot.
the IO expander IC's run on IIC (or I2C if you prefer), and the SD card slot is connected via SPI.
The thing is, the board needs to be compatible with different arduinos and the raspberry pi. So some will run on 5v, others will run on 3.3v, we might have some that run as low as 2.7, but I don't anticipate that.
The original idea was to simply use an 8-bit level translator IC (ADG3308BRUZ), but it has caused many issues. For instance, this particular IC could not sink enough current to pull the I2C line down. Later, I disvoered most of these IC's have to translate voltage in a particular direction. That is, one side has to be the higher voltage, and the other has to be the lower voltage, and both sides can't be the same voltage.
This normally isn't an issue, because the conditions are controlled. But in this case, I could be plugging in any source of SPI/IIC (and the IOREF pin or equivalent) and translating it to the voltage the IO board uses.