休眠与唤醒

默认使用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
上一篇:
下一篇: