Linux 如何在设备树(.dts)文件中指定uart的设备名称?

Linux 如何在设备树(.dts)文件中指定uart的设备名称?,linux,mips,openwrt,device-tree,Linux,Mips,Openwrt,Device Tree,我在编译OpenWrt(基于Linux的无线路由器),我在OpenWrt源代码中添加了一块板,我的板有两个uart端口,我可以声明并启用两个uart端口,两个uart端口分别命名为“uartfull”和“uartlite” “uartlite”注册到“/dev/ttyS1”,而“uartfull”注册到“/dev/ttyS0”。但我希望uartlite为'/dev/ttyS0',uartfull为'/dev/ttyS1' uartlite@c00 { compatible

我在编译OpenWrt(基于Linux的无线路由器),我在OpenWrt源代码中添加了一块板,我的板有两个uart端口,我可以声明并启用两个uart端口,两个uart端口分别命名为“uartfull”和“uartlite”

“uartlite”注册到“/dev/ttyS1”,而“uartfull”注册到“/dev/ttyS0”。但我希望uartlite为'/dev/ttyS0',uartfull为'/dev/ttyS1'

    uartlite@c00 {
        compatible = "ralink,rt5350-uart", "ralink,rt2880-uart", "ns16550a";
        reg = <0xc00 0x100>;

        resets = <&rstctrl 19>;
        reset-names = "uartl";

        interrupt-parent = <&intc>;
        interrupts = <12>;

        reg-shift = <2>;
    };

    uart@500 {
        compatible = "ralink,rt5350-uart", "ralink,rt2880-uart", "ns16550a";
        reg = <0x500 0x100>;

        resets = <&rstctrl 12>;
        reset-names = "uart";

        interrupt-parent = <&intc>;
        interrupts = <5>;

        reg-shift = <2>;

        status = "okay";
    };
uartlite@c00 {
compatible=“RAINK,rt5350 uart”,“RAINK,rt2880 uart”,“ns16550a”;
reg=;
重置=;
重置名称=“uartl”;
中断父项=;
中断=;
寄存器移位=;
};
uart@500 {
compatible=“RAINK,rt5350 uart”,“RAINK,rt2880 uart”,“ns16550a”;
reg=;
重置=;
重置名称=“uart”;
中断父项=;
中断=;
寄存器移位=;
status=“好”;
};

这是我的dts文件中的“uartfull”(名称uart)和“uartlite”节点。我在猜测是什么决定了设备名(/dev/ttyS0/dev/ttyS1等等),我可以为这两个uart节点强制一个设备名吗。

使用设备树文件顶部的别名字段:

aliases {
serial0 = &uart0; // becomes /dev/ttyS0
serial1 = &uart2; // becomes /dev/ttyS1
serial2 = &uart5; // becomes /dev/ttyS2 (not /dev/ttyS3)
serial3 = &uart4; // becomes /dev/ttyS3 (not /dev/ttyS2)

})

Hrm,我要称之为bug。
/aliases/serial0
赋值应该像dashxdr在其答案中所描述的那样有效,但事实并非如此。我还在OpenWRT 18.06.1(Linux 4.14.64)中使用基于mt7620a的设备。

更改块的顺序。