MCP23S17 - do I have to use both Chip Select and Hardware Addressing?
If you set HAEN = 0 the hardware addressing bits are ignored and you can do addressing purely by the chip select.
You will need to fully decode the chip selects so that each device of the 12 has a unique chip select.
If HAEN = 1 the hardware addressing bits are taken in account in addition to the chip select. In that case you would not need to fully decode the chip selects although you will need at least 2 as the hardware address can only uniquely decode 1 of 8.
See section 3.5.6 on page 20.