From patchwork Tue Nov 15 15:48:44 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 695085 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3tJBf53JM0z9t0q for ; Wed, 16 Nov 2016 02:49:33 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="xDEOr5rn"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935544AbcKOPtO (ORCPT ); Tue, 15 Nov 2016 10:49:14 -0500 Received: from mail-pf0-f196.google.com ([209.85.192.196]:33857 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S938804AbcKOPsx (ORCPT ); Tue, 15 Nov 2016 10:48:53 -0500 Received: by mail-pf0-f196.google.com with SMTP id y68so8211980pfb.1; Tue, 15 Nov 2016 07:48:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=tiiXviTLq56RS8KE06oVDUj1n7gfb3xsAhLf081Rpnc=; b=xDEOr5rngtowabK0OrF9bhpKxQTkFsdIkxYprJDphcPrsdNN9v7TBrx0iD40Pk3FVC mgr9vbCmZwAn1vmraJ0sXRc9+C+ep1Qg49/FGxjELlswMcSpi6NY8JQMT4QCEg/+qMGQ GHfnTjdg3iJlPu/glyaPV7eye3hrVDva0lDbByGcdioUuCFGBhKcKclR9uuSXbrHjUYR /QGF2aN6m2r8/ea5FqMn4XG7nzFjiLoOY20S+RELPxUXFxqXm7T1GAOdbnfUuXJIX2Vc DogGXXWD9GoUgOM/AHVNetma95cbPfLVCMuOY/6NrECl1mbLIPIs2SwYzB4aNbGHbUgg IlNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=tiiXviTLq56RS8KE06oVDUj1n7gfb3xsAhLf081Rpnc=; b=BqxWP7NeUbrQVOh2kbk5Hr0IVZOf0hTwMpbxxCC4S1SCd4lRQ6srE36cjRVywXiDGw yXus6VYZ1mg7bIIFj7cL/aYJauUaIz+MT4GXkjXDRFe4vImPXkk3u/whKrK6t6pCWY7t aZ2uVWSdYIb70r/iIJzQYBhn/LLqmuE8f18fXIGT3NbQBeOjiv0CuPp+4yFkzBZRgAMG v9NRHLwJJTIjr7PvWQRD+LX/4sYN+MXwIwSGiPbKQMUzZPPVsvaWpyHY0QeLufpQyRw3 gf4rKn44p7CJ4mQNS/Unkak2U7UIJftDiuOdaS0yPO5ilqCR12TISQY851XSYWaH2xYG q4CQ== X-Gm-Message-State: ABUngveCMkhBkcVTqvN4OTUZMinK9px7n8UWmD5erdNrnHPsotSm9XPqi2Qb6aUZJ1uHjw== X-Received: by 10.99.146.7 with SMTP id o7mr14410892pgd.6.1479224932353; Tue, 15 Nov 2016 07:48:52 -0800 (PST) Received: from localhost (port-11995.pppoe.wtnet.de. [84.46.47.10]) by smtp.gmail.com with ESMTPSA id y20sm44250986pfj.26.2016.11.15.07.48.51 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 15 Nov 2016 07:48:51 -0800 (PST) From: Thierry Reding To: Jassi Brar Cc: Jon Hunter , linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v4 1/2] dt-bindings: mailbox: Add Tegra HSP binding Date: Tue, 15 Nov 2016 16:48:44 +0100 Message-Id: <20161115154845.24803-2-thierry.reding@gmail.com> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20161115154845.24803-1-thierry.reding@gmail.com> References: <20161115154845.24803-1-thierry.reding@gmail.com> Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org From: Joseph Lo Add DT binding for the Hardware Synchronization Primitives (HSP). The HSP is designed for the processors to share resources and communicate with one another. A set of hardware synchronization primitives for interprocessor communication (IPC) is provided. IPC protocols can use use these hardware synchronization primitives when operating between processors in an AMP configuration. Signed-off-by: Joseph Lo Acked-by: Stephen Warren Acked-by: Rob Herring Acked-by: Jon Hunter Signed-off-by: Thierry Reding --- .../bindings/mailbox/nvidia,tegra186-hsp.txt | 52 ++++++++++++++++++++++ include/dt-bindings/mailbox/tegra186-hsp.h | 24 ++++++++++ 2 files changed, 76 insertions(+) create mode 100644 Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt create mode 100644 include/dt-bindings/mailbox/tegra186-hsp.h diff --git a/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt b/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt new file mode 100644 index 000000000000..b99d25fc2f26 --- /dev/null +++ b/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt @@ -0,0 +1,52 @@ +NVIDIA Tegra Hardware Synchronization Primitives (HSP) + +The HSP modules are used for the processors to share resources and communicate +together. It provides a set of hardware synchronization primitives for +interprocessor communication. So the interprocessor communication (IPC) +protocols can use hardware synchronization primitives, when operating between +two processors not in an SMP relationship. + +The features that HSP supported are shared mailboxes, shared semaphores, +arbitrated semaphores and doorbells. + +Required properties: +- name : Should be hsp +- compatible + Array of strings. + one of: + - "nvidia,tegra186-hsp" +- reg : Offset and length of the register set for the device. +- interrupt-names + Array of strings. + Contains a list of names for the interrupts described by the interrupt + property. May contain the following entries, in any order: + - "doorbell" + Users of this binding MUST look up entries in the interrupt property + by name, using this interrupt-names property to do so. +- interrupts + Array of interrupt specifiers. + Must contain one entry per entry in the interrupt-names property, + in a matching order. +- #mbox-cells : Should be 2. + +The mbox specifier of the "mboxes" property in the client node should +contain two data. The first one should be the HSP type and the second +one should be the ID that the client is going to use. Those information +can be found in the following file. + +- . + +Example: + +hsp_top0: hsp@3c00000 { + compatible = "nvidia,tegra186-hsp"; + reg = <0x0 0x03c00000 0x0 0xa0000>; + interrupts = ; + interrupt-names = "doorbell"; + #mbox-cells = <2>; +}; + +client { + ... + mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_DB TEGRA_HSP_DB_MASTER_XXX>; +}; diff --git a/include/dt-bindings/mailbox/tegra186-hsp.h b/include/dt-bindings/mailbox/tegra186-hsp.h new file mode 100644 index 000000000000..f5d66e5f5f10 --- /dev/null +++ b/include/dt-bindings/mailbox/tegra186-hsp.h @@ -0,0 +1,24 @@ +/* + * This header provides constants for binding nvidia,tegra186-hsp. + */ + +#ifndef _DT_BINDINGS_MAILBOX_TEGRA186_HSP_H +#define _DT_BINDINGS_MAILBOX_TEGRA186_HSP_H + +/* + * These define the type of mailbox that is to be used (doorbell, shared + * mailbox, shared semaphore or arbitrated semaphore). + */ +#define TEGRA_HSP_MBOX_TYPE_DB 0x0 +#define TEGRA_HSP_MBOX_TYPE_SM 0x1 +#define TEGRA_HSP_MBOX_TYPE_SS 0x2 +#define TEGRA_HSP_MBOX_TYPE_AS 0x3 + +/* + * These defines represent the bit associated with the given master ID in the + * doorbell registers. + */ +#define TEGRA_HSP_DB_MASTER_CCPLEX 17 +#define TEGRA_HSP_DB_MASTER_BPMP 19 + +#endif