Idle - CPU switch to WFI ULP0 - clocks are switch to low frequencies and CPU wakes on any interrupt ULP1 - clocks are off and the number of CPU wake up sources is limited Backup and Self-refresh - CPU is shutdown and DDR memory is switch to self-refresh mode
backup and self-refresh
mode the AT91Bootstrap has to be compiled with the following compilation flag:
CONFIG_BACKUP_MODEThe other power management modes could be used without special support in AT91Bootstrap.
bootargs
U-Boot variable in the format:
atmel.pm_modes=<standby-mode>,<suspend-mode>The following table describes the value that could be provided in
atmel.pm_modes
variable and it's effect when executing Linux specific power management commands.
|
|||||||||||||||||||||||||
1. Compile AT91Bootstrap with CONFIG_BACKUP_MODE flag 2. U-Boot bootargs variable has to contain: atmel.pm_modes=ulp0,backupFor instance, on SAMA5D2 Xplained board which boots form SD card, U-Boot
bootargs
should look similar to this:
bootargs=console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait atmel.pm_modes=ulp0,backupTo switch to
ULP0
mode from Linux execute the following command:
echo standby > /sys/power/stateTo switch to
backup and self-refresh
mode from Linux execute the following command:
echo mem > /sys/power/state
1. U-Boot bootargs variable has to contain: atmel.pm_modes=ulp0,ulp1For instance, on SAMA5D2 Xplained board which boots form SD card, U-Boot
bootargs
should look similar to this:
bootargs=console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait atmel.pm_modes=ulp0,ulp1To switch to
ULP0
mode from Linux execute the following command:
echo standby > /sys/power/stateTo switch to
ULP1
mode from Linux execute the following command:
echo mem > /sys/power/stateIf, instead of using
echo standby > /sys/power/state
to switch to ULP0 you want to use echo mem > /sys/power/state
and vice versa, the atmel.pm_modes
variable has to be in the format:
atmel.pm_modes=ulp1,ulp0For instance, on SAMA5D2 Xplained board which boots form SD card, U-Boot
bootargs
should look similar to this:
bootargs=console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait atmel.pm_modes=ulp1,ulp0
atmel.pm_modes
as part of U-Boot bootargs
variable.
For instance, on SAMA5D2 Xplained board which boots form SD card, U-Boot bootargs
should look similar to this:
bootargs=console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait
enabled
or disabled
in power/wakup file specific to the device.
For instance, to configure PB1 button on SAMA5D2 Xplained board, to act as wake up source for ULP0 enter the following command on Linux:
echo enabled > /sys/devices/platform/gpio_keys/power/wakeupOr, to disable it:
echo disabled > /sys/devices/platform/gpio_keys/power/wakeup
gpio_keys { compatible = "gpio-keys"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_key_gpio_default>; bp1 { label = "PB_USER"; gpios = <&pioA PIN_PB9 GPIO_ACTIVE_LOW>; linux,code = <0x104>; wakeup-source; }; };
pmc: pmc@f0014000 { pmc_fast_restart { compatible = "atmel,sama5d2-pmc-fast-startup"; #address-cells = <1>; #size-cells = <0>; wkpin: input@0 { reg = <0>; }; gmac_wol: input@10 { reg = <10>; atmel,wakeup-active-high; }; }; };For more information check Fast startup for Ultra Low-Power (ULP) Mode 1
shdwc@f8048010 { atmel,shdwc-debouncer = <976>; input@0 { reg = <0>; atmel,wakeup-type = "low"; }; };
Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.
Microchip® and others, are registered trademarks or trademarks of Microchip Technology Inc. and its subsidiaries.
Arm® and others are registered trademarks or trademarks of Arm Limited (or its affiliates). Other terms and product names may be trademarks of others.
Ideas, requests, contributions ? Connect to LinksToCommunities page.