Received: by 2002:a05:6a10:6006:0:0:0:0 with SMTP id w6csp1234764pxa; Fri, 28 Aug 2020 07:25:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyQRrA5xfxN3eWGlbudOEbmHZ4VdbnoqLWKMoy1v6QaAmxvaC0VBVBLO5nmPN7gtjlHKvaP X-Received: by 2002:aa7:de0e:: with SMTP id h14mr2090775edv.146.1598624705045; Fri, 28 Aug 2020 07:25:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598624705; cv=none; d=google.com; s=arc-20160816; b=pL5vOE9NXmJfwxGcnI+HksXf/lekF4Ggvw3oWjrJ0MHO91Fmj0YOuGxWEA0qsDTmLW U6lKMuuev0byfpVdUYEWVh6nyXgMv+L6v7BUsFPQ46NmHsyTy/fnadu4f0/Gt2qobpRI gYPUo4cAcRuyctEjI4uO6dlmWpdBkBhWFncpv6TOQ7IEiH3NiGUpwj6qFNDizlSyV8qi lTDHZxlpG5X9OlNdnXcF8rfjNeyScaiGvZAjeHV588mLyTVjgAs9YAwWIIb20q5H/0jZ htpa7jh7pHpJjELOK/woALSSutP4DRYd2LWHRQ5WXEBtEYaVqYfeD3zwBomuH+CZxYc3 aCQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=dm5tDu/WZ9/IHuUebjkKLOS7wlpPEobS78e9a2Smt7M=; b=rmUBG/+Yqm60ppJQQ0hPaLmaIaIStXag/qJRctphLs95ueFMuVS74n7iYiuw5afKVG GssmVYpI8Tnf1e68/qcXQdhu4qp7EMXiQyDPjd6l7jwdtW6cu7Jc5Apwbl2sVTC9K+vd QEbtJ0ie0NRq1XEzLA/d1vPJfaibKC3ojYMHfPLmGJBcg//2dqceIUqKo0I05aoar5xZ 6KSjoCy+YoiO/qu8+2nyccTW2u8z2xz93Kv6hpz5Z2cHzL+vfg1Y8mvbmPieWUabYyjC Tc6FPJD0q7QoMV9GDGLRW5IItfSJgtjQPWuKXMhIxZVafFvqXpW2WJpJMcafKW6S3Dfq g3jw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z20si729480ejm.732.2020.08.28.07.24.42; Fri, 28 Aug 2020 07:25:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727802AbgH1OUe (ORCPT + 99 others); Fri, 28 Aug 2020 10:20:34 -0400 Received: from foss.arm.com ([217.140.110.172]:50342 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726887AbgH1OUb (ORCPT ); Fri, 28 Aug 2020 10:20:31 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 8CF79D6E; Fri, 28 Aug 2020 07:20:30 -0700 (PDT) Received: from donnerap.arm.com (donnerap.cambridge.arm.com [10.1.195.35]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7855D3F71F; Fri, 28 Aug 2020 07:20:28 -0700 (PDT) From: Andre Przywara To: Rob Herring , devicetree@vger.kernel.org Cc: Thomas Gleixner , Daniel Lezcano , Haojian Zhuang , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Chanho Min , Linus Walleij , Liviu Dudau , Lorenzo Pieralisi , Sudeep Holla , Ray Jui , Scott Branden , Florian Fainelli , Wei Xu Subject: [PATCH v2 1/6] dt-bindings: timers: sp-804: Convert to json-schema Date: Fri, 28 Aug 2020 15:20:13 +0100 Message-Id: <20200828142018.43298-2-andre.przywara@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200828142018.43298-1-andre.przywara@arm.com> References: <20200828142018.43298-1-andre.przywara@arm.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This converts the DT binding documentation for the ARM SP-804 timer IP over to json-schema. Most properties are just carried over, the clocks property requirement (either one or three clocks) is now formalised and enforced. As the former binding didn't specify clock-names, and there is no common name used by the existing DTs, I refrained from adding them in detail (just allowing the property). The requirement for the APB clock is enforced by the primecell binding already. Signed-off-by: Andre Przywara --- .../devicetree/bindings/timer/arm,sp804.txt | 29 ------ .../devicetree/bindings/timer/arm,sp804.yaml | 93 +++++++++++++++++++ 2 files changed, 93 insertions(+), 29 deletions(-) delete mode 100644 Documentation/devicetree/bindings/timer/arm,sp804.txt create mode 100644 Documentation/devicetree/bindings/timer/arm,sp804.yaml diff --git a/Documentation/devicetree/bindings/timer/arm,sp804.txt b/Documentation/devicetree/bindings/timer/arm,sp804.txt deleted file mode 100644 index 5cd8eee74af1..000000000000 --- a/Documentation/devicetree/bindings/timer/arm,sp804.txt +++ /dev/null @@ -1,29 +0,0 @@ -ARM sp804 Dual Timers ---------------------------------------- - -Required properties: -- compatible: Should be "arm,sp804" & "arm,primecell" -- interrupts: Should contain the list of Dual Timer interrupts. This is the - interrupt for timer 1 and timer 2. In the case of a single entry, it is - the combined interrupt or if "arm,sp804-has-irq" is present that - specifies which timer interrupt is connected. -- reg: Should contain location and length for dual timer register. -- clocks: clocks driving the dual timer hardware. This list should be 1 or 3 - clocks. With 3 clocks, the order is timer0 clock, timer1 clock, - apb_pclk. A single clock can also be specified if the same clock is - used for all clock inputs. - -Optional properties: -- arm,sp804-has-irq = <#>: In the case of only 1 timer irq line connected, this - specifies if the irq connection is for timer 1 or timer 2. A value of 1 - or 2 should be used. - -Example: - - timer0: timer@fc800000 { - compatible = "arm,sp804", "arm,primecell"; - reg = <0xfc800000 0x1000>; - interrupts = <0 0 4>, <0 1 4>; - clocks = <&timclk1 &timclk2 &pclk>; - clock-names = "timer1", "timer2", "apb_pclk"; - }; diff --git a/Documentation/devicetree/bindings/timer/arm,sp804.yaml b/Documentation/devicetree/bindings/timer/arm,sp804.yaml new file mode 100644 index 000000000000..609972379637 --- /dev/null +++ b/Documentation/devicetree/bindings/timer/arm,sp804.yaml @@ -0,0 +1,93 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/timer/arm,sp804.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: ARM sp804 Dual Timers + +maintainers: + - Haojian Zhuang + +description: |+ + The Arm SP804 IP implements two independent timers, configurable for + 16 or 32 bit operation and capable of running in one-shot, periodic, or + free-running mode. The input clock is shared, but can be gated and prescaled + independently for each timer. + +allOf: + - $ref: /schemas/arm/primecell.yaml# + +# Need a custom select here or 'arm,primecell' will match on lots of nodes +select: + properties: + compatible: + contains: + const: arm,sp804 + required: + - compatible + +properties: + compatible: + items: + - const: arm,sp804 + - const: arm,primecell + + interrupts: + description: | + If two interrupts are listed, those are the interrupts for timer + 1 and 2, respectively. If there is only a single interrupt, it is + either a combined interrupt or the sole interrupt of one timer, as + specified by the "arm,sp804-has-irq" property. + minItems: 1 + maxItems: 2 + + reg: + description: The physical base address of the SP804 IP. + maxItems: 1 + + clocks: + description: | + Clocks driving the dual timer hardware. This list should + be 1 or 3 clocks. With 3 clocks, the order is timer0 clock, timer1 + clock, apb_pclk. A single clock can also be specified if the same + clock is used for all clock inputs. + oneOf: + - items: + - description: clock for timer 1 + - description: clock for timer 2 + - description: bus clock + - items: + - description: unified clock for both timers and the bus + + clock-names: true + # The original binding did not specify any clock names, and there is no + # consistent naming used in the existing DTs. The primecell binding + # requires the "apb_pclk" name, so we need this property. + # Use "timer0clk", "timer1clk", "apb_pclk" for new DTs. + + arm,sp804-has-irq: + description: If only one interrupt line is connected to the interrupt + controller, this property specifies which timer is connected to this + line. + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 1 + maximum: 2 + +required: + - compatible + - interrupts + - reg + - clocks + +additionalProperties: false + +examples: + - | + timer0: timer@fc800000 { + compatible = "arm,sp804", "arm,primecell"; + reg = <0xfc800000 0x1000>; + interrupts = <0 0 4>, <0 1 4>; + clocks = <&timclk1>, <&timclk2>, <&pclk>; + clock-names = "timer1", "timer2", "apb_pclk"; + }; -- 2.17.1