Hi On Sun, 2 Aug 2020 at 13:57, Pavel Machek <pavel@xxxxxx> wrote: > > On Sun 2020-08-02 13:53:30, Pavel Machek wrote: > > Hi! > > > > > 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. > > > > > drivers/soc/ti/Kconfig | 11 + drivers/soc/ti/Makefile | 1 + drivers/soc/ti/pruss.c | > > > > Is drivers/soc right place for that? We already have subsystem for various > > programmable accelerators... > > ....see drivers/remoteproc. Yes I am aware of that and remoteproc sub-system will be used but only for managing PRU cores (drivers/remoteproc/pru-rproc - will be submitted soon), while this driver is the parent driver for the entire PRUSS (used for managing the subsystem level resources like various memories and the CFG module). This driver is also responsible for populating all child devices (described in DT), managed by specific (and separate) drivers: e.g.: - PRU core will be managed by drivers/remoteproc/pru-rproc (will be submitted next) - PRU interrupt controller will be managed by drivers/irqchip/irq-pruss-intc.c (it is already under review) etc. Best regards, Grzegorz