打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
终于搞定了MT7688/28在Openwrt cc15.05系统下的3个串口,万恶的pinmux子系统!
       需要好好整理一下解决思路。
先说一下系统环境:virtualbox,ubuntu15.04@64bit
Openwrt版本:Chaos Calmer 15.05-rc2
硬件板卡:MT7688,64MB DDR2,8MB SPI FLASH,某宝LH7688
本次解决的问题:MT7688剩余两个串口不能通信,另外UART2端口仍处于analog PAD模式。
注意:本方法适用于标准的openwrt-cc,不适用于sdk和mtk-op。
第一步,改DTS,因为默认的mt7628an.dts缺少uart1和uart2的配置。

第二步,增加pinctrl信息。

第三步,修改arch/mips/ralink/mt7620.c
首先,看到perst,wdt都是错的,顺便改了他们。

prom_soc_init,add this code to fix AGPIO_MODE:(否则uart2还是网口电平)

这样子改后,网口只剩下lan0,个人觉得不够用,又不是去做路由器。
第四步,修改文件drivers/pinctrl/pinmux.c
分析,
line317,pinmux_map_to_setting,group是每一个pinmux注册时的pin的组group,而groups[i]是mt7620.c中可以看到的所有的pin分组groups。这里要匹配,也就是轮询一遍,但是有个问题,num_groups传进来的一直是1,这就导致了357行for循环始终循环一遍。究其根本是get_function_groups函数传的num_groups有问题。
所以真正要修改的是drivers/pinctrl/pinmux-rt2880.c

为什么改成15呢,因为mt7620.c中看到了有15个groups。
对了,最后一个严重问题,请make kernel_menuconfig
找到Device Drivers---->Character devices----->Serial drivers--->Number of 8250/16550 serial ports to register at runtime.由2改为3.
接着来,3个串口就都起来了。

对了,最后一个严重问题,请make kernel_menuconfig
找到Device Drivers---->Character devices----->Serial drivers--->Number of 8250/16550 serial ports to register at runtime.由2改为3.
这样修改后,3个串口就都起来了。






本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【WRTnode2R试用体验】MT7688串口1的使用
device tree pinctrl
连载-iMX6ULL 软件定制应用笔记 -9个知识点讲解
协议中UART的两种模式
Zigbee协议栈(2530开发板):串口采用中断方式
UART串口参数设置
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服