From patchwork Mon Mar 6 11:09:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: MD Danish Anwar X-Patchwork-Id: 6159 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1781901wrd; Mon, 6 Mar 2023 03:26:39 -0800 (PST) X-Google-Smtp-Source: AK7set+2T6VOnm0Ef/dF1VuJMcewaN3bpkgCjQw32buYepEY2DD8mXZU6ByOgznr7TOfKTo7jpvL X-Received: by 2002:aa7:d412:0:b0:4c8:bc3a:3a1c with SMTP id z18-20020aa7d412000000b004c8bc3a3a1cmr11375805edq.15.1678101999147; Mon, 06 Mar 2023 03:26:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678101999; cv=none; d=google.com; s=arc-20160816; b=LDifoh2oSQPE7qYvFX/H/+2dsZCg0SpZ82H5P6xdxaBi1Ab0zrxDxHaF/EZvA78+yY d9tYDEo0js+PUtxaS+UEaHNBJ6ctPlZE5NL7SBn4TuYCGAdw3Ejl+FpOEtZsPtPvEZye nX01bnYa1JztKM+h/hpnd2Yj9LVwVsHnaJxSGNR5IfmvmThCqLyIlL0ry8TmEpmaTSAX 96kElU7LVIvgsHy5oFlrZ+pHiZLbokhrkuwTsP+4xff8Fp46AUIw5j1I+VcJYrbv3QGH octXBjBXozNnjnQ2T36fbgGGsB+W8kDWQ/EA5T0bDi8tusQiKm8aSt/aTF/CRmCQ2oRd ZNQA== 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=APui5ODsGASJixKDz5f2o4ra32sJkUpdfE28YZNI8Ds=; b=MIE4qhu0Grwk18V5i79txRUH56Gju8qMyR7OkhQUaokCOUOAf1CoasnNOnEmYp71MR BOs+y2fz4pHwUbar3sDX7pWZ3VpQqZ/t6jpi1Bjz27Banmx0Zj5mVnebx4tM1ExVG5sb ldDLq9gL/0cTGoWmqCjJhB2wJ0aMfnSZN3r3r8GUPui2KBmcoxL3O9DfHafqtVIY+pYn 4fdgAX3l35Hfm1tJ/VFntlZCRg+pzrFEUnfW6Ih3dfJB90peDAhhX/EQ6AXc1mnCDoVD ZpIdnqYunV5YPAj6gNOKw/xiGR/5Ac7AGW/WjPoI565VBOZTMD52Qz4XvGpISLN15OW+ xcww== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=nev6Hqn9; 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: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n5-20020aa7d045000000b004c698b50192si10038136edo.340.2023.03.06.03.26.16; Mon, 06 Mar 2023 03:26:39 -0800 (PST) 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=nev6Hqn9; 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 S230041AbjCFLKD (ORCPT + 99 others); Mon, 6 Mar 2023 06:10:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52270 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229633AbjCFLJv (ORCPT ); Mon, 6 Mar 2023 06:09:51 -0500 Received: from fllv0015.ext.ti.com (fllv0015.ext.ti.com [198.47.19.141]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7093011170; Mon, 6 Mar 2023 03:09:49 -0800 (PST) Received: from lelv0266.itg.ti.com ([10.180.67.225]) by fllv0015.ext.ti.com (8.15.2/8.15.2) with ESMTP id 326B9bHN092866; Mon, 6 Mar 2023 05:09:37 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1678100977; bh=APui5ODsGASJixKDz5f2o4ra32sJkUpdfE28YZNI8Ds=; h=From:To:CC:Subject:Date; b=nev6Hqn9U0FU46F7pOUPdlbqKovnD38cXbqYjBZKrTZRzrBmAStpiXDWFmUua0rBY bqAbHY+39zxy+wsMWF7V4QGHPxMViiOIBR9q1as3CWA0eovaJ3I3DI7/vZTts5XZiv XRxyjJ8vPzrVmmFEkARxlyMydyb13BAXx9WPdUbQ= Received: from DFLE110.ent.ti.com (dfle110.ent.ti.com [10.64.6.31]) by lelv0266.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 326B9biF042506 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 6 Mar 2023 05:09:37 -0600 Received: from DFLE108.ent.ti.com (10.64.6.29) by DFLE110.ent.ti.com (10.64.6.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.16; Mon, 6 Mar 2023 05:09:36 -0600 Received: from fllv0040.itg.ti.com (10.64.41.20) 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.2507.16 via Frontend Transport; Mon, 6 Mar 2023 05:09:36 -0600 Received: from lelv0854.itg.ti.com (lelv0854.itg.ti.com [10.181.64.140]) by fllv0040.itg.ti.com (8.15.2/8.15.2) with ESMTP id 326B9avF090142; Mon, 6 Mar 2023 05:09:36 -0600 Received: from localhost (a0501179-pc.dhcp.ti.com [10.24.69.114]) by lelv0854.itg.ti.com (8.14.7/8.14.7) with ESMTP id 326B9ZFv029563; Mon, 6 Mar 2023 05:09:36 -0600 From: MD Danish Anwar To: "Andrew F. Davis" , Suman Anna , Roger Quadros , Vignesh Raghavendra , Tero Kristo , MD Danish Anwar , Mathieu Poirier , Bjorn Andersson , "Santosh Shilimkar" , Nishanth Menon CC: , , , , , , Subject: [PATCH v3 0/6] Introduce PRU platform consumer API Date: Mon, 6 Mar 2023 16:39:28 +0530 Message-ID: <20230306110934.2736465-1-danishanwar@ti.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 X-Spam-Status: No, score=-4.4 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_PASS,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759617482139784469?= X-GMAIL-MSGID: =?utf-8?q?1759617482139784469?= 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 TI PRUSS subsystem: the PRUSS platform driver, the PRUSS INTC driver and the PRUSS remoteproc driver. All of them have already been 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-consumer.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. This is the v3 of the old patch series[1]. This doesn't have any functional changes, the old series has been rebased on linux-next (tag: next-20230306). This series depends on another series which is already merged in the remoteproc tree[2] and is part of v6.3-rc1. This series and the remoteproc series form the PRUSS consumer API which can be used by consumer drivers to utilize the PRUs. One example of the consumer driver is the PRU-ICSSG ethernet driver [3],which depends on this series and the remoteproc series[2]. [1] https://lore.kernel.org/all/20220418123004.9332-1-p-mohan@ti.com/ [2] https://lore.kernel.org/all/20230106121046.886863-1-danishanwar@ti.com/#t [3] https://lore.kernel.org/all/20230210114957.2667963-1-danishanwar@ti.com/ Thanks and Regards, Md Danish Anwar Andrew F. Davis (1): soc: ti: pruss: Add pruss_{request,release}_mem_region() API Suman Anna (3): soc: ti: pruss: Add pruss_cfg_read()/update() API soc: ti: pruss: Add helper functions to set GPI mode, MII_RT_event and XFR soc: ti: pruss: Add helper function to enable OCP master ports Tero Kristo (2): soc: ti: pruss: Add pruss_get()/put() API soc: ti: pruss: Add helper functions to get/set PRUSS_CFG_GPMUX drivers/soc/ti/pruss.c | 257 ++++++++++++++++++++++++++++++- include/linux/pruss_driver.h | 72 ++++++--- include/linux/remoteproc/pruss.h | 221 ++++++++++++++++++++++++++ 3 files changed, 526 insertions(+), 24 deletions(-)