From patchwork Fri Dec 11 14:29:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Grzegorz Jaszczyk X-Patchwork-Id: 341968 Delivered-To: patch@linaro.org Received: by 2002:a02:85a7:0:0:0:0:0 with SMTP id d36csp591574jai; Fri, 11 Dec 2020 06:33:26 -0800 (PST) X-Google-Smtp-Source: ABdhPJwFWvsmkJCmVnu34Fk9ha2omslFBNEb7EF+vRIv6V/aBOctQqGWFdQe6WOo0UgBYkB6Re0y X-Received: by 2002:a05:6402:2377:: with SMTP id a23mr11950064eda.34.1607697206090; Fri, 11 Dec 2020 06:33:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1607697206; cv=none; d=google.com; s=arc-20160816; b=nxq3F213K4Ife+sQar0OGqkD7z3/UBIaWAEGl++bIf5vrw1jjKLiGsy4xisFAmdhMQ QzQidLmX25kA5oqMpR2ndggfw3aiRSAcI1gbT1qDOdJlwHKeBuoceSUphjf6MAnmUqH7 7FcIqaVl4qZIt/MnR/fs8B3FNBztbNJHNABkhj/SIIe2oxK6yH6EUSEKtbQGB2g5Vtp0 0t7Su3vhPAD4cNyfT/n3fGphFbJg0M+OTHdBd0DzN33aA4AvJ7hBdTktRlrMoVekY0dg 6SNa7aP0oK4urMY9qjA5dCMbRwzMRrygnVM9g5nn8fYcm1u7QRwPBhRgMcUhdCRRJwzF f6Mg== 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=vMLkq6TErLQR5vl7wxICpib93GEBHjpKENXEhX4v8c8=; b=Vuu/qpcbsQVFinIS4BFlWdOK3z1NKyMutIbTlTcN0FhHM2ktxrnVteWzOCGl/DjcR0 vltvEze1Ew7g2medPJm3geWEhx7f4YxYmvHEDg4JyDcGcOqzr8FGz7UtoByzKjmBY9/W YhKkqxR513N2ZjVr3dQfT4UTAdQjjyDC7NbrZnoNIl2NVzuwKVocpdIQMpsOvU2kyspx Sgafcj2njTFZkHZRsWVv865Gj+8m0E3O0/D5cDRb91e9WBmQ5E4cv6zGrRUcLOsLDNPl bocncUQ+O6LjXCyYyiW/fvUFlvoa+4qPmQS7mfKoLnif4DeVxRPg/Kl92OSJWfzehIrT HOYA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=kvhdV0PC; 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 l89si5784444ede.577.2020.12.11.06.33.25; Fri, 11 Dec 2020 06:33:26 -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=kvhdV0PC; 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 S2405734AbgLKObh (ORCPT + 7 others); Fri, 11 Dec 2020 09:31:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44886 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389122AbgLKObY (ORCPT ); Fri, 11 Dec 2020 09:31:24 -0500 Received: from mail-lj1-x241.google.com (mail-lj1-x241.google.com [IPv6:2a00:1450:4864:20::241]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BEB31C061793 for ; Fri, 11 Dec 2020 06:30:43 -0800 (PST) Received: by mail-lj1-x241.google.com with SMTP id y22so11074772ljn.9 for ; Fri, 11 Dec 2020 06:30:43 -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=vMLkq6TErLQR5vl7wxICpib93GEBHjpKENXEhX4v8c8=; b=kvhdV0PCnbzmkIJAaCEZ3dsAnkIQvSsDvvJTYVCHZC4CI19JDyqXcede+Oor6XRB5j 9RTmcz+B8PBhHF2FvHIZZv5Je++tCM1N1p9uLRF+YTS+JVXJqTTJk2ooqmA3co/WQzKd ZazFfrOeijWGnHdjFo3paTzvSMAhqbphCjtnrSYZv4UQ2rTNfD3zH3F2P8gDrRD7hr5G kclJ2o7NOSMFgXEoFZ3WzJ1BLspGVFSOKQAxwQkKfmX9yc7Yv8IA+zyDgPt5iKJf80YM pzgzPnEH3rf7gcVCPOJmi8nL+xnrTblTgfW5mn4Rnqe9pmSrPwk9DZ6qjUI/dLHAOIPT efDg== 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=vMLkq6TErLQR5vl7wxICpib93GEBHjpKENXEhX4v8c8=; b=bhKZBydfGkrb/0Smaf+SMG8RuOclcJSSiaaw5b8u8iVOSnNR4C0KOX9YhId0kD64Ld y3oWanU4VJ4EfKjtIFch9Rw1/1WxQwgUY5hfd4FRhjC9BTz/jpO/vjgr2Ip0T11hQIot QMhNPHmUf9buhEWG5h+ThZLcjD+DpLz9qErhAPnwgWwOuHsQieIRVXPuI2RcXPMpCc4f uAXmgv/KufX8Qz5b8adNYsH0OZTssv6h1A4cZfF/IlynyhoMEx7pnUTUDwI74srNWCvP HnaZ20AsdzNs4SLu/gG1z0Kh0I9NG3DsYPZ0dI/qCPwm+ERljd+99006IjWy556Jc7p1 RjOg== X-Gm-Message-State: AOAM530GHWCmbNMuvtTTkmQxO50LLgxLp8hUpMbx8QVwHs9yPn69bHj1 mH6npa/fV2IciS9gDrN7pv0tcA== X-Received: by 2002:a05:651c:112c:: with SMTP id e12mr1047555ljo.66.1607697042013; Fri, 11 Dec 2020 06:30:42 -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 x26sm906491lfq.112.2020.12.11.06.30.40 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 Dec 2020 06:30:41 -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 Subject: [PATCH 0/5] Introduce PRU remoteproc consumer API Date: Fri, 11 Dec 2020 15:29:28 +0100 Message-Id: <20201211142933.25784-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 component for PRUSS subsystem: the PRUSS platform driver, the PRUSS INTC driver and the PRUSS remoteproc driver. Two first 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 The third one [1] was accepted and applied to andersson/remoteproc.git (refs/heads/for-next): [2] but is not merged yet. 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. This patch set depends on not merged (but applied to remoteproc/for-next) PRUSS remoteproc driver [1][2] and two remoteproc related patches [3] and [4]. [1] https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201208141002.17777-1-grzegorz.jaszczyk@linaro.org/ [2] https://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc.git/commit/?h=for-next&id=b44786c9bdc46eac8388843f0a6116369cb18bca [3] https://patchwork.kernel.org/project/linux-remoteproc/patch/20201121032042.6195-1-s-anna@ti.com/ [4] 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