Received: by 10.213.65.68 with SMTP id h4csp597022imn; Sat, 17 Mar 2018 16:31:00 -0700 (PDT) X-Google-Smtp-Source: AG47ELs/oWLzWCq6lu+AL6A8DmqmljtLylKz9A1gyiDjL6OqVuRjPIRHC+wH9ArVbVwDTUuU+svH X-Received: by 10.101.74.77 with SMTP id a13mr5511776pgu.32.1521329460050; Sat, 17 Mar 2018 16:31:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521329460; cv=none; d=google.com; s=arc-20160816; b=vfr0PSJTF7dhkFYdb7A4tgeLYRxUsA/oL57cFrFr1zsTwdaHgieAAhpfr/4Cn9tQ/x /oO/7CcuML4PI9IWPs5jcvlliu/mUmyUqhB8+6GKGBLeSbhYiTdj0Y2CipfTaq8/gDvJ TltgSE9Etnzwq+mhjOXjLDD7JXOGVmvGefpQjdJpxsdCARvtTVcUNJRyU6n5Ey4fEqHB oc5pvi5/2xIC2wSS6EdsVnRjeVPTIo1bgAvPkRAuIBWcrPKI2wkBjVDUdvYwp3xTzIft gJy6zxZD8O6kJEWGMHI1z8opjFD900JF22Tp9bWWE+RAVkP/Y5gf3fNL3hhOgxBHb+hr dufQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:dkim-signature:references:in-reply-to :message-id:date:subject:cc:to:from:arc-authentication-results; bh=dP9gDM2vxCgS9n46a6rWIX5G2IF6HAt+lcdogYXk9VY=; b=ivxQXvFGkaP23G/M3LPGdyPHatuXXhH+pL3SCGyKdQHElga/1OPU0qWTLi9FoLPORU +kf88lJrEwuKR0WBKZuq2koz+KLAY5AHjfEaXPWJI/4mkhVf32g7cKpL45j7PLQG32Hc qzkFWXNv77oq5CcfEZxnV2Pdm+rYSB/zruT0S6fUJlucKBLpzUql2W8RSFA7Q+8x801F kSjGv+AKC6SDEEpRGKrTfDH7c9Kg+jy9O4p8L6TiEUM6a4YRYSfVV5PVdjabhNLOM9cU K45aYchy46uLw2hW0D3fREs+MkAaYMZoPGb4zYyvOMYohF52OjKH8B3F8eLRrFLi9zDR GSDw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@crapouillou.net header.s=mail header.b=hj/5OUnY; 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=crapouillou.net Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o12-v6si9335307plg.650.2018.03.17.16.30.46; Sat, 17 Mar 2018 16:31:00 -0700 (PDT) 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=@crapouillou.net header.s=mail header.b=hj/5OUnY; 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=crapouillou.net Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753683AbeCQX3o (ORCPT + 99 others); Sat, 17 Mar 2018 19:29:44 -0400 Received: from outils.crapouillou.net ([89.234.176.41]:36260 "EHLO crapouillou.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753488AbeCQX3l (ORCPT ); Sat, 17 Mar 2018 19:29:41 -0400 From: Paul Cercueil To: Thomas Gleixner , Jason Cooper , Marc Zyngier , Lee Jones , Daniel Lezcano , Ralf Baechle , Rob Herring , Jonathan Corbet , Mark Rutland Cc: James Hogan , Maarten ter Huurne , linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mips@linux-mips.org, linux-doc@vger.kernel.org, Paul Cercueil Subject: [PATCH v4 4/8] dt-bindings: Add doc for the Ingenic TCU drivers Date: Sun, 18 Mar 2018 00:28:57 +0100 Message-Id: <20180317232901.14129-5-paul@crapouillou.net> In-Reply-To: <20180317232901.14129-1-paul@crapouillou.net> References: <20180110224838.16711-2-paul@crapouillou.net> <20180317232901.14129-1-paul@crapouillou.net> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crapouillou.net; s=mail; t=1521329379; bh=dP9gDM2vxCgS9n46a6rWIX5G2IF6HAt+lcdogYXk9VY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=hj/5OUnY4/jGoI+Fd1q9Y4EtyGhr3a8k5PWG98sh32niIwm3V50pYcJQzikPehgAj9EEwiYUy07SLfOR6KDzQs2R7JwS9Fxa8zpa7rF7H59QSQdih2jbeBZ14j8vtwOjJU3KrU/Juq6CrlyEUnuJyOmqYlztNurDQVaQ7Sh+r14= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add documentation about how to properly use the Ingenic TCU (Timer/Counter Unit) drivers from devicetree. Signed-off-by: Paul Cercueil --- .../bindings/clock/ingenic,tcu-clocks.txt | 42 ++++++++++++++++ .../bindings/interrupt-controller/ingenic,tcu.txt | 39 +++++++++++++++ .../devicetree/bindings/mfd/ingenic,tcu.txt | 56 ++++++++++++++++++++++ .../devicetree/bindings/timer/ingenic,tcu.txt | 41 ++++++++++++++++ 4 files changed, 178 insertions(+) create mode 100644 Documentation/devicetree/bindings/clock/ingenic,tcu-clocks.txt create mode 100644 Documentation/devicetree/bindings/interrupt-controller/ingenic,tcu.txt create mode 100644 Documentation/devicetree/bindings/mfd/ingenic,tcu.txt create mode 100644 Documentation/devicetree/bindings/timer/ingenic,tcu.txt v4: New patch in this series. Corresponds to V2 patches 3-4-5 with added content. diff --git a/Documentation/devicetree/bindings/clock/ingenic,tcu-clocks.txt b/Documentation/devicetree/bindings/clock/ingenic,tcu-clocks.txt new file mode 100644 index 000000000000..471d27078599 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/ingenic,tcu-clocks.txt @@ -0,0 +1,42 @@ +Ingenic SoC TCU binding + +The TCU is the Timer/Counter Unit present in all Ingenic SoCs. It features 8 +channels, each one having its own clock, that can be started and stopped, +reparented, and reclocked. + +Required properties: +- compatible : One of: + * ingenic,jz4740-tcu-clocks, + * ingenic,jz4770-tcu-clocks, + * ingenic,jz4780-tcu-clocks. +- clocks : List of phandle & clock specifiers for clocks external to the TCU. + The "pclk", "rtc" and "ext" clocks should be provided. +- clock-names : List of name strings for the external clocks. +- #clock-cells: Should be 1. + Clock consumers specify this argument to identify a clock. The valid values + may be found in . + +Example: + +/ { + tcu: mfd@10002000 { + compatible = "ingenic,tcu", "simple-mfd", "syscon"; + reg = <0x10002000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x0 0x10002000 0x1000>; + + tcu_clk: clocks@10 { + compatible = "ingenic,jz4740-tcu-clocks"; + reg = <0x10 0xff0>; + + clocks = <&ext>, <&rtc>, <&pclk>; + clock-names = "ext", "rtc", "pclk"; + + #clock-cells = <1>; + }; + }; +}; + +For information about the top-level "ingenic,tcu" compatible node and other +children nodes, see Documentation/devicetree/bindings/mfd/ingenic,tcu.txt. diff --git a/Documentation/devicetree/bindings/interrupt-controller/ingenic,tcu.txt b/Documentation/devicetree/bindings/interrupt-controller/ingenic,tcu.txt new file mode 100644 index 000000000000..7f3af2da77cd --- /dev/null +++ b/Documentation/devicetree/bindings/interrupt-controller/ingenic,tcu.txt @@ -0,0 +1,39 @@ +Ingenic SoCs Timer/Counter Unit Interrupt Controller + +Required properties: + +- compatible : should be "ingenic,-tcu-intc". Valid strings are: + * ingenic,jz4740-tcu-intc + * ingenic,jz4770-tcu-intc + * ingenic,jz4780-tcu-intc +- interrupt-controller : Identifies the node as an interrupt controller +- #interrupt-cells : Specifies the number of cells needed to encode an + interrupt source. The value shall be 1. +- interrupt-parent : phandle of the interrupt controller. +- interrupts : Specifies the interrupt the controller is connected to. + +Example: + +/ { + tcu: mfd@10002000 { + compatible = "ingenic,tcu", "simple-mfd", "syscon"; + reg = <0x10002000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x0 0x10002000 0x1000>; + + tcu_irq: interrupt-controller@20 { + compatible = "ingenic,jz4740-tcu-intc"; + reg = <0x20 0x20>; + + interrupt-controller; + #interrupt-cells = <1>; + + interrupt-parent = <&intc>; + interrupts = <15>; + }; + }; +}; + +For information about the top-level "ingenic,tcu" compatible node and other +children nodes, see Documentation/devicetree/bindings/mfd/ingenic,tcu.txt. diff --git a/Documentation/devicetree/bindings/mfd/ingenic,tcu.txt b/Documentation/devicetree/bindings/mfd/ingenic,tcu.txt new file mode 100644 index 000000000000..5742c3f21550 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/ingenic,tcu.txt @@ -0,0 +1,56 @@ +Ingenic JZ47xx SoCs Timer/Counter Unit devicetree bindings +---------------------------------------------------------- + +For a description of the TCU hardware and drivers, have a look at +Documentation/mips/ingenic-tcu.txt. + +The TCU is implemented as a parent node, whose role is to create the +regmap, and child nodes for the various drivers listed in the aforementioned +document. + +Required properties: + +- compatible: must be "ingenic,tcu", "simple-mfd", "syscon"; +- reg: Should be the offset/length value corresponding to the TCU registers +- #address-cells: Should be <1>; +- #size-cells: Should be <1>; +- ranges: Should be one range for the full TCU registers area + +Accepted children nodes: +- Documentation/devicetree/bindings/interrupt-controller/ingenic,tcu.txt +- Documentation/devicetree/bindings/clock/ingenic,tcu-clocks.txt +- Documentation/devicetree/bindings/timer/ingenic,tcu.txt + + +Example: + +/ { + tcu: mfd@10002000 { + compatible = "ingenic,tcu", "simple-mfd", "syscon"; + reg = <0x10002000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x0 0x10002000 0x1000>; + + tcu_irq: interrupt-controller@20 { + compatible = "ingenic,jz4740-tcu-intc"; + reg = <0x20 0x20>; + ... + }; + + tcu_clk: clocks@10 { + compatible = "ingenic,jz4740-tcu-clocks"; + reg = <0x10 0xff0>; + ... + }; + + tcu_timer: timer@10 { + compatible = "ingenic,jz4740-tcu"; + reg = <0x10 0xff0>; + ... + }; + }; +}; + +For more information about the children node, refer to the documents listed +above in the "Accepted children nodes" section. diff --git a/Documentation/devicetree/bindings/timer/ingenic,tcu.txt b/Documentation/devicetree/bindings/timer/ingenic,tcu.txt new file mode 100644 index 000000000000..f910b7e96783 --- /dev/null +++ b/Documentation/devicetree/bindings/timer/ingenic,tcu.txt @@ -0,0 +1,41 @@ +Ingenic JZ47xx SoCs Timer/Counter Unit driver +--------------------------------------------- + +Required properties: + +- compatible : should be "ingenic,-tcu". Valid strings are: + * ingenic,jz4740-tcu + * ingenic,jz4770-tcu + * ingenic,jz4780-tcu +- interrupt-parent : phandle of the TCU interrupt controller. +- interrupts : Specifies the interrupts the controller is connected to. +- clocks : List of phandle & clock specifiers for the TCU clocks. +- clock-names : List of name strings for the TCU clocks. + +Example: + +/ { + tcu: mfd@10002000 { + compatible = "ingenic,tcu", "simple-mfd", "syscon"; + reg = <0x10002000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x0 0x10002000 0x1000>; + + tcu_timer: timer@10 { + compatible = "ingenic,jz4740-tcu"; + reg = <0x10 0xff0>; + + clocks = <&tcu_clk 0>, <&tcu_clk 1>, <&tcu_clk 2>, <&tcu_clk 3>, + <&tcu_clk 4>, <&tcu_clk 5>, <&tcu_clk 6>, <&tcu_clk 7>; + clock-names = "timer0", "timer1", "timer2", "timer3", + "timer4", "timer5", "timer6", "timer7"; + + interrupt-parent = <&tcu_irq>; + interrupts = <0 1 2 3 4 5 6 7>; + }; + }; +}; + +For information about the top-level "ingenic,tcu" compatible node and other +children nodes, see Documentation/devicetree/bindings/mfd/ingenic,tcu.txt. -- 2.11.0