Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3202296imu; Mon, 17 Dec 2018 15:24:32 -0800 (PST) X-Google-Smtp-Source: AFSGD/X/sQxXdVP4ZuJRShXZnAA7id3X1inXepnNJRNM/G/ZgcKtfWq5e6aH+iX+yw16kzqWIj/d X-Received: by 2002:a17:902:a03:: with SMTP id 3mr14533291plo.112.1545089072332; Mon, 17 Dec 2018 15:24:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1545089072; cv=none; d=google.com; s=arc-20160816; b=lRK9cedunWFQDz8UCznXCPPzgp7bwEZyokLr0lQYUvfIIt4k6pNwPt4T8HM1GPsvtW 1IgKe7aHqPrxx7e40Z9KTMPU72tQvti9nShFoA7yL+XaL/Ycp1ND5Rcztq3EWv7WPnI4 pL2BDviS1mE11pzEKnc2dlG4HKzz0TaYqmi2bWDGucnOOg3yjk2SrjMS1vKwUHl48qgg WYS3AV6oQlAC3aba77lW0D1dpWDomdWXFp1sR2EY8H+W8FHGNVAhJAUtmBUQ8br7AyG3 UqFMJmetzZidxZqa2r2B0oL0JT1Gz4iHr1owe6nvD02+hrUrq2bKLVqG370L+OvH3NlO M8fw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:dkim-signature:content-transfer-encoding :mime-version:references:in-reply-to:message-id:cc:to:subject:from :date; bh=0iT4feV+fIrIhlPppB6ixum7kDT+QVUyrgSwa39x6SU=; b=kfYr4dDr6cMhWUVhP7RmvhhA2u62Cv75mihE4NEpG3P4EU6EWlADU28hGT8VhHBLPF YQu6AfzulnCjvyMHXTqnwQv1iFF9RhAZGY4F02Yp/26LURglrRMF7z10V7CVBR0J5EEs fBgXsRq9z0k7Gua8Xzm4xoWJvoFa1TZr5Uhmu3LIYl6L5vqZrEQbXUf6qh4sDBUCEEvM XMpSb7wMRpfuYx0Wf42VXJHkPdvQLWgchH1tegaAF2xN6nPURLuQGHeDjwZymcryAhPf 5Mn/M4Ig+vOyy2AjKjvo1Tq1vhQ6acKh1a1gPsXnFY+eO7qs41XjSTXj0+YppAbNGJ6v WaKw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@crapouillou.net header.s=mail header.b=wI8qWnww; 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 f17si11516455pgj.208.2018.12.17.15.24.17; Mon, 17 Dec 2018 15:24:32 -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=@crapouillou.net header.s=mail header.b=wI8qWnww; 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 S1728103AbeLQWEe (ORCPT + 99 others); Mon, 17 Dec 2018 17:04:34 -0500 Received: from outils.crapouillou.net ([89.234.176.41]:44020 "EHLO crapouillou.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726574AbeLQWEd (ORCPT ); Mon, 17 Dec 2018 17:04:33 -0500 Date: Mon, 17 Dec 2018 23:03:42 +0100 From: Paul Cercueil Subject: Re: [PATCH v8 03/26] dt-bindings: Add doc for the Ingenic TCU drivers To: Rob Herring Cc: Thierry Reding , Mark Rutland , Daniel Lezcano , Thomas Gleixner , Ralf Baechle , Paul Burton , James Hogan , Jonathan Corbet , Mathieu Malaterre , Ezequiel Garcia , PrasannaKumar Muralidharan , linux-pwm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-watchdog@vger.kernel.org, linux-mips@vger.kernel.org, linux-doc@vger.kernel.org, linux-clk@vger.kernel.org, od@zcrc.me Message-Id: <1545084222.1958.0@smtp.crapouillou.net> In-Reply-To: <20181217210531.GA29770@bogus> References: <20181212220922.18759-1-paul@crapouillou.net> <20181212220922.18759-4-paul@crapouillou.net> <20181217210531.GA29770@bogus> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crapouillou.net; s=mail; t=1545084268; bh=0iT4feV+fIrIhlPppB6ixum7kDT+QVUyrgSwa39x6SU=; h=Date:From:Subject:To:Cc:Message-Id:In-Reply-To:References:MIME-Version:Content-Type:Content-Transfer-Encoding; b=wI8qWnwweXtIKMzmPJ6f34E/nMWv618S6v43rauipbhDIdds1pXZpDGpqYoi07p8/lLPl3Q+EL/wb20ZgbhzgqiRGOSAKSQkKpdlhxTKzCdBRHN4nxg7ydgVpq43TamhWOO6d95t+Ezwca92REx5iQwgXcDek69gnqtQFyyMvUE= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Rob, Le lun. 17 d=E9c. 2018 =E0 22:05, Rob Herring a =E9crit : > On Wed, Dec 12, 2018 at 11:08:58PM +0100, Paul Cercueil wrote: >> Add documentation about how to properly use the Ingenic TCU >> (Timer/Counter Unit) drivers from devicetree. >>=20 >> Signed-off-by: Paul Cercueil >> --- >>=20 >> Notes: >> v4: New patch in this series. Corresponds to V2 patches 3-4-5=20 >> with >> added content. >>=20 >> v5: - Edited PWM/watchdog DT bindings documentation to point=20 >> to the new >> document. >> - Moved main document to >> Documentation/devicetree/bindings/timer/ingenic,tcu.txt >> - Updated documentation to reflect the new devicetree=20 >> bindings. >>=20 >> v6: - Removed PWM/watchdog documentation files as asked by=20 >> upstream >> - Removed doc about properties that should be implicit >> - Removed doc about ingenic,timer-channel / >> ingenic,clocksource-channel as they are gone >> - Fix WDT clock name in the binding doc >> - Fix lengths of register areas in watchdog/pwm nodes >>=20 >> v7: No change >>=20 >> v8: - Fix address of the PWM node >> - Added doc about system timer and clocksource children=20 >> nodes >=20 > I thought we'd sorted this out... Yeah, well I just can't please everybody. V6/V7 didn't have the system timer or clocksource in devicetree, which was good for you, but then the driver nearly doubled in size and complexity, and Thierry rightfully refused it. Now I'm at the point where I'm trying alternative ways of encoding the information in devicetree, as suggested by various people, just so that you accept it. Because I don't see any other option. >>=20 >> .../devicetree/bindings/pwm/ingenic,jz47xx-pwm.txt | 25 --- >> .../devicetree/bindings/timer/ingenic,tcu.txt | 176=20 >> +++++++++++++++++++++ >> .../bindings/watchdog/ingenic,jz4740-wdt.txt | 17 -- >> 3 files changed, 176 insertions(+), 42 deletions(-) >> delete mode 100644=20 >> Documentation/devicetree/bindings/pwm/ingenic,jz47xx-pwm.txt >> create mode 100644=20 >> Documentation/devicetree/bindings/timer/ingenic,tcu.txt >> delete mode 100644=20 >> Documentation/devicetree/bindings/watchdog/ingenic,jz4740-wdt.txt >>=20 >> diff --git=20 >> a/Documentation/devicetree/bindings/pwm/ingenic,jz47xx-pwm.txt=20 >> b/Documentation/devicetree/bindings/pwm/ingenic,jz47xx-pwm.txt >> deleted file mode 100644 >> index 7d9d3f90641b..000000000000 >> --- a/Documentation/devicetree/bindings/pwm/ingenic,jz47xx-pwm.txt >> +++ /dev/null >> @@ -1,25 +0,0 @@ >> -Ingenic JZ47xx PWM Controller >> -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D >> - >> -Required properties: >> -- compatible: One of: >> - * "ingenic,jz4740-pwm" >> - * "ingenic,jz4770-pwm" >> - * "ingenic,jz4780-pwm" >> -- #pwm-cells: Should be 3. See pwm.txt in this directory for a=20 >> description >> - of the cells format. >> -- clocks : phandle to the external clock. >> -- clock-names : Should be "ext". >> - >> - >> -Example: >> - >> - pwm: pwm@10002000 { >> - compatible =3D "ingenic,jz4740-pwm"; >> - reg =3D <0x10002000 0x1000>; >> - >> - #pwm-cells =3D <3>; >> - >> - clocks =3D <&ext>; >> - clock-names =3D "ext"; >> - }; >> diff --git=20 >> a/Documentation/devicetree/bindings/timer/ingenic,tcu.txt=20 >> b/Documentation/devicetree/bindings/timer/ingenic,tcu.txt >> new file mode 100644 >> index 000000000000..8a4ce7edf50f >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/timer/ingenic,tcu.txt >> @@ -0,0 +1,176 @@ >> +Ingenic JZ47xx SoCs Timer/Counter Unit devicetree bindings >> +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> + >> +For a description of the TCU hardware and drivers, have a look at >> +Documentation/mips/ingenic-tcu.txt. >> + >> +Required properties: >> + >> +- compatible: Must be one of: >> + * ingenic,jz4740-tcu >> + * ingenic,jz4725b-tcu >> + * ingenic,jz4770-tcu >> +- reg: Should be the offset/length value corresponding to the TCU=20 >> registers >> +- clocks: List of phandle & clock specifiers for clocks external=20 >> to the TCU. >> + The "pclk", "rtc", "ext" and "tcu" 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=20 >> valid values >> + may be found in . >> +- interrupt-controller : Identifies the node as an interrupt=20 >> controller >> +- #interrupt-cells : Specifies the number of cells needed to=20 >> encode an >> + interrupt source. The value should be 1. >> +- interrupt-parent : phandle of the interrupt controller. >> +- interrupts : Specifies the interrupt the controller is connected=20 >> to. >> + >> + >> +Children nodes >> +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> + >> + >> +PWM node: >> +--------- >> + >> +Required properties: >> + >> +- compatible: Must be one of: >> + * ingenic,jz4740-pwm >> + * ingenic,jz4725b-pwm >> +- #pwm-cells: Should be 3. See ../pwm/pwm.txt for a description of=20 >> the cell >> + format. >> +- clocks: List of phandle & clock specifiers for the TCU clocks. >> +- clock-names: List of name strings for the TCU clocks. >> + >> + >> +Watchdog node: >> +-------------- >> + >> +Required properties: >> + >> +- compatible: Must be one of: >> + * ingenic,jz4740-watchdog >> + * ingenic,jz4780-watchdog >> +- clocks: phandle to the WDT clock >> +- clock-names: should be "wdt" >> + >> + >> +OST node: >> +--------- >> + >> +Required properties: >> + >> +- compatible: Must be one of: >> + * ingenic,jz4725b-ost >> + * ingenic,jz4770-ost >> +- clocks: phandle to the OST clock >> +- clock-names: should be "ost" >> +- interrupts : Specifies the interrupt the OST is connected to. >> + >> + >> +System timer node: >> +------------------ >> + >> +Required properties: >> + >> +- compatible: Must be "ingenic,jz4740-tcu-timer" >=20 > Is this an actual sub-block? Or just a way to assign a timer to a > clockevent? Just a way to assign a timer to a clockevent. >> +- clocks: phandle to the clock of the TCU channel used >> +- clock-names: Should be "timer" >> +- interrupts : Specifies the interrupt line of the TCU channel=20 >> used. >> + >> + >> +System clocksource node: >> +------------------------ >> + >> +Required properties: >> + >> +- compatible: Must be "ingenic,jz4740-tcu-clocksource" >=20 > The h/w has a block called 'clocksource'? >=20 > If there's a difference in the timer channels, then that difference > should be described in DT, not just 'use timer X for clocksource'. Same as above, this is just a way to assign a channel to the=20 clocksource. >>=20 > +- clock-names: Should be "timer" > +- clocks: phandle to the clock of the TCU channel use Regards, - Paul Cercueil =