当前位置: 首页 > java >正文

Android ttyS2无法打开该如何配置 + ttyS0和ttyS1可以

Step1:查找gpio datasheet《MTXXXX_GPIO_Formal_Application_Spec V1.0.xlsx》,看哪组pin可以复用为uart2.

也可以通过/vendor/mediatek/proprietary/tools/dct/MT6789.fig确认

GPIO88  =   MODE4(UTXD2) 

GPIO89  =   MODE4(URXD2)
所以需要在dws中将gpio 88,gpio 89配置成mode4
验证dws是否配置生效:
tb6789p1_64:/proc/mtk_gpio # cat soc.pinctrl

pins base: 290

PIN: (MODE)(DIR)(DOUT)(DIN)(DRIVE)(SMT)(IES)(PULL_EN)(PULL_SEL)(R1 R0)

。。。。

088: 4001000100

089: 4001000111

Step2:在平台dts文件中增加节点
1)增加uart2节点
uart2: serial@11004000 {

  compatible = "mediatek,mt6577-uart";

  reg = <0 0x11004000 0 0x1000>;

  interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH 0>;

  clocks = <&clk26m>, <&infracfg_ao_clk CLK_IFRAO_UART2>;

  clock-names = "baud", "bus";

  dmas = <&apdma 4 &apdma 5>;

  dma-names = "tx", "rx";

  status = "okay";

  };

Step2:在平台dts文件中增加节点
2)DMA设置
apdma: dma-controller@10217800 {

  compatible = "mediatek,mt6779-uart-dma";

  reg = <0 0x10217800 0 0x80>,

  <0 0x10217880 0 0x80>,

  <0 0x10217900 0 0x80>,

  <0 0x10217980 0 0x80>,

  +  <0 0x10218000 0 0x80>,

  +  <0 0x10218080 0 0x80>;

  interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH 0>,

  <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH 0>,

  <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH 0>,

  <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH 0>,

  +  <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH 0>,

  +  <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH 0>;

  clocks = <&infracfg_ao_clk CLK_IFRAO_AP_DMA>;

  clock-names = "apdma";

  -  dma-requests = <4>;

  +  dma-requests = <6>;

  #dma-cells = <1>;

  };

Step3:log中出现下面打印说明tty终端和uart口绑定成功,uart配置成功
[T1700001] init: [name:serial_core&]11004000.serial: ttyS2 at MMIO 0x11004000 (irq = 85, base_baud = 1625000) is a ST16650V2
Thanks!

http://www.xdnf.cn/news/14938.html

相关文章:

  • 第1章 Excel界面环境与基础操作指南
  • springBoot使用XWPFDocument 和 LoopRowTableRenderPolicy 两种方式填充数据到word模版中
  • IT系统安全刚需:绝缘故障定位系统
  • 掌握PDF转CAD技巧,提升工程设计效率
  • iframe 的同源限制与反爬机制的冲突
  • [C语言初阶]操作符
  • HTML + CSS + JavaScript
  • uniapp+vue3+ts项目:实现小程序文件下载、预览、进度监听(含项目、案例、插件)
  • 奇异值分解(singular value decomposition,SVD)
  • RNN及其变体的概念和案例
  • 【UE5】虚幻引擎的运行逻辑
  • 【数据结构】二叉树
  • 广度优先与深度优先遍历核心逻辑理解及实践
  • qt-C++笔记之setCentralWidget的使用
  • IoTDB:专为物联网场景设计的高性能时序数据库
  • EfficientVMamba: Atrous Selective Scan for Light Weight Visual Mamba论文精读(逐段解析)
  • 跨境ERP系统
  • Java常用加密算法详解与实战代码 - 附可直接运行的测试示例
  • Swift 解 LeetCode 321:拼接两个数组中的最大数,贪心 + 合并全解析
  • 【适合 Java 工程师的 AI 转型方向】
  • 17-C#的socket通信TCP-1
  • 【论文阅读】CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer
  • 2. 两数相加
  • 恒创科技:香港站群服务器做seo站群优化效果如何
  • maven 发布到中央仓库之持续集成-03
  • 解决GitHub仓库推送子文件夹后打不开的问题
  • SpringBoot项目的创建
  • 【ZYNQ Linux开发】BRAM的几种驱动方式
  • 使用协程简化异步资源获取操作
  • 【c++八股文】Day4:右值,右值引用,移动语义