admin管理员组文章数量:1530518
2024年4月28日发(作者:)
1、s3c2440有3个串口,其中串口2在linux-2.6.35.3里作了红外模式,我们
要把它改为普通的串口用。
2、在smdk2440平台第100行修改线控制寄存器 ULCONn
vi arch/arm/mach-s3c2440/mach-smdk2440.c
/* IR port */
[2] = {
.hwport = 2,
.flags = 0,
.ucon = 0x3c5,
.ulcon = 0x03,
.ufcon = 0x51,
}
3、增加UART2 收发引脚功能
vi drivers/serial/samsung.c
dbg("s3c24xx_serial_startup okn");
/* the port reset code should have done the correct
* register setup for the port controls */
if (port->line == 2)
{
s3c2410_gpio_cfgpin(S3C2410_GPH6, S3C2410_GPH6_TXD2);
s3c2410_gpio_pullup(S3C2410_GPH6, 1);
s3c2410_gpio_cfgpin(S3C2410_GPH7, S3C2410_GPH7_RXD2);
s3c2410_gpio_pullup(S3C2410_GPH7, 1);
}
a. 上面的函数fg , pull都定义在
arch/arm/mach-s3c2410/include/mach/gpio-fns.h中
所以要在drivers/serial/samsung.c 中添加头文件 #include
b. S3C2410_GPH6, 7 也需要自己定义在
arch/arm/mach-s3c2410/include/mach/gpio-nrs.h中
#define S3C2410_GPH6 S3C2410_GPH(6)
#define S3C2410_GPH7 S3C2410_GPH(7)
同样也要在drivers/serial/samsung.c 中添加头文件 #include
c. S3C2410_GPH6_TXD2
S3C2410_GPH7_RXD2定义在
arch/arm/mach-s3c2410/include/mach/regs-gpio.h
同样也要在drivers/serial/samsung.c 中添加头文件 #include
4、下面还有一个重要的数据结构
第889行
static struct uart_driver s3c24xx_uart_drv = {
.owner = THIS_MODULE,
.dev_name = "s3c2410_serial", //这个是串口设备的名称,必须和文件系
统的inittab里控制台的名称相对应
.nr = CONFIG_SERIAL_SAMSUNG_UARTS,
.cons = S3C24XX_SERIAL_CONSOLE,
.driver_name = S3C24XX_SERIAL_NAME,
.major = S3C24XX_SERIAL_MAJOR,
.minor = S3C24XX_SERIAL_MINOR,
};
5、make menuconfig
Ddvices Drivers --->
Character devices --->
Serial Drivers --->
1、s3c2440有3个串口,其中串口2在linux-2.6.35.3里作了红外模式,我们
要把它改为普通的串口用。
2、在smdk2440平台第100行修改线控制寄存器 ULCONn
vi arch/arm/mach-s3c2440/mach-smdk2440.c
/* IR port */
[2] = {
.hwport = 2,
.flags = 0,
.ucon = 0x3c5,
.ulcon = 0x03,
.ufcon = 0x51,
}
3、增加UART2 收发引脚功能
vi drivers/serial/samsung.c
dbg("s3c24xx_serial_startup okn");
/* the port reset code should have done the correct
* register setup for the port controls */
if (port->line == 2)
{
s3c2410_gpio_cfgpin(S3C2410_GPH6, S3C2410_GPH6_TXD2);
s3c2410_gpio_pullup(S3C2410_GPH6, 1);
s3c2410_gpio_cfgpin(S3C2410_GPH7, S3C2410_GPH7_RXD2);
s3c2410_gpio_pullup(S3C2410_GPH7, 1);
}
a. 上面的函数fg , pull都定义在
arch/arm/mach-s3c2410/include/mach/gpio-fns.h中
所以要在drivers/serial/samsung.c 中添加头文件 #include
b. S3C2410_GPH6, 7 也需要自己定义在
arch/arm/mach-s3c2410/include/mach/gpio-nrs.h中
#define S3C2410_GPH6 S3C2410_GPH(6)
#define S3C2410_GPH7 S3C2410_GPH(7)
同样也要在drivers/serial/samsung.c 中添加头文件 #include
c. S3C2410_GPH6_TXD2
S3C2410_GPH7_RXD2定义在
arch/arm/mach-s3c2410/include/mach/regs-gpio.h
同样也要在drivers/serial/samsung.c 中添加头文件 #include
4、下面还有一个重要的数据结构
第889行
static struct uart_driver s3c24xx_uart_drv = {
.owner = THIS_MODULE,
.dev_name = "s3c2410_serial", //这个是串口设备的名称,必须和文件系
统的inittab里控制台的名称相对应
.nr = CONFIG_SERIAL_SAMSUNG_UARTS,
.cons = S3C24XX_SERIAL_CONSOLE,
.driver_name = S3C24XX_SERIAL_NAME,
.major = S3C24XX_SERIAL_MAJOR,
.minor = S3C24XX_SERIAL_MINOR,
};
5、make menuconfig
Ddvices Drivers --->
Character devices --->
Serial Drivers --->
版权声明:本文标题:linux在TQ2440上移植6--完善串口驱动 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1714248117a394931.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论