Commit | Line | Data |
---|---|---|
1ef39108 HS |
1 | SPI NOR framework |
2 | ============================================ | |
3 | ||
4 | Part I - why we need this framework? | |
5 | ------------------------------------- | |
6 | ||
7 | The SPI bus controller only deals with the byte stream. | |
8 | Some controller does not works like a SPI bus controller, it works | |
9 | like a SPI NOR controller instead, such as the Freescale's QuadSPI controller. | |
10 | ||
11 | The Freescale's QuadSPI controller should know the NOR commands to | |
12 | find the right LUT sequence. Unfortunately, the old code can not meet | |
13 | this requirement. | |
14 | ||
15 | Part II - How does the framework work? | |
16 | ------------------------------------- | |
17 | ||
18 | This framework just adds a new layer between the MTD and the SPI bus driver. | |
19 | With this new layer, the SPI NOR controller driver does not depend on the | |
20 | m25p80 code anymore. | |
21 | ||
22 | Before this framework, the layer is like: | |
23 | ||
24 | MTD | |
25 | ------------------------ | |
26 | m25p80 | |
27 | ------------------------ | |
28 | SPI bus driver | |
29 | ------------------------ | |
30 | SPI NOR chip | |
31 | ||
32 | After this framework, the layer is like: | |
33 | MTD | |
34 | ------------------------ | |
35 | SPI NOR framework | |
36 | ------------------------ | |
37 | m25p80 | |
38 | ------------------------ | |
39 | SPI bus driver | |
40 | ------------------------ | |
41 | SPI NOR chip | |
42 | ||
43 | With the SPI NOR controller driver(Freescale QuadSPI), it looks like: | |
44 | MTD | |
45 | ------------------------ | |
46 | SPI NOR framework | |
47 | ------------------------ | |
48 | fsl-quadSPI | |
49 | ------------------------ | |
50 | SPI NOR chip | |
51 | ||
52 | Part III - How can the drivers use the framework | |
53 | ------------------------------------- | |
54 | ||
55 | The main API is the spi_nor_scan(). Before you call the hook, you should | |
56 | initialize the necessary fields for spi_nor{}. | |
57 | Please see the drivers/mtd/spi-nor/spi-nor.c for detail. | |
58 | Please also reference to the fsl-quadspi.c when you want to write a new driver | |
59 | for a SPI NOR controller. |