博客
关于我
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()

参考学习:

你可能感兴趣的文章
Node.js 8 中的 util.promisify的详解
查看>>
node.js debug在webstrom工具
查看>>
Node.js Event emitter 详解( 示例代码 )
查看>>
Node.js GET、POST 请求是怎样的?
查看>>
Node.js HTTP模块详解:创建服务器、响应请求与客户端请求
查看>>
Node.js RESTful API如何使用?
查看>>
node.js url模块
查看>>
Node.js Web 模块的各种用法和常见场景
查看>>
Node.js 之 log4js 完全讲解
查看>>
Node.js 函数是什么样的?
查看>>
Node.js 函数计算如何突破启动瓶颈,优化启动速度
查看>>
Node.js 切近实战(七) 之Excel在线(文件&文件组)
查看>>
node.js 初体验
查看>>
Node.js 历史
查看>>
Node.js 回调函数的原理、使用方法
查看>>
Node.js 在个推的微服务实践:基于容器的一站式命令行工具链
查看>>
Node.js 实现类似于.php,.jsp的服务器页面技术,自动路由
查看>>
Node.js 异步模式浅析
查看>>
node.js 怎么新建一个站点端口
查看>>
Node.js 文件系统的各种用法和常见场景
查看>>