Skip to content

Commit 67f5e78

Browse files
kwillis01cshilwant
authored andcommitted
docs(linux): Power_Management: Cleanup documentation
Fixes whitespace and grammar errors found throughout the documentation in the Power_Management section to make it look more professional. Fixes code block to be seen correctly. Signed-off-by: Kendall Willis <[email protected]>
1 parent 2976c16 commit 67f5e78

File tree

4 files changed

+31
-30
lines changed

4 files changed

+31
-30
lines changed

source/linux/Foundational_Components/Power_Management/pm_dfs.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,9 +332,10 @@ table.
332332
};
333333
334334
To disable any of the above OPP's one can simply add
335+
335336
.. code-block:: dts
336337
337-
status = "disabled";
338+
status = "disabled";
338339
339340
to the corresponding DT Node.
340341

source/linux/Foundational_Components/Power_Management/pm_low_power_modes.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ The benefits of using deep sleep in embedded devices:
250250
reducing the amount of time that the processor is idle. This is because the processor can
251251
be kept in a low-power state when it is not needed.
252252

253-
In order to enter deep sleep, use the following command:
253+
In order to enter Deep Sleep, use the following command:
254254

255255
.. ifconfig:: CONFIG_part_variant in ('AM62X')
256256

@@ -298,7 +298,7 @@ In order to enter deep sleep, use the following command:
298298
[ 230.292413] psci: CPU2 killed (polled 4 ms)
299299
[ 230.295457] psci: CPU3 killed (polled 0 ms)
300300
301-
This partially indicates that linux has finished it's deep sleep sequence.
301+
This partially indicates that Linux has finished it's Deep Sleep suspend sequence.
302302
For further confirmation, one can take a look at the PMIC_LPM_EN pin on the EVM
303303
(after programming the PMCTRL_SYS register (0x43018080) to 0x15). Here, if the pin is 3.3V when active and
304304
0V when in deep sleep.
@@ -320,7 +320,7 @@ Similar to Deep Sleep, with the major distinction being that the MCU core is kep
320320
The benefits of using MCU Only mode:
321321

322322
#. Low power consumption: MCU Only mode can save a significant amount of power, especially in battery-powered
323-
devices. This is because The rest of the SoC status is the same as Deep Sleep and DDR is in self-refresh.
323+
devices. This is because the rest of the SoC status is the same as Deep Sleep and DDR is in self-refresh.
324324
#. Run background tasks: This mode can be used to run background tasks that do not require the full power of the system.
325325
For example, you could use the firmware on the MCU core to run a watchdog timer, a sensor polling loop,
326326
or a network communication task.

source/linux/Foundational_Components/Power_Management/pm_sw_arch.rst

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ Overview
1111
TI AM62 family of devices support multiple Suspend-to-RAM modes, including Deep Sleep
1212
and MCU Only as described in :ref:`Low Power Modes<lpm_modes>` section.
1313
The SoC consumes very low power overall yet it is not completely shut off in these modes.
14-
For example, During Deep Sleep, Certain IPs
14+
For example, during Deep Sleep, certain IPs
1515
(depending on the power domain to which then belong) will lose context on suspend.
1616
S/W should save and restore the context as required across state transitions. DDR is in self-
1717
refresh to allow context saving.
1818

19-
This section explains the high-level Software Flow of low power modes in AM62 family of devices.
19+
This section explains the high-level software flow of low power modes in AM62 family of devices.
2020
It also introduces the LPM constraints framework that enables seamless management of
2121
multiple Suspend-to-RAM modes.
2222

@@ -27,34 +27,34 @@ System diagram and components
2727
.. Image:: /images/AM62x_Deep_Sleep_Flow.png
2828

2929

30-
Above diagram has software sequence for how deep sleep (ie. Suspend to RAM) works on
30+
Above diagram has software sequence for how Deep Sleep (ie. Suspend to RAM) works on
3131
SK-AM62 ( Read more on the Starter Kit `here <https://www.ti.com/tool/SK-AM62>`__ ).
3232

3333
Deep Sleep Entry
3434
================
3535

36-
#. The user first instructs the System to Suspend. This triggers a suspend
37-
sequence from linux side (which runs on the A53 cluster of the SoC).
36+
#. The user first instructs the system to suspend. This triggers a suspend
37+
sequence from Linux side (which runs on the A53 cluster of the SoC).
3838

3939
#. As part of the TI_SCI driver's suspend hook, I/O isolation is invoked which
4040
isolates all the pads from their respective pinmuxed controllers. Refer to
4141
:ref:`Wakeup sources Documentation<pm_wakeup_sources>` to understand more on this.
4242

4343
#. Linux then suspends all the drivers in the order that they are probed.
44-
After ensuring that there were no faults in suspending the drivers, linux
44+
After ensuring that there were no faults in suspending the drivers, Linux
4545
then issues core system suspend which ultimately is a PSCI system
4646
suspend call. Read more about PSCI `here <https://developer.arm.com/Architectures/Power%20State%20Coordination%20Interface>`__
4747

4848
#. At this point only ATF is running on A53 cores and it does the job of
49-
sending a TISCI Message to the TIFS Core telling it to enter deep sleep
49+
sending a TISCI Message to the TIFS Core telling it to enter Deep Sleep
5050
and then it puts A53 into standby.
5151

5252
#. The TIFS Core then encrypts and writes the contents of it's own SRAM to DDR.
5353

5454
#. Further it stops tick timer, disables interrupts that are not needed, and suspends local drivers.
5555
After the above steps it sends TISCI To DM for Suspend Finish and enters WFI.
5656

57-
#. The DM (Device Manager) is the final entity in this entire deep sleep sequence. It does the following:
57+
#. The DM (Device Manager) is the final entity in this entire Deep Sleep sequence. It does the following:
5858

5959
a. Saves own context to DDR
6060
b. Disables Security IP LPSCs, such as LPSC_SAUL.
@@ -217,15 +217,15 @@ Otherwise, the mode selection is done as described below:
217217

218218
Above diagram shows the mode selection if constraints are set on MCU_WAKEUP devgroup devices.
219219
As shown, if the constraints are set on WAKEUP Domain devices or Always ON MCU domain devices,
220-
deep sleep mode will be selected. Otherwise, MCU Only mode will be selected.
220+
Deep Sleep mode will be selected. Otherwise, MCU Only mode will be selected.
221221

222222
If constraint is put on MAIN devgroup devices, then no low power mode is possible.
223223

224224
.. important::
225225

226226
USB devices are an exception in MAIN devgroup as there is extra hardware logic preventing
227227
reset of USB devices in Deep Sleep and MCU Only mode.
228-
If constraints are set on USB devices, deep sleep mode will be selected even though it's
228+
If constraints are set on USB devices, Deep Sleep mode will be selected even though it's
229229
technically part of MAIN devgroup.
230230

231231
.. ifconfig:: CONFIG_part_variant in ('AM62X')

source/linux/Foundational_Components/Power_Management/pm_wakeup_sources.rst

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -274,9 +274,9 @@ MCU GPIO
274274

275275
One of the most common ways to wakeup a system is by using some I/O activity. MCU GPIOs allow us to do this
276276
by configuring the MCU GPIO controller as a wakeup source.
277-
In ideal scenarios, The firmware running on MCU core is responsible for configuring MCU GPIO's as a wakeup source.
277+
In ideal scenarios, the firmware running on MCU core is responsible for configuring MCU GPIO's as a wakeup source.
278278
However, if the application design doesn't rely too much on the MCU firmware then
279-
linux can be used to configure the MCU GPIOs as a wakeup source. You can refer to the mcu_gpio_key node in
279+
Linux can be used to configure the MCU GPIOs as a wakeup source. You can refer to the mcu_gpio_key node in
280280
`k3-am62x-sk-lpm-wkup-sources.dtso <https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62x-sk-lpm-wkup-sources.dtso?h=10.00.07>`__
281281
and use it as a template to configure the MCU GPIO of your choice as a wakeup capable GPIO.
282282

@@ -352,16 +352,16 @@ Main UART, GPIO, I2C, etc. The question then arises how to wakeup the SoC from p
352352
to these controllers (for example main UART)? Here's where the role of I/O Daisy Chaining comes in.
353353
At the hardware level, all the pads in an SoC have to be pinmuxed to dedicated controllers like UART or GPIO.
354354

355-
For example, If a key press on Main UART (which is used for linux console logs)
356-
were to wakeup the system from deep sleep then simply configuring the Main UART controller as a
355+
For example, If a key press on Main UART (which is used for Linux console logs)
356+
were to wakeup the system from Deep Sleep then simply configuring the Main UART controller as a
357357
wakeup source wouldn't suffice. This is because the UART controller is powered off and wouldn't be able to
358358
register any key press as such. However, at the "pad" level we are still connected, and the pads have
359359
a specific way to be configured as wakeup sources.
360360

361361
For detailed information and sequence please refer to
362362
I/O Power Management and Daisy Chaining section in the TRM. To briefly explain,
363-
Setting the 29th Bit in the desired padconfig register, allows the pad to act as a wakeup source by
364-
triggering a wake irq to the DM R5 in deep sleep states.
363+
setting the 29th bit in the desired padconfig register, allows the pad to act as a wakeup source by
364+
triggering a wake irq to the DM R5 in Deep Sleep states.
365365

366366
.. note::
367367
|__PART_FAMILY_DEVICE_NAMES__| supports the ability to wakeup using pad based wake event ONLY in Deep Sleep or MCU Only Mode.
@@ -371,7 +371,7 @@ triggering a wake irq to the DM R5 in deep sleep states.
371371

372372
To demonstrate I/O daisy chain wakeup as part of |__PART_FAMILY_DEVICE_NAMES__| offering, two reference examples are provided:
373373

374-
#. main_uart0 is used where a key press on the linux console can wakeup the system.
374+
#. main_uart0 is used where a key press on the Linux console can wakeup the system.
375375
#. main_gpio is used where activity on configured GPIO pin can wakeup the system.
376376

377377

@@ -388,7 +388,7 @@ main_uart0 node in `k3-am62x-sk-common.dtsi <https://git.ti.com/cgit/ti-linux-ke
388388
interrupt-names = "irq", "wakeup";
389389
390390
Here, we chain the IRQ to the pinctrl driver using the second interrupts-extended entry.
391-
The wake IRQ framework in linux works in such a way that the second entry gets marked as a
391+
The wake IRQ framework in Linux works in such a way that the second entry gets marked as a
392392
wakeup source, and then the pinctrl driver is informed that the pad 0x1c8 in this case is to
393393
be configured as a wakeup pad when system enters deep sleep.
394394

@@ -427,7 +427,7 @@ Then, run this script:
427427
428428
429429
This will configure UART to act as deep sleep wakeup source, and
430-
then a *key press* on same terminal should trigger a wakeup from deep sleep.
430+
then a *key press* on same terminal should trigger a wakeup from Deep Sleep.
431431

432432
Any other pad can be chosen as per application requirements depending on which pad is required
433433
to wakeup the system.
@@ -516,7 +516,7 @@ Plug in a USB device to one of the port on the board and check that the device i
516516
Follow the steps described in :ref:`LPM section<lpm_modes>` to put the system in Low Power Mode via Deep Sleep or MCU only method.
517517

518518
Once the system is suspended, disconnect the USB device from the board and this should wakeup the system.
519-
And device would not show up in list of USB enumerated devices. This can be verified by executing
519+
The device will not show up in list of USB enumerated devices. This can be verified by executing
520520

521521
.. code-block:: console
522522
@@ -541,13 +541,13 @@ It should show "suspended", indicating that the keyboard has entered into suspen
541541

542542
.. code-block:: console
543543
544-
# cat /sys/bus/usb/devices/1-1/power/runtime_status
544+
# cat /sys/bus/usb/devices/1-1/power/runtime_status
545545
546546
Now press a key on the keyboard and check the runtime power status and it would come back to "active".
547547

548548
.. code-block:: console
549549
550-
# cat /sys/bus/usb/devices/1-1/power/runtime_status
550+
# cat /sys/bus/usb/devices/1-1/power/runtime_status
551551
552552
Follow the steps described in :ref:`LPM section<lpm_modes>` to put the system in Low Power Mode via Deep Sleep or MCU only method.
553553

@@ -556,7 +556,7 @@ And USB keyboard would still be present in the system's list of USB enumerated d
556556

557557
.. code-block:: console
558558
559-
# lsusb -t
559+
# lsusb -t
560560
561561
Device Mode Wakeup Events
562562
=========================
@@ -568,17 +568,17 @@ Load a USB gadget driver such as g_zero
568568

569569
.. code-block:: console
570570
571-
# modprobe g_zero
571+
# modprobe g_zero
572572
573573
Follow the steps described in :ref:`LPM section<lpm_modes>` to put the system in Low Power Mode via Deep Sleep or MCU only method.
574574

575575
Once the system has entered the suspend state, plug a cable from a different Host system to the board's USB DRP port.
576-
This should wakeup the system and gadget would be enumerated on the Host. Enumeration of the gadget on the Host system can be verified by executing the
576+
This should wakeup the system and gadget will be enumerated on the Host. Enumeration of the gadget on the Host system can be verified by executing the
577577
below command on the Host system
578578

579579
.. code-block:: console
580580
581-
HOST:~$ > lsusb -t
581+
HOST:~$ lsusb -t
582582
583583
584584
********************

0 commit comments

Comments
 (0)