The Spinlock module supports the
Power Idle interface. Software must arrange to only power off the Spinlock module
when no locks would be lost. In general, the steps to powering down the Spinlock
module are:
- Software must check that all controllers that may be
using the Spinlock module are either:
- Already powered off (all in-use flags are 0)
- Notified that Spinlock is not available and the
notification is acknowledged
- If desired, check that no locks are currently held in the
Spinlock module. The status of each bank of 32 locks can be read from the
SPINLOCK_SYSTATUS register. If any locks are held, they are orphaned because
they are not held by any controller that is still active. Alternatively, you may decide to
wait a timeout period to allow any active controller to clean up its
locks before powering down.
The Spinlock module may now be
powered off.