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

Linux spi驱动分析(三)----spiddev分析

一、spidev简单介绍

        如果在内核中配置spidev,会在“/dev”目录下产生设备节点,通过此节点可以操作挂载在该SPI总线上的设备,接下来将从驱动层和应用层

来分析程序。

二、spidev驱动层

2.1、驱动注册

        分析一个设备驱动,一般都是从module_init和module_exit处开始,本文也不例外,程序如下:

点击(此处)折叠或打开

  1. #define SPIDEV_MAJOR            153    /* assigned */
  2. #define N_SPI_MINORS            32    /* ... up to 256 */

  3. static DECLARE_BITMAP(minors, N_SPI_MINORS);
  4. static struct spi_driver spidev_spi_driver = {
  5.     .driver = {
  6.         .name =        "spidev",
  7.         .owner =    THIS_MODULE,
  8.     },
  9.     .probe =    spidev_probe,
  10.     .remove =    __devexit_p(spidev_remove),

  11.     /* NOTE: suspend/resume methods are not necessary here.
  12.      * We don't do anything except pass the requests to/from
  13.      * the underlying controller. The refrigerator handles
  14.      * most issues