Received: by 2002:a05:6602:18e:0:0:0:0 with SMTP id m14csp8379688ioo; Sat, 4 Jun 2022 06:56:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJweh+6y67Zcm0t0ff+fGBdKXhgQ2ftBpLa6YntXGO2Jol0U/jkXi/xDOrAubHagBTDAKePX X-Received: by 2002:a17:907:d1e:b0:6fe:b61d:9098 with SMTP id gn30-20020a1709070d1e00b006feb61d9098mr13600855ejc.15.1654350980630; Sat, 04 Jun 2022 06:56:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654350980; cv=none; d=google.com; s=arc-20160816; b=JA+BUMdJOcQmdwROp4PWTuit7+ZvdHEnGWeBfdWw43k0HHShyh7Bl2ptC4u2rbX2S/ ConOKj2cd0KoBhqizSr3aWtYPUPVTGHUjcvm1lYbCd64ksXudQfxzfrQjjhL9EYfGUuc XO8kMMIfi10dYIovX4UMFC9TEe7XjTHCGPn99BHt3oUQ7v0L/heFZG095fSay6VJ2RIw tKHYPqABHdPpEVC1KAttLkTVJ6WX0jCHJX2ALZbaE1VkF6uwDpy3PdCakNqipLpYGRGc BWCq6yfjj8hb5VIR3wFpRM3xmK1jld/usNJT4k7mLc8kwyxbeUZSiKRfd+oOqtIB8RmL cjcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:subject:cc:to:from :dkim-signature; bh=wx1Z1JAWtJ0bLXfcJY0X28Tf4dQ3zbCBztSxFzw1Ksc=; b=ZJipmpLt3FgggQgi4xiOG8sRZu1V/Ma7ThpaM+f6fk+DlO+DW804X9ZzrWtagXCcsZ bS8bhFX2DV5QuoICrnGZzXEz4samzcVKO/D0W00TblcF0bBPGHYGJukbbNOnCMzwMSOd pH00LKlOAf4gq7MzFrNxWE+K5uwgATf2P69wALUgsSytfY+MbYuhd4Pv4NqcYQuXsgKi 3ecJd7kzIhyZXYsDk5NWruPT1WT/5+M806a5G6I4ZL3iFDHHSRjmkdkK7IcxG/A8nUIg NUtXAwaSUsphPVclKUs2tf17/tt6K6cvWKfumPUgZ7Dja5He5Jn0k2v5sM6zyG8F2grw BYQw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=lpeAHNri; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id mp37-20020a1709071b2500b006e88579e94fsi1334331ejc.798.2022.06.04.06.55.55; Sat, 04 Jun 2022 06:56:20 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=lpeAHNri; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244235AbiFCMPu (ORCPT + 99 others); Fri, 3 Jun 2022 08:15:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53506 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244203AbiFCMPl (ORCPT ); Fri, 3 Jun 2022 08:15:41 -0400 Received: from fllv0016.ext.ti.com (fllv0016.ext.ti.com [198.47.19.142]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2922A39826; Fri, 3 Jun 2022 05:15:40 -0700 (PDT) Received: from lelv0265.itg.ti.com ([10.180.67.224]) by fllv0016.ext.ti.com (8.15.2/8.15.2) with ESMTP id 253CFNNf054345; Fri, 3 Jun 2022 07:15:23 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1654258523; bh=wx1Z1JAWtJ0bLXfcJY0X28Tf4dQ3zbCBztSxFzw1Ksc=; h=From:To:CC:Subject:Date; b=lpeAHNriu5d2vuC6OQeEAbResmu00iZLeEHCyBrSBRTKAAPy8dBbj+NBaqVeSZ/bb qLd0zItocBLxaay9+QNt83JVW2xYAtlIPdvZZGCQCS1ImO0s5JQP50TVfn4uriRd6V vocWW41SWU7pz3AEAE58+yglAmKYxmjvRBFhAqek= Received: from DFLE113.ent.ti.com (dfle113.ent.ti.com [10.64.6.34]) by lelv0265.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 253CFNfV031375 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Fri, 3 Jun 2022 07:15:23 -0500 Received: from DFLE108.ent.ti.com (10.64.6.29) by DFLE113.ent.ti.com (10.64.6.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.14; Fri, 3 Jun 2022 07:15:22 -0500 Received: from lelv0326.itg.ti.com (10.180.67.84) by DFLE108.ent.ti.com (10.64.6.29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.14 via Frontend Transport; Fri, 3 Jun 2022 07:15:22 -0500 Received: from localhost (ileax41-snat.itg.ti.com [10.172.224.153]) by lelv0326.itg.ti.com (8.15.2/8.15.2) with ESMTP id 253CFLg7025652; Fri, 3 Jun 2022 07:15:22 -0500 From: Puranjay Mohan To: CC: , , , , , , , , , , , , , , Subject: [PATCH v4 0/6] Introduce PRU remoteproc consumer API Date: Fri, 3 Jun 2022 17:45:14 +0530 Message-ID: <20220603121520.13730-1-p-mohan@ti.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Content-Type: text/plain X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is the v4 of the patch series [1]. The v3 had some comments on the DT patch that have been addressed here. The 6th patch in this series was missed in the previous versions, so, it has been added now. I have posted two more patch series that depend on this series, one to the soc tree and another to the networking tree. I had sent all the 3 series, including this one as RFC [2] to get comments and to explain the dependencies. 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. [1] https://patchwork.kernel.org/project/linux-remoteproc/cover/20220418104118.12878-1-p-mohan@ti.com/ [2] https://patchwork.kernel.org/project/linux-remoteproc/cover/20220406094358.7895-1-p-mohan@ti.com/ Thanks and Regards, Puranjay Mohan Roger Quadros (1): remoteproc: pru: Add pru_rproc_set_ctable() function Suman Anna (2): dt-bindings: remoteproc: Add PRU consumer bindings remoteproc: pru: Make sysfs entries read-only for PRU client driven boots Tero Kristo (3): remoteproc: pru: Add APIs to get and put the PRU cores remoteproc: pru: Configure firmware based on client setup remoteproc: pru: add support for configuring GPMUX based on client setup .../bindings/remoteproc/ti,pru-consumer.yaml | 69 +++++ drivers/remoteproc/pru_rproc.c | 254 +++++++++++++++++- include/linux/pruss.h | 78 ++++++ 3 files changed, 396 insertions(+), 5 deletions(-) create mode 100644 Documentation/devicetree/bindings/remoteproc/ti,pru-consumer.yaml create mode 100644 include/linux/pruss.h -- 2.17.1