> > On Jul 23, 2005, at 10:22 AM, Eugene Surovegin wrote: > ... and there is more. Some devices, even when not selected, still use > the SPI clock for clocking internal logic. You have to ensure with such > devices you don't ever run the SPI faster than their spec. This is > application specific, but something that has to be considered when there > are multiple devices on the SPI bus. > > Also, many boards use external logic for the assertion of the > device select, which is necessary if there is more than one device on > the bus. Sometimes it's a multiplexer that routes the controller SPI > select, other times the multiplexer drives the selects directly. In my > review of the patch, I didn't see anything that would provide for this.
I already made one SPI subsystem implementation. I published it in end of 2004 with GPL ( http://www.katix.org/spi.php ). There is still work to done for it but least basic functionality has been working since. There is picture how i resolved the CS problem with separeating host, target driver and CS driver to separate modules. In this architecture target driver like ( tsc2301 ) requests chipselect from SPI subsystem and board specefic CS module assigns it. Then the other SPI host driver like mpc5200psc or mpc5200spi does the actual SPI transfer. In this way, only the CS module need to be changed if same processor is used with diferent boards that use separate PIO lines for SPI CS lines. Kate