On Thu, Dec 05, 2013 at 02:35:47PM +0000, Angus Clark wrote: > On 12/04/2013 06:44 PM, Brian Norris wrote: > > On this topic, I have one more stick to throw on this fire; I have some > > Broadcom hardware that consists of two pieces: > > > > (1) a true SPI controller, with single-line-I/O and > > (2) a Serial Flash controller that can accelerate flash read, using > > dual/quad I/O. > > We support one platform with properties similar to the hardware you describe, > and such a hybrid configuration was in mind when I was thinking about the > spi-nor framework. I am not sure how well this will come across over email, > but > I envisage something like this: > > spi-nor > | > v > [spi-nor-xfer] > | > ------------------------------------------------ > | | | > v v v > spi-wrapper (<------) hybrid-driver serial-flash-driver > | | | > [SPI] | | > | | | > v | | > generic-spi-driver | | > | | | > v v v > [generic-SPI-Cntrl] [SPI-Flash-Read Cntrl] [SPI-Flash-Controller] > > The 'spi-nor' layer is responsible for Serial Flash domain knowledge, and how > to > generate 'spi-nor-xfer' messages. The 'spi-wrapper' would provide an > interface > to the generic SPI framework, flattening the 'spi-nor-xfer' message to > standard > SPI calls. The combination of 'spi-nor' and 'spi-wrapper' should achieve what > we have today for the m25p80 driver. The 'serial-flash-driver' in the example > provides an implementation for a dedicated Serial Flash Controller, making use > of the spi-nor-xfer semantics where required. The 'hybrid-driver' could use > the > 'spi-wrapper' implementation for write and erase hooks, and optimised > implementations for read hooks.
OK, that sounds reasonable. But how do I bind my "generic SPI driver" with my "SPI NOR accelerated read driver" to represent this? Does the hybrid driver (my accelerated-read driver) have to register itself as a SPI protocol driver (struct spi_driver)? The "controller" boundaries seem to get a little fuzzy under this design. Brian -- To unsubscribe from this list: send the line "unsubscribe linux-spi" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
