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.