I am planning to use i2c based port expander (earlier I was using atmega328P's GPIO) for inputs and outputs. On a digikey search, I found MCP23008, MCP23009 and MCP23017 as possible replacements. Out of these three, only MCP23017 is push-pull. Other two are open-drain. I have an understanding that push pull can actively source and sink and open-drain cannot actively source. I am not very sure how does this affect my use case and hence I need some expert advise.
Here is the use case:
SS1 and TRIAC1 are supposed to go on GPIO of port expander. SS1 is supposed to be digitally read and TRIAC1 is supposed to be driven HIGH or LOW.
As such does it matter whether I use open drain or push pull type? If yes, which is the better option? Also, I want to keep the component to a minimal. Ex - I want to drive the triac driver directly by the port expander rather than using another transistor. So, please take this in consideration as well.
Note: Both circuits will be replicated 4-10 times on the PCB and hence the requirement of port expander.