博客
关于我
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卸载超详细步骤(附图文讲解)
查看>>
Node.js基于Express框架搭建一个简单的注册登录Web功能
查看>>
node.js学习之npm 入门 —8.《怎样创建,发布,升级你的npm,node模块》
查看>>
Node.js安装与配置指南:轻松启航您的JavaScript服务器之旅
查看>>
Node.js安装及环境配置之Windows篇
查看>>
Node.js安装和入门 - 2行代码让你能够启动一个Server
查看>>
node.js安装方法
查看>>
Node.js官网无法正常访问时安装NodeJS的方法
查看>>
node.js模块、包
查看>>
node.js模拟qq漂流瓶
查看>>
node.js的express框架用法(一)
查看>>
Node.js的交互式解释器(REPL)
查看>>
Node.js的循环与异步问题
查看>>
Node.js高级编程:用Javascript构建可伸缩应用(1)1.1 介绍和安装-安装Node
查看>>
nodejs + socket.io 同时使用http 和 https
查看>>
NodeJS @kubernetes/client-node连接到kubernetes集群的方法
查看>>
NodeJS API简介
查看>>
nodejs Error: request entity too large解决方案
查看>>
Nodejs express 获取url参数,post参数的三种方式
查看>>
nodejs http小爬虫
查看>>