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 >