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.