Tiene razón en que RaspberryPi proporciona solo dos selecciones de chip en su bus SPI (ver aquí ). Y supongo que los controladores SPI y las soluciones de software se basan en ese hecho (aunque la respuesta de @ joan sugiere que diferentes bibliotecas lo manejan de manera diferente y el controlador oficial permitirá que se usen pines GPIO arbitrarios como selecciones de chips en el futuro).
Sin embargo, debe tener en cuenta que una selección de chip no es más que una salida digital dedicada del Pi. Por lo tanto, siempre puede tener una mayor cantidad de selecciones de chip si usa los pines GPIO. En cuyo caso, sin embargo, su software será responsable de establecer los pines apropiados para abordar el esclavo SPI correcto.
Dado que la idea de las selecciones de chips es seleccionar mutuamente de forma exclusiva un solo esclavo, también puede utilizar algunos circuitos digitales simples para disminuir la cantidad de pines GPIO "desperdiciados" (si también los necesita para otros fines). Algo así como el 74HC / HCT138, un decodificador / demultiplexor de 3 a 8 líneas podría usarse para direccionar 8 esclavos a través de 8 selecciones de chip con solo 3 pines GPIO.
Es importante tener en cuenta que las líneas de autobús SCLK y MOSI se comparten entre todos los esclavos. Por lo tanto, cuando conecte varios esclavos al Pi, asegúrese de que la carga (resistencia y capacitancia de los pines de entrada de los esclavos) no exceda el despliegue del Pi, aunque esto no es un problema hoy en día con la baja capacitancia y Alta resistencia de las entradas digitales.