17 Dec, 2014

5 commits

  • Defer probe till remowkup_m3_pm_ops are populated. This is to ensure
    that wkup_m3 is probed after the wkup_m3_pm_ops are populated by the
    mach-omap2 init call. This ensures clean initialization of m3.

    Signed-off-by: Keerthy
    Acked-by: Dave Gerlach

    J, KEERTHY
     
  • The offsets for i2c voltage scaling sequence were being set directly
    into IPC register 5 and being passed for all PM operations. This is
    incorrect as only DeepSleep0 should scale voltage, not standby or
    cpuidle. Instead we should store the value when it is calculated
    and only pass for DeepSleep operation, not cpuidle operation.

    Signed-off-by: Dave Gerlach

    Dave Gerlach
     
  • Add ti,mbox-send-noirq to wkup_m3 mailbox so that messages using
    wkup_m3 mailbox are sent without triggering any further interrupts.
    This is required to be able to send multiple messages to the WkupM3
    after the mailbox usage logic adjustment in the wkup_m3_ipc driver.

    Signed-off-by: Keerthy
    Acked-by: Dave Gerlach
    [s-anna@ti.com: revise commit description]
    Signed-off-by: Suman Anna

    Keerthy
     
  • Add ti,mbox-send-noirq to wkup_m3 mailbox so that messages using
    wkup_m3 mailbox are sent without triggering any further interrupts.
    This is needed to achieve lower power numbers during CPU idle on
    AM33xx.

    Tested-by: Keerthy
    Signed-off-by: Dave Gerlach
    [s-anna@ti.com: revise commit description]
    Signed-off-by: Suman Anna

    Dave Gerlach
     
  • The mailbox framework controls the transmission queue and requires
    either its controller implementations or clients to run the state
    machine for the Tx queue. The OMAP mailbox controller uses a Tx-ready
    interrupt as the equivalent of a Tx-done interrupt to run this Tx
    queue state-machine.

    The WkupM3 processor on AM33xx and AM43xx SoCs is used to offload
    certain PM tasks, like doing the necessary operations for Device
    PM suspend/resume or for entering lower c-states during cpuidle.

    The CPUIdle on AM33xx requires the messages to be sent without
    having to trigger the Tx-ready interrupts, as the interrupt
    would immediately terminate the CPUIdle operation. Support for
    this has been added by introducing a DT quirk, "ti,mbox-send-noirq"
    and using it to modify the normal OMAP mailbox controller behavior
    on the sub-mailboxes used to communicate with the WkupM3 remote
    processor. This also requires the wkup_m3_ipc driver to adjust
    its mailbox usage logic to run the Tx state machine.

    NOTE:
    - AM43xx does not communicate with WkupM3 for CPU Idle, so is
    not affected by this behavior. But, it uses the same IPC driver
    for PM suspend/resume functionality, so requires the quirk as
    well, because of changes to the common wkup_m3_ipc driver.

    Signed-off-by: Dave Gerlach
    [s-anna@ti.com: revise logic and update comments/patch description]
    Signed-off-by: Suman Anna

    Dave Gerlach
     

07 Nov, 2014

2 commits

  • Correct returning IRQ_HANDLED unconditionally in the irq handler.
    Return IRQ_NONE for some interrupt which we do not expect to be
    handled in this handler. This prevents kernel stalling with back
    to back spurious interrupts.

    Signed-off-by: Keerthy
    Acked-by: Nishanth Menon

    Keerthy
     
  • On certain SoCs such as AM437x SoC, L3_noc error registers are
    maintained in power domain such as per domain which looses context as part
    of low power state such as RTC+DDR mode. On these platforms when we
    mask interrupts which we cannot handle, the source of these interrupts
    still remain on resume, however, the flag mux registers now contain
    thier reset value (unmasked) - this breaks the system with infinite
    interrupts since we do not these interrupts to take place ever again.

    To handle this: restore the masking of interrupts which we have
    already recorded in the system as ones we cannot handle.

    Fixes: 654fa7979b5db9a44b8 ("bus: omap_l3_noc: ignore masked out unclearable targets")
    Signed-off-by: Keerthy
    Acked-by: Nishanth Menon

    Keerthy
     

