• Dong Aisheng's avatar
    soc: imx: gpc: fix the wrong using of regmap cache · 3a317f52
    Dong Aisheng authored
    Without providing the proper reg_defaults, the regmap registers first
    read out may be always 0 if enabling cache, which results in the
    following issue we met.
    e.g. During driver probe in imx6_pm_domain_power_on():
    regmap_read(pd->regmap, pd->reg_offs + GPC_PGC_PUPSCR_OFFS, &val);
    The PGC_PUPSCR register val is always 0 but it's actually 0xf01 in HW.
    
    Since GPC registers are tightly related to CPU bring up and may be
    changed in bootloader, we don't want to provide defaults.
    And the cache really does not save too much for GPC module.
    
    Therefore, simply disable cache to fix the issue and make life easy.
    Reviewed-by: default avatarLucas Stach <l.stach@pengutronix.de>
    Fixes: 721cabf6 ("soc: imx: move PGC handling to a new GPC driver")
    Signed-off-by: default avatarDong Aisheng <aisheng.dong@nxp.com>
    Signed-off-by: default avatarShawn Guo <shawnguo@kernel.org>
    3a317f52
gpc.c 10.9 KB