Peter Korsgaard | 1e16dfc | 2008-09-23 17:35:38 +0200 | [diff] [blame] | 1 | GPIO controllers on MPC8xxx SoCs |
| 2 | |
| 3 | This is for the non-QE/CPM/GUTs GPIO controllers as found on |
| 4 | 8349, 8572, 8610 and compatible. |
| 5 | |
| 6 | Every GPIO controller node must have #gpio-cells property defined, |
| 7 | this information will be used to translate gpio-specifiers. |
| 8 | |
| 9 | Required properties: |
| 10 | - compatible : "fsl,<CHIP>-gpio" followed by "fsl,mpc8349-gpio" for |
| 11 | 83xx, "fsl,mpc8572-gpio" for 85xx and "fsl,mpc8610-gpio" for 86xx. |
| 12 | - #gpio-cells : Should be two. The first cell is the pin number and the |
| 13 | second cell is used to specify optional parameters (currently unused). |
Peter Korsgaard | 345e5c8 | 2010-01-07 17:57:46 +0100 | [diff] [blame] | 14 | - interrupts : Interrupt mapping for GPIO IRQ. |
Peter Korsgaard | 1e16dfc | 2008-09-23 17:35:38 +0200 | [diff] [blame] | 15 | - interrupt-parent : Phandle for the interrupt controller that |
| 16 | services interrupts for this device. |
| 17 | - gpio-controller : Marks the port as GPIO controller. |
| 18 | |
| 19 | Example of gpio-controller nodes for a MPC8347 SoC: |
| 20 | |
| 21 | gpio1: gpio-controller@c00 { |
| 22 | #gpio-cells = <2>; |
| 23 | compatible = "fsl,mpc8347-gpio", "fsl,mpc8349-gpio"; |
| 24 | reg = <0xc00 0x100>; |
| 25 | interrupts = <74 0x8>; |
| 26 | interrupt-parent = <&ipic>; |
| 27 | gpio-controller; |
| 28 | }; |
| 29 | |
| 30 | gpio2: gpio-controller@d00 { |
| 31 | #gpio-cells = <2>; |
| 32 | compatible = "fsl,mpc8347-gpio", "fsl,mpc8349-gpio"; |
| 33 | reg = <0xd00 0x100>; |
| 34 | interrupts = <75 0x8>; |
| 35 | interrupt-parent = <&ipic>; |
| 36 | gpio-controller; |
| 37 | }; |
| 38 | |
| 39 | See booting-without-of.txt for details of how to specify GPIO |
| 40 | information for devices. |
Peter Korsgaard | 345e5c8 | 2010-01-07 17:57:46 +0100 | [diff] [blame] | 41 | |
| 42 | To use GPIO pins as interrupt sources for peripherals, specify the |
| 43 | GPIO controller as the interrupt parent and define GPIO number + |
| 44 | trigger mode using the interrupts property, which is defined like |
| 45 | this: |
| 46 | |
| 47 | interrupts = <number trigger>, where: |
| 48 | - number: GPIO pin (0..31) |
| 49 | - trigger: trigger mode: |
| 50 | 2 = trigger on falling edge |
| 51 | 3 = trigger on both edges |
| 52 | |
| 53 | Example of device using this is: |
| 54 | |
| 55 | funkyfpga@0 { |
| 56 | compatible = "funky-fpga"; |
| 57 | ... |
| 58 | interrupts = <4 3>; |
| 59 | interrupt-parent = <&gpio1>; |
| 60 | }; |