• Suman Anna's avatar
    soc: ti: pruss: Add a platform driver for PRUSS in TI SoCs · dc112956
    Suman Anna authored
    The Programmable Real-Time Unit - Industrial Communication
    Subsystem (PRU-ICSS) is present on various TI SoCs such as
    AM335x or AM437x or the Keystone 66AK2G. Each SoC can have
    one or more PRUSS instances that may or may not be identical.
    For example, AM335x SoCs have a single PRUSS, while AM437x has
    two PRUSS instances PRUSS1 and PRUSS0, with the PRUSS0 being
    a cut-down version of the PRUSS1.
    
    The PRUSS consists of dual 32-bit RISC cores called the
    Programmable Real-Time Units (PRUs), some shared, data and
    instruction memories, some internal peripheral modules, 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 PRU-ICSS functionality is achieved through three different
    platform drivers addressing a specific portion of the PRUSS.
    Some sub-modules of the PRU-ICSS IP reuse some of the existing
    drivers (like davinci mdio driver or the generic syscon driver).
    This design provides flexibility in representing the different
    modules of PRUSS accordingly, and at the same time allowing the
    PRUSS driver to add some instance specific configuration within
    an SoC.
    
    The PRUSS platform driver deals with the overall 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. The PRUSS interrupt controller is managed by
    an irqchip driver, while the individual PRU RISC cores are
    managed by a PRU remoteproc driver.
    
    The driver currently supports the AM335x SoC, and support for
    other TI SoCs will be added in subsequent patches.
    Signed-off-by: default avatarSuman Anna <s-anna@ti.com>
    Signed-off-by: default avatarAndrew F. Davis <afd@ti.com>
    Signed-off-by: default avatarTero Kristo <t-kristo@ti.com>
    Signed-off-by: default avatarGrzegorz Jaszczyk <grzegorz.jaszczyk@linaro.org>
    Signed-off-by: default avatarSantosh Shilimkar <santosh.shilimkar@oracle.com>
    dc112956
Makefile 582 Bytes