From: Brian Norris <computersforpeace@gmail.com>
To: <linux-mtd@lists.infradead.org>
Cc: Marek Vasut <marex@denx.de>, Huang Shijie <b32955@freescale.com>,
Brian Norris <computersforpeace@gmail.com>,
Lee Jones <lee.jones@linaro.org>
Subject: [PATCH v3 04/11] Documentation: spi-nor: rewrite some portions
Date: Fri, 11 Apr 2014 11:59:59 -0700 [thread overview]
Message-ID: <1397242806-7575-5-git-send-email-computersforpeace@gmail.com> (raw)
In-Reply-To: <1397242806-7575-1-git-send-email-computersforpeace@gmail.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Reviewed-by: Marek Vasut <marex@denx.de>
---
v3: no change
v2: a few formatting, readability edits
Documentation/mtd/spi-nor.txt | 37 ++++++++++++++++++++-----------------
1 file 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 @@
SPI NOR framework
============================================
-Part I - why we need this framework?
--------------------------------------
+Part I - Why do 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.
+SPI bus controllers (drivers/spi/) only deal with streams of bytes; the bus
+controller operates agnostic of the specific device attached. However, some
+controllers (such as Freescale's QuadSPI controller) cannot easily handle
+arbitrary streams of bytes, but rather are designed specifically for SPI NOR.
-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.
+In particular, Freescale's QuadSPI controller must know the NOR commands to
+find the right LUT sequence. Unfortunately, the SPI subsystem has no notion of
+opcodes, addresses, or data payloads; a SPI controller simply knows to send or
+receive bytes (Tx and Rx). Therefore, we must define a new layering scheme under
+which the controller driver is aware of the opcodes, addressing, and other
+details of the SPI NOR protocol.
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
@@ -40,7 +44,7 @@ m25p80 code anymore.
------------------------
SPI NOR chip
- With the SPI NOR controller driver(Freescale QuadSPI), it looks like:
+ With the SPI NOR controller driver (Freescale QuadSPI), it looks like:
MTD
------------------------
SPI NOR framework
@@ -49,11 +53,10 @@ m25p80 code anymore.
------------------------
SPI NOR chip
-Part III - How can the drivers use the framework
--------------------------------------
+Part III - How can 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.
+The main API is spi_nor_scan(). Before you call the hook, a driver should
+initialize the necessary fields for spi_nor{}. Please see
+drivers/mtd/spi-nor/spi-nor.c for detail. Please also refer to fsl-quadspi.c
+when you want to write a new driver for a SPI NOR controller.
--
1.8.3.2
next prev parent reply other threads:[~2014-04-11 19:00 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-11 18:59 [PATCH v3 00/11] mtd: spi-nor: misc. updates, de-duplication Brian Norris
2014-04-11 18:59 ` [PATCH v3 01/11] mtd: spi-nor: drop \t after #define Brian Norris
2014-04-11 18:59 ` [PATCH v3 02/11] mtd: spi-nor: re-name OPCODE_* to SPINOR_OP_* Brian Norris
2014-04-11 18:59 ` [PATCH v3 03/11] mtd: spi-nor: unify read opcode variants with ST SPI FSM Brian Norris
2014-04-11 18:59 ` Brian Norris [this message]
2014-04-11 19:00 ` [PATCH v3 05/11] mtd: spi-nor: shorten Kconfig naming Brian Norris
2014-04-11 19:00 ` [PATCH v3 06/11] mtd: st_spi_fsm: fixup Kconfig dependency Brian Norris
2014-04-11 19:00 ` [PATCH v3 07/11] mtd: st_spi_fsm: kill duplicate CMD definitions Brian Norris
2014-04-11 19:00 ` [PATCH v3 08/11] mtd: st_spi_fsm: replace FLACH_CMD_* with SPINOR_OP_* Brian Norris
2014-04-11 19:00 ` [PATCH v3 09/11] mtd: st_spi_fsm: begin using spi-nor.h opcodes Brian Norris
2014-04-11 19:00 ` [PATCH v3 10/11] mtd: spi-nor: allow to be built as module Brian Norris
2014-04-11 19:00 ` [PATCH v3 11/11] mtd: fsl-quadspi: fix __iomem annotations, accessors Brian Norris
2014-04-12 4:57 ` Huang Shijie
2014-04-12 6:13 ` Brian Norris
2014-04-12 13:49 ` Huang Shijie
2014-04-14 18:21 ` [PATCH v3 00/11] mtd: spi-nor: misc. updates, de-duplication Brian Norris
2014-04-14 18:26 ` Marek Vasut
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1397242806-7575-5-git-send-email-computersforpeace@gmail.com \
--to=computersforpeace@gmail.com \
--cc=b32955@freescale.com \
--cc=lee.jones@linaro.org \
--cc=linux-mtd@lists.infradead.org \
--cc=marex@denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.