AnsweredAssumed Answered

To add the number of UART for IMX6Q

Question asked by peng xingwei on Jun 29, 2016

hello all,

           my board is imx6q  sabresd   ,the system of it is Android OS ,the kernel_imx is linux-3.0.35,the default uart is ttymxc0(UART1) and ttymxc2(UART3), I want to add other uart ,the modified file as follows:

 

  1. 1.board-mx6q_sabresd.h(kernel_imx/arch/arm/mach-mx6)

/*UART2 */

MX6Q_PAD_EIM_D26_UART2_TXD,

MX6Q_PAD_EIM_D27_UART2_RXD,

/*UART4*/

MX6Q_PAD_KEY_COL0_UART4_RXD,

MX6Q_PAD_KEY_ROW0_UART4_TXD,

 

/*UART5 */

MX6Q_PAD_KEY_COL0_UART5_RXD,

MX6Q_PAD_KEY_ROW_UART5_TXD,

2.board-mx6q_sabresd.c(kernel_imx/arch/arm/mach-mx6)

static inline void mx6q_sabresd_init_uart(void){

imx6q_add_imx_uart(0,NULL);

imx6q_add_imx_uart(1,NULL);

imx6q_add_imx_uart(2,NULL);

imx6q_add_imx_uart(3,NULL);

imx6q_add_imx_uart(4,NULL);

}

3.platform-imx-uart.c(kernel_imx/arch/arm/plat-mxc/devices)

#define imx6q_imx_uart_data_entry(_id, _hwid)

        imx_imx_uart_lirq_data_entry(MX6Q, _id, _hwid, SZ_4K)

imx6q_imx_uart_data_entry(0,1),

imx6q_imx_uart_data_entry(1,2),

imx6q_imx_uart_data_entry(2,3),

imx6q_imx_uart_data_entry(3,4),

imx6q_imx_uart_data_entry(4,5),

};

 

4.clock.c(kernel_imx/arch/arm/mach-mx6)

_REGISTER_CLOCK("imx_uart.0", NULL, uart_clk[0]),

_REGISTER_CLOCK("imx_uart.1", NULL, uart_clk[0]),

_REGISTER_CLOCK("imx_uart.2", NULL, uart_clk[0]),

_REGISTER_CLOCK("imx_uart.3", NULL, uart_clk[0]),

_REGISTER_CLOCK("imx_uart.4", NULL, uart_clk[0]),

 

5.mx6.h(kernel_imx/arch/arm/plat-mxc/include/mach)

#define MX6Q_UART1_BASE_ADDR    UART1_BASE_ADDR

#define MX6Q_UART2_BASE_ADDR    UART2_BASE_ADDR

#define MX6Q_UART3_BASE_ADDR    UART3_BASE_ADDR

#define MX6Q_UART4_BASE_ADDR    UART4_BASE_ADDR

#define MX6Q_UART5_BASE_ADDR    UART5_BASE_ADDR

#define MX6Q_INT_UART1    MXC_INT_UART1_ANDED

#define MX6Q_INT_UART2    MXC_INT_UART2_ANDED

#define MX6Q_INT_UART3    MXC_INT_UART3_ANDED

#define MX6Q_INT_UART4    MXC_INT_UART4_ANDED

#define MX6Q_INT_UART5    MXC_INT_UART5_ANDED

 

I do like that,but the system start log is :

Serial: IMX driver
imx-uart.2: ttymxc2 at MMIO 0x21ec000 (irq = 60) is a IMX
imx-uart.0: ttymxc0 at MMIO 0x2020000 (irq = 58) is a IMX
console [ttymxc0] enabled, bootconsole disabled
console [ttymxc0] enabled, bootconsole disabled

It  suggest that the other uart has not worked ,whether there is another file need to be modified?? Please give me some advice。

thank you!

Outcomes