hi3531 添加uart3
来源:互联网 发布:豫广网络维修电话 编辑:程序博客网 时间:2024/06/06 12:33
基于设备总线驱动模型
在hi3531的linux内核中串口驱动和设备是挂在AMBA总线下的,其驱动程序文件为drivers/serial/amba-pl011.c,在linux内核配置中默认是使能该驱动的,如果没有则:make menuconfig -> Character devices ->Serial drives中使能,必须使能该驱动才能使用串口tty设备
上面介绍串口驱动的使能,下面添加amba总线上的串口设备
在linux-3.0.y\arch\arm\mach-godnet\core.c文件下
这两个是添加uart0 1的amba总线设备数据结构体
HIL_AMBA_DEVICE(uart0, "uart:0", UART0, NULL);
HIL_AMBA_DEVICE(uart1, "uart:1", UART1, NULL);
HIL_AMBA_DEVICE(uart2, "uart:2", UART2, NULL);
HIL_AMBA_DEVICE(uart3, "uart:3", UART3, NULL);
static void uart_clk_init(unsigned long busclk)
{
uart_clk.rate = busclk/2;
lookups[0].dev_id = "uart:0";
lookups[0].clk = &uart_clk;
lookups[1].dev_id = "uart:1";
lookups[1].clk = &uart_clk;
lookups[2].dev_id = "uart:2";
lookups[2].clk = &uart_clk;
lookups[3].dev_id = "uart:3";
lookups[3].clk = &uart_clk;
}
下面看下宏定义:
其实就是amba设备数据结构体赋值
#define HIL_AMBA_DEVICE(name, busid, base, platdata) \
static struct amba_device HIL_AMBADEV_NAME(name) = \
{.dev = { \
.coherent_dma_mask = ~0, \
/*用来设置设备在总线上的名字*/
.init_name = busid, \
/*给平台总线设备赋值私有数据*/
.platform_data = platdata, \
}, \
.res = { \
/*设备资源的寄存器基础物理地址*/
.start = base##_BASE, \
/*设备资源的寄存器结束理地址*/
.end = base##_BASE + 0x10000 - 1, \
.flags = IORESOURCE_IO, \
}, \
.dma_mask = ~0, \
/*设备的中断资源*/
.irq = { base##_IRQ, NO_IRQ } \
}
struct amba_device {
struct device dev;
struct resourceres;
struct clk *pclk;
struct regulator*vcore;
u64 dma_mask;
unsigned int periphid;
unsigned int irq[AMBA_NR_IRQS];
};
在上述宏定义中.irq = { base##_IRQ, NO_IRQ } \
其实就是 .irq={UART0_IRQ,NO_IRQ}
在linux-3.0.y\arch\arm\mach-godnet\include\mach\irqs.h中
#define UART0_IRQ(GODNET_IRQ_START + 9)
#define UART2_IRQ(GODNET_IRQ_START + 11)
要想添加新的串口在上述位置添加新的UART即可
串口驱动没有在驱动中建立设备文件,因此在文件系统的启动脚本手动建立
在/etc/init.d/S00devs
mknod /dev/ttyAMA3 c 204 66
- hi3531 添加uart3
- 添加UART3
- 为Hi3531添加4串口支持
- Hi3531添加16GByte(128Gbit) NAND Flash支持
- S3C2416 Linux2.6.21 驱动移植--添加UART3 及波特率设置bug消除
- S3C2416 Linux2.6.21 驱动移植--添加UART3 及波特率设置bug消除
- S3C2416 Linux2.6.21 驱动移植--添加UART3 及波特率设置bug消除
- S3C2416 Linux2.6.21 驱动移植--添加UART3 及波特率设置bug消除
- Hi3531+Tw28xx
- HI3531 rtc
- STM8固件库+IAR 之--UART3
- Hi3531 1.0.7.1
- 海思Hi3531+Hi3532 方案
- Minigui HI3531 硬件加速
- Hi3531 NVR解码模块
- MiniGUI + Hi3531 笔记
- hi3531的时钟系统
- hi3531串口波特率计算
- 试试LaTex
- 数据库oracle与mysql在语法上的区别
- self.array 和 _array的区别
- IOS 集合视图指南2:集合视图基础
- Android Fragment 你应该知道的一切
- hi3531 添加uart3
- 数据结构之二叉树的递归建立和遍历(续)
- asp 提示 没有权限: 'CreateObject'
- Android-笔记-160506
- java线程——synchronized的4种用法
- SpringMVC-intercepter配置
- 跟我一起学习MySQL技术内幕(第五版):(第三章学习日记2上)
- DP待整理
- Android Fragment 真正的完全解析(下)