Linux spi驱动分析(二)----SPI核心(bus、device_driver和device)
一、spi总线注册
这里所说的SPI核心,就是指/drivers/spi/目录下spi.c文件中提供给其他文件的函数,首先看下spi核心的初始化函数spi_init(void)。程序如下:
- static int __init spi_init(void)
- {
- int status;
- buf = kmalloc(SPI_BUFSIZ, GFP_KERNEL);
- if (!buf)
{
- status =
-ENOMEM;
- goto err0;
- }
- status = bus_register(&spi_bus_type);
- if (status
< 0)
- goto err1;
- status = class_register(&spi_master_class);
- if (status
< 0)
- goto err2;
- return 0;
- err2:
- bus_unregister(&spi_bus_type);
- err1:
- kfree(buf);
- buf = NULL;
- err0:
- &