1ImgTec TZ1090 GPIO Controller 2 3Required properties: 4- compatible: Compatible property value should be "img,tz1090-gpio". 5 6- reg: Physical base address of the controller and length of memory mapped 7 region. 8 9- #address-cells: Should be 1 (for bank subnodes) 10 11- #size-cells: Should be 0 (for bank subnodes) 12 13- Each bank of GPIOs should have a subnode to represent it. 14 15 Bank subnode required properties: 16 - reg: Index of bank in the range 0 to 2. 17 18 - gpio-controller: Specifies that the node is a gpio controller. 19 20 - #gpio-cells: Should be 2. The syntax of the gpio specifier used by client 21 nodes should have the following values. 22 <[phandle of the gpio controller node] 23 [gpio number within the gpio bank] 24 [gpio flags]> 25 26 Values for gpio specifier: 27 - GPIO number: a value in the range 0 to 29. 28 - GPIO flags: bit field of flags, as defined in <dt-bindings/gpio/gpio.h>. 29 Only the following flags are supported: 30 GPIO_ACTIVE_HIGH 31 GPIO_ACTIVE_LOW 32 33 Bank subnode optional properties: 34 - gpio-ranges: Mapping to pin controller pins (as described in 35 Documentation/devicetree/bindings/gpio/gpio.txt) 36 37 - interrupts: Interrupt for the entire bank 38 39 - interrupt-controller: Specifies that the node is an interrupt controller 40 41 - #interrupt-cells: Should be 2. The syntax of the interrupt specifier used by 42 client nodes should have the following values. 43 <[phandle of the interurupt controller] 44 [gpio number within the gpio bank] 45 [irq flags]> 46 47 Values for irq specifier: 48 - GPIO number: a value in the range 0 to 29 49 - IRQ flags: value to describe edge and level triggering, as defined in 50 <dt-bindings/interrupt-controller/irq.h>. Only the following flags are 51 supported: 52 IRQ_TYPE_EDGE_RISING 53 IRQ_TYPE_EDGE_FALLING 54 IRQ_TYPE_EDGE_BOTH 55 IRQ_TYPE_LEVEL_HIGH 56 IRQ_TYPE_LEVEL_LOW 57 58 59 60Example: 61 62 gpios: gpio-controller@02005800 { 63 #address-cells = <1>; 64 #size-cells = <0>; 65 compatible = "img,tz1090-gpio"; 66 reg = <0x02005800 0x90>; 67 68 /* bank 0 with an interrupt */ 69 gpios0: bank@0 { 70 #gpio-cells = <2>; 71 #interrupt-cells = <2>; 72 reg = <0>; 73 interrupts = <13 IRQ_TYPE_LEVEL_HIGH>; 74 gpio-controller; 75 gpio-ranges = <&pinctrl 0 0 30>; 76 interrupt-controller; 77 }; 78 79 /* bank 2 without interrupt */ 80 gpios2: bank@2 { 81 #gpio-cells = <2>; 82 reg = <2>; 83 gpio-controller; 84 gpio-ranges = <&pinctrl 0 60 30>; 85 }; 86 }; 87 88 89