From patchwork Mon Nov 12 15:18:46 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 10678811 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 76AD1139B for ; Mon, 12 Nov 2018 15:21:24 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 609E029C41 for ; Mon, 12 Nov 2018 15:21:24 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 52D6129D33; Mon, 12 Nov 2018 15:21:24 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.6 required=2.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 9AB6629C41 for ; Mon, 12 Nov 2018 15:21:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=EvPcw0hxPrJ/a12E5taCXEXAAlMtnyER+HvflTmOv7M=; b=j+cwBY/Tpmounx 4g0vnpa2Q2TdjY0o74en8Bu1epwJ+X781gDnGj3xmtKkN+thQ5gsU9b/EC0wwdmNHztgpeAnt7t+f XE/CUYhBjVnJKNQLpHAOqqfI+5bTyf5L820GkOzxn0KcfoIQSD7tzxp/H5o4FYaT3WRP4nMIS6CVR EynpANxy2hzMHOV8ROKUo0jm+Rm/Tdseu1AleGFQMPMWY6OApEo57KNMWJ4P0tZBOOVm0aDZSp4Kv r8yqRCkdAY7NAG5G4FORR+7h1KN+syHaO2t12NsMjgw1m6B7+qjNC3A69JAD64RV1oOMEP5glwqgz 1Qa9IQo4LnIWJ2hrk39Q==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gME1a-0000Be-FW; Mon, 12 Nov 2018 15:21:14 +0000 Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gMDzc-0005Zs-Ao for linux-arm-kernel@lists.infradead.org; Mon, 12 Nov 2018 15:19:14 +0000 Received: by mail-ed1-x529.google.com with SMTP id b14so5164663edt.6 for ; Mon, 12 Nov 2018 07:19:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/RPli5BOw9+z5QGH2wxe38AOela08ZMXHFWuTc7lj+k=; b=tw+cI6DqJ/wf7uDG57I+33+QaZsFKo/ffCNQYPPqOZnyQVTJKa+7ddYOFpbhnXdCk0 nsiahdChKmp8815xuqCpZmU3dFYeH994iHasU+/DgTJIMr4L7p7SrR60ex7rDFaNrIQi oNblULco4ig/CA/TOPMvy4N5quax2arT9mmBI/wwk9/HG5X7rhRLnkDsfjjRSczX1Nda CSrNbmL+IA6FT53RkEN42g5QeLAV/p06s9BVvijIjPRsrXXwVKEb+sJQxwCjdoEuB/wO H3bnPAMiDk1bXN/xc71LRRu0/p2WZCAKkFVT9IMT5JoeTOeiuaC6c0q4ID47TdD1UniP 7UWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/RPli5BOw9+z5QGH2wxe38AOela08ZMXHFWuTc7lj+k=; b=JtoO32cf2zLvIphJ+ZtP1mOmJKv199C+l1SZZ1AqtF18z8TAiYmJ3KWQPaoH8Wtobt r/9gIwLqCo9smPUgfYzTRynsjfaJrTHLe4Sc9dHmK0cMGSQ4tF7P0vGlM57Ma+kYmif/ 3wb6Xy9z1ETpk4SJqls4Wh96nKnMSwYN/4E7u+MIaRBAmehd/U6iARloOhU4abHzVXSt ChqVPBBXEIAgH0DhqI8uVMCz9t1tDH6BMU3hZ3f87qIhAJl5z1NQfZ/SxZ9jlZ8VAg5M NbV3WLNf4CCZhD665nqrfGOzv0e8kaqr7KOyJq2YV+SEtjdoaluLgv7lJXBVoh2TR2ro vZkA== X-Gm-Message-State: AGRZ1gL6G+XtfFMyHWglq59I3J3hHs9QqPuLmuPrV81ftvLnfj7oW3ow aX9vRjMprpRVWuIctEW0crs= X-Google-Smtp-Source: AJdET5fNuDLUr+mtUkDpW/fzDkbRsarApIkgdppgbykOxgsR3gGoWZHeklojg7/PWCGVeIhWrtIlyg== X-Received: by 2002:a17:906:5a84:: with SMTP id l4-v6mr9801960ejq.229.1542035940426; Mon, 12 Nov 2018 07:19:00 -0800 (PST) Received: from localhost (pD9E511F8.dip0.t-ipconnect.de. [217.229.17.248]) by smtp.gmail.com with ESMTPSA id h51-v6sm4542879edh.91.2018.11.12.07.18.59 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 12 Nov 2018 07:18:59 -0800 (PST) From: Thierry Reding To: Thierry Reding , Jassi Brar , Greg Kroah-Hartman , Rob Herring Subject: [PATCH v2 03/10] dt-bindings: tegra186-hsp: Add shared mailboxes Date: Mon, 12 Nov 2018 16:18:46 +0100 Message-Id: <20181112151853.29289-4-thierry.reding@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181112151853.29289-1-thierry.reding@gmail.com> References: <20181112151853.29289-1-thierry.reding@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181112_071912_390648_E4EC3A31 X-CRM114-Status: GOOD ( 20.91 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, Mika Liljeberg , Mikko Perttunen , Timo Alho , linux-serial@vger.kernel.org, Jiri Slaby , linux-tegra@vger.kernel.org, Pekka Pessi , Jon Hunter , linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP From: Mikko Perttunen Shared mailboxes are a mechanism to transport data from one processor in the system to another. They are bidirectional links with both a producer and a consumer. Interrupts are used to let the consumer know when data was written to the mailbox by the producer, and to let the producer know when the consumer has read the data from the mailbox. These interrupts are mapped to one or more "shared interrupts". Typically each processor in the system owns one of these shared interrupts. Add documentation to the device tree bindings about how clients can use mailbox specifiers to request a specific shared mailbox and select which direction they drive. Also document how to specify the shared interrupts in addition to the existing doorbell interrupt. Signed-off-by: Mikko Perttunen Acked-by: Jon Hunter Reviewed-by: Rob Herring Acked-by: Thierry Reding Signed-off-by: Thierry Reding --- Changes in v2: - describe in more detail how the mailbox specifiers are constructed - encode mailbox direction in the device tree mailbox specifier Rob, you had already reviewed this and I've kept your tag for now, even though there have been slight changes in this. If you don't mind taking another look to verify that the changes I've made are still okay. Thanks, Thierry .../bindings/mailbox/nvidia,tegra186-hsp.txt | 30 +++++++++++++++---- include/dt-bindings/mailbox/tegra186-hsp.h | 11 +++++++ 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt b/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt index b99d25fc2f26..ff3eafc5a882 100644 --- a/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt +++ b/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt @@ -15,12 +15,15 @@ Required properties: Array of strings. one of: - "nvidia,tegra186-hsp" + - "nvidia,tegra194-hsp", "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" + - "sharedN", where 'N' is a number from zero up to the number of + external interrupts supported by the HSP instance minus one. Users of this binding MUST look up entries in the interrupt property by name, using this interrupt-names property to do so. - interrupts @@ -29,12 +32,29 @@ Required properties: 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. +The mbox specifier of the "mboxes" property in the client node should contain +two cells. The first cell determines the HSP type and the second cell is used +to identify the mailbox that the client is going to use. -- . +For doorbells, the second cell specifies the index of the doorbell to use. + +For shared mailboxes, the second cell is composed of two fields: +- bits 31..24: + A bit mask of flags that further specify how the shared mailbox will be + used. Valid flags are: + - bit 31: + Defines the direction of the mailbox. If set, the mailbox will be used + as a producer (i.e. used to send data). If cleared, the mailbox is the + consumer of data sent by a producer. + +- bits 23.. 0: + The index of the shared mailbox to use. The number of available mailboxes + may vary by instance of the HSP block and SoC generation. + +The following file contains definitions that can be used to construct mailbox +specifiers: + + Example: diff --git a/include/dt-bindings/mailbox/tegra186-hsp.h b/include/dt-bindings/mailbox/tegra186-hsp.h index bcab5b7ca785..3bdec7a84d35 100644 --- a/include/dt-bindings/mailbox/tegra186-hsp.h +++ b/include/dt-bindings/mailbox/tegra186-hsp.h @@ -22,4 +22,15 @@ #define TEGRA_HSP_DB_MASTER_CCPLEX 17 #define TEGRA_HSP_DB_MASTER_BPMP 19 +/* + * Shared mailboxes are unidirectional, so the direction needs to be specified + * in the device tree. + */ +#define TEGRA_HSP_SM_MASK 0x00ffffff +#define TEGRA_HSP_SM_FLAG_RX (0 << 31) +#define TEGRA_HSP_SM_FLAG_TX (1 << 31) + +#define TEGRA_HSP_SM_RX(x) (TEGRA_HSP_SM_FLAG_RX | ((x) & TEGRA_HSP_SM_MASK)) +#define TEGRA_HSP_SM_TX(x) (TEGRA_HSP_SM_FLAG_TX | ((x) & TEGRA_HSP_SM_MASK)) + #endif