18c2ecf20Sopenharmony_ciGPIO assisted NAND flash
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciThe GPIO assisted NAND flash uses a memory mapped interface to
48c2ecf20Sopenharmony_ciread/write the NAND commands and data and GPIO pins for the control
58c2ecf20Sopenharmony_cisignals.
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ciRequired properties:
88c2ecf20Sopenharmony_ci- compatible : "gpio-control-nand"
98c2ecf20Sopenharmony_ci- reg : should specify localbus chip select and size used for the chip.  The
108c2ecf20Sopenharmony_ci  resource describes the data bus connected to the NAND flash and all accesses
118c2ecf20Sopenharmony_ci  are made in native endianness.
128c2ecf20Sopenharmony_ci- #address-cells, #size-cells : Must be present if the device has sub-nodes
138c2ecf20Sopenharmony_ci  representing partitions.
148c2ecf20Sopenharmony_ci- gpios : Specifies the GPIO pins to control the NAND device.  The order of
158c2ecf20Sopenharmony_ci  GPIO references is:  RDY, nCE, ALE, CLE, and nWP. nCE and nWP are optional.
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ciOptional properties:
188c2ecf20Sopenharmony_ci- bank-width : Width (in bytes) of the device.  If not present, the width
198c2ecf20Sopenharmony_ci  defaults to 1 byte.
208c2ecf20Sopenharmony_ci- chip-delay : chip dependent delay for transferring data from array to
218c2ecf20Sopenharmony_ci  read registers (tR).  If not present then a default of 20us is used.
228c2ecf20Sopenharmony_ci- gpio-control-nand,io-sync-reg : A 64-bit physical address for a read
238c2ecf20Sopenharmony_ci  location used to guard against bus reordering with regards to accesses to
248c2ecf20Sopenharmony_ci  the GPIO's and the NAND flash data bus.  If present, then after changing
258c2ecf20Sopenharmony_ci  GPIO state and before and after command byte writes, this register will be
268c2ecf20Sopenharmony_ci  read to ensure that the GPIO accesses have completed.
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ciThe device tree may optionally contain sub-nodes describing partitions of the
298c2ecf20Sopenharmony_ciaddress space. See partition.txt for more detail.
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ciExamples:
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_cigpio-nand@1,0 {
348c2ecf20Sopenharmony_ci	compatible = "gpio-control-nand";
358c2ecf20Sopenharmony_ci	reg = <1 0x0000 0x2>;
368c2ecf20Sopenharmony_ci	#address-cells = <1>;
378c2ecf20Sopenharmony_ci	#size-cells = <1>;
388c2ecf20Sopenharmony_ci	gpios = <&banka 1 0>,	/* RDY */
398c2ecf20Sopenharmony_ci		<0>, 		/* nCE */
408c2ecf20Sopenharmony_ci		<&banka 3 0>, 	/* ALE */
418c2ecf20Sopenharmony_ci		<&banka 4 0>, 	/* CLE */
428c2ecf20Sopenharmony_ci		<0>;		/* nWP */
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci	partition@0 {
458c2ecf20Sopenharmony_ci	...
468c2ecf20Sopenharmony_ci	};
478c2ecf20Sopenharmony_ci};
48