linux/Documentation/devicetree/bindings/mtd/gpmc-nand.txt
<<
>>
Prefs
   1Device tree bindings for GPMC connected NANDs
   2
   3GPMC connected NAND (found on OMAP boards) are represented as child nodes of
   4the GPMC controller with a name of "nand".
   5
   6All timing relevant properties as well as generic gpmc child properties are
   7explained in a separate documents - please refer to
   8Documentation/devicetree/bindings/bus/ti-gpmc.txt
   9
  10For NAND specific properties such as ECC modes or bus width, please refer to
  11Documentation/devicetree/bindings/mtd/nand.txt
  12
  13
  14Required properties:
  15
  16 - reg:         The CS line the peripheral is connected to
  17
  18Optional properties:
  19
  20 - nand-bus-width:              Set this numeric value to 16 if the hardware
  21                                is wired that way. If not specified, a bus
  22                                width of 8 is assumed.
  23
  24 - ti,nand-ecc-opt:             A string setting the ECC layout to use. One of:
  25
  26                "sw"            Software method (default)
  27                "hw"            Hardware method
  28                "hw-romcode"    gpmc hamming mode method & romcode layout
  29                "bch4"          4-bit BCH ecc code
  30                "bch8"          8-bit BCH ecc code
  31
  32 - ti,nand-xfer-type:           A string setting the data transfer type. One of:
  33
  34                "prefetch-polled"       Prefetch polled mode (default)
  35                "polled"                Polled mode, without prefetch
  36                "prefetch-dma"          Prefetch enabled sDMA mode
  37                "prefetch-irq"          Prefetch enabled irq mode
  38
  39 - elm_id:      Specifies elm device node. This is required to support BCH
  40                error correction using ELM module.
  41
  42For inline partiton table parsing (optional):
  43
  44 - #address-cells: should be set to 1
  45 - #size-cells: should be set to 1
  46
  47Example for an AM33xx board:
  48
  49        gpmc: gpmc@50000000 {
  50                compatible = "ti,am3352-gpmc";
  51                ti,hwmods = "gpmc";
  52                reg = <0x50000000 0x1000000>;
  53                interrupts = <100>;
  54                gpmc,num-cs = <8>;
  55                gpmc,num-waitpins = <2>;
  56                #address-cells = <2>;
  57                #size-cells = <1>;
  58                ranges = <0 0 0x08000000 0x2000>;       /* CS0: NAND */
  59                elm_id = <&elm>;
  60
  61                nand@0,0 {
  62                        reg = <0 0 0>; /* CS0, offset 0 */
  63                        nand-bus-width = <16>;
  64                        ti,nand-ecc-opt = "bch8";
  65                        ti,nand-xfer-type = "polled";
  66
  67                        gpmc,sync-clk-ps = <0>;
  68                        gpmc,cs-on-ns = <0>;
  69                        gpmc,cs-rd-off-ns = <44>;
  70                        gpmc,cs-wr-off-ns = <44>;
  71                        gpmc,adv-on-ns = <6>;
  72                        gpmc,adv-rd-off-ns = <34>;
  73                        gpmc,adv-wr-off-ns = <44>;
  74                        gpmc,we-off-ns = <40>;
  75                        gpmc,oe-off-ns = <54>;
  76                        gpmc,access-ns = <64>;
  77                        gpmc,rd-cycle-ns = <82>;
  78                        gpmc,wr-cycle-ns = <82>;
  79                        gpmc,wr-access-ns = <40>;
  80                        gpmc,wr-data-mux-bus-ns = <0>;
  81
  82                        #address-cells = <1>;
  83                        #size-cells = <1>;
  84
  85                        /* partitions go here */
  86                };
  87        };
  88
  89