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

Linux spi驱动分析(二)----SPI核心(bus、device_driver和device)
一、spi总线注册

        这里所说的SPI核心,就是指/drivers/spi/目录下spi.c文件中提供给其他文件的函数,首先看下spi核心的初始化函数spi_init(void)。程序如下:

点击(此处)折叠或打开

  1. static int __init spi_init(void)
  2. {
  3.     int    status;

  4.     buf = kmalloc(SPI_BUFSIZ, GFP_KERNEL);
  5.     if (!buf) {
  6.         status = -ENOMEM;
  7.         goto err0;
  8.     }

  9.     status = bus_register(&spi_bus_type);
  10.     if (status < 0)
  11.         goto err1;

  12.     status = class_register(&spi_master_class);
  13.     if (status < 0)
  14.         goto err2;
  15.     return 0;

  16. err2:
  17.     bus_unregister(&spi_bus_type);
  18. err1:
  19.     kfree(buf);
  20.     buf = NULL;
  21. err0:
  22. &