All of lore.kernel.org
 help / color / mirror / Atom feed
* arm: omap3: am35x: Powerdomain, EMIF4, etc. fixups
@ 2012-04-11 19:05 ` Mark A. Greer
  0 siblings, 0 replies; 126+ messages in thread
From: Mark A. Greer @ 2012-04-11 19:05 UTC (permalink / raw)
  To: linux-omap, linux-arm-kernel; +Cc: khilman, paul

The am35x family of SoCs has several differences from
standard OMAP3 SoCs that haven't been accounted for in
Linux ARM code.  These differences include:

- There is no IVA.
- The device doesn't not support RETENTION & OFF
  power states.
- The SDRC *module* has an EMIF4 submodule instead
  of an SDRC submodule.

This series of patches tries to account for those changes.
They do the following:

- Prevent the cpu_idle thread and cpu_idle driver from
  sleeping because there are no I/O wake-ups to wake
  things back up again.
- Add a new cpu feature that indicates whether the device
  supports RETENTION & OFF power states.  Add code to
  support devices that only have INACTIVE & ON states.
- Add a parallel set of clockdomain dependencies that
  don't include the IVA.
- Add a new cpu feature that indicates whether the device
  has an EMIF4 or SDRC submodule of the SDRC module (the
  SDRC term/acronym is overloaded).  Add a minimal amount
  of code to support the EMIF4 submodule.
- Some miscellaneous patches to fix issues found while
  developing & testing the changes outlined above.

With these patches, the am3517 EVM boots and suspend-to-RAM
functions.  Unfortunately, though, after all of this, I still
can't manage to get the CORE power domain to enter the INACTIVE
state (at least according to /sys/kernel/debug/pm_debug/count
with debugfs mounted under /sys/kernel/debug).

The EMIF4 support is fairly minimal because there is an
EMIF driver working its way to mainline.  If more changes
are necessary, they can be made once the final version of
that driver is in mainline.

Please note that the SDRC submodule mapping is used by the
EMIF4 code.  They are at the same physical addresses and are
the same size so it works okay.  The reason I left the
mapping alone is because when those mappings are made, its
too early to use cpu_is_xxx() or omap3_has_sdrc_emif4() and
I didn't want to bloat the kernel with something that's
not strictly necessary.  I already have the code for the
separate mappings, so adding it in is easy, if that's
preferred.  I tried to make the mapping reuse clear with the
commit log and by adding a comment in am35xx_init_early().

These patches are based on the latest mainline kernel as
of this writing, commit 258f742635360175564e9470eb060ff4d4b984e7,
(modpost: Fix modpost license checking of vmlinux.o).  That
kernel with these patches was tested on an am35x EVM, am37x EVM,
and a Beagleboard-xM.  Testing included suspend-to-RAM
(i.e., "echo mem > /sys/power/state") with a rootfs mounted from
mmc and nfs (except for the Beagleboard-xM).

Mark
--

^ permalink raw reply	[flat|nested] 126+ messages in thread

end of thread, other threads:[~2012-04-30 22:19 UTC | newest]

Thread overview: 126+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-11 19:05 arm: omap3: am35x: Powerdomain, EMIF4, etc. fixups Mark A. Greer
2012-04-11 19:05 ` Mark A. Greer
2012-04-11 19:05 ` [PATCH 01/12] arm: omap3: Only access IVA if one exists Mark A. Greer
2012-04-11 19:05   ` Mark A. Greer
2012-04-11 19:05 ` [PATCH 02/12] arm: omap3: Only sleep during cpu_idle if I/O wake-ups work Mark A. Greer
2012-04-11 19:05   ` Mark A. Greer
2012-04-11 21:38   ` Paul Walmsley
2012-04-11 21:38     ` Paul Walmsley
2012-04-11 23:42   ` Jon Hunter
2012-04-11 23:42     ` Jon Hunter
2012-04-13  0:13     ` Mark A. Greer
2012-04-13  0:13       ` Mark A. Greer
2012-04-11 19:05 ` [PATCH 03/12] arm: omap3: Only sleep in cpuidle driver " Mark A. Greer
2012-04-11 19:05   ` Mark A. Greer
2012-04-11 21:37   ` Paul Walmsley
2012-04-11 21:37     ` Paul Walmsley
2012-04-11 22:23     ` Mark A. Greer
2012-04-11 22:23       ` Mark A. Greer
2012-04-11 22:47       ` Paul Walmsley
2012-04-11 22:47         ` Paul Walmsley
2012-04-11 23:08         ` Mark A. Greer
2012-04-11 23:08           ` Mark A. Greer
2012-04-24 20:51     ` Mark A. Greer
2012-04-24 20:51       ` Mark A. Greer
2012-04-24 23:25       ` Mark A. Greer
2012-04-24 23:25         ` Mark A. Greer
2012-04-27 21:12         ` Kevin Hilman
2012-04-27 21:12           ` Kevin Hilman
2012-04-27 21:55           ` Mark A. Greer
2012-04-27 21:55             ` Mark A. Greer
2012-04-30 21:34           ` Mark A. Greer
2012-04-30 21:34             ` Mark A. Greer
2012-04-30 22:00             ` Kevin Hilman
2012-04-30 22:00               ` Kevin Hilman
2012-04-30 22:18               ` Mark A. Greer
2012-04-30 22:18                 ` Mark A. Greer
2012-04-11 19:05 ` [PATCH 04/12] arm: omap3: am35x: Don't mark missing features as present Mark A. Greer
2012-04-11 19:05   ` Mark A. Greer
2012-04-11 19:05 ` [PATCH 05/12] arm: omap3: am35x: Add PWROFF feature Mark A. Greer
2012-04-11 19:05   ` Mark A. Greer
2012-04-11 22:46   ` Kevin Hilman
2012-04-11 22:46     ` Kevin Hilman
2012-04-11 23:11     ` Mark A. Greer
2012-04-11 23:11       ` Mark A. Greer
2012-04-24  4:36     ` Mark A. Greer
2012-04-24  4:36       ` Mark A. Greer
2012-04-27 21:07       ` Kevin Hilman
2012-04-27 21:07         ` Kevin Hilman
2012-04-30 22:08         ` Mark A. Greer
2012-04-30 22:08           ` Mark A. Greer
2012-04-11 19:05 ` [PATCH 06/12] arm: omap3: am35x: Add full PWRDM_POWER_INACTIVE support Mark A. Greer
2012-04-11 19:05   ` Mark A. Greer
2012-04-11 20:56   ` Jean Pihet
2012-04-11 20:56     ` Jean Pihet
2012-04-11 21:08     ` Paul Walmsley
2012-04-11 21:08       ` Paul Walmsley
2012-04-11 21:14       ` Mark A. Greer
2012-04-11 21:14         ` Mark A. Greer
2012-04-11 21:15         ` Jean Pihet
2012-04-11 21:15           ` Jean Pihet
2012-04-11 21:12     ` Mark A. Greer
2012-04-11 21:12       ` Mark A. Greer
2012-04-11 22:17   ` Paul Walmsley
2012-04-11 22:17     ` Paul Walmsley
2012-04-11 19:05 ` [PATCH 07/12] arm: omap3: am35x: Set proper powerdomain states Mark A. Greer
2012-04-11 19:05   ` Mark A. Greer
2012-04-11 21:53   ` Paul Walmsley
2012-04-11 21:53     ` Paul Walmsley
2012-04-11 22:40     ` Mark A. Greer
2012-04-11 22:40       ` Mark A. Greer
2012-04-12  0:24       ` Jon Hunter
2012-04-12  0:24         ` Jon Hunter
2012-04-12  2:19         ` Mark A. Greer
2012-04-12  2:19           ` Mark A. Greer
2012-04-11 19:05 ` [PATCH 08/12] arm: omap3: am35x: Fix clockdomain dependencies Mark A. Greer
2012-04-11 19:05   ` Mark A. Greer
2012-04-11 21:44   ` Paul Walmsley
2012-04-11 21:44     ` Paul Walmsley
2012-04-11 21:55     ` Mark A. Greer
2012-04-11 21:55       ` Mark A. Greer
2012-04-11 22:04       ` Paul Walmsley
2012-04-11 22:04         ` Paul Walmsley
2012-04-11 22:49         ` Mark A. Greer
2012-04-11 22:49           ` Mark A. Greer
2012-04-11 23:49           ` Paul Walmsley
2012-04-11 23:49             ` Paul Walmsley
2012-04-12  2:23             ` Mark A. Greer
2012-04-12  2:23               ` Mark A. Greer
2012-04-12  2:29               ` Paul Walmsley
2012-04-12  2:29                 ` Paul Walmsley
2012-04-12 23:00                 ` Mark A. Greer
2012-04-12 23:00                   ` Mark A. Greer
2012-04-11 19:05 ` [PATCH 09/12] arm: omap3: am35x: Add SDRC EMIF4 feature Mark A. Greer
2012-04-11 19:05   ` Mark A. Greer
2012-04-11 21:29   ` Paul Walmsley
2012-04-11 21:29     ` Paul Walmsley
2012-04-11 22:50     ` Mark A. Greer
2012-04-11 22:50       ` Mark A. Greer
2012-04-11 22:56   ` Paul Walmsley
2012-04-11 22:56     ` Paul Walmsley
2012-04-11 23:23     ` Mark A. Greer
2012-04-11 23:23       ` Mark A. Greer
2012-04-11 19:05 ` [PATCH 10/12] arm: omap3: am35x: Add minimal EMIF4 support Mark A. Greer
2012-04-11 19:05   ` Mark A. Greer
2012-04-11 21:31   ` Paul Walmsley
2012-04-11 21:31     ` Paul Walmsley
2012-04-11 23:22     ` Mark A. Greer
2012-04-11 23:22       ` Mark A. Greer
2012-04-11 19:05 ` [PATCH 11/12] arm: omap3: am35x: Add do_wfi routine for EMIF4 submodules Mark A. Greer
2012-04-11 19:05   ` Mark A. Greer
2012-04-11 22:35   ` Kevin Hilman
2012-04-11 22:35     ` Kevin Hilman
2012-04-11 23:26     ` Mark A. Greer
2012-04-11 23:26       ` Mark A. Greer
2012-04-11 22:36   ` Paul Walmsley
2012-04-11 22:36     ` Paul Walmsley
2012-04-13  0:12     ` Mark A. Greer
2012-04-13  0:12       ` Mark A. Greer
2012-04-11 22:54   ` Paul Walmsley
2012-04-11 22:54     ` Paul Walmsley
2012-04-11 19:05 ` [PATCH 12/12] arm: omap3: am35x: Register davinci_mdio before davinci_emac Mark A. Greer
2012-04-11 19:05   ` Mark A. Greer
2012-04-11 21:24   ` Paul Walmsley
2012-04-11 21:24     ` Paul Walmsley
2012-04-11 22:00     ` Mark A. Greer
2012-04-11 22:00       ` Mark A. Greer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.