日期:2014-05-16  浏览次数:21022 次

Linux spi驱动分析(一)----总线驱动

一、SPI总线驱动介绍

        SPI总线总共需要四根线,包括MOSI、MISO、CLK和CS。本文首先从SPI设备注册开始来讲述SPI总线驱动。

二、设备注册

        在系统启动的时候,会按照顺序执行一些初始化程序,比如device_initcall和module_init等宏。这些宏是按照顺序执行的,
比如device_initcall的优先级高于module_init,现在我们看下在系统启动的时候注册的spi设备信息。

        程序如下:

点击(此处)折叠或打开

  1. /* SPI controller */
  2. #if defined(CONFIG_GSC3280_SPI)

  3. #ifdef CONFIG_SPI1
  4. static struct resource spi1_resources[] = {
  5.         [0] = {
  6.                 .start    = GSC3280_SPI1_BASEADDR & 0x1fffffff,
  7.                 .end    = (GSC3280_SPI1_BASEADDR & 0x1fffffff)+ 0x54 - 1 ,
  8.                 .flags    = IORESOURCE_MEM,
  9.         },
  10.         [1] = {
  11.                 .start    = EXT_GSC3280_SPI1_IRQ,
  12.                 .end    = EXT_GSC3280_SPI1_IRQ,
  13.                 .flags    = IORESOURCE_IRQ,
  14.