irqchip: crossbar: Initialise the crossbar with a safe value
[cascardo/linux.git] / Documentation / devicetree / bindings / arm / omap / crossbar.txt
1 Some socs have a large number of interrupts requests to service
2 the needs of its many peripherals and subsystems. All of the
3 interrupt lines from the subsystems are not needed at the same
4 time, so they have to be muxed to the irq-controller appropriately.
5 In such places a interrupt controllers are preceded by an CROSSBAR
6 that provides flexibility in muxing the device requests to the controller
7 inputs.
8
9 Required properties:
10 - compatible : Should be "ti,irq-crossbar"
11 - reg: Base address and the size of the crossbar registers.
12 - ti,max-irqs: Total number of irqs available at the interrupt controller.
13 - ti,reg-size: Size of a individual register in bytes. Every individual
14             register is assumed to be of same size. Valid sizes are 1, 2, 4.
15 - ti,irqs-reserved: List of the reserved irq lines that are not muxed using
16                  crossbar. These interrupt lines are reserved in the soc,
17                  so crossbar bar driver should not consider them as free
18                  lines.
19
20 Optional properties:
21 - ti,irqs-skip: This is similar to "ti,irqs-reserved", but these are for
22   SOC-specific hard-wiring of those irqs which unexpectedly bypasses the
23   crossbar. These irqs have a crossbar register, but still cannot be used.
24
25 - ti,irqs-safe-map: integer which maps to a safe configuration to use
26   when the interrupt controller irq is unused (when not provided, default is 0)
27
28 Examples:
29                 crossbar_mpu: @4a020000 {
30                         compatible = "ti,irq-crossbar";
31                         reg = <0x4a002a48 0x130>;
32                         ti,max-irqs = <160>;
33                         ti,reg-size = <2>;
34                         ti,irqs-reserved = <0 1 2 3 5 6 131 132 139 140>;
35                         ti,irqs-skip = <10 133 139 140>;
36                 };