Broadcom STB "UPG GIO" GPIO controller

The controller's registers are organized as sets of eight 32-bit
registers with each set controlling a bank of up to 32 pins.  A single
interrupt is shared for all of the banks handled by the controller.

Required properties:

- compatible:
    Must be "brcm,brcmstb-gpio"

- reg:
    Define the base and range of the I/O address space containing
    the brcmstb GPIO controller registers

- #gpio-cells:
    Should be <2>.  The first cell is the pin number (within the controller's
    pin space), and the second is used for the following:
    bit[0]: polarity (0 for active-high, 1 for active-low)

- gpio-controller:
    Specifies that the node is a GPIO controller.

- brcm,gpio-bank-widths:
    Number of GPIO lines for each bank.  Number of elements must
    correspond to number of banks suggested by the 'reg' property.

Optional properties:

- interrupts:
    The interrupt shared by all GPIO lines for this controller.

- interrupt-parent:
    phandle of the parent interrupt controller

- interrupts-extended:
    Alternate form of specifying interrupts and parents that allows for
    multiple parents.  This takes precedence over 'interrupts' and
    'interrupt-parent'.  This probably must be used if the wakeup-source
    property is provided because that may have a different interrupt parent.

- #interrupt-cells:
    Should be <2>.  The first cell is the GPIO number, the second should specify
    flags.  The following subset of flags is supported:
    - bits[3:0] trigger type and level flags
        1 = low-to-high edge triggered
        2 = high-to-low edge triggered
        4 = active high level-sensitive
        8 = active low level-sensitive
      Valid combinations are 1, 2, 3, 4, 8.
    See also Documentation/devicetree/bindings/interrupt-controller/interrupts.txt

- interrupt-controller:
    Marks the device node as an interrupt controller

- wakeup-source:
    GPIOs for this controller can be used as a wakeup source

Example:
	upg_gio: gpio@f040a700 {
		#gpio-cells = <2>;
		#interrupt-cells = <2>;
		compatible = "brcm,bcm7445-gpio", "brcm,brcmstb-gpio";
		gpio-controller;
		interrupt-controller;
		reg = <0xf040a700 0x80>;
		interrupt-parent = <&irq0_intc>;
		interrupts = <0x6>;
		brcm,gpio-bank-widths = <32 32 32 24>;
	};

	upg_gio_aon: gpio@f04172c0 {
		#gpio-cells = <2>;
		#interrupt-cells = <2>;
		compatible = "brcm,bcm7445-gpio", "brcm,brcmstb-gpio";
		gpio-controller;
		interrupt-controller;
		reg = <0xf04172c0 0x40>;
		interrupt-parent = <&irq0_aon_intc>;
		interrupts = <0x6>;
		interrupts-extended = <&irq0_aon_intc 0x6>,
			<&aon_pm_l2_intc 0x5>;
		wakeup-source;
		brcm,gpio-bank-widths = <18 4>;
	};
