[RFC 0/7] ARM: OMAP2+: support for DT based pwrdm/clkdm data

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

This series provides DT based support for clock/powerdomain data. Some
parts of the data is retained under the existing *_data.c files to act
as templates. Also, minimal support for generic power domains is added,
but without power_off / power_on support at this point (should be
relatively trivial to add on top.) The pm-domains.c file has lots of
debugging info present at the moment just for testing purposes, the
pr_infos shall be gone from the actual code if this should go forward.

Patches 1-4 contains some generic tweaks to the PRCM core handling,
and should be good to go in their current form already.

As a sample in this set, only omap4 clkdm/pwrdm data is converted.
Conversion for the rest should be relatively easy to script (I have
a script that converts OMAP5/DRA7/AM43xx already, needs some tweaking for
the rest of the SoCs.)

Basically the question with this set is, whether the DT node layout /
compatible string arrangement looks sane or not. Some of the compatibles
can be squashed together especially at clkdm data side, seeing the
remaining stub data portions are rather minimal. They could also just be
retained just in case we need to tweak something later....

I also pushed a test branch here:

tree: https://github.com/t-kristo/linux-pm.git
branch: 4.1-rc2-prcm-domains-dt (contains the clock changes on bottom)

Overall diffstat for the set below:

 arch/arm/boot/dts/dra7.dtsi                 |    8 +
 arch/arm/boot/dts/omap4.dtsi                |   40 +++-
 arch/arm/boot/dts/omap44xx-clocks.dtsi      |  298 +++++++++++++++++++++++-
 arch/arm/boot/dts/omap5.dtsi                |    8 +
 arch/arm/mach-omap2/Kconfig                 |    1 +
 arch/arm/mach-omap2/Makefile                |    3 +-
 arch/arm/mach-omap2/clockdomain.h           |   10 +-
 arch/arm/mach-omap2/clockdomains44xx_data.c |  327 +++------------------------
 arch/arm/mach-omap2/cm_common.c             |   12 +
 arch/arm/mach-omap2/io.c                    |  184 +++++++++------
 arch/arm/mach-omap2/omap_hwmod.c            |    5 +-
 arch/arm/mach-omap2/pm-domains.c            |  228 +++++++++++++++++++
 arch/arm/mach-omap2/powerdomain.h           |    9 +-
 arch/arm/mach-omap2/powerdomains44xx_data.c |  124 +++-------
 arch/arm/mach-omap2/prcm-common.h           |    5 +
 arch/arm/mach-omap2/prm_common.c            |   71 ++++++
 drivers/clk/ti/clk.c                        |    3 +-
 17 files changed, 854 insertions(+), 482 deletions(-)

bloat-o-meter (with the CONFIG_PM_GENERIC_DOMAINS in place pre/post):

add/remove: 22/15 grow/shrink: 26/19 up/down: 10698/-2304 (8394)
function                                     old     new   delta
omap_clkdm_match_table                         -    4704   +4704
omap_pwrdm_match_table                         -    3136   +3136
of_omap_clockdomain_init                       -     912    +912
of_omap_powerdomain_init                       -     408    +408
....

The new compatible strings are consuming any saved space (and plenty more.)

With clkdm templates, we can save this (on OMAP4):

add/remove: 0/0 grow/shrink: 1/23 up/down: 4/-874 (-870)

Pwrdm templates maybe a bit less, as there are less users.

-Tero


--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux