SPI bus chaining, I have seen it in some advanced SPI use cases with the MOSI leaves the master to the first slave, which at the same time, in it's slot sends the last buffer out it's while receiving the current on the MISO. Each in turn along the line do this. I can see this means you only need 1 SS line. It also adds latency.
It's a shame MCUs mostly ignore the simplicity of SPI chaining.
Tangent question, but what is the next logical step up from SPI? I know there are parallel GPIO connection approaching, but is/are there many established/standard protocols for linking multiple devices more tightly that SPI?
What other options lie between SPI and PCI/ISA or custom full bus?
For this application you do not need faster than SPI, and the option best supported is i2c, which easily runs to 400kHz/1MHz
Since the RGB encoder was mentioned, it would be nice to support Encoder read and LED out.
A small MCU is one solution, if you need a handful the examples linked above save time.
- but there are shiploads of i2c GPIO parts, that are very low cost, and LED capability has been added to many. If you are happy with 5 CMOS pins driving 3 leds the cheapest digital IO ones will do.
Parts like TLC59108 add more LED-Drive smarts with linear current control and a error/open readback that can be used for buttons.
It has 14-devices Address map, which is better than the 8-devices vanilla parts, but not as good as some newer multi-state pins that support 64 or 126 devices.
Adafruit has a AW9523 LED/GPIO module, lcsc has the parts for 31c/100
That has only 4-device Address map, but has 16 io.
There is also a related AW21009 25c/100 with 8io, also 4-device and open/short led detect.
Or, because 8 channels may not mean highest volume, (lowest price points) we can relax channels/LEDs and search more
The lumisil IS31FL3205, lcsc has for 60c/100 and that has 12 channels, open/short detect and 4-device
The IS31FL3193 is 45c/100, in QFN32 and many more channels than needed for UI drive/sense. (12x9 matrix)