Hello Leonardo, thank you so much for working on this. On 2/26/25 03:09, Leonardo Felipe Takao Hirata wrote:
Convert NXP LPC3220-MIC to DT schema. Signed-off-by: Leonardo Felipe Takao Hirata <leo.fthirata@xxxxxxxxx> --- Changes in v2: - Fix SoB - Remove reg description - List #interrupt-cell items - Add interrupt restriction per variant - Remove extra examples --- .../interrupt-controller/nxp,lpc3220-mic.txt | 58 -------------- .../interrupt-controller/nxp,lpc3220-mic.yaml | 80 +++++++++++++++++++ 2 files changed, 80 insertions(+), 58 deletions(-) delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/nxp,lpc3220-mic.txt create mode 100644 Documentation/devicetree/bindings/interrupt-controller/nxp,lpc3220-mic.yaml
<snip>
diff --git a/Documentation/devicetree/bindings/interrupt-controller/nxp,lpc3220-mic.yaml b/Documentation/devicetree/bindings/interrupt-controller/nxp,lpc3220-mic.yaml new file mode 100644 index 000000000000..489bd329bc4e --- /dev/null +++ b/Documentation/devicetree/bindings/interrupt-controller/nxp,lpc3220-mic.yaml @@ -0,0 +1,80 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/interrupt-controller/nxp,lpc3220-mic.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: NXP LPC32xx MIC, SIC1 and SIC2 Interrupt Controllers + +maintainers: + - Vladimir Zapolskiy <vz@xxxxxxxxx> + +properties: + compatible: + enum: + - nxp,lpc3220-mic + - nxp,lpc3220-sic + + reg: + maxItems: 1 + + interrupt-controller: true + + '#interrupt-cells': + const: 2 + + interrupts: + items: + - description: + IRQ number.
For sake of better understanding SIC1 and SIC2 interrupt controllers are chained to MIC, that's why there is 'interrupts' property present, and here 0/1 interrupt values are for regular IRQ, 30/31 are for fast IRQ. Also please add here minItems: 2 maxItems: 2 I believe that the 'interrupts' property can be just left without any given description, or just give a simple description like IRQ and FIQ outputs of sub interrupt controllers to the main interrupt controller
+ - description: | + IRQ type. Can be one of: + + IRQ_TYPE_EDGE_RISING = Low-to-high edge triggered, + IRQ_TYPE_EDGE_FALLING = High-to-low edge triggered, + IRQ_TYPE_LEVEL_HIGH = Active high level-sensitive, + IRQ_TYPE_LEVEL_LOW = Active low level-sensitive. + + Reset value is IRQ_TYPE_LEVEL_LOW. + +required: + - compatible + - reg + - interrupt-controller + - '#interrupt-cells' + +allOf: + - if: + properties: + compatible: + contains: + const: nxp,lpc3220-sic + then: + required: + - interrupts + else: + properties: + interrupts: false
Please check if this 'else' condition can be removed.
+ +additionalProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/irq.h> + + mic: interrupt-controller@40008000 { + compatible = "nxp,lpc3220-mic"; + reg = <0x40008000 0x4000>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + sic1: interrupt-controller@4000c000 { + compatible = "nxp,lpc3220-sic"; + reg = <0x4000c000 0x4000>; + interrupt-controller; + #interrupt-cells = <2>; + interrupt-parent = <&mic>; + interrupts = <0 IRQ_TYPE_LEVEL_LOW>, + <30 IRQ_TYPE_LEVEL_LOW>; + };
-- Best wishes, Vladimir