0. 源码 结构
drivers/spi/spi.c 对应spi 核心
drivers/spi/spidev.c 对应spi 设备驱动
drivers/spi/spi-bcm2835.c 对应spi 控制器驱动
1. 数据发送: ctrl->transfer_one 的实现
2. 注册子设备
int spi_register_controller(struct spi_controller *ctlr) 注册spi 控制器 controllerof_register_spi_devices(ctlr); 注册spi 子设备
3. spi 控制器挂载在 platform_bus_type
spi 子设备和设备驱动挂载在spi_bus_type
4. spi_bus_type 上的设备与驱动的匹配 spi_bus_type->match
struct bus_type spi_bus_type = {
.name = "spi",
.dev_groups = spi_dev_groups,
.match = spi_match_device,
.uevent = spi_uevent,
};
EXPORT_SYMBOL_GPL(spi_bus_type);