• Mohan V's avatar
    ARM: OMAP3: PM: correct enable/disable of daisy io chain · fe7ea006
    Mohan V authored
    Currently the enabling and disabling of IO Daisy chain is not
    according to the TRM. The below steps are followed to enable/
    disable the IO chain, based loosely on the "Sec 3.5.7.2.2
    I/O Wake-Up Mechanism" section in OMAP3630 Public TRM[1].
    
    Steps to enable IO chain:
    [a] Set PM_WKEN_WKUP.EN_IO bit
    [b] Set the PM_WKEN_WKUP.EN_IO_CHAIN bit
    [c] Poll for PM_WKST_WKUP.ST_IO_CHAIN.
    [d] When ST_IO_CHAIN bit set to 1, clear PM_WKEN_WKUP.EN_IO_CHAIN
    [e] Clear ST_IO_CHAIN bit.
    
    Steps to disable IO chain:
    [a] Clear PM_WKEN_WKUP.EN_IO_CHAIN bit
    [b] Clear PM_WKEN_WKUP.EN_IO bit
    [c] Clear PM_WKST_WKUP.ST_IO bit by writing 1 to it.
    
    Step [e] & [c] in each case can be skipped, as these are handled
    by the PRCM interrupt handler later.
    
    [1] http://focus.ti.com/pdfs/wtbu/OMAP36xx_ES1.x_PUBLIC_TRM_vV.zipSigned-off-by: default avatarMohan V <mohanv@ti.com>
    Signed-off-by: default avatarVishwanath BS <vishwanath.bs@ti.com>
    [paul@pwsan.com: modified commit message to clarify that these steps are
     based loosely on the TRM section, rather than documented exactly]
    Reviewed-by: default avatarRajendra Nayak <rnayak@ti.com>
    [paul@pwsan.com: resolved new warnings from checkpatch]
    Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
    fe7ea006
pm34xx.c 21.7 KB