-Added PLL nodes (PLLs are PM slaves)
-Implemented PLL's FSM in pm_pll.h/c
-Added PmRequirement structures for APU and RPU_0, both can request
any PLL for usage
-Implemented saving of FPD PLLs' context and powering down FPD PLLs
before FPD gets powered down (this is PLL suspend)
-Implemented restoring of PLL states when PLL is needed for usage
if FPD has been powered down (this is PLL resume)
Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Acked-by: Jyotheeswar Reddy Mutthareddyvari <jyothee@xilinx.com>
-Added macros in pm_defs.h for system shutdown argument 'restart'
-Exposed array of all masters needed to initiate their suspend upon
receiving of system shutdown call
-Added checking for restart argument of system shutdown call in pm_api.c
-Implemented PmSystemShutdown for argument restart=0 (shutdown)
-Further improvement in PmSystemShutdown depend on timeout implementation
Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Signed-off-by: Sören Brinkmann <soren.brinkmann@xilinx.com>
Acked-by: Jyotheeswar Reddy Mutthareddyvari <jyothee@xilinx.com>
-Every master has unique bitfield in all IPI registers
-PMU power management accesses status, trigger and enable registers
for a master using the unique master's ipiMask now
Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Acked-by: Sören Brinkmann <soren.brinkmann@xilinx.com>
Acked-by: Jyotheeswar Reddy Mutthareddyvari <jyothee@xilinx.com>
Move the tracking of suspend requests into the corresponding master
structures.
This patch limits the number of possible requestors to 1.
Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
Acked-by: Jyotheeswar Reddy Mutthareddyvari <jyothee@xilinx.com>
-Added structure PmSuspendRequest for tracking suspend request
related informations: which master is allowed to request whose
suspend, has the request been made, etc.
-Added functions in pm_master for handling requests
-Added calls in pm_proc for triggering acknowledge once primary
processor goes to sleep
-Added sending acknowledge if target master aborts suspend
-Timeouts to be implemented
Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Acked-by: Jyotheeswar Reddy Mutthareddyvari <jyothee@xilinx.com>
-Using int type for returns
-Error statuses are common Xilinx XST_* codes
-Additional power management status errors are defined in pm_defs.h
Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Signed-off-by: Davorin Mista <davorin.mista@aggios.com>
Acked-by: Jyotheeswar Reddy Mutthareddyvari <jyothee@xilinx.com>
Signed-off-by: Sören Brinkmann <soren.brinkmann@xilinx.com>
-Added default requirements field in PmRequirements structure
-Added notification of master when primary processor switches from
forced powerdown to active state. Master has to make sure that all
default requirements gets set before primary processor enters active
state.
-In PmMasterNotify, changed behavior when wake event is received:
if primary processor is in sleep state, everything works as before,
if primary processor is in forced powerdown, default requirements
are requested and configured
-In PmRequirementReleaseAll added a check is master using slave and
if yes, usage flag and requirements are cleared
-Added PmRequirementRequestDefault function called before primary
processor switches from forced powerdown to active. Function
automatically requests all default requirements which are later
configured by PmRequirementUpdateScheduled
-In PmRequirementUpdateScheduled when swapping requirements added
a check whether master has default requirements. If yes, default
reqs are saved as next reqs instead of current. Default requirements
have priority over current requirement. Example: RPU0 keeps boot code
in one TCM bank and when booted, during the runtime, it keeps that
bank in retention. For this bank RPU0 should have default requirements
= on state, and when it boots up it can request retention. If default
requirements wouldn't exist, it would have to request for boot bank to
switch from retention to on before calling self suspend, just to get
on state in scheduled reqs
Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Acked-by: Sören Brinkmann <soren.brinkmann@xilinx.com>
Acked-by: Jyotheeswar Reddy Mutthareddyvari <jyothee@xilinx.com>
swbeta2 commit ae6d9a98edb99ce4c51c85bce4872a9f11c7eb74
PMU Firmware is being updated to the latest code base available
in the pmufw git repo. Major changes are:
-Error Management is enabled by default
-PM Module bug fixes
-Code formatting changes
-PMU ROM handlers use ROM Table instead of
individual handler addresses
-Bug fixes in scheduler
-FW_IS_PRESENT bit is set if PM is enabled
Signed-off-by: Jyotheeswar Reddy <jyothee@xilinx.com>
This is the first functional set of files with
-Power Management
-Error Handlers
-Basic Timer based Scheduler
Signed-off-by: Jyotheeswar Reddy <jyothee@xilinx.com>