blob: df338cb5059c53993e31fa7a3447306f2018d9ff [file] [log] [blame]
Daniel Mackbc6b1e72012-12-14 11:36:44 +01001Device 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
Mark Jackson496c8a02013-04-19 21:08:28 +010032 - 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
Philip Avinash97c794a2013-01-18 10:27:46 +053039 - elm_id: Specifies elm device node. This is required to support BCH
40 error correction using ELM module.
41
Daniel Mackbc6b1e72012-12-14 11:36:44 +010042For 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 */
Philip Avinash97c794a2013-01-18 10:27:46 +053059 elm_id = <&elm>;
Daniel Mackbc6b1e72012-12-14 11:36:44 +010060
61 nand@0,0 {
62 reg = <0 0 0>; /* CS0, offset 0 */
63 nand-bus-width = <16>;
64 ti,nand-ecc-opt = "bch8";
Mark Jackson496c8a02013-04-19 21:08:28 +010065 ti,nand-xfer-type = "polled";
Daniel Mackbc6b1e72012-12-14 11:36:44 +010066
Jon Hunterc059e022013-04-09 11:37:40 -050067 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>;
Daniel Mackbc6b1e72012-12-14 11:36:44 +010081
82 #address-cells = <1>;
83 #size-cells = <1>;
84
85 /* partitions go here */
86 };
87 };
88