Commit 2c0e641a authored by Gerhard Sittig's avatar Gerhard Sittig Committed by Rob Herring

dt: binding: reword PowerPC 8xxx GPIO documentation

re-format and re-word the device tree binding documentation for MPC8xxx
and compatibles, reference the common document for interrupt controllers
and remove outdated duplicate SoC specific information

Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Pawel Moll <Pawel.Moll@arm.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: <devicetree@vger.kernel.org>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarGerhard Sittig <gsi@denx.de>
Signed-off-by: default avatarRob Herring <rob.herring@calxeda.com>
parent 72d944ec
...@@ -5,16 +5,42 @@ This is for the non-QE/CPM/GUTs GPIO controllers as found on ...@@ -5,16 +5,42 @@ This is for the non-QE/CPM/GUTs GPIO controllers as found on
Every GPIO controller node must have #gpio-cells property defined, Every GPIO controller node must have #gpio-cells property defined,
this information will be used to translate gpio-specifiers. this information will be used to translate gpio-specifiers.
See bindings/gpio/gpio.txt for details of how to specify GPIO
information for devices.
The GPIO module usually is connected to the SoC's internal interrupt
controller, see bindings/interrupt-controller/interrupts.txt (the
interrupt client nodes section) for details how to specify this GPIO
module's interrupt.
The GPIO module may serve as another interrupt controller (cascaded to
the SoC's internal interrupt controller). See the interrupt controller
nodes section in bindings/interrupt-controller/interrupts.txt for
details.
Required properties: Required properties:
- compatible : "fsl,<CHIP>-gpio" followed by "fsl,mpc8349-gpio" for - compatible: "fsl,<chip>-gpio" followed by "fsl,mpc8349-gpio"
83xx, "fsl,mpc8572-gpio" for 85xx and "fsl,mpc8610-gpio" for 86xx. for 83xx, "fsl,mpc8572-gpio" for 85xx, or
- #gpio-cells : Should be two. The first cell is the pin number and the "fsl,mpc8610-gpio" for 86xx.
second cell is used to specify optional parameters (currently unused). - #gpio-cells: Should be two. The first cell is the pin number
- interrupts : Interrupt mapping for GPIO IRQ. and the second cell is used to specify optional
- interrupt-parent : Phandle for the interrupt controller that parameters (currently unused).
services interrupts for this device. - interrupt-parent: Phandle for the interrupt controller that
- gpio-controller : Marks the port as GPIO controller. services interrupts for this device.
- interrupts: Interrupt mapping for GPIO IRQ.
- gpio-controller: Marks the port as GPIO controller.
Optional properties:
- interrupt-controller: Empty boolean property which marks the GPIO
module as an IRQ controller.
- #interrupt-cells: Should be two. Defines the number of integer
cells required to specify an interrupt within
this interrupt controller. The first cell
defines the pin number, the second cell
defines additional flags (trigger type,
trigger polarity). Note that the available
set of trigger conditions supported by the
GPIO module depends on the actual SoC.
Example of gpio-controller nodes for a MPC8347 SoC: Example of gpio-controller nodes for a MPC8347 SoC:
...@@ -22,39 +48,27 @@ Example of gpio-controller nodes for a MPC8347 SoC: ...@@ -22,39 +48,27 @@ Example of gpio-controller nodes for a MPC8347 SoC:
#gpio-cells = <2>; #gpio-cells = <2>;
compatible = "fsl,mpc8347-gpio", "fsl,mpc8349-gpio"; compatible = "fsl,mpc8347-gpio", "fsl,mpc8349-gpio";
reg = <0xc00 0x100>; reg = <0xc00 0x100>;
interrupts = <74 0x8>;
interrupt-parent = <&ipic>; interrupt-parent = <&ipic>;
interrupts = <74 0x8>;
gpio-controller; gpio-controller;
interrupt-controller;
#interrupt-cells = <2>;
}; };
gpio2: gpio-controller@d00 { gpio2: gpio-controller@d00 {
#gpio-cells = <2>; #gpio-cells = <2>;
compatible = "fsl,mpc8347-gpio", "fsl,mpc8349-gpio"; compatible = "fsl,mpc8347-gpio", "fsl,mpc8349-gpio";
reg = <0xd00 0x100>; reg = <0xd00 0x100>;
interrupts = <75 0x8>;
interrupt-parent = <&ipic>; interrupt-parent = <&ipic>;
interrupts = <75 0x8>;
gpio-controller; gpio-controller;
}; };
See booting-without-of.txt for details of how to specify GPIO Example of a peripheral using the GPIO module as an IRQ controller:
information for devices.
To use GPIO pins as interrupt sources for peripherals, specify the
GPIO controller as the interrupt parent and define GPIO number +
trigger mode using the interrupts property, which is defined like
this:
interrupts = <number trigger>, where:
- number: GPIO pin (0..31)
- trigger: trigger mode:
2 = trigger on falling edge
3 = trigger on both edges
Example of device using this is:
funkyfpga@0 { funkyfpga@0 {
compatible = "funky-fpga"; compatible = "funky-fpga";
... ...
interrupts = <4 3>;
interrupt-parent = <&gpio1>; interrupt-parent = <&gpio1>;
interrupts = <4 3>;
}; };
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment