s3c2440A芯片按字节(8位)寻址,物理地址都以16进制表示;由于Linux下(包括内核空间)是不能直接使用物理地址,所以对硬件的操作还必须在映射为虚拟地址以后。
物理地址到内核虚拟地址的映射可以有两种方式:动态(ioremap)映射方式和静态(map_desc)映射方式。
更多详细内容请看这个连接:http://www.linuxeden.com/html/develop/20100702/103636.html
Audio部分CODEC挂在IIS总线上,下面就IIS相关寄存器的设置说明如下:
1.IIS控制寄存器
寄存器 地址 读写 描述 复位值
IISCON 0x55000000 R/W IIS控制寄存器 0x100
裸机调试可以直接操作寄存器物理地址,在这里不做说明。
Linux内核模式下的设置:(IISCON = *iomap(0x55000000))
IISCON = (IISCON_TX_DMA | IISCON_RX_IDLE | IISCON_PRESCALE); //寄存器是一个指针,给它赋值、就是给寄存器赋值
具体赋值如下:
IISCON_TX_DMA = 1 << 5;
IISCON_RX_IDLE = 1 << 2;
IISCON_PRESCALE = 1 << 1;
2.IIS模式寄存器
寄存器 地址 读写 描述 复位值
IISMOD 0x55000004 R/W IIS模式寄存器 0x0
上同。。。。。。
3.IIS预定标器寄存器
寄存器 地址 读写 描述 复位值
IISPSR 0x55000008 R/W IIS预订标器寄存器 0x0
4.IIS FIFO控制寄存器
寄存器 地址 读写 描述 复位值
IISFCON 0x5500000C R/W IIS FIFO控制寄存器 0x0
5.IIS FIFO寄存器
寄存器 地址 读写 描述 复位值
IISFIFO 0x55000010 R/W IIS FIFO寄寄存器 0x0