I have 120 digital inputs which accept high level or low level. If considering to use IO expander, 8 IO expander(16 bits) are needed. There is only one I2C interface on my board to connect 8 I2C devices in this case. Another way is to use 2 IO expander(16 bits) to build two 8x8 matrix, like keyboard matrix. But the problem is keyboard shorts the column line and row line while my input only accept high or low level.
Is there any better hardware design about this requirement? Any suggestions is appreciated.
To reduce the footprint of the chips and soldering efforts, suggest to use I2C GPIO Extender with high number of GPIO pins.
For instance, PCA9505/PCA9506 provides 40-GPIO in TSSOP-56 package. You only need 4 chips to support 128 GPIO and with 32 GPIO as spare.
For programming, you only need to deal with 4 addresses of the I2C devices.
Hope this help.