arm: tegra: make sure that the PG request is accepted by PMC
authorPrashant Gaikwad <pgaikwad@nvidia.com>
Mon, 30 Sep 2013 12:28:59 +0000 (17:28 +0530)
committerAjay Nandakumar <anandakumarm@nvidia.com>
Thu, 3 Oct 2013 13:47:58 +0000 (18:47 +0530)
commit823edff8d4f1c2ede569fcb2622e400f1f91a790
tree1f7ecde609e2bb034661fa2461b965a46de464e0
parent3257afc36d2ea93ec54e669ed3ebc3f20e904a70
arm: tegra: make sure that the PG request is accepted by PMC

The role of START bit has changed, beginning T35. To account for
bug 863229 start bit will now be cleared by HW when PMC accepts
the request to powergate or unpowergate the partition. So in order
to powergate/unpowergate a partition SW needs to do the following.

1. Check to see if the partition is already in the correct state, by looking at the
PWRGATE_STATUS register. If not then SW reads the PWRGATE_TOGGLE register to see if START bit is 0. If not poll
till start bit is set to 0.
2. After that program the PWRGATE_TOGGLE register with start bit set as 1 and choose the
required partition to be powrgated.
3. Ideally then SW can poll to check the START bit going back to 0, to indicate
that PMC has accepted the request.
4. Then poll the STATUS register to make sure the required partition is
powergated/unpowergated.

Bug 1376147

Change-Id: I5d7818681d1766bf7eca3846ea7d5d7a4d42a109
Signed-off-by: Prashant Gaikwad <pgaikwad@nvidia.com>
Reviewed-on: http://git-master/r/280287
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
(cherry picked from commit 7028bfdcaee06241d1691400ccb73afe0a2c659e)
Signed-off-by: Ajay Nandakumar <anandakumarm@nvidia.com>
arch/arm/mach-tegra/powergate.c