OpenWRT 修改dts文件配置串口uart ttyS0

串口需要修改dts文件,在源码目录的target/linux/ramips/dts目录中,修改mt7620a.dtsi中的一些内容,修改内容如下:

(1) chosen {

              bootargs ="console=ttyS0,57600";

       };

     把这个ttyS0,改为ttyS1,因为串口驱动起来后,ttyS0做为了扩展串口。Open串口时选择 ttyS0

(2) uart@500 {

                     compatible ="ralink,mt7620a-uart","ralink,rt2880-uart", "ns16550a";

                     reg = <0x500 0x100>;

 

                     resets = <&rstctrl12>;

                     reset-names ="uart";

 

                     interrupt-parent =<&intc>;

                     interrupts = <5>;

 

                     reg-shift = <2>;   

 

                     status ="disabled";

 

// status= "disabled";改为:                               

pinctrl-names = "default";

                        pinctrl-0 = <&uartf_gpio_pins>;

                     status = "ok";

              };

把status = "disabled";这句注释掉或者删除,加上这句默认串口驱动没有加载。

(3)pcm_i2s_pins: pcm_i2s {

                     pcm_i2s {

                            ralink,group ="uartf";

                            ralink,function ="pcm i2s";

                     };

              };

              uartf_gpio_pins: uartf_gpio {

                     uartf_gpio {

                            ralink,group ="uartf";

                            ralink,function ="gpio uartf";

                     };

这里把ralink,function的值都改为uartf。

(4) 修改MT7620a.dts文件

      pinctrl {

              state_default: pinctrl0 {

                     gpio {

                            ralink,group ="i2c","uartf";

                            ralink,function ="gpio";

                     };

              };

       };

把uartf去掉。

完成上面4步uart full就完成了。



注意:不是dtsi文件中所有的节点都会被注册,在注册总线和设备时,会对dts节点的状态作一个判断,如果节点里面的status属性没有被定义,或者status属性被定义了并且值被设为“ok”或者“okay”,其他情况则不被注册到系统中。




更多dts知识点介绍可以浏览:http://www.right.com.cn/forum/thread-146260-1-1.html

你可能感兴趣的:(OpenWRT)