• Magnus Damm's avatar
    sh: pfc: ioremap() support · b0e10211
    Magnus Damm authored
    Add support for non-entity mapped PFC registers through
    the use of struct resource and ioremap()/iounmap().
    
    The PFC main data structure gets updated with a pointer
    to a struct resources array that point out all register
    windows used by the PFC instance. The register definitions
    are kept as physical addresses but the PFC code will do
    transparent conversion into virtual addresses whenever
    register windows are specified using with struct resource.
    
    To introduce as little performance penalty as possible the
    virtual address of each data register is cached in memory.
    The virtual address of each configuration register is however
    calculated during run time. This because the configuration
    is considered slow path so focus is instead put on keeping
    memory foot print as small as possible.
    
    The PFC register access  code is in this patch updated from
    __raw_readN() / __raw_writeN() into ioreadN() / iowriteN().
    
    This patch is needed to support the PFC block in r8a7779.
    Signed-off-by: default avatarMagnus Damm <damm@opensource.se>
    Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
    b0e10211
pfc.c 15.4 KB