ImgTec TZ1090 GPIO Controller Required properties: - compatible: Compatible property value should be "img,tz1090-gpio". - reg: Physical base address of the controller and length of memory mapped region. - #address-cells: Should be 1 (for bank subnodes) - #size-cells: Should be 0 (for bank subnodes) - Each bank of GPIOs should have a subnode to represent it. Bank subnode required properties: - reg: Index of bank in the range 0 to 2. - gpio-controller: Specifies that the node is a gpio controller. - #gpio-cells: Should be 2. The syntax of the gpio specifier used by client nodes should have the following values. <[phandle of the gpio controller node] [gpio number within the gpio bank] [gpio flags]> Values for gpio specifier: - GPIO number: a value in the range 0 to 29. - GPIO flags: bit field of flags, as defined in . Only the following flags are supported: GPIO_ACTIVE_HIGH GPIO_ACTIVE_LOW Bank subnode optional properties: - gpio-ranges: Mapping to pin controller pins (as described in Documentation/devicetree/bindings/gpio/gpio.txt) - interrupts: Interrupt for the entire bank - interrupt-controller: Specifies that the node is an interrupt controller - #interrupt-cells: Should be 2. The syntax of the interrupt specifier used by client nodes should have the following values. <[phandle of the interurupt controller] [gpio number within the gpio bank] [irq flags]> Values for irq specifier: - GPIO number: a value in the range 0 to 29 - IRQ flags: value to describe edge and level triggering, as defined in . Only the following flags are supported: IRQ_TYPE_EDGE_RISING IRQ_TYPE_EDGE_FALLING IRQ_TYPE_EDGE_BOTH IRQ_TYPE_LEVEL_HIGH IRQ_TYPE_LEVEL_LOW Example: gpios: gpio-controller@02005800 { #address-cells = <1>; #size-cells = <0>; compatible = "img,tz1090-gpio"; reg = <0x02005800 0x90>; /* bank 0 with an interrupt */ gpios0: bank@0 { #gpio-cells = <2>; #interrupt-cells = <2>; reg = <0>; interrupts = <13 IRQ_TYPE_LEVEL_HIGH>; gpio-controller; gpio-ranges = <&pinctrl 0 0 30>; interrupt-controller; }; /* bank 2 without interrupt */ gpios2: bank@2 { #gpio-cells = <2>; reg = <2>; gpio-controller; gpio-ranges = <&pinctrl 0 60 30>; }; };