Messages in this thread | | | Subject | Re: [PATCH] dt-bindings: interrupt-controller: Convert stm32-exti to json-schema | From | Alexandre Torgue <> | Date | Fri, 15 Nov 2019 19:11:57 +0100 |
| |
On 11/15/19 6:41 PM, Rob Herring wrote: > On Fri, Nov 15, 2019 at 11:28 AM Alexandre Torgue > <alexandre.torgue@st.com> wrote: >> >> >> >> On 11/14/19 6:18 PM, Rob Herring wrote: >>> On Thu, Nov 14, 2019 at 10:41 AM Alexandre Torgue >>> <alexandre.torgue@st.com> wrote: >>>> >>>> Convert the STM32 external interrupt controller (EXTI) binding to DT >>>> schema format using json-schema. >>>> >>>> Signed-off-by: Alexandre Torgue <alexandre.torgue@st.com> >>>> --- >>>> >>>> Hi Rob, >>>> >>>> I planned to use "additionalProperties: false" for this schema but as I add a >>>> property under condition, I got an error (property added under contion seems >>>> to be detected as an "additional" property and then error is raised). >>>> >>>> Is there a way to fix that ? >>> >>> See below. >>> >>>> >>>> regards >>>> Alex >>>> >>>> diff --git a/Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.txt b/Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.txt >>>> deleted file mode 100644 >>>> index cd01b2292ec6..000000000000 >>>> --- a/Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.txt >>>> +++ /dev/null >>>> @@ -1,29 +0,0 @@ >>>> -STM32 External Interrupt Controller >>>> - >>>> -Required properties: >>>> - >>>> -- compatible: Should be: >>>> - "st,stm32-exti" >>>> - "st,stm32h7-exti" >>>> - "st,stm32mp1-exti" >>>> -- reg: Specifies base physical address and size of the registers >>>> -- interrupt-controller: Indentifies the node as an interrupt controller >>>> -- #interrupt-cells: Specifies the number of cells to encode an interrupt >>>> - specifier, shall be 2 >>>> -- interrupts: interrupts references to primary interrupt controller >>>> - (only needed for exti controller with multiple exti under >>>> - same parent interrupt: st,stm32-exti and st,stm32h7-exti) >>>> - >>>> -Optional properties: >>>> - >>>> -- hwlocks: reference to a phandle of a hardware spinlock provider node. >>>> - >>>> -Example: >>>> - >>>> -exti: interrupt-controller@40013c00 { >>>> - compatible = "st,stm32-exti"; >>>> - interrupt-controller; >>>> - #interrupt-cells = <2>; >>>> - reg = <0x40013C00 0x400>; >>>> - interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>; >>>> -}; >>>> diff --git a/Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.yaml b/Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.yaml >>>> new file mode 100644 >>>> index 000000000000..39be37e1e532 >>>> --- /dev/null >>>> +++ b/Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.yaml >>>> @@ -0,0 +1,82 @@ >>>> +# SPDX-License-Identifier: GPL-2.0 >>> >>> If ST has copyright on the old binding, can you add BSD here. >>> >> >> I will. >> >>>> +%YAML 1.2 >>>> +--- >>>> +$id: http://devicetree.org/schemas/interrupt-controller/st,stm32-exti.yaml# >>>> +$schema: http://devicetree.org/meta-schemas/core.yaml# >>>> + >>>> +title: STM32 External Interrupt Controller Device Tree Bindings >>>> + >>>> +maintainers: >>>> + - Alexandre Torgue <alexandre.torgue@st.com> >>>> + - Ludovic Barre <ludovic.barre@st.com> >>>> + >>>> +properties: >>>> + compatible: >>>> + oneOf: >>>> + - items: >>>> + - enum: >>>> + - st,stm32-exti >>>> + - st,stm32h7-exti >>>> + - items: >>>> + - enum: >>>> + - st,stm32mp1-exti >>>> + - const: syscon >>>> + >>>> + "#interrupt-cells": >>>> + const: 2 >>>> + >>>> + reg: >>>> + maxItems: 1 >>>> + >>>> + interrupt-controller: true >>>> + >>>> + hwlocks: >>>> + maxItems: 1 >>>> + description: >>>> + Reference to a phandle of a hardware spinlock provider node. >>>> + >>>> +required: >>>> + - "#interrupt-cells" >>>> + - compatible >>>> + - reg >>>> + - interrupt-controller >>>> + >>>> +allOf: >>>> + - $ref: /schemas/interrupt-controller.yaml# >>>> + - if: >>>> + properties: >>>> + compatible: >>>> + contains: >>>> + enum: >>>> + - st,stm32-exti >>>> + - st,stm32h7-exti >>>> + then: >>>> + properties: >>>> + interrupts: >>>> + allOf: >>>> + - $ref: /schemas/types.yaml#/definitions/uint32-array >>> >>> Standard property, doesn't need a type. You just need 'maxItems' or an >>> 'items' list if the index is not meaningful. This appears to be the >>> former case. >> >> ok >> >>> >>>> + description: >>>> + Interrupts references to primary interrupt controller >>>> + required: >>>> + - interrupts >>> >>> You can move the definition to the main section as you only need >>> 'required' here. That should fix your additionalProperties issue. >>> >> Doing that it fails as I don't have interrupts define for mp1 >> compatible. Maybe I missed something ? > > Like this: > > properties: > ... > interrupts: > maxItems: ?? > minItems: ?? > > allOf: > - $ref: /schemas/interrupt-controller.yaml# > - if: > properties: > compatible: > contains: > enum: > - st,stm32-exti > - st,stm32h7-exti > then: > required: > - interrupts >
Yes it is better :). Let me send the V2
Thanks Alex
| |