aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/mtd
diff options
context:
space:
mode:
authorBrian Norris <computersforpeace@gmail.com>2014-04-08 23:17:04 -0400
committerBrian Norris <computersforpeace@gmail.com>2014-04-14 14:23:01 -0400
commit254592db612aeb55d80399a04995b68f7da48c99 (patch)
treeb123f4ff44d473400578363cd9cdb8a9a780c51f /Documentation/mtd
parent58b89a1f4c2a65b10b8f7b90b6ff2161b19bb0d1 (diff)
Documentation: spi-nor: rewrite some portions
Signed-off-by: Brian Norris <computersforpeace@gmail.com> Reviewed-by: Marek Vasut <marex@denx.de>
Diffstat (limited to 'Documentation/mtd')
-rw-r--r--Documentation/mtd/spi-nor.txt37
1 files changed, 20 insertions, 17 deletions
diff --git a/Documentation/mtd/spi-nor.txt b/Documentation/mtd/spi-nor.txt
index 294d5b06f892..548d6306ebca 100644
--- a/Documentation/mtd/spi-nor.txt
+++ b/Documentation/mtd/spi-nor.txt
@@ -1,19 +1,23 @@
1 SPI NOR framework 1 SPI NOR framework
2 ============================================ 2 ============================================
3 3
4Part I - why we need this framework? 4Part I - Why do we need this framework?
5------------------------------------- 5---------------------------------------
6 6
7The SPI bus controller only deals with the byte stream. 7SPI bus controllers (drivers/spi/) only deal with streams of bytes; the bus
8Some controller does not works like a SPI bus controller, it works 8controller operates agnostic of the specific device attached. However, some
9like a SPI NOR controller instead, such as the Freescale's QuadSPI controller. 9controllers (such as Freescale's QuadSPI controller) cannot easily handle
10arbitrary streams of bytes, but rather are designed specifically for SPI NOR.
10 11
11The Freescale's QuadSPI controller should know the NOR commands to 12In particular, Freescale's QuadSPI controller must know the NOR commands to
12find the right LUT sequence. Unfortunately, the old code can not meet 13find the right LUT sequence. Unfortunately, the SPI subsystem has no notion of
13this requirement. 14opcodes, addresses, or data payloads; a SPI controller simply knows to send or
15receive bytes (Tx and Rx). Therefore, we must define a new layering scheme under
16which the controller driver is aware of the opcodes, addressing, and other
17details of the SPI NOR protocol.
14 18
15Part II - How does the framework work? 19Part II - How does the framework work?
16------------------------------------- 20--------------------------------------
17 21
18This framework just adds a new layer between the MTD and the SPI bus driver. 22This framework just adds a new layer between the MTD and the SPI bus driver.
19With this new layer, the SPI NOR controller driver does not depend on the 23With this new layer, the SPI NOR controller driver does not depend on the
@@ -40,7 +44,7 @@ m25p80 code anymore.
40 ------------------------ 44 ------------------------
41 SPI NOR chip 45 SPI NOR chip
42 46
43 With the SPI NOR controller driver(Freescale QuadSPI), it looks like: 47 With the SPI NOR controller driver (Freescale QuadSPI), it looks like:
44 MTD 48 MTD
45 ------------------------ 49 ------------------------
46 SPI NOR framework 50 SPI NOR framework
@@ -49,11 +53,10 @@ m25p80 code anymore.
49 ------------------------ 53 ------------------------
50 SPI NOR chip 54 SPI NOR chip
51 55
52Part III - How can the drivers use the framework 56Part III - How can drivers use the framework?
53------------------------------------- 57---------------------------------------------
54 58
55The main API is the spi_nor_scan(). Before you call the hook, you should 59The main API is spi_nor_scan(). Before you call the hook, a driver should
56initialize the necessary fields for spi_nor{}. 60initialize the necessary fields for spi_nor{}. Please see
57Please see the drivers/mtd/spi-nor/spi-nor.c for detail. 61drivers/mtd/spi-nor/spi-nor.c for detail. Please also refer to fsl-quadspi.c
58Please also reference to the fsl-quadspi.c when you want to write a new driver 62when you want to write a new driver for a SPI NOR controller.
59for a SPI NOR controller.