GPIO assisted NAND flash

The GPIO assisted NAND flash uses a memory mapped interface to
read/write the NAND commands and data and GPIO pins for the control
signals.

Required properties:
- compatible : "gpio-control-nand"
- reg : should specify localbus chip select and size used for the chip.  The
  resource describes the data bus connected to the NAND flash and all accesses
  are made in native endianness.
- #address-cells, #size-cells : Must be present if the device has sub-nodes
  representing partitions.
- gpios : Specifies the GPIO pins to control the NAND device.  The order of
  GPIO references is:  RDY, nCE, ALE, CLE, and nWP. nCE and nWP are optional.

Optional properties:
- bank-width : Width (in bytes) of the device.  If not present, the width
  defaults to 1 byte.
- chip-delay : chip dependent delay for transferring data from array to
  read registers (tR).  If not present then a default of 20us is used.
- gpio-control-nand,io-sync-reg : A 64-bit physical address for a read
  location used to guard against bus reordering with regards to accesses to
  the GPIO's and the NAND flash data bus.  If present, then after changing
  GPIO state and before and after command byte writes, this register will be
  read to ensure that the GPIO accesses have completed.

The device tree may optionally contain sub-nodes describing partitions of the
address space. See mtd.yaml for more detail.

Examples:

gpio-nand@1,0 {
	compatible = "gpio-control-nand";
	reg = <1 0x0000 0x2>;
	#address-cells = <1>;
	#size-cells = <1>;
	gpios = <&banka 1 0>,	/* RDY */
		<0>, 		/* nCE */
		<&banka 3 0>, 	/* ALE */
		<&banka 4 0>, 	/* CLE */
		<0>;		/* nWP */

	partition@0 {
	...
	};
};
