Power Management
15-35
Clock Generation and System Reset Management
6) Take the DSP out of reset. First, write the MPU reset control 1 register
(ARM_RSTCT1)
DSP_RST field = 1. Set the MPU reset control 1 register
(ARM_RSTCT1) DSP_EN to = 1. The DSP_RST bit controls the MCU
reset, and the DSP_EN bit controls the reset signal of the DSP.
7) In the DSP code, enable and unmask the DSP interrupts.
8) Disable the DSP watchdog timer (that is, take it out of watchdog mode) and
disable the DSP peripheral clocks setting the DSP idle mode entry 2
register (DSP_IDLECT2) to 0x0000.
9) Write to the DSP mailbox registers to generate the interrupt to the MPU.
In the corresponding MPU interrupt service routine, add a wait loop to
make sure the DSP has gone to idle before disabling the MPUI clock.
10) In the MPU interrupt service routine, clear the DSP2MPU mailbox inter-
rupt, then disable the ARMGPIO_CK, LB_CK, and LCD_CK by writing the
MPU idle mode entry 2 register (ARM_IDLECT2) = 0x0087 (can also write
0x0000, which disables the MPU peripheral clocks instead of letting them
go to IDLE, only after MPU goes to IDLE using the MPU idle mode entry
1 register (ARM_IDLECT1) IDL_ARM). Put the MPU into IDLE by writing
MPU idle mode entry 1 register (ARM_IDLECT1) = 0x0FFF, which sets the
SETARM_IDLE bit. This also sets the IDLIF bits, which allow the MPU
peripherals to go to IDLE when the MPU goes to idle, and sets the
IDLDPLL_ARM bit, which allows the DPLLs to go to idle.
11) Back in the DSP code, after writing to the DSP mailbox register in step 10,
switch the DSP TIPB and MPUI to SAM. Then, write 0xFF to the DSP ICR
register. Switch the DSP back to HOM and execute the idle instruction.
See the section on putting the DSP in idle mode for descriptions of the
SAM and HOM.
The DSP and MPU domains go to idle, and then the TC also goes to idle.
Then all 3 DPLLs go to idle, and the CHIP_IDLE signal goes active high,
which indicates to the external system that the OMAP5910 input clock can
be disabled, assuming there are no wake-up conditions at that time
indicated by the WAKEUP_nREQ signal.