89 lines
2.4 KiB
Plaintext
89 lines
2.4 KiB
Plaintext
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>;
|
|
};
|
|
};
|
|
|
|
|