From patchwork Wed Jan 14 20:58:18 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Suman Anna X-Patchwork-Id: 5635201 Return-Path: X-Original-To: patchwork-linux-omap@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 50CD69F2ED for ; Wed, 14 Jan 2015 20:59:39 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 6349A20149 for ; Wed, 14 Jan 2015 20:59:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6094F2011D for ; Wed, 14 Jan 2015 20:59:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752876AbbANU67 (ORCPT ); Wed, 14 Jan 2015 15:58:59 -0500 Received: from bear.ext.ti.com ([192.94.94.41]:42364 "EHLO bear.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752371AbbANU65 (ORCPT ); Wed, 14 Jan 2015 15:58:57 -0500 Received: from dlelxv90.itg.ti.com ([172.17.2.17]) by bear.ext.ti.com (8.13.7/8.13.7) with ESMTP id t0EKwNH0008990; Wed, 14 Jan 2015 14:58:23 -0600 Received: from DLEE70.ent.ti.com (dlemailx.itg.ti.com [157.170.170.113]) by dlelxv90.itg.ti.com (8.14.3/8.13.8) with ESMTP id t0EKwNBQ017871; Wed, 14 Jan 2015 14:58:23 -0600 Received: from dflp32.itg.ti.com (10.64.6.15) by DLEE70.ent.ti.com (157.170.170.113) with Microsoft SMTP Server id 14.3.174.1; Wed, 14 Jan 2015 14:58:22 -0600 Received: from legion.dal.design.ti.com (legion.dal.design.ti.com [128.247.22.53]) by dflp32.itg.ti.com (8.14.3/8.13.8) with ESMTP id t0EKwMGS008747; Wed, 14 Jan 2015 14:58:22 -0600 Received: from localhost (irmo.am.dhcp.ti.com [128.247.71.175]) by legion.dal.design.ti.com (8.11.7p1+Sun/8.11.7) with ESMTP id t0EKwMt28776; Wed, 14 Jan 2015 14:58:22 -0600 (CST) From: Suman Anna To: Ohad Ben-Cohen , Mark Rutland , Kumar Gala CC: Bjorn Andersson , Josh Cartwright , , , , , Suman Anna , Rob Herring Subject: [PATCH v7 1/4] Documentation: dt: add common bindings for hwspinlock Date: Wed, 14 Jan 2015 14:58:18 -0600 Message-ID: <1421269101-51105-2-git-send-email-s-anna@ti.com> X-Mailer: git-send-email 2.2.1 In-Reply-To: <1421269101-51105-1-git-send-email-s-anna@ti.com> References: <1421269101-51105-1-git-send-email-s-anna@ti.com> MIME-Version: 1.0 Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This patch adds the generic common bindings used to represent a hwlock device and use/request locks in a device-tree build. All the platform-specific hwlock driver implementations need the number of locks and associated base id for registering the locks present within the device with the driver core. This base id needs to be unique across multiple IP instances of a hwspinlock device, so that each hwlock can be represented uniquely in a system. The number of locks is represented by 'hwlock-num-locks' property, and the base id is represented by the 'hwlock-base-id' property. The args specifier length is dependent on each vendor-specific implementation and is represented through the '#hwlock-cells' property. Client users need to use the property 'hwlocks' for requesting specific lock(s). Note that the document is named hwlock.txt deliberately to keep it a bit more generic. Cc: Rob Herring Signed-off-by: Suman Anna --- v7: Revised binding info for hwlock-base-id, it is mandatory now .../devicetree/bindings/hwlock/hwlock.txt | 55 ++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 Documentation/devicetree/bindings/hwlock/hwlock.txt diff --git a/Documentation/devicetree/bindings/hwlock/hwlock.txt b/Documentation/devicetree/bindings/hwlock/hwlock.txt new file mode 100644 index 000000000000..8de7aaf878f9 --- /dev/null +++ b/Documentation/devicetree/bindings/hwlock/hwlock.txt @@ -0,0 +1,55 @@ +Generic hwlock bindings +======================= + +Generic bindings that are common to all the hwlock platform specific driver +implementations. + +The validity and need of these common properties may vary from one platform +implementation to another. The platform specific bindings should explicitly +state if an optional property is used. Please also look through the individual +platform specific hwlock binding documentations for identifying the applicable +properties. + +Common properties: +- #hwlock-cells: Specifies the number of cells needed to represent a + specific lock. This property is mandatory for all + platform implementations. +- hwlock-num-locks: Number of locks present in a hwlock device. This + property is needed on hwlock devices, where the number + of supported locks within a hwlock device cannot be + read from a register. +- hwlock-base-id: An unique base Id for the locks for a particular hwlock + device. This property is mandatory for all platform + implementations. + +Hwlock Users: +============= + +Nodes that require specific hwlock(s) should specify them using the property +"hwlocks", each containing a phandle to the hwlock node and an args specifier +value as indicated by #hwlock-cells. Multiple hwlocks can be requested using +an array of the phandle and hwlock number specifier tuple. + +1. Example of a node using a single specific hwlock: + +The following example has a node requesting a hwlock in the bank defined by +the node hwlock1. hwlock1 is a hwlock provider with an argument specifier +of length 1. + + node { + ... + hwlocks = <&hwlock1 2>; + ... + }; + +2. Example of a node using multiple specific hwlocks: + +The following example has a node requesting two hwlocks, a hwlock within +the hwlock device node 'hwlock1' with #hwlock-cells value of 1, and another +hwlock within the hwlock device node 'hwlock2' with #hwlock-cells value of 2. + + node { + ... + hwlocks = <&hwlock1 2>, <&hwlock2 0 3>; + ... + };