高通MSM8255串口驱动移植


1.在板载信息里面添加东东:

a.首先进入kernel/arch/arm/mach-msm/board-msm7x30.c 在结构体struct platform_device *devices[ ] __initdata { };中添加变量&msm_devices_uart3,

配置变量struct msm_gpio uart3_config_data[ ],将GPIO配置成串口模式。其中配置成全串口。

static struct msm_gpio uart3_config_data[] = {
 { GPIO_CFG(57, 1, GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL,   GPIO_CFG_2MA),
  "UART3_RFR" },
 { GPIO_CFG(55, 1, GPIO_CFG_INPUT,  GPIO_CFG_NO_PULL,   GPIO_CFG_2MA),
  "UART3_CTS" },
 { GPIO_CFG(53, 1, GPIO_CFG_INPUT,   GPIO_CFG_PULL_UP, GPIO_CFG_8MA), "UART3_Rx"},
 { GPIO_CFG(54, 1, GPIO_CFG_OUTPUT,  GPIO_CFG_PULL_UP, GPIO_CFG_8MA), "UART3_Tx"},
};

其中“57”属于引脚编号,“1”属于模式(如为“0”即GPIO模式,“1”串口模式),“GPIO_CFG_OUTPUT”输入、输出模式,“GPIO_CFG_NO_PULL”默认上拉还是下拉模式,“GPIO_CFG_2MA”驱动电流能力。

 

static void msm7x30_init_uart3(void)
{
 msm_gpios_request_enable(uart3_config_data,
   ARRAY_SIZE(uart3_config_data));

}                  //使能配置函数

然后把msm7x30_init_uart3添加到 __init msm7x30_init() 函数中。

2.其中串口的驱动在kernel/drivers/serials/msm_serial.c 中,在msm_uart_driver变量中会找到“ttyMSM”的设备名字。

这样就可以在/dev下生成结点ttyMSM2.

相关内容