• Paul Walmsley's avatar
    ARM: OMAP2/3: PRM: fix bogus OMAP2xxx powerstate return values · 7e7fff82
    Paul Walmsley authored
    On OMAP2xxx chips, the register bitfields for the
    PM_PWSTCTRL_*.POWERSTATE and PM_PWSTST_*.LASTSTATEENTERED are
    different than those used on OMAP3/4.  The order is reversed.  So, for
    example, on OMAP2xxx, 0x0 indicates 'ON'; but on OMAP3/4, 0x0
    indicates 'OFF'.  Similarly, on OMAP2xxx, 0x3 indicates 'OFF', but on
    OMAP3/4, 0x3 indicates 'ON'.
    
    To fix this, we treat the OMAP3/4 values as the powerdomain API
    values, and create new low-level powerdomain functions for the
    OMAP2xxx chips which translate between the OMAP2xxx values and the
    OMAP3/4 values.
    
    Without this patch, the conversion of the OMAP2xxx PM code to the
    functional powerstate code results in a non-booting kernel.
    Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
    7e7fff82
prm2xxx_3xxx.c 6.41 KB