Espressif SPI and GPIO expander

doesn't the Wire library do what you want?

my interlock.ino uses it to access a similar chip