• Suman Anna's avatar
    bus: ti-sysc: Add support for PRUSS SYSC type · b2745d92
    Suman Anna authored
    The PRU-ICSS present on AM33xx/AM43xx/AM57xx has a very unique
    SYSCFG register. The register follows the OMAP4-style SYSC_TYPE3
    for Master Standby and Slave Idle, but also has two additional
    unique fields - STANDBY_INIT and SUB_MWAIT. The STANDBY_INIT is
    a control bit that is used to initiate a Standby sequence (when
    set) and trigger a MStandby request to the SoC's PRCM module. This
    same bit is also used to enable the OCP master ports (when cleared)
    to allow the PRU cores to access any peripherals or memory beyond
    the PRU subsystem. The SUB_MWAIT is a ready status field for the
    external access.
    
    Add support for this SYSC type. The STANDBY_INIT has to be set
    during suspend, without which it results in a hang in the resume
    sequence on AM33xx/AM43xx boards and requires a board reset to
    come out of the hang. Any PRU applications requiring external
    access are supposed to clear the STANDBY_INIT bit. Note that
    the PRUSS context is lost during a suspend sequence because the
    PRUSS module is reset and/or disabled.
    Signed-off-by: default avatarSuman Anna <s-anna@ti.com>
    Signed-off-by: default avatarRoger Quadros <rogerq@ti.com>
    [tony@atomide.com: updated quirk define number and to use -ENODEV]
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    b2745d92
ti-sysc.c 73.5 KB