138 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---4$id: http://devicetree.org/schemas/interrupt-controller/fsl,ls-extirq.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: Freescale Layerscape External Interrupt Controller8 9maintainers:10 - Shawn Guo <shawnguo@kernel.org>11 12description: |13 Some Layerscape SOCs (LS1021A, LS1043A, LS1046A LS1088A, LS208xA,14 LX216xA) support inverting the polarity of certain external interrupt15 lines.16 17properties:18 compatible:19 oneOf:20 - enum:21 - fsl,ls1021a-extirq22 - fsl,ls1043a-extirq23 - fsl,ls1088a-extirq24 - items:25 - enum:26 - fsl,ls1046a-extirq27 - const: fsl,ls1043a-extirq28 - items:29 - enum:30 - fsl,ls2080a-extirq31 - fsl,lx2160a-extirq32 - const: fsl,ls1088a-extirq33 34 '#interrupt-cells':35 const: 236 37 '#address-cells':38 const: 039 40 interrupt-controller: true41 42 reg:43 maxItems: 144 description:45 Specifies the Interrupt Polarity Control Register (INTPCR) in the46 SCFG or the External Interrupt Control Register (IRQCR) in the ISC.47 48 interrupt-map:49 description: Specifies the mapping from external interrupts to GIC interrupts.50 51 interrupt-map-mask: true52 53required:54 - compatible55 - '#interrupt-cells'56 - '#address-cells'57 - interrupt-controller58 - reg59 - interrupt-map60 - interrupt-map-mask61 62allOf:63 - if:64 properties:65 compatible:66 contains:67 enum:68 - fsl,ls1021a-extirq69 then:70 properties:71 interrupt-map:72 minItems: 673 maxItems: 674 interrupt-map-mask:75 items:76 - const: 0x777 - const: 078 - if:79 properties:80 compatible:81 contains:82 enum:83 - fsl,ls1043a-extirq84 - fsl,ls1046a-extirq85 then:86 properties:87 interrupt-map:88 minItems: 1289 maxItems: 1290 interrupt-map-mask:91 items:92 - const: 0xf93 - const: 094 95 - if:96 properties:97 compatible:98 contains:99 enum:100 - fsl,ls1088a-extirq101 - fsl,ls2080a-extirq102 - fsl,lx2160a-extirq103# The driver(drivers/irqchip/irq-ls-extirq.c) have not use standard DT104# function to parser interrupt-map. So it doesn't consider '#address-size'105# in parent interrupt controller, such as GIC.106#107# When dt-binding verify interrupt-map, item data matrix is spitted at108# incorrect position. Remove interrupt-map restriction because it always109# wrong.110 111 then:112 properties:113 interrupt-map-mask:114 items:115 - const: 0xf116 - const: 0117 118additionalProperties: false119 120examples:121 - |122 #include <dt-bindings/interrupt-controller/arm-gic.h>123 interrupt-controller@1ac {124 compatible = "fsl,ls1021a-extirq";125 #interrupt-cells = <2>;126 #address-cells = <0>;127 interrupt-controller;128 reg = <0x1ac 4>;129 interrupt-map =130 <0 0 &gic GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,131 <1 0 &gic GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,132 <2 0 &gic GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,133 <3 0 &gic GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,134 <4 0 &gic GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,135 <5 0 &gic GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;136 interrupt-map-mask = <0x7 0x0>;137 };138