Mediatek SoC GPIO controller bindings

The IP core used inside these SoCs has 3 banks of 32 GPIOs each.
The registers of all the banks are interwoven inside one single IO range.
We load one GPIO controller instance per bank. To make this possible
we support 2 types of nodes. The parent node defines the memory I/O range and
has 3 children each describing a single bank. Also the GPIO controller can receive
interrupts on any of the GPIOs, either edge or level. It then interrupts the CPU
using GIC INT12.

Required properties for the top level node:
- compatible:
  - "mediatek,mt7621-gpio" for Mediatek controllers
- reg : Physical base address and length of the controller's registers
- interrupt-parent : phandle of the parent interrupt controller.
- interrupts : Interrupt specifier for the controllers interrupt.
- interrupt-controller : Mark the device node as an interrupt controller.
- #interrupt-cells : Should be 2. The first cell defines the interrupt number.
   The second cell bits[3:0] is used to specify trigger type as follows:
	- 1 = low-to-high edge triggered.
	- 2 = high-to-low edge triggered.
	- 4 = active high level-sensitive.
	- 8 = active low level-sensitive.


Required properties for the GPIO bank node:
- compatible:
  - "mediatek,mt7621-gpio-bank" for Mediatek banks
- #gpio-cells : Should be two. The first cell is the GPIO pin number and the
   second cell specifies GPIO flags, as defined in <dt-bindings/gpio/gpio.h>.
   Only the GPIO_ACTIVE_HIGH and GPIO_ACTIVE_LOW flags are supported.
- gpio-controller : Marks the device node as a GPIO controller.
- reg : The id of the bank that the node describes.

Example:
	gpio@600 {
		#address-cells = <1>;
		#size-cells = <0>;

		compatible = "mediatek,mt7621-gpio";
		reg = <0x600 0x100>;

		interrupt-parent = <&gic>;
		interrupts = <GIC_SHARED 12 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-controller;
		#interrupt-cells = <2>;

		gpio0: bank@0 {
			reg = <0>;
			compatible = "mediatek,mt7621-gpio-bank";
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpio1: bank@1 {
			reg = <1>;
			compatible = "mediatek,mt7621-gpio-bank";
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpio2: bank@2 {
			reg = <2>;
			compatible = "mediatek,mt7621-gpio-bank";
			gpio-controller;
			#gpio-cells = <2>;
		};
	};
