Skip to content

RFC ARM: OMAP2+: AM33XX: Add suspend-resume support

Tony Lindgren linux-arm-kernel linux-devicetree linux-omap 3 versions – New

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v5 RFC Latest posting 2/20 of 4 patches 0 repliesNew
  2. v5 RFC posting 1/20 of 4 patches 0 repliesSuperseded
  3. v48 of 11 patches 0 repliesSuperseded

Patches in v5 posting 2/2 No applies recorded yet

None of the 4 patches the cover letter announces are in this archive.

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v5 yet.

Read the v5 thread

Cover letter [RFC PATCH v5 0/4] ARM: OMAP2+: AM33XX: Add suspend-resume support
Quoted 45 lines · Dave Gerlach

Tony,

Quoted 43 lines · Tony Lindgren
Quoted 41 lines · Dave Gerlach

Hi,
This series is v5 of the series to add suspend/resume support for Texas Instruments AM335x SoC. It has gone through a rather major overhaul since the last version and because of that has been split into multiple different sets of patches, on which this series depends. Previous discussion that influenced there changes can be found here [1]. This series depends on generic sram exec mapping patch here [2], emif series here [3], and wkup_m3_ipc series here [4]. I have pushed a branch containing the patches from ALL required series here [5] for testing or a view of the high level flow of the entire series.

The largest change with this revision is the introduction of a wkup_m3_ipc driver which handles all communication with the Cortex M3 present on am335x for handling low power tasks. Previously this was handled in the wkup_m3_rproc driver (also sent in an earlier series) but that driver is now only responsible for booting the wkup_m3. The wkup_m3_ipc driver exposes an API with all required PM functionality needed by the PM code introduced by this series, so the PM code has shrunk considerably.

Another major change is that the EMIF code previously present in the sleep33xx asm code and pm33xx code for save and restore of EMIF context and entry into low power mode has all been moved in to a separate EMIF driver, further reducing the size of the PM code. Because of this, moving the emif header defines into include/linux/ti_emif.h is no longer necessary.

Other changes include clean up of the timer suspend/resume handlers, now look up hwmod in init and use that handle along with renaming to *_idle/*_unidle to avoid confusion with true suspend handlers.

Suspend support requires:
CONFIG_TI_EMIF_SRAM
CONFIG_WKUP_M3_RPROC
CONFIG_WKUP_M3_IPC

And also requires AM335x USB support to be enabled to work for multiple cycles. If you want to load firmware from rootfs in /lib/firmware you now must also select CONFIG_FW_LOADER_USER_HELPER_FALLBACK.

This code works with version 0x189 of the CM3 firmware found here [6] on the next branch, /bin/am335x-pm-firmware.elf.

Quoted 8 lines
Quoted 3 lines

Dave, does this series have dependencies to the other patches? Can some parts of this already be applied without breaking anything?

The only patch with no dependencies is patch 1 (ARM: OMAP2+: timer: Add suspend-resume callbacks for clkevent device). It's ready to be applied, I just applied to v3.19-rc5 and built and booted on am335x-evm with no issue just to be sure. It won't actually do anything until suspend is completely implemented.

OK thanks for checking, best to wait until it's usable then.

Regards,

Tony