[Top] [All Lists]

RE: [PATCH V5 16/17] SPI: MIPS: lantiq: add FALCON spi driver

To: "Langer Thomas (LQDE CPE AE SW)" <>, John Crispin <>
Subject: RE: [PATCH V5 16/17] SPI: MIPS: lantiq: add FALCON spi driver
From: Grant Likely <>
Date: Wed, 30 May 2012 15:23:13 +0800
Cc: Ralf Baechle <>, "" <>, "" <>
In-reply-to: <>
List-archive: <>
List-help: <>
List-id: linux-mips <>
List-owner: <>
List-post: <>
List-software: Ecartis version 1.0.0
List-subscribe: <>
List-unsubscribe: <>
References: <> <20120525233845.BD93C3E0BD2@localhost> <> <>
On Tue, 29 May 2012 13:05:18 +0000, "Langer Thomas (LQDE CPE AE SW)" 
<> 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.


<Prev in Thread] Current Thread [Next in Thread>