summaryrefslogtreecommitdiffstats
path: root/Documentation/mtd
diff options
context:
space:
mode:
authorHuang Shijie <b32955@freescale.com>2014-02-28 15:58:00 +0800
committerBrian Norris <computersforpeace@gmail.com>2014-04-14 11:22:58 -0700
commit1ef391084b22d75110171d34f565f57e4be9b2a6 (patch)
tree527d90e9cd4e05959fbb20b567c970f9723be49f /Documentation/mtd
parentb199489d37b21c5e294f95bf265acc5dde3fc3a2 (diff)
downloadlinux-1ef391084b22d75110171d34f565f57e4be9b2a6.tar.bz2
Documentation: add the document for the SPI NOR framework
This patch adds the document for the SPI NOR framework. Signed-off-by: Huang Shijie <b32955@freescale.com> Acked-by: Marek Vasut <marex@denx.de> Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Diffstat (limited to 'Documentation/mtd')
-rw-r--r--Documentation/mtd/spi-nor.txt59
1 files changed, 59 insertions, 0 deletions
diff --git a/Documentation/mtd/spi-nor.txt b/Documentation/mtd/spi-nor.txt
new file mode 100644
index 000000000000..294d5b06f892
--- /dev/null
+++ b/Documentation/mtd/spi-nor.txt
@@ -0,0 +1,59 @@
+ SPI NOR framework
+ ============================================
+
+Part I - why we need this framework?
+-------------------------------------
+
+The SPI bus controller only deals with the byte stream.
+Some controller does not works like a SPI bus controller, it works
+like a SPI NOR controller instead, such as the Freescale's QuadSPI controller.
+
+The Freescale's QuadSPI controller should know the NOR commands to
+find the right LUT sequence. Unfortunately, the old code can not meet
+this requirement.
+
+Part II - How does the framework work?
+-------------------------------------
+
+This framework just adds a new layer between the MTD and the SPI bus driver.
+With this new layer, the SPI NOR controller driver does not depend on the
+m25p80 code anymore.
+
+ Before this framework, the layer is like:
+
+ MTD
+ ------------------------
+ m25p80
+ ------------------------
+ SPI bus driver
+ ------------------------
+ SPI NOR chip
+
+ After this framework, the layer is like:
+ MTD
+ ------------------------
+ SPI NOR framework
+ ------------------------
+ m25p80
+ ------------------------
+ SPI bus driver
+ ------------------------
+ SPI NOR chip
+
+ With the SPI NOR controller driver(Freescale QuadSPI), it looks like:
+ MTD
+ ------------------------
+ SPI NOR framework
+ ------------------------
+ fsl-quadSPI
+ ------------------------
+ SPI NOR chip
+
+Part III - How can the drivers use the framework
+-------------------------------------
+
+The main API is the spi_nor_scan(). Before you call the hook, you should
+initialize the necessary fields for spi_nor{}.
+Please see the drivers/mtd/spi-nor/spi-nor.c for detail.
+Please also reference to the fsl-quadspi.c when you want to write a new driver
+for a SPI NOR controller.