On Tue, 29 May 2012 13:05:18 +0000, "Langer Thomas (LQDE CPE AE SW)" <thomas.langer@xxxxxxxxxx> wrote: > Hello Grant, hello John, > > John Crispin wrote on 2012-05-26: > > > >> What exactly does this mean? How does it not support any other type > >> of SPI peripheral? SPI is a really simple protocol, so what is it > >> about this hardware that prevents it being used with other SPI > >> hardware? > >> > >> I see a big state machine that appears to interpret the messages and > >> pretend to be an SPI slave instead of telling linux about the real > >> device. /me wonders if it should this instead be a block device > >> driver? > >> > > Thomas will need to comment on this part > > > The hardware is an "EBU" (External Bus Unit) for different type of memories > and flashes (NOR, NAND and serial). > One of the features of this EBU is the "execute in place" for serial flashes. > This shows that there is some logic in the hardware for automatic reading, > all other actions must be done using a specific cmd register. > > Even if there are some restrictions from the hardware state machine, > the goal was to use the standard driver for serial flash devices (m25p80). > Otherwise, with a dedicated block device driver, we would have to duplicate > much of this code and had to maintain an own list of supported flash chips. > > I hope this reason is good enough for getting this driver accepted. To be clear, I'm not going to nack the driver over this issue; but it bothers me that I cannot understand what it is doing and I do wonder if there is a better approach. g.