TISCI PM Low Power Mode API Documentation¶
Note
This document is only applicable to AM62x and AM62Ax devices.
Introduction¶
This document describes the TISCI API for entering different low power modes supported by the SOC.
Supported low power modes¶
TISCI_MSG_VALUE_SLEEP_MODE_DEEP_SLEEP 0x0
Sleep mode in which complete SOC except the wakeup domain is turned off.
TISCI_MSG_VALUE_SLEEP_MODE_MCU_ONLY 0x1
Sleep mode in which complete SOC except the wakeup and MCU domain is turned off.
TISCI_MSG_VALUE_SLEEP_MODE_STANDBY 0x2
Sleep mode in which software is in low power mode but the hardware remains on.
TISCI_MSG_VALUE_SLEEP_MODE_PARTIAL_IO 0x3
Sleep mode in which complete SOC except the CAN IOs is turned off.
Low power mode | Supported by |
---|---|
DEEP_SLEEP | am62x, am62ax |
MCU_ONLY | am62x |
STANDBY | None |
PARTIAL_IO | am62x |
Device configuration and control APIs¶
TISCI Message ID | Message Name |
---|---|
0x0300 | TISCI_MSG_PREPARE_SLEEP |
0x0301 | TISCI_MSG_ENTER_SLEEP |
0x0306 | TISCI_MSG_LPM_WAKE_REASON |
0x0307 | TISCI_MSG_SET_IO_ISOLATION |
TISCI_MSG_PREPARE_SLEEP¶
Objective¶
Prepare the SOC for entering into a low power mode.
Usage¶
Message Type | Normal |
Secure Queue Only? | No |
TISCI Message ID¶
TISCI_MSG_PREPARE_SLEEP (0x0300U)
Message Data Structures¶
struct tisci_msg_prepare_sleep_req
Request for TISCI_MSG_PREPARE_SLEEP.
Parameter | Type | Description |
---|---|---|
hdr | struct tisci_header | TISCI header to provide ACK/NAK flags to the host. |
mode | u8 | Low power mode to enter. |
ctx_lo | u32 | Low 32-bits of physical pointer to address to use for context save. |
ctx_hi | u32 | High 32-bits of physical pointer to address to use for context save. |
debug_flags | u32 | Flags that can be set to halt the sequence during suspend or resume to allow JTAG connection and debug. |
This message is used as the first step of entering a low power mode. It allows configurable information, including which state to enter to be easily shared from the application, as this is a non-secure message and therefore can be sent by anyone. Notes: Mode is defined as one of TISCI_MSG_VALUE_SLEEP_MODE_x macros. ctx_lo and ctx_hi are to be a reserved memory region as decided on by the HLOS. This region should be a carveout in DDR and valid for use with DMA. Otherwise there are no constraints on this memory. An encrypted blob will be placed here and only a valid blob can be decrypted and authenticated, which eliminates risk of tampering.
struct tisci_msg_prepare_sleep_resp
Response for TISCI_MSG_PREPARE_SLEEP.
Parameter | Type | Description |
---|---|---|
hdr | struct tisci_header | TISCI header to provide ACK/NAK flags to the host. |
TISCI_MSG_ENTER_SLEEP¶
Objective¶
Enter into a low power mode.
Note
Before calling the TISCI_MSG_ENTER_SLEEP, TISCI_MSG_PREPARE_SLEEP should be called to prepare for the low power mode.
Usage¶
Message Type | Normal |
Secure Queue Only? | Yes |
TISCI Message ID¶
TISCI_MSG_ENTER_SLEEP (0x0301U)
Message Data Structures¶
struct tisci_msg_enter_sleep_req
Request for TISCI_MSG_ENTER_SLEEP.
Parameter | Type | Description |
---|---|---|
hdr | struct tisci_header | TISCI header to provide ACK/NAK flags to the host. |
mode | u8 | Low power mode to enter. |
proc_id | u8 | Processor id to be used for restoring boot vector and debug status upon resume |
core_resume_lo | u32 | Low 32-bits of physical pointer to address for core to begin execution upon resume. |
core_resume_hi | u32 | High 32-bits of physical pointer to address for core to begin execution upon resume. |
This message is to be sent after TISCI_MSG_PREPARE_SLEEP and actually triggers entry into the specified low power mode.
struct tisci_msg_enter_sleep_resp
Response for TISCI_MSG_ENTER_SLEEP.
Parameter | Type | Description |
---|---|---|
hdr | struct tisci_header | TISCI header to provide ACK/NAK flags to the host. |
status | u32 | Value that gives information about what happened during LPM cycle |
TISCI_MSG_LPM_WAKE_REASON¶
Objective¶
Get which wake up source woke the soc from low power mode.
Wake up sources¶
Wake Up Source | Source ID |
---|---|
WKUP_I2C0 | 0x00 |
WKUP_UART0 | 0x10 |
MCU_GPIO0 | 0x20 |
WKUP_ICEMELTER0 | 0x30 |
WKUP_TIMER0 | 0x40 |
WKUP_TIMER1 | 0x41 |
WKUP_RTC0 | 0x50 |
RESET | 0x60 |
USB0 | 0x70 |
USB1 | 0x71 |
MAIN_IO | 0x80 |
MCU_IO | 0x81 |
CAN_IO | 0x82 |
MCU_IPC | 0x90 |
INVALID | 0xFF |
Usage¶
Message Type | Normal |
Secure Queue Only? | No |
TISCI Message ID¶
TISCI_MSG_LPM_WAKE_REASON (0x0306U)
Message Data Structures¶
struct tisci_msg_lpm_wake_reason_req
Request for TISCI_MSG_LPM_WAKE_REASON.
Parameter | Type | Description |
---|---|---|
hdr | struct tisci_header | TISCI header to provide ACK/NAK flags to the host. |
This message is used to query the wake up source from low power mode.
struct tisci_msg_lpm_wake_reason_resp
Response for TISCI_MSG_LPM_WAKE_REASON.
Parameter | Type | Description |
---|---|---|
hdr | struct tisci_header | TISCI header to provide ACK/NAK flags to the host. |
wake_source | u32 | The wake up source that woke soc from LPM. |
wake_timestamp | u64 | Timestamp at which soc woke. |
TISCI_MSG_SET_IO_ISOLATION¶
Objective¶
Enable and disable IO isolation
Usage¶
Message Type | Normal |
Secure Queue Only? | No |
TISCI Message ID¶
TISCI_MSG_SET_IO_ISOLATION (0x0307U)
Message Data Structures¶
struct tisci_msg_set_io_isolation_req
Request for TISCI_MSG_SET_IO_ISOLATION.
Parameter | Type | Description |
---|---|---|
hdr | struct tisci_header | TISCI header to provide ACK/NAK flags to the host. |
state | u8 | The deseared state of the IO isolation. |
This message is used to enable/disable IO isolation for low power modes.
struct tisci_msg_set_io_isolation_resp
Response for TISCI_MSG_SET_IO_ISOLATION.
Parameter | Type | Description |
---|---|---|
hdr | struct tisci_header | TISCI header to provide ACK/NAK flags to the host. |