目录
msm8953 从硬件规格书中最多是支持4个串口,即除了打印串口外,另外还有3个串口可供系统使用,
本文以调试中打开uart6串口为例说明。
修改步骤如下:
1. 通过硬件资料确认设备树dtsi的修改
基地址:
中断号:
跟进硬件资源修改msm8953.dtsi配置文件
blsp2_serial1: serial@7af0000 {
compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
reg = <0x7af0000 0x200>;
interrupts = <0 307 0>;
clocks = <&clock_gcc clk_gcc_blsp2_uart2_apps_clk>,
<&clock_gcc clk_gcc_blsp2_ahb_clk>;
clock-names = "core", "iface";
pinctrl-names = "default","sleep";
pinctrl-0 = <&uart6_active>;
pinctrl-1 = <&uart6_sleep>;
status = "ok";
};
注意串口6也可以用作SPI的功能。
2.修改pinctrl配置:
uart6_active: uart6_active {
mux {
pins = "gpio20", "gpio21";
function = "blsp_uart6";
};
config {
pins = "gpio20", "gpio21";
drive-strength = <2>;
bias-disable;
};
};
uart6_sleep: uart6_sleep {
mux {
pins = "gpio20", "gpio21";
function = "blsp_uart6";
};
config {
pins = "gpio20", "gpio21";
drive-strength = <2>;
bias-pull-down;
};
};
3.串口驱动修改:
msm_serial.c增加一组串口配置
{
.uart = {
.iotype = UPIO_MEM,
.ops = &msm_uart_pops,
.flags = UPF_BOOT_AUTOCONF,
.fifosize = 64,
.line = 3,
},
},
4.烧录验证:
[ 1.233020] 78b0000.serial: ttyHSL2 at MMIO 0x78b0000 (irq = 68, base_baud = 1200000) is a MSM
[ 1.233731] msm_serial 7af0000.serial: msm_serial: detected port #3
[ 1.233766] msm_serial 7af0000.serial: uartclk = 19200000
[ 1.233818] 7af0000.serial: ttyHSL3 at MMIO 0x7af0000 (irq = 69, base_baud = 1200000) is a MSM
启动代码看到有新的串口节点加载,说明已修改成功。
文章图片来源:
https://blog.youkuaiyun.com/xuecz1230/article/details/78672662