mx6q_sabresd 分析之UART

博客详细解析了MX6Q SoC上UART1的端口配置,指出UART1_TX使用了CSI0_DAT10,而UART1_RX则使用了CSI0_DAT11。在初始化过程中,通过imx6q_add_imx_uart函数设置UART0,并运用mxc_iomux_v3_setup_multiple_pads进行相关GPIO复用配置。相关代码涉及文件包括i.mx6q的IOMUX头文件和UART初始化文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

arch/arm/plat-mxc/include/mach/iomux-mx6q.h 包含了所有mx6q的IO定义,其中UART定义如下:(UART1的端口:UART1_TX 是 CSI0_DAT10,UART1_RX 是CSI0_DAT11)

#define _MX6Q_PAD_CSI0_DAT10__UART1_TXD                 \
                IOMUX_PAD(0x0650, 0x0280, 3, 0x0000, 0, 0)
#define _MX6Q_PAD_CSI0_DAT11__UART1_RXD                 \
                IOMUX_PAD(0x0654, 0x0284, 3, 0x0920, 1, 0)
#define  MX6Q_PAD_CSI0_DAT10__UART1_TXD         \
                (_MX6Q_PAD_CSI0_DAT10__UART1_TXD | MUX_PAD_CTRL(MX6Q_UART_PAD_CTRL))
#define  MX6Q_PAD_CSI0_DAT11__UART1_RXD         \
                (_MX6Q_PAD_CSI0_DAT11__UART1_RXD | MUX_PAD_CTRL(MX6Q_UART_PAD_CTRL))


在arch/arm/mach-mx6/board-mx6q_sabresd.c中初始化UART

imx6q_add_imx_uart(0, NULL);

mxc_iomux_v3_setup_multiple_pads(mx6q_uart5_pads,
                                ARRAY_SIZE(mx6q_uart5_pads));

相关文件:

drivers/tty/serial/mxc_uart_early.c
drivers/tty/serial/serial_core.c
arch/arm/plat-mxc/include/mach/iomux-mx6q.h
arch/arm/plat-mxc/include/mach/mxc_uart.h

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值