openwrt RT5350使能兩個UART

最近使用RT5350的板子運行openwrt,需要將該SOC的兩個UART均運行起來,

默認情況下只開啓了uartlite,當做console口了,另外一個uartf與gpio複用。

在查找資料的過程中,發現在新的內核中使用到了設備樹(device tree)的概念,

使用dts文件描述SOC的所有資源。

涉及到以下幾個文件:

linux-3.10.49/arch/mips/ralink/rt305x.c

linux-3.10.49/drivers/pinctrl/pinctrl-rt2880.c

target/linux/ramips/dts/rt5350.dtsi

target/linux/ramips/dts/MPRA2.dts

兩個.c文件與dts文件密切相關,添加調試信息做了跟蹤,並不需要修改。

關鍵的修改在兩個dts文件。

MPRA2.dts中將state_default從以下內容

gpio {

ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";

ralink,function = "gpio";

};

修改成

gpio {

ralink,group = "i2c", "jtag", "rgmii", "mdio";

ralink,function = "gpio";

};

uartf {

ralink,group = "uartf";

ralink,function = "gpio uartf";

};

並且需要註釋掉該文件最後gpio_export的所有內容。

開啓uartf之前,uartlite爲ttyS0作爲console的,開啓uartf之後,uartf成爲ttyS0,uartlite變爲ttyS1,

rt5350.dtsi需要修改bootargs以使uartlite仍然作爲console

chosen {

bootargs = "console=ttyS1,57600";

};

並註釋掉uart@500中的status = “disabled”;

// status = "disabled";

關於設備樹,也是剛剛接觸,也還有很多不太理解。做如上修改後兩個UART均能使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章