18c2ecf20Sopenharmony_ciDevice tree bindings for Texas instruments Davinci/Keystone NAND controller
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciThis file provides information, what the device node for the davinci/keystone
48c2ecf20Sopenharmony_ciNAND interface contains.
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ciDocumentation:
78c2ecf20Sopenharmony_ciDavinci DM646x - https://www.ti.com/lit/ug/sprueq7c/sprueq7c.pdf
88c2ecf20Sopenharmony_ciKestone - https://www.ti.com/lit/ug/sprugz3a/sprugz3a.pdf
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ciRequired properties:
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci- compatible:			"ti,davinci-nand"
138c2ecf20Sopenharmony_ci				"ti,keystone-nand"
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci- reg:				Contains 2 offset/length values:
168c2ecf20Sopenharmony_ci				- offset and length for the access window.
178c2ecf20Sopenharmony_ci				- offset and length for accessing the AEMIF
188c2ecf20Sopenharmony_ci				control registers.
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci- ti,davinci-chipselect:	number of chipselect. Indicates on the
218c2ecf20Sopenharmony_ci				davinci_nand driver which chipselect is used
228c2ecf20Sopenharmony_ci				for accessing the nand.
238c2ecf20Sopenharmony_ci				Can be in the range [0-3].
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ciRecommended properties :
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci- ti,davinci-mask-ale:		mask for ALE. Needed for executing address
288c2ecf20Sopenharmony_ci				phase. These offset will be added to the base
298c2ecf20Sopenharmony_ci				address for the chip select space the NAND Flash
308c2ecf20Sopenharmony_ci				device is connected to.
318c2ecf20Sopenharmony_ci				If not set equal to 0x08.
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ci- ti,davinci-mask-cle:		mask for CLE. Needed for executing command
348c2ecf20Sopenharmony_ci				phase. These offset will be added to the base
358c2ecf20Sopenharmony_ci				address for the chip select space the NAND Flash
368c2ecf20Sopenharmony_ci				device is connected to.
378c2ecf20Sopenharmony_ci				If not set equal to 0x10.
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci- ti,davinci-mask-chipsel:	mask for chipselect address. Needed to mask
408c2ecf20Sopenharmony_ci				addresses for given chipselect.
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci- nand-ecc-mode:		operation mode of the NAND ecc mode. ECC mode
438c2ecf20Sopenharmony_ci				valid values for davinci driver:
448c2ecf20Sopenharmony_ci				- "none"
458c2ecf20Sopenharmony_ci				- "soft"
468c2ecf20Sopenharmony_ci				- "hw"
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci- ti,davinci-ecc-bits:		used ECC bits, currently supported 1 or 4.
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci- nand-bus-width:		buswidth 8 or 16. If not present 8.
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci- nand-on-flash-bbt:		use flash based bad block table support. OOB
538c2ecf20Sopenharmony_ci				identifier is saved in OOB area. If not present
548c2ecf20Sopenharmony_ci				false.
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ciDeprecated properties:
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci- ti,davinci-ecc-mode:		operation mode of the NAND ecc mode. ECC mode
598c2ecf20Sopenharmony_ci				valid values for davinci driver:
608c2ecf20Sopenharmony_ci				- "none"
618c2ecf20Sopenharmony_ci				- "soft"
628c2ecf20Sopenharmony_ci				- "hw"
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci- ti,davinci-nand-buswidth:	buswidth 8 or 16. If not present 8.
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci- ti,davinci-nand-use-bbt:	use flash based bad block table support. OOB
678c2ecf20Sopenharmony_ci				identifier is saved in OOB area. If not present
688c2ecf20Sopenharmony_ci				false.
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ciNand device bindings may contain additional sub-nodes describing partitions of
718c2ecf20Sopenharmony_cithe address space. See partition.txt for more detail. The NAND Flash timing
728c2ecf20Sopenharmony_civalues must be programmed in the chip select’s node of AEMIF
738c2ecf20Sopenharmony_cimemory-controller (see Documentation/devicetree/bindings/memory-controllers/
748c2ecf20Sopenharmony_cidavinci-aemif.txt).
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ciExample(da850 EVM ):
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_cinand_cs3@62000000 {
798c2ecf20Sopenharmony_ci	compatible = "ti,davinci-nand";
808c2ecf20Sopenharmony_ci	reg = <0x62000000 0x807ff
818c2ecf20Sopenharmony_ci	       0x68000000 0x8000>;
828c2ecf20Sopenharmony_ci	ti,davinci-chipselect = <1>;
838c2ecf20Sopenharmony_ci	ti,davinci-mask-ale = <0>;
848c2ecf20Sopenharmony_ci	ti,davinci-mask-cle = <0>;
858c2ecf20Sopenharmony_ci	ti,davinci-mask-chipsel = <0>;
868c2ecf20Sopenharmony_ci	nand-ecc-mode = "hw";
878c2ecf20Sopenharmony_ci	ti,davinci-ecc-bits = <4>;
888c2ecf20Sopenharmony_ci	nand-on-flash-bbt;
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ci	partition@180000 {
918c2ecf20Sopenharmony_ci		label = "ubifs";
928c2ecf20Sopenharmony_ci		reg = <0x180000 0x7e80000>;
938c2ecf20Sopenharmony_ci	};
948c2ecf20Sopenharmony_ci};
95