Skip to content
  • Peter Griffin's avatar
    remoteproc: st_slim_rproc: add a slimcore rproc driver · bb6869b2
    Peter Griffin authored
    
    
    slim core is used as a basis for many IPs in the STi
    chipsets such as fdma and demux. To avoid duplicating
    the elf loading code in each device driver a slim
    rproc driver has been created.
    
    This driver is designed to be used by other device drivers
    such as fdma, or demux whose IP is based around a slim core.
    The device driver can call slim_rproc_alloc() to allocate
    a slim rproc and slim_rproc_put() when finished.
    
    This driver takes care of ioremapping the slim
    registers (dmem, imem, slimcore, peripherals), whose offsets
    and sizes can change between IP's. It also obtains and enables
    any clocks used by the device. This approach avoids having
    a double mapping of the registers as slim_rproc does not register
    its own platform device. It also maps well to device tree
    abstraction as it allows us to have one dt node for the whole
    device.
    
    All of the generic rproc elf loading code can be reused, and
    we provide start() stop() hooks to start and stop the slim
    core once the firmware has been loaded. This has been tested
    successfully with fdma driver.
    
    Signed-off-by: default avatarPeter Griffin <peter.griffin@linaro.org>
    Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
    bb6869b2