arm,pl172.txt 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. * Device tree bindings for ARM PL172/PL175/PL176 MultiPort Memory Controller
  2. Required properties:
  3. - compatible: Must be "arm,primecell" and exactly one from
  4. "arm,pl172", "arm,pl175" or "arm,pl176".
  5. - reg: Must contains offset/length value for controller.
  6. - #address-cells: Must be 2. The partition number has to be encoded in the
  7. first address cell and it may accept values 0..N-1
  8. (N - total number of partitions). The second cell is the
  9. offset into the partition.
  10. - #size-cells: Must be set to 1.
  11. - ranges: Must contain one or more chip select memory regions.
  12. - clocks: Must contain references to controller clocks.
  13. - clock-names: Must contain "mpmcclk" and "apb_pclk".
  14. - clock-ranges: Empty property indicating that child nodes can inherit
  15. named clocks. Required only if clock tree data present
  16. in device tree.
  17. See clock-bindings.txt
  18. Child chip-select (cs) nodes contain the memory devices nodes connected to
  19. such as NOR (e.g. cfi-flash) and NAND.
  20. Required child cs node properties:
  21. - #address-cells: Must be 2.
  22. - #size-cells: Must be 1.
  23. - ranges: Empty property indicating that child nodes can inherit
  24. memory layout.
  25. - clock-ranges: Empty property indicating that child nodes can inherit
  26. named clocks. Required only if clock tree data present
  27. in device tree.
  28. - mpmc,cs: Chip select number. Indicates to the pl0172 driver
  29. which chipselect is used for accessing the memory.
  30. - mpmc,memory-width: Width of the chip select memory. Must be equal to
  31. either 8, 16 or 32.
  32. Optional child cs node config properties:
  33. - mpmc,async-page-mode: Enable asynchronous page mode.
  34. - mpmc,cs-active-high: Set chip select polarity to active high.
  35. - mpmc,byte-lane-low: Set byte lane state to low.
  36. - mpmc,extended-wait: Enable extended wait.
  37. - mpmc,buffer-enable: Enable write buffer, option is not supported by
  38. PL175 and PL176 controllers.
  39. - mpmc,write-protect: Enable write protect.
  40. Optional child cs node timing properties:
  41. - mpmc,write-enable-delay: Delay from chip select assertion to write
  42. enable (WE signal) in nano seconds.
  43. - mpmc,output-enable-delay: Delay from chip select assertion to output
  44. enable (OE signal) in nano seconds.
  45. - mpmc,write-access-delay: Delay from chip select assertion to write
  46. access in nano seconds.
  47. - mpmc,read-access-delay: Delay from chip select assertion to read
  48. access in nano seconds.
  49. - mpmc,page-mode-read-delay: Delay for asynchronous page mode sequential
  50. accesses in nano seconds.
  51. - mpmc,turn-round-delay: Delay between access to memory banks in nano
  52. seconds.
  53. If any of the above timing parameters are absent, current parameter value will
  54. be taken from the corresponding HW reg.
  55. Example for pl172 with nor flash on chip select 0 shown below.
  56. emc: memory-controller@40005000 {
  57. compatible = "arm,pl172", "arm,primecell";
  58. reg = <0x40005000 0x1000>;
  59. clocks = <&ccu1 CLK_CPU_EMCDIV>, <&ccu1 CLK_CPU_EMC>;
  60. clock-names = "mpmcclk", "apb_pclk";
  61. #address-cells = <2>;
  62. #size-cells = <1>;
  63. ranges = <0 0 0x1c000000 0x1000000
  64. 1 0 0x1d000000 0x1000000
  65. 2 0 0x1e000000 0x1000000
  66. 3 0 0x1f000000 0x1000000>;
  67. cs0 {
  68. #address-cells = <2>;
  69. #size-cells = <1>;
  70. ranges;
  71. mpmc,cs = <0>;
  72. mpmc,memory-width = <16>;
  73. mpmc,byte-lane-low;
  74. mpmc,write-enable-delay = <0>;
  75. mpmc,output-enable-delay = <0>;
  76. mpmc,read-enable-delay = <70>;
  77. mpmc,page-mode-read-delay = <70>;
  78. flash@0,0 {
  79. compatible = "sst,sst39vf320", "cfi-flash";
  80. reg = <0 0 0x400000>;
  81. bank-width = <2>;
  82. #address-cells = <1>;
  83. #size-cells = <1>;
  84. partition@0 {
  85. label = "data";
  86. reg = <0 0x400000>;
  87. };
  88. };
  89. };
  90. };