Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp3457146ybc; Thu, 14 Nov 2019 09:21:08 -0800 (PST) X-Google-Smtp-Source: APXvYqwwLFIv/npJjOw84Qz4d8RcMR9PGxR1CuaJ9jhu6d5b7N18Z9YzKsPzRU/P5s7miTNdxahh X-Received: by 2002:adf:9f43:: with SMTP id f3mr9376245wrg.76.1573752068277; Thu, 14 Nov 2019 09:21:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1573752068; cv=none; d=google.com; s=arc-20160816; b=K6ASxGYQMFUiIodcsprYyORgZUDMAd/ugOsizphTuqaxIciS8CSGvai2bwXCrjlWLt 6uaK9uvtLdC2O/B14Zv8vhZpBANQt8nzxhDf++kG9zUPTuSOZE4vm19JnHCxlMwKQzT6 MXAiS2b09bGhJzidsOM6/RqqYDOGGF8kVE/KV1AbWMrsnAgwIpB6Sq6f2ZZl5lTbajZX x+VZ0SjNr6e+CG3vjYbkdb/QAL9fNm6SOwtewSEyYXgkDDu/8QluST3F8GaksjH5d857 pN7lf5IQ/eJxYm3ExBBg15BO+GoYK+jWdl751esNxk2S8h6yaXxZOSAy2BGZldQD8Uob D81A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=vqEC8ZFXFK3iIYRf03xgIM6Xwfrwx53efse33hO1F9Q=; b=q1J97xDNtHgRjc4NaRADlYc6QxEPgctvEcPRmQwzzBsIzWfKb7jHgMiXDb9B6d0UHy rM/lOEMSHFTsaPXur6La1mSATpkNZ9Q1Zu0g6SNJFpAtTNAI6omruAC2v4aHpG/Ao71t r2bGdUATnOfvCTlvmhw9dnA9n+I8rgWmXIjhO9xxEVFbTVzLQK6NRFiRIWrAWPonfxWj vO6WHRe9nO0af6JYFKa0WTv/5UGk1rhHNJrUUhzZm9knArMgapaAIv2wJIM9a4FJ5jRb v+lbJw6w7NXZYLPhtI++AyouZFabjRVaLmbHUe60vH4EJcBji/Lc+WleyaIC8HMeQ3xR zjMw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=FEltqMdf; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a9si5016326edm.231.2019.11.14.09.20.37; Thu, 14 Nov 2019 09:21:08 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=FEltqMdf; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726912AbfKNRSq (ORCPT + 99 others); Thu, 14 Nov 2019 12:18:46 -0500 Received: from mail.kernel.org ([198.145.29.99]:48744 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726410AbfKNRSq (ORCPT ); Thu, 14 Nov 2019 12:18:46 -0500 Received: from mail-qk1-f182.google.com (mail-qk1-f182.google.com [209.85.222.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 412EE20718; Thu, 14 Nov 2019 17:18:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1573751925; bh=ocz46gTCP/NUGPTiVuVJqGTutFbDRHy1wr+ZIMUnIJY=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=FEltqMdfOa5s52eVq2HDJrCWY63pFr+eHadBHw1DVPLEAbhcAhRYFLbOR4NBVLJOA U6JM/AfIJ9xq46+VbVjsuRKMHAsC4jkyCbI2duqLtUcj+iTIWEqphmPj10YvKLY7qM j6fMRfMgAtoWRJIXpIcU0JimN8FIb592KhgMDKjw= Received: by mail-qk1-f182.google.com with SMTP id d13so5661723qko.3; Thu, 14 Nov 2019 09:18:45 -0800 (PST) X-Gm-Message-State: APjAAAWdC8qFFuwkIRTJ/3bH8kilPSOOjgvDbg1sn38dc9p+GV92lZQ0 crobV7F/XE5QZIs+OfFbtSZIxh0G36NfF5BJGQ== X-Received: by 2002:a37:30b:: with SMTP id 11mr8607360qkd.254.1573751924338; Thu, 14 Nov 2019 09:18:44 -0800 (PST) MIME-Version: 1.0 References: <20191114164104.22782-1-alexandre.torgue@st.com> In-Reply-To: <20191114164104.22782-1-alexandre.torgue@st.com> From: Rob Herring Date: Thu, 14 Nov 2019 11:18:31 -0600 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] dt-bindings: interrupt-controller: Convert stm32-exti to json-schema To: Alexandre Torgue Cc: Mark Rutland , Thomas Gleixner , Jason Cooper , Marc Zyngier , devicetree@vger.kernel.org, "moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE" , "linux-kernel@vger.kernel.org" , linux-stm32@st-md-mailman.stormreply.com Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Nov 14, 2019 at 10:41 AM Alexandre Torgue wrote: > > Convert the STM32 external interrupt controller (EXTI) binding to DT > schema format using json-schema. > > Signed-off-by: Alexandre Torgue > --- > > 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. > +%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 > + - Ludovic Barre > + > +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. > + 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. In hindsight, the mp1 case probably should have used interrupt-map. > + > +examples: > + - | > + //Example 1 > + exti1: interrupt-controller@5000d000 { > + compatible = "st,stm32mp1-exti", "syscon"; > + interrupt-controller; > + #interrupt-cells = <2>; > + reg = <0x5000d000 0x400>; > + }; > + > + //Example 2 > + exti2: 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>; > + }; > + > +... > -- > 2.17.1 >