From: Dave Gerlach <d-gerlach@ti.com>
To: Tony Lindgren <tony@atomide.com>,
Santosh Shilimkar <ssantosh@kernel.org>,
Russell King <linux@armlinux.org.uk>
Cc: <linux-arm-kernel@lists.infradead.org>,
<linux-omap@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
Dave Gerlach <d-gerlach@ti.com>, Keerthy J <j-keerthy@ti.com>
Subject: [PATCH v2 0/5] ARM: OMAP2+: AM33XX/AM43XX: Add suspend-resume support
Date: Fri, 19 May 2017 15:04:33 -0500 [thread overview]
Message-ID: <20170519200438.9502-1-d-gerlach@ti.com> (raw)
Hi,
This series contains the remaining code to enable suspend to mem and standby on
am335x and am437x platforms. It depends on the ti-emif-sram series sent here
[1], and the first 3 patches in v1 found here [2] which have been queued for
merge already and dropped from this series. Apart from dropping the first three
patches, changes from v1 are to update the sram_exec_copy usage to treat the
return address as the proper callable pointer when copying functions and some
small cleanups to the assembly code in the first two patches. However, as no
review was done on v1 due to sram_exec_copy discussion I am including the
original cover letter below.
This code also depends on firmware for the wkup_m3 that is available here [3]
that can either be placed in /lib/firmware or built in to the kernel.
Patches 1 and 2 add the required low-level PM suspend code that is relocated to
SRAM for each platform. Patch 3 and patch 4 serve as the split between code
that can live in drivers and code that must remain under mach-omap2. The idea
here was to maintain the minimal amount of ARM and OMAP specific code inside
mach-omap2 while providing ops that can be called into from a module that lives
in drivers and contains the bulk of the PM code. Patch 3 also contains
additions to the ARM asm-offsets file to allow us to automatically generate C
struct member offsets and sizes to be used by the assembly code introduced
earlier, more info can be seen in the changelog. Patch 4 introduces the pm33xx
driver which makes use of the wkup_m3_ipc and ti-emif-sram drivers to enable PM
on the system. Because pm33xx depends on modules it must be able to defer
probe so patch 5 creates a dummy pm33xx platform device to cause pm33xx to
probe initially but also defer if needed.
As with the ti-emif-sram driver, which also contains relocatable SRAM code, we
can only get read-only exectuable memory regions from the mmio-sram driver so
we also provide a second region to the driver that is read/write to be used for
data during execution. This is the reason two sram regions are mapped and so
many offsets must be provided to the code section.
For testing the drivers required are:
CONFIG_MAILBOX
CONFIG_OMAP2PLUS_MBOX
CONFIG_WKUP_M3_RPROC
CONFIG_SOC_TI
CONFIG_WKUP_M3_IPC
CONFIG_TI_EMIF_SRAM
CONFIG_AMX3_PM
There is still a device tree patch series to follow that will completely enable
PM but I will wait to send that until this series and the emif series have been
reviewed, until then all patches have been pushed here for use [4].
Regards,
Dave
[1] https://www.spinics.net/lists/arm-kernel/msg582278.html
[2] https://www.spinics.net/lists/arm-kernel/msg572535.html
[3] https://git.ti.com/processor-firmware/ti-amx3-cm3-pm-firmware/blobs/7eb9c0856a9e8b3b42bf64f761da135852b8eea7/bin/am335x-pm-firmware.elf
[4] https://github.com/dgerlach/linux-pm/tree/upstream/v4.12/amx3-suspend-dev
Dave Gerlach (5):
ARM: OMAP2+: Introduce low-level suspend code for AM33XX
ARM: OMAP2+: Introduce low-level suspend code for AM43XX
ARM: OMAP2+: pm33xx-core: Add platform code needed for PM
soc: ti: Add pm33xx driver for basic suspend support
ARM: OMAP2+: Create dummy platform_device for pm33xx
arch/arm/kernel/asm-offsets.c | 2 +
arch/arm/mach-omap2/Kconfig | 1 +
arch/arm/mach-omap2/Makefile | 4 +
arch/arm/mach-omap2/common.h | 7 +
arch/arm/mach-omap2/io.c | 2 +
arch/arm/mach-omap2/pm.h | 5 +
arch/arm/mach-omap2/pm33xx-core.c | 193 +++++++++++++++++
arch/arm/mach-omap2/sleep33xx.S | 221 ++++++++++++++++++++
arch/arm/mach-omap2/sleep43xx.S | 394 +++++++++++++++++++++++++++++++++++
drivers/soc/ti/Kconfig | 9 +
drivers/soc/ti/Makefile | 1 +
drivers/soc/ti/pm33xx.c | 337 ++++++++++++++++++++++++++++++
include/linux/platform_data/pm33xx.h | 69 ++++++
13 files changed, 1245 insertions(+)
create mode 100644 arch/arm/mach-omap2/pm33xx-core.c
create mode 100644 arch/arm/mach-omap2/sleep33xx.S
create mode 100644 arch/arm/mach-omap2/sleep43xx.S
create mode 100644 drivers/soc/ti/pm33xx.c
create mode 100644 include/linux/platform_data/pm33xx.h
--
2.13.0
next reply other threads:[~2017-05-19 20:05 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-19 20:04 Dave Gerlach [this message]
2017-05-19 20:04 ` [PATCH v2 1/5] ARM: OMAP2+: Introduce low-level suspend code for AM33XX Dave Gerlach
2017-05-19 20:04 ` [PATCH v2 2/5] ARM: OMAP2+: Introduce low-level suspend code for AM43XX Dave Gerlach
2017-05-19 20:04 ` [PATCH v2 3/5] ARM: OMAP2+: pm33xx-core: Add platform code needed for PM Dave Gerlach
2017-05-22 14:56 ` Tony Lindgren
2017-07-04 13:14 ` Johan Hovold
2017-07-06 19:02 ` Dave Gerlach
2017-05-19 20:04 ` [PATCH v2 4/5] soc: ti: Add pm33xx driver for basic suspend support Dave Gerlach
2017-07-03 16:54 ` Johan Hovold
2017-07-04 13:46 ` Johan Hovold
2017-07-06 19:08 ` Dave Gerlach
2017-07-10 11:46 ` Johan Hovold
2017-05-19 20:04 ` [PATCH v2 5/5] ARM: OMAP2+: Create dummy platform_device for pm33xx Dave Gerlach
2017-07-03 16:58 ` Johan Hovold
2017-07-06 19:08 ` Dave Gerlach
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170519200438.9502-1-d-gerlach@ti.com \
--to=d-gerlach@ti.com \
--cc=j-keerthy@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=ssantosh@kernel.org \
--cc=tony@atomide.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox