一、前言
安卓产品的关机方式有多种,长按关机键直接关机是一种,按出选择框进行关机也是一种。可以在power键值上报时进行操作功放脚,但是长按power键和短按power键是不同的效果,需要具体处理,在操作时发现耳机插入后功放脚的处理有偏差,所以需要把耳机插入这个问题考虑进去
二、代码路径
Android\longan\kernel\linux-5.4\drivers\input\keyboard\sunxi-keyboard.c
Android\longan\kernel\linux-5.4\sound\soc\sunxi\sun50iw12-codec.c
Android\longan\kernel\linux-5.4\sound\soc\sunxi\sun50iw12-sndcodec.c
三、代码操作
1.sun50iw12-codec.c
void hotack_codec_spk_ctr(int spkon)
{
if(sunxi_codec_tmp != NULL)
{
struct codec_spk_config *spk_cfg = &(sunxi_codec_tmp->spk_cfg);
if(spkon == 0) {
/* Disable the PA Here */
if (spk_cfg->spk_used) {
gpio_set_value(spk_cfg->spk_gpio, !(spk_cfg->pa_level));
// if (spk_cfg->pa_msleep > 0) {
// msleep(spk_cfg->pa_msleep);
// }
}
} else {
/* Enable the PA Here */