Skip to content
  • Christophe Leroy's avatar
    spi: fsl-spi: use devm_ioremap_resource() to map parameter ram on CPM1 · 575bec53
    Christophe Leroy authored and Mark Brown's avatar Mark Brown committed
    
    
    On CPM2, the SPI parameter RAM is dynamically allocated in the
    dualport RAM whereas in CPM1, it is statically allocated to a default
    address with capability to relocate it somewhere else via the use of
    CPM micropatch. The address of the parameter RAM is given by the boot
    loader and expected to be mapped via devm_ioremap_resource()
    
    In the current implementation, in function fsl_spi_cpm_get_pram()
    there is a confusion between the SPI_BASE register and the base of the
    SPI parameter RAM. Fortunatly, it is working properly with MPC866 and
    MPC885 because they do set SPI_BASE, but on MPC860 and other old
    MPC8xx that doesn't set SPI_BASE, pram_ofs is not properly set.
    Also, the parameter RAM is not properly mapped with
    devm_ioremap_resource() as it should but still gets accessible by
    chance through the full RAM which is mapped from somewhere else.
    
    This patch applies to the SPI driver the same principle as for the
    CPM UART: when the CPM is of type CPM1, we simply do an
    devm_ioremap_resource() of the area provided via the device tree.
    
    Signed-off-by: default avatarChristophe Leroy <christophe.leroy@c-s.fr>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    575bec53