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

参考学习:

你可能感兴趣的文章
NervanaGPU 项目使用教程
查看>>
Nerves 项目教程
查看>>
nessus快速安装使用指南(非常详细)零基础入门到精通,收藏这一篇就够了
查看>>
Nessus漏洞扫描教程之配置Nessus
查看>>
Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
查看>>
nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML.
查看>>
nestesd exception is java .lang.NoSuchMethodError:com.goolge.common.collect
查看>>
nestJS学习
查看>>
net core 环境部署的坑
查看>>
NET Framework安装失败的麻烦
查看>>
Net 应用程序如何在32位操作系统下申请超过2G的内存
查看>>
Net.Framework概述
查看>>
NET3.0+中使软件发出声音[整理篇]<转>
查看>>
net::err_aborted 错误码 404
查看>>
NetApp凭借领先的混合云数据与服务把握数字化转型机遇
查看>>
NetAssist网络调试工具使用指南 (附NetAssist工具包)
查看>>
Netbeans 8.1启动参数配置
查看>>