Texas Instruments AM335 Series Design Manual page 16

Hide thumbs Also See for AM335 Series:
Table of Contents

Advertisement

Linux Power Optimization Features
Depending on the driver, it may be necessary to tell the driver which pin state to select on suspend and
resume from suspend. This is accomplished by putting a call to
end of the system suspend handler routine. In addition, it may be necessary during the beginning of the
resume from suspend handler to call
pin configuration for runtime. Undefined sleep pin states will not cause the driver to crash on suspend or
resume; however, if a sleep state is defined there MUST be a default pin configuration, or else the pm
driver will select the only valid configuration which is the sleep state.
The required pinctrl states differ from board to board; configuration of each pin is dependent on the
specific use of the pin and what it is connected to. Generally, the most desirable configuration is to have
an internal pull-down and GPIO mode set that gives minimal leakage. However, in a case where there are
external pull-ups connected to the line (like for I2C lines) it makes more sense to disable the pull on the
pin. The pins are supplied by several different rails, which are described in the device-specific data
manual. By measuring current draw on each of these rails during suspend it may be possible to fine tune
the pin configuration for maximum power savings. The AM335x EVM has pinctrl sleep states defined for
its peripherals and serves as a good example. In addition, there is the
power workbook
that can help identify power consumers during suspend and standby.
Even pins that are not in use and not connected to anything can still leak some power so it is important to
consider these pins as well when implementing the pad configuration. This can be accomplished by
defining a pinctrl state for unused pins and then assigning it directly to the pinctrl node itself in the board
device tree. This allows the state to be configured during boot even though there is no specific driver for
these pins:
Device Tree Unused Pins Fragment
&am33xx_pinmux {
pinctrl-names = "default";
pinctrl-0 = <&unused_wireless>;
...
unused_pins: unused_pins {
3.1.4.3
Controlling VTT
On the AM335x, GPIO bank GPIO0 remains on even during system suspend. This can be used to control
power to the VTT regulator if it is used on the system. To do so, the M3 coprocessor needs to be
configured as follows:
CM3 VTT Toggle Device Tree Fragment
&wkup_m3 {
ti,needs-vtt-toggle;
ti,vtt-gpio-pin = <7>;
};
3.1.4.4
Deep Sleep Voltage Scaling
In order to enable deep sleep voltage scaling, the CM3 module needs to be told which binary blob to
execute during a suspend/ resume cycle. This is defined in the wkup_m3_ipc node.
/* From arch/arm/boot/dts/am335x-evm.dts */
&wkup_m3_ipc {
ti,scale-data-fw = "am335x-evm-scale-data.bin";
};
16
AM335x Low Power Design Guide
pinctrl_pm_select_default_state
pinctrl-single,pins = <
0x80
(PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn1.mmc1_clk */
...
Copyright © 2017, Texas Instruments Incorporated
pinctrl_pm_select_sleep_state
in order to restore the proper
optimizing deep sleep and suspend
SPRAC74A – February 2017 – Revised March 2017
Submit Documentation Feedback
www.ti.com
at the

Advertisement

Table of Contents
loading

Table of Contents