我正在编译 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";
};
这是我的 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)
};
关于linux - 如何在设备树(.dts)文件中指定uart的设备名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18994633/