Cloud39E的UART1串口使用问题

39e 的板子要用到uart2,即CIS_DATA0/GPIO6_PD/RXD2、CIS_DATA1/GPIO7_PD/TXD2这两个pin要利用成RXD2、TXD2功能,那么在软件上配置如下就可以正常使用:
1、kernel/arch/arm/mach-ak39/ak39-gpio.c修改如下:
       struct gpio_sharepin_cfg share_cfg_module[] = {
                {ePIN_AS_UART2,    SHARE_CFG2,    0, 0, (0xff<<4), (0x5a<<4), 0, 0,0, 0},
             {ePIN_AS_CAMERA,   SHARE_CFG2,    0, 0, (0xff00f), (0x0), 0, 0,0, 0},

      }
2、
kernel/arch/arm/mach-ak39/mach-cloud39e_ak3918e+h42.c修改如下:
         static struct platform_device *ak3918_platform_devices[] __initdata = {
              &ak39_uart0_device,
              &ak39_uart1_device,
         }
3、drivers/tty/serial/ak39_uart.c修改如下:
       static void ak39_serial_set_termios(struct uart_port *port,
                struct ktermios *termios, struct ktermios *old)
       {
                 ......
                 /* flow control setting */
    if(port->line != 0)
    {
        if((termios->c_cflag & CRTSCTS)) /* directly */
        {
            switch (port->line) {
            case 1:
                AK_GPIO_UART1_FLOW(1);
                break;
            }
            regval &= ~(1<<18|1<<19);
        }
        else  /* inversly */
        {
            switch(port->line) {
            case 1:
                 ak_setpin_as_gpio(8);
              ak_setpin_as_gpio(9);
             
break;
            }
        }

猜你喜欢

转载自blog.csdn.net/longjiacheng2006/article/details/50902197