| 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 <dt-bindings/gpio/gpio.h>. |
| 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 |
| <dt-bindings/interrupt-controller/irq.h>. 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>; |
| }; |
| }; |
| |
| |