-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'metag-for-v3.12' of git://git.kernel.org/pub/scm/linux/ker…
…nel/git/jhogan/metag Pull metag architecture changes from James Hogan: - Device tree updates for TZ1090 GPIO drivers merged via GPIO tree. - Add driver for ImgTec PDC irqchip as found in TZ1090 SoC. - Add linux-metag mailing list to MAINTAINERS file. * tag 'metag-for-v3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag: irq-imgpdc: add ImgTec PDC irqchip driver MAINTAINERS: add linux-metag mailing list metag: tz1090: instantiate gpio-tz1090-pdc metag: tz1090: select and instantiate gpio-tz1090 metag: tz1090: select and instantiate irq-imgpdc
- Loading branch information
Showing
7 changed files
with
680 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
* ImgTec Powerdown Controller (PDC) Interrupt Controller Binding | ||
|
||
This binding specifies what properties must be available in the device tree | ||
representation of a PDC IRQ controller. This has a number of input interrupt | ||
lines which can wake the system, and are passed on through output interrupt | ||
lines. | ||
|
||
Required properties: | ||
|
||
- compatible: Specifies the compatibility list for the interrupt controller. | ||
The type shall be <string> and the value shall include "img,pdc-intc". | ||
|
||
- reg: Specifies the base PDC physical address(s) and size(s) of the | ||
addressable register space. The type shall be <prop-encoded-array>. | ||
|
||
- interrupt-controller: The presence of this property identifies the node | ||
as an interrupt controller. No property value shall be defined. | ||
|
||
- #interrupt-cells: Specifies the number of cells needed to encode an | ||
interrupt source. The type shall be a <u32> and the value shall be 2. | ||
|
||
- num-perips: Number of waking peripherals. | ||
|
||
- num-syswakes: Number of SysWake inputs. | ||
|
||
- interrupts: List of interrupt specifiers. The first specifier shall be the | ||
shared SysWake interrupt, and remaining specifies shall be PDC peripheral | ||
interrupts in order. | ||
|
||
* Interrupt Specifier Definition | ||
|
||
Interrupt specifiers consists of 2 cells encoded as follows: | ||
|
||
- <1st-cell>: The interrupt-number that identifies the interrupt source. | ||
0-7: Peripheral interrupts | ||
8-15: SysWake interrupts | ||
|
||
- <2nd-cell>: The level-sense information, encoded using the Linux interrupt | ||
flags as follows (only 4 valid for peripheral interrupts): | ||
0 = none (decided by software) | ||
1 = low-to-high edge triggered | ||
2 = high-to-low edge triggered | ||
3 = both edge triggered | ||
4 = active-high level-sensitive (required for perip irqs) | ||
8 = active-low level-sensitive | ||
|
||
* Examples | ||
|
||
Example 1: | ||
|
||
/* | ||
* TZ1090 PDC block | ||
*/ | ||
pdc: pdc@0x02006000 { | ||
// This is an interrupt controller node. | ||
interrupt-controller; | ||
|
||
// Three cells to encode interrupt sources. | ||
#interrupt-cells = <2>; | ||
|
||
// Offset address of 0x02006000 and size of 0x1000. | ||
reg = <0x02006000 0x1000>; | ||
|
||
// Compatible with Meta hardware trigger block. | ||
compatible = "img,pdc-intc"; | ||
|
||
// Three peripherals are connected. | ||
num-perips = <3>; | ||
|
||
// Four SysWakes are connected. | ||
num-syswakes = <4>; | ||
|
||
interrupts = <18 4 /* level */>, /* Syswakes */ | ||
<30 4 /* level */>, /* Peripheral 0 (RTC) */ | ||
<29 4 /* level */>, /* Peripheral 1 (IR) */ | ||
<31 4 /* level */>; /* Peripheral 2 (WDT) */ | ||
}; | ||
|
||
Example 2: | ||
|
||
/* | ||
* An SoC peripheral that is wired through the PDC. | ||
*/ | ||
rtc0 { | ||
// The interrupt controller that this device is wired to. | ||
interrupt-parent = <&pdc>; | ||
|
||
// Interrupt source Peripheral 0 | ||
interrupts = <0 /* Peripheral 0 (RTC) */ | ||
4> /* IRQ_TYPE_LEVEL_HIGH */ | ||
}; | ||
|
||
Example 3: | ||
|
||
/* | ||
* An interrupt generating device that is wired to a SysWake pin. | ||
*/ | ||
touchscreen0 { | ||
// The interrupt controller that this device is wired to. | ||
interrupt-parent = <&pdc>; | ||
|
||
// Interrupt source SysWake 0 that is active-low level-sensitive | ||
interrupts = <8 /* SysWake0 */ | ||
8 /* IRQ_TYPE_LEVEL_LOW */>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.