全志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篇)相关推荐

  1. 如何使用融云地图,文件等插件--融云 Android SDK 2.8.0+ Extension 开发文档

    转载自融云 Android SDK 2.8.0+ Extension 开发文档 融云 SDK 2.8.0 后对 会话界面输入区域.+号扩展区域.语音消息.Emoji 等进行了优化和重构,重构后上列区域 ...

  2. android触摸屏idc,android4.0 触摸屏配置

    http://source.android.com/tech/input/input-device-configuration-files.html这篇文档,会按下面的顺序识别配置文件: /syste ...

  3. 联想+android电视,联想Android4.0智能电视亮相:4月底国内上市

    3月23日消息,"联想2012 CES明星产品品鉴会"在深圳正式召开.会上,联想首次面向国内媒体展示了其今年在CES上发布新产品,包括首款联想智能电视K91,一体台式机ideace ...

  4. 京东广告联盟android,京东APP联盟SDKAndroid版接口说明文档1.0.PDF

    京东APP联盟SDKAndroid版接口说明文档1.0 京东APP 联盟SDK Android 版接口说明文档1.0 1. 嵌入SDK 1.1 添加SDK Android Studio 环境:菜单Ne ...

  5. 全志a10 Android,全志A10 android平台CVBS效果调试

    全志平台CVBS效果调试 最近在调试一款面向中低端市场车载后座娱乐产品,在输出方面只有CVBS输出.在车载方面,CVBS输入输出使用得还是非常频繁的,目前还是用得比较多的,特别是在中低端市场. 笔者使 ...

  6. 全志A10 android4.0 windows+linux版固件生成器

    Android4.0固件生产工具说明                          by:xian 一.准备阶段 1.1 工具简介 该工具为全志A10方案中附带程序,默认只支持ubuntu10.0 ...

  7. android 全志a10(2.3.4)开发二(linux内核编译及源码编译)

    <android 全志a10(2.3.4)开发二>文档详细可下载地址:http://www.a10bbs.com/forum.php?mod=viewthread&tid=504& ...

  8. A10+Android4.0 音频驱动

    A10+Android4.0 音频驱动 linux-3.0目录 make ARCH=arm menuconfig 进到内核配置界面,可以看到   知道我们的配置项名字,然后进 目录 :\lichee\ ...

  9. 全志H6 Android 7.0 平台 修改横竖屏显示

    **问题描述:**全志H6 Android 7.0 并没有给出横竖屏显示属性的设置,可以自己设置一个persist.sys.rotation属性来控制横竖屏的显示 解决方案: diff --git a ...

最新文章

  1. office默认设置
  2. const那些事-初始化
  3. python成员方法共享吗_python 入坑路 类的特殊成员方法
  4. Android NDK调试定位错误
  5. 微软确定 Win10 付费才能玩 还能不能愉快玩耍?
  6. element-ui滚动条组件el-scrollbar
  7. pycharm忽略whitespace警告
  8. 关系网络理论︱细讲中介中心性(Betweeness Centrality)
  9. dell安装linux系统网卡,DELL 2850服务器Redhat Linux 9系统安装网卡驱动记
  10. HTML兼容IE版本问题
  11. 收费最低的云存储_柠檬云财税|柠檬云财务软件 V4.2.1电脑版下载
  12. 【结合文献】——Affymatrix芯片数据预处理
  13. amd cpu排行_amd cpu性能排行图_笔记本CPU性能排行天梯图-2012最新笔记本CPU天梯图...
  14. EverEdit使用正则替换
  15. 闽江师范高等专科学校计算机系成立时间,闽江师范高等专科学校2018届毕业典礼...
  16. BeanPostProcessor由浅入深
  17. 不用Maven打jar包
  18. IFS Applications架构
  19. 巨人10Q4财报:营收3.6亿元环比增8.7%
  20. AutoRec模型结构详解

热门文章

  1. 美通企业日报 | 纬创、鸿海、索尼、尼康组建智能摄像系统联盟;贝塔斯曼实现六年来最强劲增长...
  2. 舆情监测系统功能简介,网络舆情监测系统平台有哪些?
  3. 俄语计算机考研,研友分享:俄语考研91分的经验体会
  4. 云业务贡献40.5%增长:亚马逊2022年财报亮点解读
  5. 南方周末:“逃离北上广”续篇:做沙丁鱼,还是做咸鱼
  6. 简单玩转ViewPager+Fragment动画效果,实现京东淘宝物流卡片效果 (附源码)
  7. linux模拟手机号码,虚拟手机号码接收短信
  8. 【VisionMaster】卡尺工具
  9. 标准C库函数之perror()、strerror(),以及他们之间各种的优缺点(打印错误信息)
  10. 5月刊推荐:怎样才是真正的架构师