博客
关于我
MSM8916 海信M9模块学习记录三:开机按键、音量上下按键
阅读量:675 次
发布时间:2019-03-15

本文共 1880 字,大约阅读时间需要 6 分钟。

设计原理图:

这里写图片描述这里写图片描述

引脚说明:

PIN No. Pin Value IO Votage MSM’s Tye Functional description
PIN030 PIN (KEY_PWR_ON) 开机键 - DI Keypad poweron detect input
PIN031 PIN (KEY_PM_RESIN) 下键 - “DO-ZDO” PMU_KEY
PIN032 PIN (KEY_VOL_UP) 上键 GPIO107 B-PD:nppukp Configurable I/O

1、主要初始化函数位置:

/ptboce/bootable/bootloader/lk/target/M9PLUS_10/init.c

这里写图片描述

主要代码:

#include 
#define TLMM_VOL_UP_BTN_GPIO 107/* Return 1 if vol_up pressed */int target_volume_up() //按键上初始化代码{ uint8_t status = 0; gpio_tlmm_config(TLMM_VOL_UP_BTN_GPIO, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA, GPIO_ENABLE); /* Wait for the gpio config to take effect - debounce time */ thread_sleep(10); /* Get status of GPIO */ status = gpio_status(TLMM_VOL_UP_BTN_GPIO); /* Active low signal. */ return !status;}/* Return 1 if vol_down pressed */uint32_t target_volume_down() //按键下初始化代码{ /* Volume down button tied in with PMIC RESIN. */ return pm8x41_resin_status();}#if FEATURE_HS_BOOT_SYSTEM_HS/* Return 1 if pwr pressed */uint32_t target_pwr_key() //开关按键初始化代码{ /* Volume down button tied in with PMIC RESIN. */ return pm8x41_get_pwrkey_is_pressed();}#endifstatic void target_keystatus() //按键总初始化代码{ keys_init(); if(target_volume_down()) keys_post_event(KEY_VOLUMEDOWN, 1); if(target_volume_up()) keys_post_event(KEY_VOLUMEUP, 1);#if FEATURE_HS_BOOT_SYSTEM_HS if(target_pwr_key()) keys_post_event(KEY_PWR, 1);#endif}

次要代码:

/ptboce/bootable/bootloader/lk/dev/keys/keys.c

这里写图片描述

static unsigned long key_bitmap[BITMAP_NUM_WORDS(MAX_KEYS)];void keys_init(void){    memset(key_bitmap, 0, sizeof(key_bitmap));}

从初始化代码上看,开关按键和音量下键是M9源码中默认的,不需要去重新定义和配置,直接调用封装好的函数初始化就好了。二音量上键,需要定义一下(GPIO107),并初始化。

2、主要外部调用函数

/bootable/bootloader/lk/dev/pmic/pm8916/pm8916.c

/bootable/bootloader/lk/dev/pmic/pm8916/include/pm8916.h

这里写图片描述

uint8_t pm_get_power_on_status(void)uint32_t pm_get_chg_voltage()

参考学习:

你可能感兴趣的文章
Nodejs express 获取url参数,post参数的三种方式
查看>>
nodejs http小爬虫
查看>>
nodejs libararies
查看>>
vue3+element-plus 项目中 el-switch 刷新后自动触发change?坑就藏在这里!
查看>>
nodejs npm常用命令
查看>>
nodejs npm常用命令
查看>>
Nodejs process.nextTick() 使用详解
查看>>
NodeJS yarn 或 npm如何切换淘宝或国外镜像源
查看>>
nodejs 中间件理解
查看>>
nodejs 创建HTTP服务器详解
查看>>
nodejs 发起 GET 请求示例和 POST 请求示例
查看>>
NodeJS 导入导出模块的方法( 代码演示 )
查看>>
nodejs 开发websocket 笔记
查看>>
nodejs 的 Buffer 详解
查看>>
nodejs 的 path 模块详解
查看>>
NodeJS 的环境变量: 开发环境vs生产环境
查看>>
nodejs 读取xlsx文件内容
查看>>
nodejs 运行CMD命令
查看>>
Nodejs+Express+Mysql实现简单用户管理增删改查
查看>>
nodejs+nginx获取真实ip
查看>>