soc/tegra: pmc: Add generic PM domain support
authorJon Hunter <jonathanh@nvidia.com>
Wed, 30 Mar 2016 09:15:15 +0000 (10:15 +0100)
committerThierry Reding <treding@nvidia.com>
Fri, 29 Apr 2016 15:17:47 +0000 (17:17 +0200)
commita38045121bf42110e6043d07315a7626b021a0db
treeb3dc265025755ac39e69289443c2529d99e4fd15
parentb5c46cef6c119aeeab0238dc4722ceea585edf33
soc/tegra: pmc: Add generic PM domain support

Adds generic PM domain support to the PMC driver where the PM domains
are populated from device-tree and the PM domain consumer devices are
bound to their relevant PM domains via device-tree as well.

Update the tegra_powergate_sequence_power_up() API so that internally
it calls the same tegra_powergate_xxx functions that are used by the
Tegra generic PM domain code for consistency.

To ensure that the Tegra power domains (a.k.a. powergates) cannot be
controlled via both the legacy tegra_powergate_xxx functions as well
as the generic PM domain framework, add a bit map for available
powergates that can be controlled via the legacy powergate functions.

Move the majority of the tegra_powergate_remove_clamping() function
to a sub-function, so that this can be used by both the legacy and
generic power domain code.

This is based upon work by Thierry Reding <treding@nvidia.com>
and Vince Hsu <vinceh@nvidia.com>.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/soc/tegra/pmc.c
include/soc/tegra/pmc.h