• Linus Walleij's avatar
    mfd: db8500-prcmu: update resource passing · 05ec260e
    Linus Walleij authored
    When trying to get rid of the cross-includes of <mach/id.h>
    from different drivers, so we can localize ASIC/CPU detection
    to the mach-ux500 folder, we run into the way the PRCMU
    handles base addresses and firmware detection.
    
    This patch updates the firmware version detection to pass
    the required information as platform data instead of
    relying on cpu_is_* macros.
    
    Now the PRCMU base address, the secondary TCDM area, the
    TCPM area and the IRQ are passed as resources instead of
    being grabbed from <mach/*> files. Incidentally this also
    removes part of the reliance on <mach/irqs.h>.
    
    Further it updates the firmware version detection, since the
    location of the firmware ID bytes in the designated memory
    are is now passed from the platform data instead. There is
    no reason not to include the nice split-off of a struct to
    hold the firmware information and a separate function to
    populate it.
    
    The patch actually rids the need to use the external
    db8500_prcmu_early_init call at all, but I'm keepin back
    that removal as I don't want the patch to be too big.
    
    Cc: arm@kernel.org
    Cc: Michel Jaoen <michel.jaouen@stericsson.com>
    Cc: Lee Jones <lee.jones@linaro.org>
    Acked-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
    Acked-by: default avatarLoic Pallardy <loic.pallardy@stericsson.com>
    Acked-by: default avatarFabio Baltieri <fabio.baltieri@linaro.org>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    05ec260e
dbx500-prcmu.h 15.7 KB