休眠唤醒
休眠与唤醒
默认使用PMIC RK809 PWRON引脚实现休眠与唤醒
3568核心板目前支持mem低功耗模式
GPIO按键唤醒
假设硬件按键使用 GPIO0_B3。
可以看到支持的休眠方式
cat /sys/power/state
修改设备树,添加如下节点信息 其中 linux,code 为上报的键值信息,GPIO_ACTIVE_HIGH 为键值触发高电平有效。
gpio_keys: gpio_keys {
compatible = "gpio-keys";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio_keys>;
key1 {
label = "Wake";
linux,code = <1>;
gpios = <gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
gpio-key,wakeup;
};
&pinctrl {
pinctrl_gpio_keys {
key: key {
rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO & pcfg_pull_down>;
};
};
};
进入freeze模式
echo freeze > /sys/power/stat
此时按下按键后会唤醒系统。
PWRON引脚切换
正常工作状态时, 使用指令“echo mem > /sys/power/state”,会进入低功耗模式,输出信息如下:
key_event:
code : POWER
source : /dev/input/event1
exec : "/etc/power-key.sh press"
key_event:
code : POWER
source : /dev/input/event1
exec : "/etc/power-key.sh release"
[ 271.084769] PM: suspend entry (deep)
[ 271.084823] PM: Syncing filesystems ... done.
[ 271.087921] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 271.089690] OOM killer disabled.
[ 271.089706] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[ 271.091312] Suspending console(s) (use no_console_suspend to debug)
abcdefghINFO: sleep mode config[0x5ec]:
INFO: mode: RKPM_SLP_CENTER_PD
INFO: mode: RKPM_SLP_ARMOFF_LOGOFF
INFO: mode: RKPM_SLP_PMIC_LP
INFO: mode: RKPM_SLP_HW_PLLS_PD
INFO: mode: RKPM_SLP_PMUALIVE_32K
INFO: mode: RKPM_SLP_OSC_DIS
INFO: mode: RKPM_SLP_32K_PVTM
INFO: wakeup source config[0x10]:
INFO: Enable GPIO0 interrupt as wakeup source
在低功耗状态时,底板背面有PWRON触点,如果短接到GND,将会唤醒,输出信息如下:
[ 271.132994] [WLAN_RFKILL]: Enter rfkill_wlan_suspend
[ 271.547693] Disabling non-boot CPUs ...
[ 271.555283] CPU1: shutdown
[ 271.555296] psci: CPU1 killed (polled 0 ms)
[ 271.562976] IRQ 6: no longer affine to CPU2
[ 271.563142] CPU2: shutdown
[ 271.563157] psci: CPU2 killed (polled 0 ms)
[ 271.569030] CPU3: shutdown
[ 271.569044] psci: CPU3 killed (polled 0 ms)
[ 271.570365] pm_system_irq_wakeup: 93 triggered rk817
[ 271.570621] Enabling non-boot CPUs ...
[ 271.570963] Dete
key_event:
c code : tPOWER
source : /dev/input/event1
exec : "/etc/power-key.sh press"
d VIPT I-cache on CPU1
[ 271.571012] GICv3: CPU1: found redistributor 100 region 0:0x00000000fd480000
[ 271.571120] CPU1: Booted secondary processor 0x0000000100 [0x412fd050]
[ 271.572010] CPU1 is up
[ 271.572346] Detected VIPT I-cache on CPU2
start-stop-d[aemon: warning: killin g process 700: No such process
271.572385] GICv3: CPU2: found redistributor 200 region 0:0x00000000fd4a0000
[ 271.57
key_event:
code : POWER
source : /dev/input/event12
exec : "/etc/power-4key.sh release"
57] CPU2: Booted secondary processor 0x0000000200 [0x412fd050]
[ 271.573180] CPU2 is up
[ 271.573485] Detected VIPT I-cache on CPU3
[ 271.573523] GICv3: CPU3: found redistributor 300 region 0:0x00000000fd4c0000
[ 271.573588] CPU3: Booted secondary processor 0x0000000300 [0x412fd050]
[ 271.574387] CPU3 is up
[ 271.579759] rockchip-dmc dmc: failed to get dfi event
[ 271.582313] usb usb1: root hub lost power or was reset
[ 271.582337] usb usb2: root hub lost power or was reset
[ 271.638402] usb usb3: root hub lost power or was reset
[ 271.653377] rockchip-dmc dmc: failed to get dfi event
[ 271.694394] usb usb4: root hub lost power or was reset
[ 271.699755] rk_gmac-dwmac fe2a0000.ethernet: init for RGMII
[ 271.833416] dwmac4: Master AXI performs any burst length
[ 271.833440] rk_gmac-dwmac fe2a0000.ethernet eth0: No Safety Features support found
[ 271.838925] rk_gmac-dwmac fe010000.ethernet: init for RGMII
[ 271.894178] ata1: SATA link down (SStatus 0 SControl 300)
[ 271.977412] dwmac4: Master AXI performs any burst length
[ 271.977432] rk_gmac-dwmac fe010000.ethernet eth1: No Safety Features support found
[ 271.978958] [WLAN_RFKILL]: Enter rfkill_wlan_resume
[ 271.986244] usb usb5: root hub lost power or was reset
[ 271.986254] usb usb6: root hub lost power or was reset
[ 272.137565] OOM killer enabled.
[ 272.137577] Restarting tasks ... done.
[ 272.139318] usb 6-1: USB disconnect, device number 2
[ 272.140469] option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
[ 272.140577] option 6-1:1.0: device disconnected
[ 272.141233] option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1
[ 272.141375] option 6-1:1.1: device disconnected
[ 272.141968] option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2
[ 272.142065] option 6-1:1.2: device disconnected
[ 272.142767] option1 ttyUSB3: GSM modem (1-port) converter now disconnected from ttyUSB3
[ 272.142860] option 6-1:1.3: device disconnected
[ 272.143154] GobiNet 6-1:1.4 usb0: unregister 'GobiNet' usb-xhci-hcd.5.auto-1, GobiNet Ethernet Device
[ 272.147255] Resume caused by IRQ 93, rk817
[ 272.147640] PM: suspend exit
[ 281.086793] usb 6-1: new SuperSpeed Gen 1 USB device number 3 using xhci-hcd
[ 281.102725] usb 6-1: New USB device found, idVendor=2c7c, idProduct=0800, bcdDevice= 4.14
[ 281.102814] usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 281.102847] usb 6-1: Product: RM500Q-GL
[ 281.102874] usb 6-1: Manufacturer: Quectel
[ 281.102900] usb 6-1: SerialNumber: 31e54ed
[ 281.265557] option 6-1:1.0: GSM modem (1-port) converter detected
[ 281.266955] usb 6-1: GSM modem (1-port) converter now attached to ttyUSB0
[ 281.269086] option 6-1:1.1: GSM modem (1-port) converter detected
[ 281.271235] usb 6-1: GSM modem (1-port) converter now attached to ttyUSB1
[ 281.273506] option 6-1:1.2: GSM modem (1-port) converter detected
[ 281.275541] usb 6-1: GSM modem (1-port) converter now attached to ttyUSB2
[ 281.277693] option 6-1:1.3: GSM modem (1-port) converter detected
[ 281.279765] usb 6-1: GSM modem (1-port) converter now attached to ttyUSB3
[ 281.325502] GobiNet 6-1:1.4 usb0: register 'GobiNet' at usb-xhci-hcd.5.auto-1, GobiNet Ethernet Device, 0a:98:18:e2:de:d0
[ 281.327082] creating qcqmi0
[ 297.162879] GobiNet::QMIWDASetDataFormat qmap settings qmap_enabled=5, rx_size=16384, tx_size=4096
作者:SteveChen 创建时间:2025-04-11 15:23
最后编辑:SteveChen 更新时间:2025-04-15 09:15
最后编辑:SteveChen 更新时间:2025-04-15 09:15