From 964783a29319139399dffce09d0b72698bf94ade Mon Sep 17 00:00:00 2001 From: Kendall Willis Date: Fri, 10 Apr 2026 15:17:22 -0500 Subject: [PATCH 1/7] style(pm_wakeup_sources): reword CAN wakeup section Reword CAN wakeup section to be more readable for users. Remove UART from section name since CAN is the wakeup source and CAN UART is the bank of pins the CAN is in. Signed-off-by: Kendall Willis --- .../Power_Management/pm_wakeup_sources.rst | 46 ++++++------------- 1 file changed, 15 insertions(+), 31 deletions(-) diff --git a/source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst b/source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst index 89eb4ce7d..e47feb719 100644 --- a/source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst +++ b/source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst @@ -27,7 +27,7 @@ valid for given low power modes: +------------------------------------------------+------------+----------+-------------+ | MCU IPC (for MCU Only mode) | No | Yes | No | +------------------------------------------------+------------+----------+-------------+ - | CAN UART I/O Daisy Chain | Yes | Yes | Yes | + | CAN I/O Daisy Chain | Yes | Yes | Yes | +------------------------------------------------+------------+----------+-------------+ .. ifconfig:: CONFIG_part_variant in ('AM62AX', 'AM62PX') @@ -48,7 +48,7 @@ valid for given low power modes: +------------------------------------------------+-------+------+---------+----------+ | MCU IPC (for MCU Only mode) | No | Yes | No | No | +------------------------------------------------+-------+------+---------+----------+ - | CAN UART I/O Daisy Chain | Yes | Yes | Yes | Yes | + | CAN I/O Daisy Chain | Yes | Yes | Yes | Yes | +------------------------------------------------+-------+------+---------+----------+ .. ifconfig:: CONFIG_part_variant in ('AM62LX') @@ -982,45 +982,29 @@ MCU IPC based Wakeup [IPC RPMSG ECHO] Main domain resumed due to MCU UART -************************ -CAN UART I/O Daisy Chain -************************ + +******************* +CAN I/O Daisy Chain +******************* .. ifconfig:: CONFIG_part_variant in ('AM62LX') - CAN UART wakeup is not supported on AM62LX. + CAN wakeup is not supported on AM62LX. .. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX') - It is possible to wakeup the system from CAN UART pins in all supported low - power modes. This is possible once CAN UART is configured. - - To set CAN UART as a wakeup source, a pinctrl state called "wakeup" needs to be - added to the device tree. The "wakeup" pinctrl state will set the WKUP_EN flag - on the desired padconfig register. When the WKUP_EN flag (29th bit) is set, it - allows the pad to act as a wakeup source. If CAN UART has the "wakeup" pinctrl - state defined, then the Linux mcan driver is able to switch to the pinctrl - "wakeup" state during suspend which enables CAN UART wakeup. + CAN pins can be used to wake the system from any supported low power mode. + To enable this, in the device tree configure a "wakeup" pinctrl state that sets + the WKUP_EN flag (29th bit) on the desired padconfig register. This allows the + mcan driver to switch to the wakeup state during suspend. - The mcan_uart0 and mcan_uart1 nodes in - `k3-am62x-sk-lpm-io-ddr-wkup-sources.dtso `__ - can be used as a reference for enabling CAN UART wakeup. + Refer to the mcu_mcan0 and mcu_mcan1 nodes in + `k3-am62x-sk-lpm-wkup-sources.dtso `__ + for a complete example: - .. code-block:: text + .. code-block:: dts &mcu_pmx0 { - mcu_mcan0_tx_pins_default: mcu-mcan0-tx-pins-default { - pinctrl-single,pins = < - AM62X_IOPAD(0x034, PIN_OUTPUT, 0) /* (D6) MCU_MCAN0_TX */ - >; - }; - - mcu_mcan0_rx_pins_default: mcu-mcan0-rx-pins-default { - pinctrl-single,pins = < - AM62X_IOPAD(0x038, PIN_INPUT, 0) /* (B3) MCU_MCAN0_RX */ - >; - }; - mcu_mcan0_rx_pins_wakeup: mcu-mcan0-rx-pins-wakeup { pinctrl-single,pins = < AM62X_IOPAD(0x038, PIN_INPUT | WKUP_EN, 0) /* (B3) MCU_MCAN0_RX */ From 370cdcfb654be264dbf96802ebc80c09d7b944fd Mon Sep 17 00:00:00 2001 From: Kendall Willis Date: Fri, 10 Apr 2026 15:16:38 -0500 Subject: [PATCH 2/7] style(pm_low_power_modes): reword Partial IO section Reword Partial IO section to make it more readable. Additionally, update Partial IO expected output for SDK 12.0. Signed-off-by: Kendall Willis --- .../Power_Management/pm_low_power_modes.rst | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/source/linux/Foundational_Components/Power_Management/pm_low_power_modes.rst b/source/linux/Foundational_Components/Power_Management/pm_low_power_modes.rst index bea1efba1..8cfa3ad96 100644 --- a/source/linux/Foundational_Components/Power_Management/pm_low_power_modes.rst +++ b/source/linux/Foundational_Components/Power_Management/pm_low_power_modes.rst @@ -47,15 +47,13 @@ wakeup event is triggered. Only AM62 LP-SK EVM supports Partial I/O mode. -The reference implementation in this SDK implements Partial I/O as a -poweroff state. On poweroff, Linux ti_sci driver checks the potential -Partial I/O wakeup sources for being enabled. If one of the wakeup -sources is found to be enabled, Partial I/O is entered instead of poweroff. +Partial I/O is a poweroff state. Upon poweroff, the Linux ti_sci driver +chooses Partial I/O entry if any CAN I/O wakeup sources are present. The following wakeup sources have been configured for Partial I/O: mcu_uart0, mcu_mcan0, and mcu_mcan1. Partial I/O mode can only be tested when `k3-am62x-sk-lpm-wkup-sources.dtso `__ -overlay is loaded. Please refer to :ref:`How to enable DT overlays` for more details. +overlay is loaded. Refer to :ref:`How to enable DT overlays` for more details. After Linux boots, the MCAN wakeup for Partial I/O is enabled. @@ -70,10 +68,11 @@ the console output will stop at the following lines: .. code-block:: text - [ 51.698039] systemd-shutdown[1]: Powering off. - [ 51.769478] reboot: Power down + [ 74.310565] systemd-shutdown[1]: Powering off. + [ 74.396204] reboot: Power down + [ 74.399358] ti-sci 44043000.system-controller: Entering Partial-IO because a powered wakeup-enabled device was found. -The system has entered Partial I/O and can only be woken up with an +The system has entered Partial I/O and can only be woken up with activity on the I/O pin programmed for wakeup. For example, if mcu_mcan0 wakeup was enabled, grounding Pin 22 of J8 MCU Header will wakeup the system and it will go through a normal Linux boot process. From 3c41dfd63c1eb21eb19b31105608f64066e7af53 Mon Sep 17 00:00:00 2001 From: Kendall Willis Date: Fri, 10 Apr 2026 15:15:19 -0500 Subject: [PATCH 3/7] feat(power): update steps to enable CAN wakeup from LPM In SDK 12.0, ethtool is used to enable wakeup from CAN. Update the LPM documentation where necessary to reflect this change. Signed-off-by: Kendall Willis --- .../Power_Management/pm_low_power_modes.rst | 29 ++++++-------- .../Power_Management/pm_wakeup_sources.rst | 40 ++++++++++++++----- 2 files changed, 42 insertions(+), 27 deletions(-) diff --git a/source/linux/Foundational_Components/Power_Management/pm_low_power_modes.rst b/source/linux/Foundational_Components/Power_Management/pm_low_power_modes.rst index 8cfa3ad96..910c82172 100644 --- a/source/linux/Foundational_Components/Power_Management/pm_low_power_modes.rst +++ b/source/linux/Foundational_Components/Power_Management/pm_low_power_modes.rst @@ -50,12 +50,9 @@ wakeup event is triggered. Partial I/O is a poweroff state. Upon poweroff, the Linux ti_sci driver chooses Partial I/O entry if any CAN I/O wakeup sources are present. -The following wakeup sources have been configured for Partial I/O: -mcu_uart0, mcu_mcan0, and mcu_mcan1. Partial I/O mode can only be tested -when `k3-am62x-sk-lpm-wkup-sources.dtso `__ -overlay is loaded. Refer to :ref:`How to enable DT overlays` for more details. - -After Linux boots, the MCAN wakeup for Partial I/O is enabled. +Partial I/O supports wakeup sources mcu_mcan0 and mcu_mcan1. For more +information about enabling CAN wakeup, see +:ref:`CAN I/O Daisy Chain`. Enter Partial I/O mode with the following command: @@ -72,10 +69,9 @@ the console output will stop at the following lines: [ 74.396204] reboot: Power down [ 74.399358] ti-sci 44043000.system-controller: Entering Partial-IO because a powered wakeup-enabled device was found. -The system has entered Partial I/O and can only be woken up with -activity on the I/O pin programmed for wakeup. For example, if mcu_mcan0 -wakeup was enabled, grounding Pin 22 of J8 MCU Header will wakeup the -system and it will go through a normal Linux boot process. +The above output indicates that the system has entered Partial I/O. The +system will resume to through a normal Linux boot process by triggering +activity on the wakeup I/O pin programmed. .. _pm_io_only_plus_ddr: @@ -112,13 +108,12 @@ I/O Only Plus DDR .. important:: Jumper J12 should be connected on SK to enable system to enter I/O Only plus DDR mode. - The wakeup sources that can be used to wake the system from I/O Only Plus - DDR are mcu_uart0, mcu_mcan0, mcu_mcan1 and wkup_uart0. To use the mcu_mcan0 - and mcu_mcan1 wakeup sources, apply the - `k3-am62x-sk-lpm-io-ddr-wkup-sources.dtso `__ - overlay. Please refer to :ref:`How to enable DT overlays` - for more details. To use the mcu_uart0 and wkup_uart0 wakeup sources, direct - register writes can be used to enable wakeup after Linux boots. + I/O Only Plus DDR supports wakeup sources mcu_uart0, mcu_mcan0, + mcu_mcan1 and wkup_uart0. To use the mcu_mcan0 and mcu_mcan1 wakeup + sources, see + :ref:`CAN I/O Daisy Chain`. + To use the mcu_uart0 and wkup_uart0 wakeup sources, direct register + writes enable wakeup after Linux boots. .. rubric:: Following commands set the wakeup EN bit, enable receive for pad in PADCONFIG register and can be used to enable wakeup from mcu_uart0 and wkup_uart0 pins respectively. diff --git a/source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst b/source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst index e47feb719..c95e744d0 100644 --- a/source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst +++ b/source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst @@ -982,6 +982,7 @@ MCU IPC based Wakeup [IPC RPMSG ECHO] Main domain resumed due to MCU UART +.. _pm_wakeup_sources_can: ******************* CAN I/O Daisy Chain @@ -1019,16 +1020,35 @@ CAN I/O Daisy Chain status = "okay"; }; - CAN UART wakeup can be tested by using either the - `k3-am62x-sk-lpm-wkup-sources.dtso `__ - or - `k3-am62x-sk-lpm-io-ddr-wkup-sources.dtso `__ - overlays. Please refer to :ref:`How to enable DT overlays` - for more details. - - Once the system has entered any low power mode as shown in the - :ref:`LPM section`, wakeup from MCU_GPIO0_16 or MCU_MCAN0_RX can be - triggered by grounding Pin 11 or Pin 22 on J8 MCU Header, respectively. + + .. ifconfig:: CONFIG_part_variant in ('AM62X') + + CAN wakeup is enabled by default for the AM62X LP-SK EVM. For all + other EVMs, the device tree overlay + `k3-am62x-sk-lpm-wkup-sources.dtso `__ + is required for testing CAN wakeup. See + :ref:`How to enable DT overlays` for details. + + .. ifconfig:: CONFIG_part_variant in ('AM62AX','AM62PX') + + Either device tree overlay + `k3-am62x-sk-lpm-wkup-sources.dtso `__ + or + `k3-am62x-sk-lpm-io-ddr-wkup-sources.dtso `__ + are needed for testing. See + :ref:`How to enable DT overlays` for details. + + + Before entering low power mode, enable CAN wakeup using ethtool: + + .. code-block:: console + + root@:~# ethtool -s mcu_mcan0 wol p + root@:~# ethtool -s mcu_mcan1 wol p + + Once the system enters a low power mode, wakeup from mcu_mcan0 or + mcu_mcan1 can be triggered by grounding Pin 22 or Pin 11 on J8 MCU + Header, respectively. *********** RTC Ext Pin From 225bf2065af1f889210df5340070f48ea5ed061a Mon Sep 17 00:00:00 2001 From: Kendall Willis Date: Mon, 13 Apr 2026 15:22:58 -0500 Subject: [PATCH 4/7] fix(pm_wakeup_sources): update Main UART wakeup code In SDK 12.0, the referenced Main UART wakeup code has been changed style wise, but the functionality is still the same from SDK 11.2. Therefore, update the referenced code to be inline with SDK 12.0 implementation. Signed-off-by: Kendall Willis --- .../Power_Management/pm_wakeup_sources.rst | 93 +++++++------------ 1 file changed, 36 insertions(+), 57 deletions(-) diff --git a/source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst b/source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst index c95e744d0..c40e33d07 100644 --- a/source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst +++ b/source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst @@ -552,23 +552,18 @@ Main UART .. code-block:: dts &main_pmx0 { - main_uart0_tx_pins_default: main-uart0-tx-default-pins { - bootph-all; - pinctrl-single,pins = < - AM62X_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (E14/E11) UART0_TXD */ - >; - }; - - main_uart0_rx_pins_default: main-uart0-rx-default-pins { + main_uart0_pins_default: main-uart0-default-pins { bootph-all; pinctrl-single,pins = < AM62X_IOPAD(0x1c8, PIN_INPUT, 0) /* (D14/A13) UART0_RXD */ + AM62X_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (E14/E11) UART0_TXD */ >; }; - main_uart0_rx_pins_wakeup: main-uart0-rx-wakeup-pins { + main_uart0_pins_wakeup: main-uart0-wakeup-pins { pinctrl-single,pins = < AM62X_IOPAD(0x1c8, PIN_INPUT | PIN_WKUP_EN, 0) /* (D14/A13) UART0_RXD */ + AM62X_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (E14/E11) UART0_TXD */ >; }; }; @@ -577,11 +572,11 @@ Main UART bootph-all; status = "okay"; pinctrl-names = "default", "wakeup"; - pinctrl-0 = <&main_uart0_tx_pins_default>, <&main_uart0_rx_pins_default>; - pinctrl-1 = <&main_uart0_tx_pins_default>, <&main_uart0_rx_pins_wakeup>; + pinctrl-0 = <&main_uart0_pins_default>; + pinctrl-1 = <&main_uart0_pins_wakeup>; wakeup-source = <&system_deep_sleep>, - <&system_mcu_only>, - <&system_standby>; + <&system_mcu_only>, + <&system_standby>; }; .. ifconfig:: CONFIG_part_variant in ('AM62AX') @@ -592,23 +587,18 @@ Main UART .. code-block:: dts &main_pmx0 { - main_uart0_tx_pins_default: main-uart0-tx-default-pins { - pinctrl-single,pins = < - AM62AX_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (D15) UART0_TXD */ - >; - bootph-all; - }; - - main_uart0_rx_pins_default: main-uart0-rx-default-pins { + main_uart0_pins_default: main-uart0-default-pins { pinctrl-single,pins = < AM62AX_IOPAD(0x1c8, PIN_INPUT, 0) /* (E14) UART0_RXD */ + AM62AX_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (D15) UART0_TXD */ >; bootph-all; - }; + }; - main_uart0_rx_pins_wakeup: main-uart0-rx-wakeup-pins { + main_uart0_pins_wakeup: main-uart0-wakeup-pins { pinctrl-single,pins = < AM62AX_IOPAD(0x1c8, PIN_INPUT | PIN_WKUP_EN, 0) /* (E14) UART0_RXD */ + AM62AX_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (D15) UART0_TXD */ >; }; }; @@ -616,11 +606,11 @@ Main UART &main_uart0 { status = "okay"; pinctrl-names = "default", "wakeup"; - pinctrl-0 = <&main_uart0_tx_pins_default>, <&main_uart0_rx_pins_default>; - pinctrl-1 = <&main_uart0_tx_pins_default>, <&main_uart0_rx_pins_wakeup>; + pinctrl-0 = <&main_uart0_pins_default>; + pinctrl-1 = <&main_uart0_pins_wakeup>; wakeup-source = <&system_deep_sleep>, - <&system_mcu_only>, - <&system_standby>; + <&system_mcu_only>, + <&system_standby>; bootph-all; }; @@ -632,34 +622,28 @@ Main UART .. code-block:: dts &main_pmx0 { - main_uart0_tx_pins_default: main-uart0-tx-default-pins { + main_uart0_pins_default: main-uart0-default-pins { pinctrl-single,pins = < - AM62PX_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (B22) UART0_TXD */ + AM62PX_IOPAD(0x1c8, PIN_INPUT, 0) /* (A22) UART0_RXD */ + AM62PX_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (B22) UART0_TXD */ >; bootph-all; }; - main_uart0_rx_pins_default: main-uart0-rx-default-pins { + main_uart0_pins_wakeup: main-uart0-wakeup-pins { pinctrl-single,pins = < - AM62PX_IOPAD(0x1c8, PIN_INPUT, 0) /* (A22) UART0_RXD */ - >; - bootph-all; - }; - - main_uart0_rx_pins_wakeup: main-uart0-rx-wakeup-pins { - pinctrl-single,pins = < - AM62PX_IOPAD(0x1c8, PIN_INPUT | PIN_WKUP_EN, 0) /* (A22) UART0_RXD */ + AM62PX_IOPAD(0x1c8, PIN_INPUT | PIN_WKUP_EN, 0) /* (A22) UART0_RXD */ + AM62PX_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (B22) UART0_TXD */ >; }; - }; &main_uart0 { pinctrl-names = "default", "wakeup"; - pinctrl-0 = <&main_uart0_tx_pins_default>, <&main_uart0_rx_pins_default>; - pinctrl-1 = <&main_uart0_tx_pins_default>, <&main_uart0_rx_pins_wakeup>; + pinctrl-0 = <&main_uart0_pins_default>; + pinctrl-1 = <&main_uart0_pins_wakeup>; wakeup-source = <&system_deep_sleep>, - <&system_mcu_only>, - <&system_standby>; + <&system_mcu_only>, + <&system_standby>; status = "okay"; bootph-all; }; @@ -671,33 +655,28 @@ Main UART .. code-block:: dts - &main_pmx0 { - main_uart0_tx_pins_default: main-uart0-tx-default-pins { - pinctrl-single,pins = < - AM62LX_IOPAD(0x01b8, PIN_OUTPUT, 0) /* (C13) UART0_TXD */ - >; - bootph-all; - }; - - main_uart0_rx_pins_default: main-uart0-rx-default-pins { + &pmx0 { + uart0_pins_default: uart0-default-pins { pinctrl-single,pins = < AM62LX_IOPAD(0x01b4, PIN_INPUT, 0) /* (D13) UART0_RXD */ + AM62LX_IOPAD(0x01b8, PIN_OUTPUT, 0) /* (C13) UART0_TXD */ >; bootph-all; }; - main_uart0_rx_pins_wakeup: main-uart0-rx-wakeup-pins { + uart0_pins_wakeup: uart0-wakeup-pins { pinctrl-single,pins = < AM62LX_IOPAD(0x01b4, PIN_INPUT | PIN_WKUP_EN, 0) /* (D13) UART0_RXD */ + AM62LX_IOPAD(0x01b8, PIN_OUTPUT, 0) /* (C13) UART0_TXD */ >; }; }; - &main_uart0 { + &uart0 { + pinctrl-0 = <&uart0_pins_default>; + pinctrl-1 = <&uart0_pins_wakeup>; pinctrl-names = "default", "wakeup"; - pinctrl-0 = <&main_uart0_tx_pins_default>, <&main_uart0_rx_pins_default>; - pinctrl-1 = <&main_uart0_tx_pins_default>, <&main_uart0_rx_pins_wakeup>; - wakeup-source = <&system_deep_sleep>; + wakeup-source; status = "okay"; bootph-all; }; From 8c1bb52697621d58b2278b666d7fe0e308b6f421 Mon Sep 17 00:00:00 2001 From: Kendall Willis Date: Mon, 13 Apr 2026 14:20:21 -0500 Subject: [PATCH 5/7] chore(Power_Management): update URLs to 12.00.00.08 Update all links to reference SDK 12.00.00.08. Signed-off-by: Kendall Willis --- .../Power_Management/pm_cpuidle.rst | 4 +-- .../Power_Management/pm_sw_arch.rst | 4 +-- .../Power_Management/pm_wakeup_sources.rst | 33 +++++++++---------- 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/source/linux/Foundational_Components/Power_Management/pm_cpuidle.rst b/source/linux/Foundational_Components/Power_Management/pm_cpuidle.rst index 225c7abb1..13048eb81 100644 --- a/source/linux/Foundational_Components/Power_Management/pm_cpuidle.rst +++ b/source/linux/Foundational_Components/Power_Management/pm_cpuidle.rst @@ -32,7 +32,7 @@ transition to the selected state. .. rubric:: Enable Standby In order to enable Standby the `k3-am62x-sk-lpm-standby.dtso - `__ + `__ overlay should be applied. Refer to :ref:`How to enable DT overlays ` for more details. More information on what the overlay does is in the :ref:`linux-device-tree-label` section. @@ -112,7 +112,7 @@ transition to the selected state. In order to implement Standby in Linux, an idle-states node has to be added and then referenced by the CPU node. The `k3-am62x-sk-lpm-standby.dtso - `__ + `__ can be used as a reference. .. code-block:: dts diff --git a/source/linux/Foundational_Components/Power_Management/pm_sw_arch.rst b/source/linux/Foundational_Components/Power_Management/pm_sw_arch.rst index 66f150ee5..8590cc948 100644 --- a/source/linux/Foundational_Components/Power_Management/pm_sw_arch.rst +++ b/source/linux/Foundational_Components/Power_Management/pm_sw_arch.rst @@ -151,8 +151,8 @@ Specifically, checking of constraints is done at two levels: The code enabling the constraints framework can be found in: -#. TISCI PM Domain driver: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/pmdomain/ti/ti_sci_pm_domains.c?h=11.02.08 -#. TISCI driver: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/firmware/ti_sci.c?h=11.02.08 +#. TISCI PM Domain driver: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/pmdomain/ti/ti_sci_pm_domains.c?h=12.00.00.07 +#. TISCI driver: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/firmware/ti_sci.c?h=12.00.00.07 Examples of adding constraints from the remote core side are being implemented and will be enabled in future release. diff --git a/source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst b/source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst index c40e33d07..479593814 100644 --- a/source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst +++ b/source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst @@ -334,7 +334,7 @@ MCU GPIO source. However, if the application design doesn't rely on the MCU firmware then Linux can be used to configure the MCU GPIOs as a wakeup source. Refer to the ``mcu_gpio_key`` node in - `k3-am62x-sk-lpm-wkup-sources.dtso `__ + `k3-am62x-sk-lpm-wkup-sources.dtso `__ to use as a template to configure the desired MCU GPIO as a wakeup capable GPIO. @@ -400,7 +400,7 @@ MCU GPIO :ref:`S/W Architecture of System Suspend` MCU GPIO wakeup can only be tested when - `k3-am62x-sk-lpm-wkup-sources.dtso `__ + `k3-am62x-sk-lpm-wkup-sources.dtso `__ overlay is loaded. Refer to :ref:`How to enable DT overlays` for more details. Once the system has entered Deep Sleep or MCU Only mode as shown in the @@ -417,7 +417,7 @@ WKUP GPIO I/O activity on the WKUP GPIOs can wakeup the system when the WKUP GPIO controller is configured as a wakeup source. Refer to the ``wkup_gpio_key`` node in - `k3-am62l3-evm-lpm-wkup-sources.dtso `__ + `k3-am62l3-evm-lpm-wkup-sources.dtso `__ to use as a template to configure the desired WKUP GPIO as a wakeup capable GPIO. @@ -478,7 +478,7 @@ WKUP GPIO wakeup interrupt to the system. WKUP GPIO wakeup can only be tested when - `k3-am62l3-evm-lpm-wkup-sources.dtso `__ + `k3-am62l3-evm-lpm-wkup-sources.dtso `__ overlay is loaded. Refer to :ref:`How to enable DT overlays` for more details. The WKUP GPIO in the overlay is routed from the WKUP UART. With this configuration the WKUP UART is not available as a wakeup source. @@ -547,7 +547,7 @@ Main UART .. ifconfig:: CONFIG_part_variant in ('AM62X') To configure UART as an I/O daisy chain wakeup, refer to the - main_uart0 node in `k3-am62x-sk-common.dtsi `_ + main_uart0 node in `k3-am62x-sk-common.dtsi `_ .. code-block:: dts @@ -582,7 +582,7 @@ Main UART .. ifconfig:: CONFIG_part_variant in ('AM62AX') To configure UART as an I/O daisy chain wakeup, refer to the - main_uart0 node in `k3-am62a7-sk.dts `_ + main_uart0 node in `k3-am62a7-sk.dts `_ .. code-block:: dts @@ -617,7 +617,7 @@ Main UART .. ifconfig:: CONFIG_part_variant in ('AM62PX') To configure UART as an I/O daisy chain wakeup, refer to the - main_uart0 node in `k3-am62p5-sk.dts `_ + main_uart0 node in `k3-am62p5-sk.dts `_ .. code-block:: dts @@ -651,7 +651,7 @@ Main UART .. ifconfig:: CONFIG_part_variant in ('AM62LX') To configure UART as an I/O daisy chain wakeup, refer to the - main_uart0 node in `k3-am62l3-evm.dts `_ + main_uart0 node in `k3-am62l3-evm.dts `_ .. code-block:: dts @@ -705,7 +705,7 @@ source by triggering a wake IRQ in Deep Sleep states. The reference configuration for Main GPIO wakeup can be found under gpio_key node in - `k3-am62x-sk-lpm-wkup-sources.dtso `__ + `k3-am62x-sk-lpm-wkup-sources.dtso `__ .. code-block:: dts @@ -730,7 +730,7 @@ source by triggering a wake IRQ in Deep Sleep states. pad when system enters Deep Sleep. Main GPIO wakeup can only be tested when - `k3-am62x-sk-lpm-wkup-sources.dtso `__ + `k3-am62x-sk-lpm-wkup-sources.dtso `__ overlay is loaded. Please refer to :ref:`How to enable DT overlays` for more details. To use main_gpio as a wakeup source, ensure gpio is a wake-irq in @@ -749,7 +749,7 @@ source by triggering a wake IRQ in Deep Sleep states. The reference configuration for Main GPIO wakeup can be found under gpio_key node in - `k3-am62l3-evm.dts `__ + `k3-am62l3-evm.dts `__ .. code-block:: dts @@ -794,7 +794,7 @@ The UART in WKUP domain is capable of waking up the system. In order to use WKUP UART as a wakeup source, it needs to be configured in a generic way using the ti-sysc interconnect target module driver. The reference configuration can be found under target-module in -`k3-am62-wakeup.dtsi `__ +`k3-am62-wakeup.dtsi `__ .. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX') @@ -979,7 +979,7 @@ CAN I/O Daisy Chain mcan driver to switch to the wakeup state during suspend. Refer to the mcu_mcan0 and mcu_mcan1 nodes in - `k3-am62x-sk-lpm-wkup-sources.dtso `__ + `k3-am62x-sk-lpm-wkup-sources.dtso `__ for a complete example: .. code-block:: dts @@ -1004,20 +1004,19 @@ CAN I/O Daisy Chain CAN wakeup is enabled by default for the AM62X LP-SK EVM. For all other EVMs, the device tree overlay - `k3-am62x-sk-lpm-wkup-sources.dtso `__ + `k3-am62x-sk-lpm-wkup-sources.dtso `__ is required for testing CAN wakeup. See :ref:`How to enable DT overlays` for details. .. ifconfig:: CONFIG_part_variant in ('AM62AX','AM62PX') Either device tree overlay - `k3-am62x-sk-lpm-wkup-sources.dtso `__ + `k3-am62x-sk-lpm-wkup-sources.dtso `__ or - `k3-am62x-sk-lpm-io-ddr-wkup-sources.dtso `__ + `k3-am62x-sk-lpm-io-ddr-wkup-sources.dtso `__ are needed for testing. See :ref:`How to enable DT overlays` for details. - Before entering low power mode, enable CAN wakeup using ethtool: .. code-block:: console From 0fb51f77c6f1a43222c7fadd3c73b7ba36b46fc6 Mon Sep 17 00:00:00 2001 From: Kendall Willis Date: Tue, 14 Apr 2026 10:28:31 -0500 Subject: [PATCH 6/7] feat(linux): Power_Management: add AM62D support For all Power_Management files that apply to AM62D, make sure that to add AM62D to any applicable ifconfig or create a new ifconfig for AM62D if needed. Signed-off-by: Kendall Willis --- configs/AM62DX/AM62DX_linux_toc.txt | 10 ++- .../Power_Management/pm_cpuidle.rst | 2 +- .../Power_Management/pm_dfs.rst | 6 +- .../Power_Management/pm_low_power_modes.rst | 25 ++++++-- .../Power_Management/pm_overview.rst | 4 +- .../Power_Management/pm_runtime_pm.rst | 4 ++ .../Power_Management/pm_sw_arch.rst | 2 +- .../Power_Management/pm_wakeup_sources.rst | 61 +++++++++++++++---- 8 files changed, 89 insertions(+), 25 deletions(-) diff --git a/configs/AM62DX/AM62DX_linux_toc.txt b/configs/AM62DX/AM62DX_linux_toc.txt index 9400358b5..77bf04f15 100644 --- a/configs/AM62DX/AM62DX_linux_toc.txt +++ b/configs/AM62DX/AM62DX_linux_toc.txt @@ -70,7 +70,15 @@ linux/Foundational_Components/Machine_Learning/nnstreamer linux/Foundational_Components/Machine_Learning/onnxrt linux/Foundational_Components/Machine_Learning/tflite -#linux/Foundational_Components_Power_Management +linux/Foundational_Components_Power_Management +linux/Foundational_Components/Power_Management/pm_overview +linux/Foundational_Components/Power_Management/pm_dfs +linux/Foundational_Components/Power_Management/pm_cpuidle +linux/Foundational_Components/Power_Management/pm_runtime_pm +linux/Foundational_Components/Power_Management/pm_low_power_modes +linux/Foundational_Components/Power_Management/pm_wakeup_sources +linux/Foundational_Components/Power_Management/pm_sw_arch +linux/Foundational_Components/Power_Management/pm_debug linux/Foundational_Components_Kernel_Users_Guide linux/Foundational_Components_Kernel_LTP-DDT_Validation diff --git a/source/linux/Foundational_Components/Power_Management/pm_cpuidle.rst b/source/linux/Foundational_Components/Power_Management/pm_cpuidle.rst index 13048eb81..ca3854e52 100644 --- a/source/linux/Foundational_Components/Power_Management/pm_cpuidle.rst +++ b/source/linux/Foundational_Components/Power_Management/pm_cpuidle.rst @@ -16,7 +16,7 @@ C-state. Governor decides whether to continue in current state/ transition to a different state. Current 'driver' is called to transition to the selected state. -.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX', 'J722S') +.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX', 'J722S', 'AM62DX') .. rubric:: Standby Mode diff --git a/source/linux/Foundational_Components/Power_Management/pm_dfs.rst b/source/linux/Foundational_Components/Power_Management/pm_dfs.rst index 24f9271d2..225a1be75 100644 --- a/source/linux/Foundational_Components/Power_Management/pm_dfs.rst +++ b/source/linux/Foundational_Components/Power_Management/pm_dfs.rst @@ -197,7 +197,7 @@ To view supported OPP's (frequency in kHz), $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies 750000000 1000000000 1500000000 2000000000 -.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX', 'J722S') +.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX', 'J722S', 'AM62DX') .. code-block:: console @@ -248,7 +248,7 @@ table. }; }; -.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX') +.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX', 'AM62DX') The OPP table defined in the following files allows defining of a different set of OPPs for each different SoC: @@ -257,7 +257,7 @@ table. :file:`arch/arm64/boot/dts/ti/k3-am625.dtsi` - .. ifconfig:: CONFIG_part_variant in ('AM62AX') + .. ifconfig:: CONFIG_part_variant in ('AM62AX', 'AM62DX') :file:`arch/arm64/boot/dts/ti/k3-am62a7.dtsi` diff --git a/source/linux/Foundational_Components/Power_Management/pm_low_power_modes.rst b/source/linux/Foundational_Components/Power_Management/pm_low_power_modes.rst index 910c82172..841d87202 100644 --- a/source/linux/Foundational_Components/Power_Management/pm_low_power_modes.rst +++ b/source/linux/Foundational_Components/Power_Management/pm_low_power_modes.rst @@ -54,6 +54,19 @@ Partial I/O supports wakeup sources mcu_mcan0 and mcu_mcan1. For more information about enabling CAN wakeup, see :ref:`CAN I/O Daisy Chain`. +.. ifconfig:: CONFIG_part_variant in ('AM62DX') + + .. important:: + + Currently, wakeup from CAN is not available on AM62D EVM, but CAN + wakeup still needs to be **enabled** to enter Partial I/O. To wakeup + from Partial I/O, enable WKUP UART wakeup by entering the following + command: + + .. code-block:: console + + root@:~# devmem2 0x4084024 w 0x20050000 # MCU_PADCONFIG9 for wkup_uart0 + Enter Partial I/O mode with the following command: .. code-block:: console @@ -83,7 +96,7 @@ I/O Only Plus DDR This mode is not applicable for AM62X. -.. ifconfig:: CONFIG_part_variant in ('AM62AX' , 'AM62PX') +.. ifconfig:: CONFIG_part_variant in ('AM62AX' , 'AM62PX', 'AM62DX') This mode is similar to Partial I/O mode, with the major distinction being that the DDR memory is kept in self refresh to save context. All the processor @@ -108,6 +121,10 @@ I/O Only Plus DDR .. important:: Jumper J12 should be connected on SK to enable system to enter I/O Only plus DDR mode. + .. ifconfig:: CONFIG_part_variant in ('AM62DX') + + .. important:: Jumper J16 should be connected on SK to enable system to enter I/O Only plus DDR mode. + I/O Only Plus DDR supports wakeup sources mcu_uart0, mcu_mcan0, mcu_mcan1 and wkup_uart0. To use the mcu_mcan0 and mcu_mcan1 wakeup sources, see @@ -137,7 +154,7 @@ I/O Only Plus DDR Main UART, USB0, and USB1 as these wakeup sources are not supported for this mode. - .. ifconfig:: CONFIG_part_variant in ('AM62AX') + .. ifconfig:: CONFIG_part_variant in ('AM62AX', 'AM62DX') .. code-block:: console @@ -157,7 +174,7 @@ I/O Only Plus DDR .. rubric:: Then, configure PMIC register bit to turn off only selected rails for this mode. - .. ifconfig:: CONFIG_part_variant in ('AM62AX') + .. ifconfig:: CONFIG_part_variant in ('AM62AX', 'AM62DX') .. code-block:: console @@ -247,7 +264,7 @@ In order to enter Deep Sleep, use the following command: [ 444.826567] psci: CPU2 killed (polled 0 ms) [ 444.830170] psci: CPU3 killed (polled 0 ms) -.. ifconfig:: CONFIG_part_variant in ('AM62AX' , 'AM62PX') +.. ifconfig:: CONFIG_part_variant in ('AM62AX' , 'AM62PX', 'AM62DX') .. code-block:: console diff --git a/source/linux/Foundational_Components/Power_Management/pm_overview.rst b/source/linux/Foundational_Components/Power_Management/pm_overview.rst index ab65c7922..a24ec0102 100644 --- a/source/linux/Foundational_Components/Power_Management/pm_overview.rst +++ b/source/linux/Foundational_Components/Power_Management/pm_overview.rst @@ -31,7 +31,7 @@ The dynamic power management features enabled on |__PART_FAMILY_DEVICE_NAMES__| #. DVFS #. CPUIdle -.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX') +.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX', 'AM62DX') #. Dynamic Frequency Scaling #. CPUIdle @@ -56,7 +56,7 @@ duration. This is accomplished by leveraging the low power modes supported by the SoC and the `System Sleep States `__ supported by the Linux kernel. -.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX') +.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX', 'AM62DX') The static power management features on |__PART_FAMILY_DEVICE_NAMES__| are: diff --git a/source/linux/Foundational_Components/Power_Management/pm_runtime_pm.rst b/source/linux/Foundational_Components/Power_Management/pm_runtime_pm.rst index 5b11c9860..21b473594 100644 --- a/source/linux/Foundational_Components/Power_Management/pm_runtime_pm.rst +++ b/source/linux/Foundational_Components/Power_Management/pm_runtime_pm.rst @@ -30,6 +30,10 @@ The following drivers have been validated for Runtime PM in this release: DSS, GPU, McASP, OSPI, MCAN, Video Codec. +.. ifconfig:: CONFIG_part_variant in ('AM62DX') + + DSS, McASP, OSPI, MCAN. + .. rubric:: Driver Usage Linux provides the following sysfs interface (/sys/devices/.../power/) diff --git a/source/linux/Foundational_Components/Power_Management/pm_sw_arch.rst b/source/linux/Foundational_Components/Power_Management/pm_sw_arch.rst index 8590cc948..10185ecec 100644 --- a/source/linux/Foundational_Components/Power_Management/pm_sw_arch.rst +++ b/source/linux/Foundational_Components/Power_Management/pm_sw_arch.rst @@ -230,7 +230,7 @@ If constraint is put on MAIN devgroup devices, then no low power mode is possibl `Devgroup section `__ of TISCI documentation. -.. ifconfig:: CONFIG_part_variant in ('AM62AX') +.. ifconfig:: CONFIG_part_variant in ('AM62AX', 'AM62DX') For detailed description for devgroup of these devices, refer to `Devgroup section `__ diff --git a/source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst b/source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst index 479593814..6a90bb7cf 100644 --- a/source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst +++ b/source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst @@ -30,7 +30,7 @@ valid for given low power modes: | CAN I/O Daisy Chain | Yes | Yes | Yes | +------------------------------------------------+------------+----------+-------------+ -.. ifconfig:: CONFIG_part_variant in ('AM62AX', 'AM62PX') +.. ifconfig:: CONFIG_part_variant in ('AM62AX', 'AM62PX', 'AM62DX') +------------------------------------------------+-------+------+---------+----------+ | Wakeup Source | Deep | MCU | Partial | I/O Only | @@ -155,7 +155,7 @@ For example, to wakeup from Deep Sleep in 10 seconds, use the command like this: [ 34.645777] PM: suspend exit root@am62xx-evm:~# -.. ifconfig:: CONFIG_part_variant in ('AM62AX') +.. ifconfig:: CONFIG_part_variant in ('AM62AX', 'AM62DX') .. code-block:: console @@ -309,7 +309,7 @@ For example, to wakeup from Deep Sleep in 10 seconds, use the command like this: [ 28.378392] random: crng reseeded on system resumption [ 28.384269] PM: suspend exit -.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX') +.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX', 'AM62DX') .. note:: @@ -325,7 +325,7 @@ MCU GPIO MCU GPIO wakeup is not supported on AM62LX. -.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX') +.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX', 'AM62DX') One of the most common ways to wakeup a system is by using some I/O activity. I/O activity on the MCU GPIOs can wakeup the system when the MCU GPIO @@ -487,7 +487,7 @@ WKUP GPIO :ref:`LPM section`, wakeup from WKUP_UART0_RXD can be triggered by entering a keypress on the WKUP UART (/dev/ttyUSB2). -.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX') +.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX', 'AM62DX') Setup of WKUP GPIO is the same process of MCU GPIO. Refer to the :ref:`MCU GPIO section` on how to configure wakeup from @@ -514,7 +514,7 @@ register. For detailed information and sequence please refer to I/O Power Management and Daisy Chaining section in the TRM. -.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX') +.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX', 'AM62DX') .. note:: @@ -681,6 +681,41 @@ Main UART bootph-all; }; +.. ifconfig:: CONFIG_part_variant in ('AM62DX') + + To configure UART as an I/O daisy chain wakeup, refer to the + main_uart0 node in `k3-am62d2-evm.dts `_ + + .. code-block:: dts + + &main_pmx0 { + main_uart0_pins_default: main-uart0-default-pins { + pinctrl-single,pins = < + AM62DX_IOPAD(0x01c8, PIN_INPUT, 0) /* (E14) UART0_RXD */ + AM62DX_IOPAD(0x01cc, PIN_OUTPUT, 0) /* (D15) UART0_TXD */ + >; + bootph-all; + }; + + main_uart0_pins_wakeup: main-uart0-wakeup-pins { + pinctrl-single,pins = < + AM62DX_IOPAD(0x01c8, PIN_INPUT | PIN_WKUP_EN, 0) /* (E14) UART0_RXD */ + AM62DX_IOPAD(0x01cc, PIN_OUTPUT, 0) /* (D15) UART0_TXD */ + >; + }; + }; + + &main_uart0 { + status = "okay"; + pinctrl-names = "default", "wakeup"; + pinctrl-0 = <&main_uart0_pins_default>; + pinctrl-1 = <&main_uart0_pins_wakeup>; + wakeup-source = <&system_deep_sleep>, + <&system_mcu_only>, + <&system_standby>; + bootph-all; + }; + In the above code, a "wakeup" pinctrl state is defined for main_uart0. The "wakeup" pinctrl state sets the WKUP_EN flag on the desired padconfig register, which allows the pad to act as a wakeup source. During suspend, the Linux @@ -701,7 +736,7 @@ combination of gpio-keys with a chained IRQ in the pinctrl driver. Setting the 29th bit in the desired padconfig register, allows the pad to act as a wakeup source by triggering a wake IRQ in Deep Sleep states. -.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX') +.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX', 'AM62DX') The reference configuration for Main GPIO wakeup can be found under gpio_key node in @@ -796,7 +831,7 @@ in a generic way using the ti-sysc interconnect target module driver. The reference configuration can be found under target-module in `k3-am62-wakeup.dtsi `__ -.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX') +.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX', 'AM62DX') WKUP UART is generally available on the third serial port (/dev/ttyUSB2) and by default it only shows output from DM R5. @@ -925,7 +960,7 @@ MCU IPC based Wakeup MCU IPC wakeup is not supported on AM62LX. -.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX') +.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX', 'AM62DX') It's possible to use IPC based wakeup events from the MCU core. For details on how to implement this from the firmware side, please refer to the relevant documentation: @@ -934,7 +969,7 @@ MCU IPC based Wakeup `MCU+ SDK for AM62x `__ - .. ifconfig:: CONFIG_part_variant in ('AM62AX') + .. ifconfig:: CONFIG_part_variant in ('AM62AX', 'AM62DX') `MCU+ SDK for AM62Ax `__ @@ -971,7 +1006,7 @@ CAN I/O Daisy Chain CAN wakeup is not supported on AM62LX. -.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX') +.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX', 'AM62DX') CAN pins can be used to wake the system from any supported low power mode. To enable this, in the device tree configure a "wakeup" pinctrl state that sets @@ -1032,7 +1067,7 @@ CAN I/O Daisy Chain RTC Ext Pin *********** -.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX') +.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX', 'AM62DX') This is not applicable for |__PART_FAMILY_DEVICE_NAMES__|. @@ -1050,7 +1085,7 @@ Confirming the Wakeup event type This is not applicable for AM62LX. -.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX') +.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX', 'AM62DX') When the SoC wakes up from any Low Power Mode, the Device Manager logs the wake reason, the pin number that triggered the wakeup, and the last low power mode From a4f3ec72ce504766f56d1a793457803944155e29 Mon Sep 17 00:00:00 2001 From: Kendall Willis Date: Tue, 14 Apr 2026 10:32:29 -0500 Subject: [PATCH 7/7] feat(linux): AM62DX: update documentation for power management Update AM62D build sheet to include power management features that are enabled on AM62D. Signed-off-by: Kendall Willis --- .../linux/Release_Specific_Build_Sheet.rst | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst b/source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst index 9dc520758..a440aaf3b 100644 --- a/source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst +++ b/source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst @@ -43,23 +43,23 @@ The support status is indicated by the following codes: ,,PRG,No ,,PGD,No ,,VTM,Yes - Power Management,Deep Sleep Low Power Mode ,,No - ,Deep Sleep LPM Wakeup Events,RTC Timer,No + Power Management,Deep Sleep Low Power Mode ,,Yes + ,Deep Sleep LPM Wakeup Events,RTC Timer,Yes ,,GT Timers,No - ,,WKUP UART,No + ,,WKUP UART,Yes ,,I2C,No - ,,MCU GPIO,No - ,,I/O Daisy Chain,No - ,,USB Connect/Disconnect,No - ,,USB Remote Wakeup,No - ,MCU-Only Low Power Mode,,No - ,Standby Low Power Mode,,No - ,Partial I/O Low Power Mode,,No - ,IO + DDR low power mode,,No - ,Boot-time OPP configurations,,No - ,Runtime Power Management,,No + ,,MCU GPIO,Yes + ,,I/O Daisy Chain,Yes + ,,USB Connect/Disconnect,Yes + ,,USB Remote Wakeup,Yes + ,MCU-Only Low Power Mode,,Yes + ,Standby Low Power Mode,,Yes + ,Partial I/O Low Power Mode,,Yes + ,IO + DDR low power mode,,Yes + ,Boot-time OPP configurations,,Yes + ,Runtime Power Management,,Yes ,DFS/CPUFreq,,Yes - ,CPUIdle (A53 WFI),,No + ,CPUIdle (A53 WFI),,Yes ,CPUIdle (DDR in Self-Refresh),,No Interprocessor Communication,Mailbox,,Yes ,Spinlock,,Yes