1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
您好: 我按照Rockchip_Developer_Guide_UART_CN.pdf中的说明,在rk3568.dtsi中修改uart3的status = |
|
相关推荐
7个回答
|
|
不要修改rk3568.dtsi文件,修改上层的rk3568-firefly-roc-pc.dtsi去覆盖
uart2、3、4已经默认打开了,不用你再改动,uart2作为了debug口,不建议当普通uart使用 uart9默认没打开,在rk3568-firefly-roc-pc.dtsi添加节点手动打开 综上,你可以使用uart3(rs232) uart4(485) uart9(普通uart) |
|
|
|
|
|
|
|
您好!我想问几个问题可以吗?
1、要使能或者解除复用功能的话,在rk3568-firefly-roc-pc.dtsi里修改就可以了吗?对于GPIO来说,解除掉GPIO对应的所有复用功能,这个GPIO就可以正常使用了吗?比如: &uart9{ status = "okey"; }; &can1{ status = "disabled"; }; 2、我看到WIKI上说明在rk3568-firefly-roc-pc.dtsi上配置节点uart9: &uart9 { status = "okay"; pinctrl-0 = <&uart9m1_xfer>; }; 我添加的时候没有写上pinctrl-0这一句,也会出现/dev/ttyS9,它是必要的吗? 3、在其他的dtsi文件中(比如rk3568.dtsi或rk3568-firefly-port.dtsi),举个例子,对uart3是disabled,但是我们在rk3568-firefly-roc-pc.dtsi里设置了"okey",这会相互影响吗? |
|
|
|
这3个问题相互关联,我一起回答
首先,dts/dtsi 存在 include 关系,上层的会覆盖掉下层的,比如 A include B include C,uart9 在 C 中是 enable,在 A 中是 disabled,那最终生效的结果是 disabled 其次,仅仅使能是不行的,还需要把复用的其他功能关闭,同时只能有一个功能开启 复用关系需要查看芯片的datasheet pinctrl 很重要,它决定使用哪一个引脚 举例: 现在需要使用 UART9,查看硬件原理图,uart9 连接的引脚是 uart9_rx_m1 和 uart9_tx_m1 可以看到此处是 m1 ,查阅芯片手册 datasheet,uart9的m1组复用关系如下: PWM12_M1/SPI3_MISO_M1/SATA1_ACT_LED/UART9_TX_M1/I2S3_SDO_M1/GPIO4_C5_d PWM13_M1/SPI3_CS0_M1/SATA0_ACT_LED/UART9_RX_M1/I2S3_SDI_M1/GPIO4_C6_d 此时需要查看dts,pwm12是否开启?如果开启了,查看它的pinctrl是否使用了m1组?这里需要查看所有关联的dts和dtsi,不能只看一个,根据开头讲的include关系找出最终生效的结果: 假如pwm12最终生效是disable状态,那不管,不会起冲突 假如pwm12最终生效是enable状态,pinctrl是m0组,那不管,因为是m0组,也不会和uart9 m1起冲突 假如pwm12最终生效是enable状态,pinctrl是m1组,那就需要改为disabled才能使用uart9 m1 以此类推去排查pwm13,spi3,sata0,i2s3等等 排查结束,解决完冲突后,再把uart9 enable,并将pinctrl设置为m1,即 pinctrl-0 = <&uart9m1_xfer>; 所以pinctrl这句设置与否是根据实际情况来的 |
|
|
|
感谢答复!!经过您的指点我调通了uart9
但是在查找dtsi的途中衍生出一个问题:按照之前说的上层覆盖下层,那么如果在A中 &i2c1{ status="okey"; } 而在C中 i2c1: i2c@fe5a0000 { Compatible = "rockchip , rk3399-i2c"; reg = <0x0 0xfe5a0000 0x0 0x1000>; clocks =<&cru CLK_I2C1>, <&cru PCLK_I2C1>; clock- names = "i2c" , "pcik" ; interrupts = pinctrl-names = "default" ; pinctrl-0 = <&i2c1_xfer>; #address-cells = <1>; #size-cells = <0>; status = "disabled " ; }; 这里在A中status会把下层覆盖掉,但是A中没有定义其他属性的话,那么应该是沿用下层C中的设置对吧? |
|
|
|
对,A中没写的,就会沿用下层
|
|
|
|
那这样的话,我直接在最上层把不需要的disabled掉也是可行的吧?
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
498 浏览 0 评论
768 浏览 1 评论
667 浏览 1 评论
1893 浏览 1 评论
3138 浏览 1 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 01:26 , Processed in 0.946598 second(s), Total 82, Slave 66 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号