Suspend / Wake in Respeaker Core V2.0(RK3229)

Hi, all



I’m trying to make an AI speaker for business prototype using Respeaker Core V2.0.



Actually I need to add suspend / wakeup functionality on it, for less power consumption.



So, first I checked if it can go to suspend mode.

I followed the commands below.



respeaker@v2:~$ sudo chmod 666 /sys/power/state

respeaker@v2:~$ cat /sys/power/state

freeze mem

respeaker@v2:~$ sudo echo mem > /sys/power/state




After the last command, the console does not print or accept anymore, so I think it works.



But now when I’m trying to make the wakeup method, I got stucked :frowning:



First I added some codes to allocate the wake-up button in the dts file for Respeaker like this, but does not work.



wake_up: wakeup {

pinctrl-names = “default”;

pinctrl-0 = <&pwrbtn>;



label = “GPIO Key Power”;

gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;

linux,code = <143>;

linux,input-type = <1>;



debounce-interval = <100>;

wakeup-source;

};



pwrbtn: pwrbtn {

rockchip,pins = <0 17 RK_FUNC_GPIO &pcfg_pull_up>;

};




So I’m looked into the linux kernel source related to suspend / wake things.

By the way, I found some definitions about wakeup sources in the header files in [rk_kernel_src]/include/dt-bindings/suspend like this.



/* the wake up source */

#define RKPM_ARMINT_WKUP_EN (1 << 0)

#define RKPM_SDMMC_WKUP_EN (1 << 2)

#define RKPM_GPIO_WKUP_EN (1 << 3)




But unlike other files in the directory, rockchip-rk322x.h does not have those definitions.



Now I doubt rk3229 doesn’t support wakeup on the kernel or hardware level.



And unfortunately, I cannot even find the technical reference manual of RK3229 with Googling.

All I found was the datasheet but it only explains about hardware related things, something like pin ball map or electrical characteristics, not about registers.



So, is there case of implementation with Respeaker v2.0 or any way of help?



B.H.Ahn

Hi There

unfunately, Respeaker Core V2.0(RK3229) cannot support Suspend / Wake . :smiley: