• T
    ARM: OMAP3: Fix I/O chain clock line assertion timed out error · 7db143b8
    Tony Lindgren 提交于
    We are getting "PRM: I/O chain clock line assertion timed out" errors
    on early omaps for device tree based booting. This is because we are
    unconditionally calling reconfigure_io_chain while legacy booting
    has omap3_has_io_chain_ctrl() checks in place in omap_hwmod.c.
    
    For device tree based booting, we are calling reconfigure_io_chain
    unconditionally from pinctrl framework. So we need to add a check for
    omap3_has_io_chain_ctrl() to avoid the errors for trying to access
    a register that does not exist.
    
    For es3.0, the documentation in "4.11.2 Device Off-Mode Configuration"
    just mentions PM_WKEN_WKUP[8] bit. For es3.1, there's a new chapter in
    documentation for "4.11.2.2 I/O Wake-Up Mechanism" that describes the
    PM_WKEN_WKUP[16] ST_IO_CHAIN bit. So PM_WKEN_WKUP[16] bit did not get
    added until in es3.1 probaly to fix issues with flakey wake-up events.
    
    We are doing proper checks for ST_IO_CHAIN already in id.c and with
    omap3_has_io_chain_ctrl(). For more information, see also commit
    b02b9172 ("ARM: OMAP3: PM: fix I/O wakeup and I/O chain clock
    control detection").
    
    Let's fix the issue by selecting the right function during init for
    reconfigure_io_chain depending on the omap revision. For es3.0 and
    earlier we need to just toggle EN_IO. By doing this, we can move the
    check for omap3_has_io_chain_ctrl() from omap_hwmod.c to the init code
    in prm_3xxx.c. And then we can unconditionally call reconfigure_io_chain.
    
    Thanks to Paul Walmsley and Nishanth Menon for help with debugging the
    issue.
    
    Fixes: 30a69ef7 ("ARM: OMAP: Move DT wake-up event handling over to use pinctrl-single-omap")
    Cc: Kevin Hilman <khilman@kernel.org>
    Cc: Paul Walmsley <paul@pwsan.com>
    Cc: Tero Kristo <t-kristo@ti.com>
    Reviewed-by: NNishanth Menon <nm@ti.com>
    Signed-off-by: NTony Lindgren <tony@atomide.com>
    7db143b8
omap_hwmod.c 121.1 KB