-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'nand/for-4.16' of git://git.infradead.org/linux-mtd into m…
…td/next Pull NAND changes from Boris Brezillon: " Core changes: * Fix NAND_CMD_NONE handling in nand_command[_lp]() hooks * Introduce the ->exec_op() infrastructure * Rework NAND buffers handling * Fix ECC requirements for K9F4G08U0D * Fix nand_do_read_oob() to return the number of bitflips * Mark K9F1G08U0E as not supporting subpage writes Driver changes: * MTK: Rework the driver to support new IP versions * OMAP OneNAND: Full rework to use new APIs (libgpio, dmaengine) and fix DT support * Marvell: Add a new driver to replace the pxa3xx one "
- Loading branch information
Showing
64 changed files
with
6,473 additions
and
1,924 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
Marvell NAND Flash Controller (NFC) | ||
|
||
Required properties: | ||
- compatible: can be one of the following: | ||
* "marvell,armada-8k-nand-controller" | ||
* "marvell,armada370-nand-controller" | ||
* "marvell,pxa3xx-nand-controller" | ||
* "marvell,armada-8k-nand" (deprecated) | ||
* "marvell,armada370-nand" (deprecated) | ||
* "marvell,pxa3xx-nand" (deprecated) | ||
Compatibles marked deprecated support only the old bindings described | ||
at the bottom. | ||
- reg: NAND flash controller memory area. | ||
- #address-cells: shall be set to 1. Encode the NAND CS. | ||
- #size-cells: shall be set to 0. | ||
- interrupts: shall define the NAND controller interrupt. | ||
- clocks: shall reference the NAND controller clock. | ||
- marvell,system-controller: Set to retrieve the syscon node that handles | ||
NAND controller related registers (only required with the | ||
"marvell,armada-8k-nand[-controller]" compatibles). | ||
|
||
Optional properties: | ||
- label: see partition.txt. New platforms shall omit this property. | ||
- dmas: shall reference DMA channel associated to the NAND controller. | ||
This property is only used with "marvell,pxa3xx-nand[-controller]" | ||
compatible strings. | ||
- dma-names: shall be "rxtx". | ||
This property is only used with "marvell,pxa3xx-nand[-controller]" | ||
compatible strings. | ||
|
||
Optional children nodes: | ||
Children nodes represent the available NAND chips. | ||
|
||
Required properties: | ||
- reg: shall contain the native Chip Select ids (0-3). | ||
- nand-rb: see nand.txt (0-1). | ||
|
||
Optional properties: | ||
- marvell,nand-keep-config: orders the driver not to take the timings | ||
from the core and leaving them completely untouched. Bootloader | ||
timings will then be used. | ||
- label: MTD name. | ||
- nand-on-flash-bbt: see nand.txt. | ||
- nand-ecc-mode: see nand.txt. Will use hardware ECC if not specified. | ||
- nand-ecc-algo: see nand.txt. This property is essentially useful when | ||
not using hardware ECC. Howerver, it may be added when using hardware | ||
ECC for clarification but will be ignored by the driver because ECC | ||
mode is chosen depending on the page size and the strength required by | ||
the NAND chip. This value may be overwritten with nand-ecc-strength | ||
property. | ||
- nand-ecc-strength: see nand.txt. | ||
- nand-ecc-step-size: see nand.txt. Marvell's NAND flash controller does | ||
use fixed strength (1-bit for Hamming, 16-bit for BCH), so the actual | ||
step size will shrink or grow in order to fit the required strength. | ||
Step sizes are not completely random for all and follow certain | ||
patterns described in AN-379, "Marvell SoC NFC ECC". | ||
|
||
See Documentation/devicetree/bindings/mtd/nand.txt for more details on | ||
generic bindings. | ||
|
||
|
||
Example: | ||
nand_controller: nand-controller@d0000 { | ||
compatible = "marvell,armada370-nand-controller"; | ||
reg = <0xd0000 0x54>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; | ||
clocks = <&coredivclk 0>; | ||
|
||
nand@0 { | ||
reg = <0>; | ||
label = "main-storage"; | ||
nand-rb = <0>; | ||
nand-ecc-mode = "hw"; | ||
marvell,nand-keep-config; | ||
nand-on-flash-bbt; | ||
nand-ecc-strength = <4>; | ||
nand-ecc-step-size = <512>; | ||
|
||
partitions { | ||
compatible = "fixed-partitions"; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
|
||
partition@0 { | ||
label = "Rootfs"; | ||
reg = <0x00000000 0x40000000>; | ||
}; | ||
}; | ||
}; | ||
}; | ||
|
||
|
||
Note on legacy bindings: One can find, in not-updated device trees, | ||
bindings slightly different than described above with other properties | ||
described below as well as the partitions node at the root of a so | ||
called "nand" node (without clear controller/chip separation). | ||
|
||
Legacy properties: | ||
- marvell,nand-enable-arbiter: To enable the arbiter, all boards blindly | ||
used it, this bit was set by the bootloader for many boards and even if | ||
it is marked reserved in several datasheets, it might be needed to set | ||
it (otherwise it is harmless) so whether or not this property is set, | ||
the bit is selected by the driver. | ||
- num-cs: Number of chip-select lines to use, all boards blindly set 1 | ||
to this and for a reason, other values would have failed. The value of | ||
this property is ignored. | ||
|
||
Example: | ||
|
||
nand0: nand@43100000 { | ||
compatible = "marvell,pxa3xx-nand"; | ||
reg = <0x43100000 90>; | ||
interrupts = <45>; | ||
dmas = <&pdma 97 0>; | ||
dma-names = "rxtx"; | ||
#address-cells = <1>; | ||
marvell,nand-keep-config; | ||
marvell,nand-enable-arbiter; | ||
num-cs = <1>; | ||
/* Partitions (optional) */ | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.