fsmc-nand.txt 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. ST Microelectronics Flexible Static Memory Controller (FSMC)
  2. NAND Interface
  3. Required properties:
  4. - compatible : "st,spear600-fsmc-nand", "stericsson,fsmc-nand"
  5. - reg : Address range of the mtd chip
  6. - reg-names: Should contain the reg names "fsmc_regs", "nand_data", "nand_addr" and "nand_cmd"
  7. Optional properties:
  8. - bank-width : Width (in bytes) of the device. If not present, the width
  9. defaults to 1 byte
  10. - nand-skip-bbtscan: Indicates the BBT scanning should be skipped
  11. - timings: array of 6 bytes for NAND timings. The meanings of these bytes
  12. are:
  13. byte 0 TCLR : CLE to RE delay in number of AHB clock cycles, only 4 bits
  14. are valid. Zero means one clockcycle, 15 means 16 clock
  15. cycles.
  16. byte 1 TAR : ALE to RE delay, 4 bits are valid. Same format as TCLR.
  17. byte 2 THIZ : number of HCLK clock cycles during which the data bus is
  18. kept in Hi-Z (tristate) after the start of a write access.
  19. Only valid for write transactions. Zero means zero cycles,
  20. 255 means 255 cycles.
  21. byte 3 THOLD : number of HCLK clock cycles to hold the address (and data
  22. when writing) after the command deassertation. Zero means
  23. one cycle, 255 means 256 cycles.
  24. byte 4 TWAIT : number of HCLK clock cycles to assert the command to the
  25. NAND flash in response to SMWAITn. Zero means 1 cycle,
  26. 255 means 256 cycles.
  27. byte 5 TSET : number of HCLK clock cycles to assert the address before the
  28. command is asserted. Zero means one cycle, 255 means 256
  29. cycles.
  30. - bank: default NAND bank to use (0-3 are valid, 0 is the default).
  31. - nand-ecc-mode : see nand.txt
  32. - nand-ecc-strength : see nand.txt
  33. - nand-ecc-step-size : see nand.txt
  34. Can support 1-bit HW ECC (default) or if stronger correction is required,
  35. software-based BCH.
  36. Example:
  37. fsmc: flash@d1800000 {
  38. compatible = "st,spear600-fsmc-nand";
  39. #address-cells = <1>;
  40. #size-cells = <1>;
  41. reg = <0xd1800000 0x1000 /* FSMC Register */
  42. 0xd2000000 0x0010 /* NAND Base DATA */
  43. 0xd2020000 0x0010 /* NAND Base ADDR */
  44. 0xd2010000 0x0010>; /* NAND Base CMD */
  45. reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd";
  46. bank-width = <1>;
  47. nand-skip-bbtscan;
  48. timings = /bits/ 8 <0 0 0 2 3 0>;
  49. bank = <1>;
  50. partition@0 {
  51. ...
  52. };
  53. };