全志a10 Android,全志A10 Android4.0 电话系统 使用说明文档 (MU509篇)
全志A10 Android4.0 电话系统 使用说明文档 (MU509篇)
[复制链接]
1.1 目的
本文档只要是针对华为 MU509通信模块在全志A10 android系统上开发的指导说明。
1.2 使用范围
硬件平台: 全志A10 平台 软件平台: Android4.0.x 1.4 版及以上版本
2 Linux内核
2.1 相关代码说明
2.1.1 MU509控制
2.1.1.1 上电和关电
MU509的上电和关电操作在“linux-3.0\drivers\usb\host\ sw_usb_mu509.c ”有定义,其中:
z mu509_vbat(): MU509电池开关
z mu509_power (): MU509 3G 模块的上电和关电。上电后射频模块开始工作,并且
USB 开始连接;关电后设备模块停止工作,USB 断开连接。
z mu509_reset(): 复位MU509
MU509的上电在OHCI 控制器初始化时完成,关电在OHCI 控制器移除或是关机时完
成。
2.1.1.2 休眠和唤醒
MU509的休眠和唤醒操作在“linux-3.0\drivers\usb\host\ sw_usb_mu509.c ”有定义,其中:
z mu509_wakeup_sleep ():控制MU509的休眠和唤醒。
在OHCI控制器suspend 阶段完成MU509的休眠,在 resume 阶段完成MU509的唤醒。
注:休眠期间 MU509进入低功耗模式,此时还与基站保持连接。电话、短信、彩信等特殊
事件可以唤醒A10 。
2.1.1.3 来电唤醒
MU509的唤醒方式和 PA D 传统的唤醒方式有区别,为了不影响 PA D 功能,暂未发布,
只作为额外的补丁形式发布。
1 、standby 是加入MU509唤醒源
(1 )、加入唤醒源
在“lichee\linux-3.0\arch\arm\mach-sun4i\pm\pm.c ”的aw_pm_enter()函数里加入唤醒源。
standby_info.standby_para.even t = SUSPEND_WAKEUP_SRC_EXINT
| SUSPEND_WAKEUP_SRC_ALARM;
修改为:
standby_info.standby_para.event = SUSPEND_WAKEUP_SRC_EXINT
| SUSPEND_WAKEUP_SRC_ALARM
| SUSPEND_WAKEUP_SRC_PIO;
“SUSPEND_WAKEUP_SRC_PIO ”在“linux-3.0\include\linux\power\ aw_pm.h”中有定义
#define SUSPEND_WAKEUP_SRC_PIO (1<<6) /* gpio event */
(2 )、修改 standby.c ,填加红色标记部分
if(pm_info.standby_para.event & SUSPEND_WAKEUP_SRC_TIMEOFF){
/* set timer for power off */
if(pm_info.standby_para.time_off) {
standby_tmr_set(pm_info.standb y_para.time_off);
standby_enable_int(INT_SOURCE_TIMER0);
}
}
if(pm_info.standby_para.event & SUSPEND_WAKEUP_SRC_PIO){
standby_3g_wakeup_init();
standby_enable_int(INT_SOURCE_PIO);
}
/* save stack pointer registger, switch stack to sram */
sp_backup = save_sp();
if(pm_info.standby_para.event & SUSPEND_WAKEUP_SRC_KEY){
standby_key_exit();
}
if(pm_info.standby_para.event & SUSPEND_WAKEUP_SRC_PIO){
standby_3g_wakeup_exit();
}
standby_power_exit();
pm_info.standby_para.event |= standby_query_int(INT_SOURCE_TIMER0)?
0:SUSPEND_WAKEUP_SRC_TIMEOFF;
pm_info.standby_para.event |= standby_query_int(INT_SOURCE_PIO)?
0:SUSPEND_WAKEUP_SRC_PIO;
/* restore voltage for exit standby */
standby_set_voltage(POWER_VOL_DCDC2, dcdc2);
(3 )、修改 standby_usb.c ,填加红色标记部分
__s32 standby_3g_wakeup_init(void)
{
__u32 gpio_base = SW_VA_PORTC_IO_BASE;
__u32 int_base = SW_VA_INT_IO_BASE;
__u32 reg_val = 0;
/* set port configure register, PH2 */
reg_val = USBC_Readl(gpio_base + 0xFC);
reg_val &= ~(0x07 << 8);
reg_val |= (0x6 << 8); //EINT2
USBC_Writel(reg_val, (gpio_base + 0xFC));
/* PIO interrupt configure register */
reg_val = USBC_Readl(gpio_base + 0x200);
reg_val &= ~(0x07 << 8);
reg_val |= (0x1 << 8);
USBC_Writel(reg_val, (gpio_base + 0x200));
/* interrupt enable */
reg_val = USBC_Readl(gpio_base + 0x210);
reg_val |= (1 << 2);
USBC_Writel(reg_val, (gpio_base + 0x210));
return 0;
}
__s32 standby_3g_wakeup_exit(void)
{
#if 0
__u32 gpio_base = SW_VA_PORTC_IO_BASE;
__u32 reg_val = 0;
/* clear interrupt pending */
reg_val = USBC_Readl(gpio_base + 0x214);
reg_val &= (1 << 2);
USBC_Writel(reg_val, (gpio_base + 0x214));
/* interrupt disable */
reg_val = USBC_Readl(gpio_base + 0x210);
reg_val &= ~(1 << 2);
USBC_Writel(reg_val, (gpio_base + 0x210));
#endif
return 0;
}
__s32 standby_query_3g_event(void)
{
__u32 gpio_base = SW_VA_PORTC_IO_BASE;
__u32 reg_val = 0;
__u32 result = 0;
/* interrupt pending */
reg_val = USBC_Readl(gpio_base + 0x214);
result = (reg_val & (1 << 2)) ? 0 : -1;
reg_val &= (1 << 2);
USBC_Writel(reg_val, (gpio_base + 0x214));
return result;
}
(4 )、修改 standby_usb.h ,填加红色标记部分
extern __s32 standby_3g_wakeup_init(void);
extern __s32 standby_3g_wakeup_exit(void);
extern __s32 standby_query_3g_event(void);
2 、唤醒A10 后,响应唤醒中断源
MU509中断响应在“linux-3.0\drivers\usb\host\ sw_usb_mu509.c ”有实现,其中:
z mu509_wakeup_irq_interrupt ():为中断处理函数。
z mu509_wakeup_irq_work():工作队列,负责唤醒android和点亮屏。
3 、唤醒android 系统,点亮屏
MU509唤醒中断产生以后,MU509中断处理函数会模拟一个 power 按键,唤醒 android
和点亮屏。
在“linux-3.0\drivers\power\axp_power\ axp20-sply.c ”和
“linux-3.0\drivers\power\axp_power\ axp20-sply-cou.c ”文件里增加如下函数:
#ifdef CONFIG_USB_SW_MU509
void axp_pressshort_ex(void)
{
axp_pressshort(NULL);
return;
}
#else
void axp_pressshort_ex(void)
{
return;
}
#endif
EXPORT_SYMBOL_GPL(axp_pressshort_ex);
2.1.2 音频操作
请参考《audio codec designed_v0.3.doc 》。
2.2 脚本配置
在sys_config1.fex 中添加3G相关的引脚。
;--------------------------------------------------------------------------------
;3G configuration
;--------------------------------------------------------------------------------
[3g_para]
3g_used = 1
3g_usbc_num = 1
3g_usbc_type = 2
3g_uart_num = 0
3g_vbat_gpio = port
A0<1><0><0>
3g_power_on_off_gpio = port
A1<1><0><1>
3g_reset_gpio = port
A2<1><0><0>
3g_wakeup_in_gpio = port
A3<1><0><0>
3g_wakeup_out_gpio = port
H2<1><0><0>
2.3 编译
(1 )、添加 MU509到内核,并且把 MU509所挂载的 EHCI从内核移除
[size=0.83em]e3.png (80.9 KB, 下载次数: 0)
下载附件
[color=rgb(153, 153, 153) !important]2013-11-12 13:39 上传
...
更多分享资料 详细的文档请下载PDF版本<>
全志a10 Android,全志A10 Android4.0 电话系统 使用说明文档 (MU509篇)相关推荐
- 如何使用融云地图,文件等插件--融云 Android SDK 2.8.0+ Extension 开发文档
转载自融云 Android SDK 2.8.0+ Extension 开发文档 融云 SDK 2.8.0 后对 会话界面输入区域.+号扩展区域.语音消息.Emoji 等进行了优化和重构,重构后上列区域 ...
- android触摸屏idc,android4.0 触摸屏配置
http://source.android.com/tech/input/input-device-configuration-files.html这篇文档,会按下面的顺序识别配置文件: /syste ...
- 联想+android电视,联想Android4.0智能电视亮相:4月底国内上市
3月23日消息,"联想2012 CES明星产品品鉴会"在深圳正式召开.会上,联想首次面向国内媒体展示了其今年在CES上发布新产品,包括首款联想智能电视K91,一体台式机ideace ...
- 京东广告联盟android,京东APP联盟SDKAndroid版接口说明文档1.0.PDF
京东APP联盟SDKAndroid版接口说明文档1.0 京东APP 联盟SDK Android 版接口说明文档1.0 1. 嵌入SDK 1.1 添加SDK Android Studio 环境:菜单Ne ...
- 全志a10 Android,全志A10 android平台CVBS效果调试
全志平台CVBS效果调试 最近在调试一款面向中低端市场车载后座娱乐产品,在输出方面只有CVBS输出.在车载方面,CVBS输入输出使用得还是非常频繁的,目前还是用得比较多的,特别是在中低端市场. 笔者使 ...
- 全志A10 android4.0 windows+linux版固件生成器
Android4.0固件生产工具说明 by:xian 一.准备阶段 1.1 工具简介 该工具为全志A10方案中附带程序,默认只支持ubuntu10.0 ...
- android 全志a10(2.3.4)开发二(linux内核编译及源码编译)
<android 全志a10(2.3.4)开发二>文档详细可下载地址:http://www.a10bbs.com/forum.php?mod=viewthread&tid=504& ...
- A10+Android4.0 音频驱动
A10+Android4.0 音频驱动 linux-3.0目录 make ARCH=arm menuconfig 进到内核配置界面,可以看到 知道我们的配置项名字,然后进 目录 :\lichee\ ...
- 全志H6 Android 7.0 平台 修改横竖屏显示
**问题描述:**全志H6 Android 7.0 并没有给出横竖屏显示属性的设置,可以自己设置一个persist.sys.rotation属性来控制横竖屏的显示 解决方案: diff --git a ...
最新文章
- office默认设置
- const那些事-初始化
- python成员方法共享吗_python 入坑路 类的特殊成员方法
- Android NDK调试定位错误
- 微软确定 Win10 付费才能玩 还能不能愉快玩耍?
- element-ui滚动条组件el-scrollbar
- pycharm忽略whitespace警告
- 关系网络理论︱细讲中介中心性(Betweeness Centrality)
- dell安装linux系统网卡,DELL 2850服务器Redhat Linux 9系统安装网卡驱动记
- HTML兼容IE版本问题
- 收费最低的云存储_柠檬云财税|柠檬云财务软件 V4.2.1电脑版下载
- 【结合文献】——Affymatrix芯片数据预处理
- amd cpu排行_amd cpu性能排行图_笔记本CPU性能排行天梯图-2012最新笔记本CPU天梯图...
- EverEdit使用正则替换
- 闽江师范高等专科学校计算机系成立时间,闽江师范高等专科学校2018届毕业典礼...
- BeanPostProcessor由浅入深
- 不用Maven打jar包
- IFS Applications架构
- 巨人10Q4财报:营收3.6亿元环比增8.7%
- AutoRec模型结构详解
热门文章
- 美通企业日报 | 纬创、鸿海、索尼、尼康组建智能摄像系统联盟;贝塔斯曼实现六年来最强劲增长...
- 舆情监测系统功能简介,网络舆情监测系统平台有哪些?
- 俄语计算机考研,研友分享:俄语考研91分的经验体会
- 云业务贡献40.5%增长:亚马逊2022年财报亮点解读
- 南方周末:“逃离北上广”续篇:做沙丁鱼,还是做咸鱼
- 简单玩转ViewPager+Fragment动画效果,实现京东淘宝物流卡片效果 (附源码)
- linux模拟手机号码,虚拟手机号码接收短信
- 【VisionMaster】卡尺工具
- 标准C库函数之perror()、strerror(),以及他们之间各种的优缺点(打印错误信息)
- 5月刊推荐:怎样才是真正的架构师