rk3399_android7.1调试串口uart功能和测试是否能通讯

1、首先硬件原理图上需要确认使用的是哪个串口,比如我这里使用的是串口uart4:
在这里插入图片描述
2、其次在kernel需要把对应串口的节点使能打开(dts或者dtsi文件中节点配置):
dts里面打开使能(文件:arch/arm64/boot/dts/rockchip/rk3399-box-rev2-hdmi.dts):

&uart4 {
      status = "okay";
 };

dtsi里面的资源描述(文件:./arch/arm64/boot/dts/rockchip/rk3399.dtsi):

         uart4: serial@ff370000 {
                 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
                 reg = <0x0 0xff370000 0x0 0x100>;
                 clocks = <&pmucru SCLK_UART4_PMU>, <&pmucru PCLK_UART4_PMU>;
                 clock-names = "baudclk", "apb_pclk";
                 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH 0>;
                 reg-shift = <2>;
                 reg-io-width = <4>;
                 pinctrl-names = "default";
                 pinctrl-0 = <&uart4_xfer>;
                 status = "disabled";
         };

3、驱动设备注册log
debug串口有以下log打印,说明驱动注册成功了。如果pinctrl跟其他驱动有冲突的话,会报pinctrl配置失败的log。

[    0.398206] Serial: 8250/16550 driver, 6 ports, IRQ sharing disabled
[    0.398748] ff180000.serial: ttyS0 at MMIO 0xff180000 (irq = 36, base_baud = 1500000) is a 16550A
[    0.399227] ff370000.serial: ttyS4 at MMIO 0xff370000 (irq = 38, base_baud = 1500000) is a 16550A

3、测试验证uart是否通了
驱动起来后会注册ttySx设备。下面这个是对应的串口4

rk3399_all:/ # ls -l dev/ttyS4 //确认是否有串口节点

crw-rw-rw- 1 system system 4, 68 1970-01-01 00:06 dev/ttyS4

驱动会根据aliase,来对应串口编号,如下: serial0最终会生成ttyS0,serial3会生成ttyS3设备。

{    
serial0 = &uart0;        
serial1 = &uart1;        
serial2 = &uart2;        
serial3 = &uart3;        
serial4 = &uart4;        
};

验证方法: 镊子短接tx rx,然后在串口或者adb,敲入命令: echo “1234” > dev/ttyS4 && cat dev/ttyS4,可以实现数据自发自收(能够收发字符串:“1234”)!

rk3399_all:/ # echo "1234" > dev/ttyS4 && cat dev/ttyS4
1234

你可能感兴趣的:(RK系列驱动开发)