A.串行子系统层次:/dev/tty* , /dev/ir*, /dev/ppp*______________________________|线路规程|tty核心层|tty驱动程序|底层驱动程序//这里的理解就是高通平台里,serial_core.c就是串口tty核心层,tty_register_driver驱动的注册也是在
//这个文件里面注册的.
//而msm_serial.c,msm_serial_hs_lite.c,msm_serial_hs.c是底层的驱动程序.B.设备驱动匹配:1.compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";         //--->/dev/HSL*
./msm_serial.c{ .compatible = "qcom,msm-uartdm-v1.1", .data = (void *)UARTDM_1P1 },{ .compatible = "qcom,msm-uartdm-v1.2", .data = (void *)UARTDM_1P2 },{ .compatible = "qcom,msm-uartdm-v1.3", .data = (void *)UARTDM_1P3 },{ .compatible = "qcom,msm-uartdm-v1.4", .data = (void *)UARTDM_1P4 },{ .compatible = "qcom,msm-uartdm" },2.compatible = "qcom,msm-lsuart-v14";                            //--->/dev/HSL*
./msm_serial_hs_lite.c{ .compatible = "qcom,msm-lsuart-v14"3. compatible = "qcom,msm-hsuart-v14";                           //--->/dev/HS*
./msm_serial_hs.c   { .compatible = "qcom,msm-hsuart-v14"},C.串口驱动:/dev/tty*|---msm_serial.c                                           |                                      提供接口---msm_serial_hs_lite.c            <----------- serial_core.c|                                     ---msm_serial_hs.c   //serial_core.c为实际的驱动提供核心api,完成driver注册和ops实现                  
简单分析一下uart驱动:msm_serial_init:---> uart_register_driver(&msm_uart_driver);---> platform_driver_register(&msm_platform_driver)uart_register_driver作用:向uart核心层注册driver. 依次向tty层注册,并初始化driver每个端口的状态。platform_driver_register作用:平台驱动的作用就是完成devic和driver的匹配,也即是dsti与driver的probe,probe到了就把dtsi里面的内容填充到driver
里面的结构体中,完成驱动的初始化,向应用层提供文件ops机制(或者说伪总线的作用是将设备和linux设备模型连接在一起)。   -----------------
msm_uart_driver:
static struct uart_driver msm_uart_driver = {.owner = THIS_MODULE,.driver_name = "msm_serial",.dev_name = "ttyMSM",.nr = UART_NR,                    //line nums (tty nums).cons = MSM_CONSOLE,             //console
};msm_platform_driver:
static struct platform_driver msm_platform_driver = { .remove = msm_serial_remove,   .probe = msm_serial_probe,     .driver = {.name = "msm_serial",      .of_match_table = msm_match_table,   .pm = &msm_serial_pm_ops,  },
};--------------------
msm_serial_probe://找到serial节点,计数增加lineof_alias_get_id(pdev->dev.of_node, "serial");       //初始化时钟msm_port->clk = devm_clk_get(&pdev->dev, "core");if (IS_ERR(msm_port->clk))     return PTR_ERR(msm_port->clk);if (msm_port->is_uartdm) {     msm_port->pclk = devm_clk_get(&pdev->dev, "iface");if (IS_ERR(msm_port->pclk))//注释说了这个函数是让每个driver增加一个port, 目的是允许扩展uart_portuart_add_one_port(&msm_uart_driver, port);static const struct dev_pm_ops msm_serial_pm_ops = {#ifdef CONFIG_PM_SLEEP.suspend = msm_serial_suspend,.resume = msm_serial_resume,.freeze = msm_serial_freeze,.thaw = msm_serial_resume,.poweroff = msm_serial_suspend,.restore = msm_serial_resume,#endif};--------------------------------------
ops里面暂时没见解,调用的是serial_core.c里面的api

【Android驱动】高通串口驱动,串口驱动中的msm_serial.c相关推荐

  1. 高通QM215 高速串口调试总结

    高通QM215 高速串口调试总结 参考文档 硬件和复用情况确认 修改如下 串口调试 测试程序代码: 将串口设置为高速串口,AP端收到的数据一直为0XFD 参考文档 1.sp80-pk881-6_a_q ...

  2. 红米1S高通版本安装win7驱动

    在win7 64位下,红米1S高通版本不能自动安装.原因是高通驱动没有签名,重启系统,按F8,选择最后一个"禁止数字签名验证",就可以安装了. 安装时,手机端"开发者选项 ...

  3. 高通字库芯片GT20L16S1Y驱动 0.96寸 OLED 任意显示中文

    连续两个月的加班,给ODM客户生产温控器订单,今天终于顺利发货,对于工程师出身的我,终于可以对着电脑,消停几天,研究技术,分享技术了,闲话少说,直接进入正题: 半年前有个老客户介绍个中央某院的项目,我 ...

  4. 高通电源管理qpnp-vm-bms驱动-电量计

    1. compatible节点: qpnp-vm-bms.c使用来控制电池曲线的和BMS功能的,其compatible节点是"qcom,qpnp-vm-bms" 2. probe函 ...

  5. 魅族升级android p,高通宣布:这些手机将第一时间升级Android P!

    如今,对于全球智能手机市场,按照智能手机品牌,分为三星.苹果.华为.小米等众多智能手机厂商.不过,按照手机操作系统来说,则主要分为苹果ios和Android两大类型.其中,就安卓手机用户来说,几乎都希 ...

  6. android backtrace,高通android q 通过backtrace使用addr2ine工具定位crash问题记录

    高通android q 通过backtrace使用addr2ine工具定位crash问题记录 高通android q 通过backtrace,使用addr2ine工具,定位crash问题记录 cras ...

  7. 高通+android笔记本电脑,高通推出骁龙850移动平台,专门用于打造Windows ACPC笔记本产品...

    6月5日消息,高通在台北电脑展期间宣布推出骁龙850移动平台,专门用于打造Windows ACPC(全互联)笔记本产品.高通还宣布与三星合作,率先在三星未来推出的 PC 产品中搭载骁龙 850. 高通 ...

  8. st18 android 5,高通MSM8255只要1K5!高性价比的安卓机推荐

    高通MSM8255/3.3英寸/2300元--索爱Xperia ray ST18i 当前市场上的大多数智能机型,在外观的设计上,或多或少都偏重商务风格,同质化现象也非常严重.而索尼爱立信在今年成功推出 ...

  9. 高通ar android,Android版高通AR Vuforia QCAR SDK学习笔记

    望集齐大家的力量,将AR(增强现实)发展壮大. PS:不是我不加链接,是我加了超链接,没有用啊,难道是我权限不够,只得自己复制.粘贴了 1.下载高通SDK(高通刚刚才更新开发中心地址,版本更新为v2. ...

  10. Android 10 高通 AF fullsweep 调试 指南

    高通 AF tuning中的fullsweep 调试 指南 此操作的目的是为了确认马达工作 减少不必要的争议 开启 fullsweep & AF log adb root adb remoun ...

最新文章

  1. python客户端和服务端实验_python实现socket客户端和服务端简单示例
  2. 互联网1分钟 |1113
  3. matlab 小练习,matlab初试牛刀__小练习
  4. 万字长文了解模拟退火算法原理及求解复杂约束问题(源码实现)
  5. HDU3966(树链剖分)
  6. JS 时间和时间戳相互转换
  7. Double Strings
  8. Kotlin — 适用于数据科学
  9. [改善Java代码]不要在构造函数中抛出异常
  10. 戴尔r510服务器修复,DELL R510服务器宕机案例(1)
  11. win10 SqlServer2008 卸载 亲测可行
  12. Jeesite进行打包(打成war包)
  13. uploadify控件 上传图片到百度云存储
  14. 第十三届蓝桥杯大赛软件赛省赛(b组c语言)
  15. 如何创建项目管理工作流程?
  16. win10引导项误删修复
  17. 本体开发日记03-理解代码
  18. 行业研究-全球与中国牙科电子病历软件市场现状及未来发展趋势
  19. -nan(ind) 重载运算符以及结构体排序
  20. iOS 15.1即将上线,iPhone13的“苹果手表解锁”Bug已被修复

热门文章

  1. vs2003无法打开sal.h
  2. window10运行不了1stopt_1stopt软件到底性能怎样?
  3. t-SNE可视化-Python实现
  4. 火狐浏览器插件汇总(VIP典藏版)
  5. 个人名片+微信名片二维码 VUE
  6. 一个div在另一个div里垂直居中显示
  7. matlab官方中文文档教程
  8. 如何快速进入/打开cmd--快捷键
  9. g729源码分析-9-g729-解码
  10. ansys和matlab优化,基于ANSYS和MATLAB的优化设计