Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp1295647pxa; Thu, 20 Aug 2020 07:45:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzo3xOAtj4A9Sw3+XYF+TST+m+HQNNyo1+sBjZ5ClNw4VkfHAZdnQX4hd4a5yy9Z1+S/Kua X-Received: by 2002:a17:906:f292:: with SMTP id gu18mr3469934ejb.503.1597934754483; Thu, 20 Aug 2020 07:45:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597934754; cv=none; d=google.com; s=arc-20160816; b=kZqdeJBKVhtI3FOpcnpH2vM4NP8ADX/X+MIQ9ZIwN+r2Jy8ksC66Lo4AdNzOsCX4Qk M3s0zo51cMw0hdT3WANCVzGfllIBTRdLjKZjg2A9/rlYDP3gG4ZE3g7KPC/IxihaQWi6 KXzG6JI9O+6e/vhsyXOH7wrqqG6ETsFQ3KLpWEEVwfyN9EYHqZU4nGB2q09riEmVWQdw yzySsmdw7vn3WaWkLXZ+5I39+jt1VX3Maq0eHTgyFpgz4hgOTzyrfioscbM1iEZmm91s A8ZCUk0wobt3Ti9A4jqF7zIRLleeEupUH8/2C5iElhktpuE4C5dXc5x22PZiINjH2Ie2 XRpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=alKUMzHacRceHiGl20u8VbwQ5t87jtgokFeHaBhYYjI=; b=pXrgrPXdMpbrh06bRs9nT2Yw6yQkY/108JeoNMUFYX1YF6XD/ZUX/T9mrr+HxQfucA PTQmROGSHnm8ao5jtCiw6qOBn9etqgD9lL6yMn/bjC3+25VkfeICi3xoattS63YyHjES l2zi9oajhGHB9lf+KHknOGbl0P93/sj3vkxQhf5yEp7Iy1XOZbUzqY4LwwO/Z2wTx+aU VYOKD7DPaUPciJOhHxFaXG9eqpnLYjLnTH1nispNave/jlAuCLT/ngHDXFMBxOI/ph/o JGzySNA/zl7L5Hpm1wO/rOARE4BbiA0DUj5EWYOJqy1/QD+7McsImkellFThB9sQLaS3 pfSw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=fopCcyd1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d20si1244418ejz.445.2020.08.20.07.45.29; Thu, 20 Aug 2020 07:45:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-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=@ti.com header.s=ti-com-17Q1 header.b=fopCcyd1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 S1726959AbgHTOoi (ORCPT + 99 others); Thu, 20 Aug 2020 10:44:38 -0400 Received: from lelv0142.ext.ti.com ([198.47.23.249]:32858 "EHLO lelv0142.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726852AbgHTOog (ORCPT ); Thu, 20 Aug 2020 10:44:36 -0400 Received: from fllv0034.itg.ti.com ([10.64.40.246]) by lelv0142.ext.ti.com (8.15.2/8.15.2) with ESMTP id 07KEhFpl082349; Thu, 20 Aug 2020 09:43:15 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1597934595; bh=alKUMzHacRceHiGl20u8VbwQ5t87jtgokFeHaBhYYjI=; h=Subject:To:CC:References:From:Date:In-Reply-To; b=fopCcyd1UmFHdwt3hPtdu1FEJun8NB/dKNp+b5PGYzoCeNCQyo2g0QL4Fa5MZqK9E shETrZBf+aGXnlQth6cWi+BQGFSgUA/NUQt02rmN4nbstWIDwC6JT5wPmSSHVO24Fc l7QlehzAXCnauTrlwzv8oUpQsTpwnl9uFMueuuD4= Received: from DFLE115.ent.ti.com (dfle115.ent.ti.com [10.64.6.36]) by fllv0034.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 07KEhFGG035932 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Thu, 20 Aug 2020 09:43:15 -0500 Received: from DFLE109.ent.ti.com (10.64.6.30) by DFLE115.ent.ti.com (10.64.6.36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1979.3; Thu, 20 Aug 2020 09:43:14 -0500 Received: from fllv0040.itg.ti.com (10.64.41.20) by DFLE109.ent.ti.com (10.64.6.30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1979.3 via Frontend Transport; Thu, 20 Aug 2020 09:43:14 -0500 Received: from [10.250.32.29] (ileax41-snat.itg.ti.com [10.172.224.153]) by fllv0040.itg.ti.com (8.15.2/8.15.2) with ESMTP id 07KEhEia007737; Thu, 20 Aug 2020 09:43:14 -0500 Subject: Re: [PATCH 0/6] Add TI PRUSS platform driver To: Grzegorz Jaszczyk , , Tony Lindgren CC: , , , , , , , References: <1596020528-19510-1-git-send-email-grzegorz.jaszczyk@linaro.org> From: Suman Anna Message-ID: <12a7fc2a-4c48-655f-daa1-880fd1866fd1@ti.com> Date: Thu, 20 Aug 2020 09:43:14 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <1596020528-19510-1-git-send-email-grzegorz.jaszczyk@linaro.org> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Santosh, Tony, On 7/29/20 6:02 AM, Grzegorz Jaszczyk wrote: > Hi, > > The Programmable Real-Time Unit and Industrial Communication Subsystem > (PRU-ICSS) is present on various TI SoCs. The IP is present on multiple TI SoC > architecture families including the OMAP architecture SoCs such as AM33xx, > AM437x and AM57xx; and on a Keystone 2 architecture based 66AK2G SoC. It is also > present on the Davinci based OMAPL138 SoCs and K3 architecture based AM65x and > J721E SoCs as well. > > A PRUSS consists of dual 32-bit RISC cores (Programmable Real-Time Units, or > PRUs), shared RAM, data and instruction RAMs, some internal peripheral modules > to facilitate industrial communication, and an interrupt controller. > > The programmable nature of the PRUs provide flexibility to implement custom > peripheral interfaces, fast real-time responses, or specialized data handling. > The common peripheral modules include the following, > - an Ethernet MII_RT module with two MII ports > - an MDIO port to control external Ethernet PHYs > - an Industrial Ethernet Peripheral (IEP) to manage/generate Industrial > Ethernet functions > - an Enhanced Capture Module (eCAP) > - an Industrial Ethernet Timer with 7/9 capture and 16 compare events > - a 16550-compatible UART to support PROFIBUS > - Enhanced GPIO with async capture and serial support > > > A typical usage scenario would be to load the application firmware into one or > more of the PRU cores, initialize one or more of the peripherals and perform I/O > through shared RAM from either a kernel driver or directly from userspace. > > This series contains the PRUSS platform driver. This is the parent driver for > the entire PRUSS and is used for managing the subsystem level resources like > various memories and the CFG module. It is responsible for the creation and > deletion of the platform devices for the child PRU devices and other child > devices (like Interrupt Controller, MDIO node and some syscon nodes) so that > they can be managed by specific platform drivers. > > Grzegorz Jaszczyk (1): > dt-bindings: soc: ti: Add TI PRUSS bindings > > Suman Anna (5): > soc: ti: pruss: Add a platform driver for PRUSS in TI SoCs > soc: ti: pruss: Add support for PRU-ICSSs on AM437x SoCs > soc: ti: pruss: Add support for PRU-ICSS subsystems on AM57xx SoCs > soc: ti: pruss: Add support for PRU-ICSS subsystems on 66AK2G SoC > soc: ti: pruss: enable support for ICSSG subsystems on K3 AM65x SoCs Do you have any comments on the driver portions of this series before Greg posts a v2 addressing the binding comments. This is one of the foundation series towards enabling PRUSS, and is a dependency for the PRU remoteproc driver. regards Suman > > .../devicetree/bindings/soc/ti/ti,pruss.yaml | 383 +++++++++++++++++++++ > drivers/soc/ti/Kconfig | 11 + > drivers/soc/ti/Makefile | 1 + > drivers/soc/ti/pruss.c | 183 ++++++++++ > include/linux/pruss_driver.h | 48 +++ > 5 files changed, 626 insertions(+) > create mode 100644 Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml > create mode 100644 drivers/soc/ti/pruss.c > create mode 100644 include/linux/pruss_driver.h >