06 Nov, 2014

1 commit


31 Oct, 2014

2 commits


10 Oct, 2014

3 commits

  • On older PMICs the reset value of the DCDC3 voltage was different.
    Fix DCDC3 volatge to 1.5V which is the right value to be supplied by
    DCDC3 for all the production boards(Version 1.4+).

    Signed-off-by: Keerthy

    Keerthy
     
  • On older PMICs the reset value of the DCDC3 voltage was different.
    Fix DCDC3 volatge to 1.5V which is the right value to be supplied by
    DCDC3 for all the production boards(Version 1.4+).

    This fixes the boot hang issue during the regulator initialization stage.

    Tested-by: Aparna Balasubramanian
    Signed-off-by: Keerthy

    Keerthy
     
  • On older PMICs the reset value of the DCDC3 voltage was different.
    Fix DCDC3 volatge to 1.5V which is the right value to be supplied by
    DCDC3 for all the production boards(Version 1.4+).

    Tested-by: George Cherian
    Signed-off-by: Keerthy

    Keerthy
     

09 Oct, 2014

2 commits

  • Access the three registers that we need to access after EMIF is placed
    in DDR to make sure they are present in TLB to avoid a miss and walk of
    page table in DDR, which is not possible once DDR is shut off and will
    lead to a hang in suspend path if attempted.

    Signed-off-by: Dave Gerlach

    Dave Gerlach
     
  • According to AM437x Silicon Errata document (SPRZ408, June 2014)
    Advisory 11, the SoC also suffers from the potential Asynchronous Bridge
    Corruption issues seen on OMAP4, which were corrected by 137d105d5. Add
    omap_bus_sync style accesses to DRAM and SRAM to avoid hangs during
    suspend/resume by perfoming one strongly ordered write to DRAM and one
    to SRAM before calling WFI in the suspend path assembly code.

    Signed-off-by: Dave Gerlach

    Dave Gerlach
     

18 Sep, 2014

13 commits


12 Sep, 2014

3 commits


11 Sep, 2014

2 commits


04 Sep, 2014

1 commit


03 Sep, 2014

1 commit

  • The added ti,gpio-gate-clock is a basic clock that can be enabled and
    disabled trough a gpio output. The DT binding document for the clock
    is also added. For EPROBE_DEFER handling the registering of the clock
    has to be delayed until of_clk_get() call time.

    Acked-by: Tero Kristo
    Signed-off-by: Jyri Sarha

    Jyri Sarha
     

02 Sep, 2014

2 commits


01 Sep, 2014

3 commits

  • [ Upstream commit 7d5fc85d961b807c799786afd175f5d964a2109f ]

    When setting the rate of a clock, by default the clock framework will
    change the parent of the clock to the most suitable one in
    __clk_mux_determine_rate() (most suitable by looking at the clock rate).

    This is a rather dangerous default, and causes problems on AM43x when
    using display and ethernet. There are multiple ways to select the clock
    muxes on AM43x, and some of those clock paths have the same source
    clocks for display and ethernet. When changing the clock rate for the
    display subsystem, the clock framework decides to change the display mux
    from the dedicated display PLL to a shared PLL which is used by the
    ethernet, and then changes the rate of the shared PLL, breaking the
    ethernet.

    As I don't think there ever is a case where we want the clock framework
    to automatically change the parent clock of a clock mux, this patch sets
    the CLK_SET_RATE_NO_REPARENT for all ti,mux-clocks.

    Signed-off-by: Tomi Valkeinen
    Signed-off-by: Jyri Sarha

    Tomi Valkeinen
     
  • Adding support for using generic of_clk_init caused an issue with retrying
    clock init, in such way that retry init was never attempted for failed
    clocks. Fixed by exporting the retry init call into its own driver API,
    and calling this after of_clk_init from low level IO init.

    Fixes: e80e55ebbf2856614 ("clk: ti: change clock init to use generic of_clk_init")
    Reported-by: Carlos Hernandez
    Signed-off-by: Tero Kristo
    Tested-by: Sekhar Nori

    Tero Kristo
     
  • Add appropriate scale-data-fw names for all am43xx platforms.

    Signed-off-by: Dave Gerlach

    Dave Gerlach