From patchwork Wed Dec 16 16:52:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Grzegorz Jaszczyk X-Patchwork-Id: 344512 Delivered-To: patch@linaro.org Received: by 2002:a17:906:4755:0:0:0:0 with SMTP id j21csp506422ejs; Wed, 16 Dec 2020 08:54:52 -0800 (PST) X-Google-Smtp-Source: ABdhPJyffbYAxbmTR0l8J81E8Dnl+ZZ463R80txMq1268oIt4f8CZk/gQFyfXvtx8fpiJeK/MNI9 X-Received: by 2002:a05:6402:3192:: with SMTP id di18mr34099088edb.332.1608137692082; Wed, 16 Dec 2020 08:54:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1608137692; cv=none; d=google.com; s=arc-20160816; b=WxNZlQA50/057V7ws5sn3jfc/kTtt5TIIFGrbzW42DRxh3o/hB9yo2VEejzTSfGnmv 6SMnmNj1DwwGLOneIzmwNbm4yuK1Le43jy7zerIpPt+F+ibOCePZyxfLV2BkWzqWy9v/ yL/6PXicEto4fsqAfILv9GLDJm1i/WPYq2CM4UFLGS73nDxvu7bmChyeY5Y2O36WcKm/ xMZvcYwPL0lJKeqEN4noBDDETGyzwrEJm6kC2gkrsB2G/mowg7X6BA/OtJbZmSbZs0CJ z+C1OAz9SFThKkzQ32E/fzOCv0pqBsbTPy4foK36LxRs6FUXUlr20tZ0I6JntckbuKBC H8zQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=/qoEY29JOM4sZTGlBEoAlZzOFSKmu84C0sJ7wv+lleg=; b=WktqnfKK87UG7c4Hi8DWstpNvn2Ohefgbp8daO6nMYHxdGCe0yfo15I1Ts4kOIvo5h s9u+3Jw9NK9diK3KRphiv4GW2uOVWbJJ2llvDPFPULSMbdHq4CdYNE0gEsTYGobdROq1 mhtD+y08X/Q6SebeKhdUNhwLcHb4+TXuVfufs33OboJXQFrBUGNNk+vOIsfFkvSA/AK3 QSoCEtnPupAhbxnLgHfEQV4upPxZpbh78+Eu/X5xAK4YU/vdjIoRZT6lHRhNR/E3npdW +G4IRU2PrbVNIPZRX/i1WxoxVT/FSPjEI1HGbOSMG2MUKYTYtx4kPnbiH0Tz0X8Zdw4y pSsg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=cHhtSiYh; spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ml22si1153631ejb.172.2020.12.16.08.54.51; Wed, 16 Dec 2020 08:54:52 -0800 (PST) Received-SPF: pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=cHhtSiYh; spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726721AbgLPQxf (ORCPT + 7 others); Wed, 16 Dec 2020 11:53:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34316 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726683AbgLPQxf (ORCPT ); Wed, 16 Dec 2020 11:53:35 -0500 Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com [IPv6:2a00:1450:4864:20::136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E5FA9C06179C for ; Wed, 16 Dec 2020 08:52:54 -0800 (PST) Received: by mail-lf1-x136.google.com with SMTP id l11so50084035lfg.0 for ; Wed, 16 Dec 2020 08:52:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=/qoEY29JOM4sZTGlBEoAlZzOFSKmu84C0sJ7wv+lleg=; b=cHhtSiYhsrtHXtHJGx1atrnUKeyBxd6VJvZIGuSPH3Q5hK8FEimFH27NuKRnuquBMe PQl797v2Fap3PR2lU56zy3DpSvpQNKi79Hr1Rim3yEKzsD6LoFDtcltOiX/mDjIyV3jJ TuzbjDF7pnETa694w4jmjn7Pfc8LkXyGl1g73k6h4W9ELyGxAdu49S9dYXV/3LJBY38O F2GYwFs8grUQrxugoet2V3KTwOwLX/Wms34Hj3cH78NpufqwNjGcb5vb7G4Q3RQNvkgP c2dOc4yVIetFrij+1k7UnXEP18Bspj/rGQWnll6Q5W4YHZg3N1FTPMgDXgnBdW2IjBNN L9ng== 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:mime-version :content-transfer-encoding; bh=/qoEY29JOM4sZTGlBEoAlZzOFSKmu84C0sJ7wv+lleg=; b=Se75VV9zCargBpeeTlWjTsx0RPoILhaMzR7/uuMllVVPJ8SZKhjOGlSQ9vpzvJv54+ ai5bpXsNgrJVXWTAhSqMvgMI2WbW+lM3xyzauvuIGSVSqO13JFJIqL/dqF768XDRFBQ2 TeGl5Y/hKp4R05CwnrHfae91wv3e8TGUExOltCJTUJ1aNKcpbHMloN0qCSykmOCTNMor w/WqlAcf3U89E/DdnuZIJATb87doRMTUSSApfPEiPHOg3vfkZdT3gE+nTCHQp43/sc43 i6cECWRCfQbJ343hLHpVpUyIQeOo+T8GjwF8kowHHwOzkSc3L3zAYNtLcYNyEA11atFu QU7Q== X-Gm-Message-State: AOAM531P1Vyts3eWqsjMfrghFheFi2nQJ8ZErPSLaeyeWjg0YaUtIuYD lDnixZBQjGrstP3Qeqeo1zsFnA== X-Received: by 2002:a19:58f:: with SMTP id 137mr14290215lff.0.1608137572176; Wed, 16 Dec 2020 08:52:52 -0800 (PST) Received: from gilgamesh.semihalf.com (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id t3sm281645lfe.263.2020.12.16.08.52.50 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Dec 2020 08:52:51 -0800 (PST) From: Grzegorz Jaszczyk To: ohad@wizery.com, bjorn.andersson@linaro.org, mathieu.poirier@linaro.org, robh+dt@kernel.org, s-anna@ti.com, ssantosh@kernel.org Cc: grzegorz.jaszczyk@linaro.org, linux-remoteproc@vger.kernel.org, lee.jones@linaro.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org, praneeth@ti.com, rogerq@ti.com, t-kristo@ti.com Subject: [PATCH v2 0/5] Introduce PRU remoteproc consumer API Date: Wed, 16 Dec 2020 17:52:34 +0100 Message-Id: <20201216165239.2744-1-grzegorz.jaszczyk@linaro.org> X-Mailer: git-send-email 2.29.0 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Hi All, The Programmable Real-Time Unit and Industrial Communication Subsystem (PRU-ICSS or simply PRUSS) on various TI SoCs consists of dual 32-bit RISC cores (Programmable Real-Time Units, or PRUs) for program execution. There are 3 foundation components for PRUSS subsystem: the PRUSS platform driver, the PRUSS INTC driver and the PRUSS remoteproc driver. All were already merged and can be found under: 1) drivers/soc/ti/pruss.c Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml 2) drivers/irqchip/irq-pruss-intc.c Documentation/devicetree/bindings/interrupt-controller/ti,pruss-intc.yaml 3) drivers/remoteproc/pru_rproc.c Documentation/devicetree/bindings/remoteproc/ti,pru-rproc.yaml The programmable nature of the PRUs provide flexibility to implement custom peripheral interfaces, fast real-time responses, or specialized data handling. Example of a PRU consumer drivers will be: - Software UART over PRUSS - PRU-ICSS Ethernet EMAC In order to make usage of common PRU resources and allow the consumer drivers to configure the PRU hardware for specific usage the PRU API is introduced. Patch #3 of this series depends on one not merged remteproc related patch [1]. Please see the individual patches for exact changes in each patch, following is the only change from v1: - Change the 'prus' property name to 'ti,prus' as suggested by Rob Herring, which influences patch #1 and patch #2 [1] https://patchwork.kernel.org/project/linux-remoteproc/patch/20201121030156.22857-3-s-anna@ti.com/ Best regards, Grzegorz Roger Quadros (1): remoteproc: pru: Add pru_rproc_set_ctable() function Suman Anna (2): dt-bindings: remoteproc: Add PRU consumer bindings remoteproc: pru: Deny rproc sysfs ops for PRU client driven boots Tero Kristo (2): remoteproc: pru: Add APIs to get and put the PRU cores remoteproc: pru: Configure firmware based on client setup .../bindings/remoteproc/ti,pru-consumer.yaml | 64 +++++ drivers/remoteproc/pru_rproc.c | 221 +++++++++++++++++- include/linux/pruss.h | 78 +++++++ 3 files changed, 360 insertions(+), 3 deletions(-) create mode 100644 Documentation/devicetree/bindings/remoteproc/ti,pru-consumer.yaml create mode 100644 include/linux/pruss.h -- 2.29.0