《micro2440开发》第三章:s3c2440A IIS总线部分

    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


你可能感兴趣的:(《micro2440开发》第三章:s3c2440A IIS总线部分)