博客
关于我
spi核心层驱动模型简述
阅读量:345 次
发布时间:2019-03-04

本文共 1355 字,大约阅读时间需要 4 分钟。

#include <linux/kernel.h>
#include <linux/device.h>
#include <linux/init.h>
#include <linux/cache.h>
#include <linux/dma-mapping.h>
#include <linux/dmaengine.h>
#include <linux/mutex.h>
#include <linux/of_device.h>
#include <linux/of_irq.h>
#include <linux/clk/clk-conf.h>
#include <linux/slab.h>
#include <linux/mod_devicetable.h>
#include <linux/spi/spi.h>
#include <linux/of_gpio.h>
#include <linux/pm_runtime.h>
#include <linux/pm_domain.h>
#include <linux/export.h>
#include <linux/sched/rt.h>
#include <linux/delay.h>
#include <linux/kthread.h>
#include <linux/ioport.h>
#include <linux/acpi.h>
static struct class spi_master_class = {
.name
= "spi_master",
.owner
= THIS_MODULE,
.dev_release
= spi_master_release,
.dev_groups
= spi_master_groups,
};
struct bus_type spi_bus_type = {
.name
= "spi",   //总线在系统中的名称
.dev_groups
= spi_dev_groups,
.match
= spi_match_device, //spi总线上设备与驱动的匹配方式
.uevent
= spi_uevent,
};
EXPORT_SYMBOL_GPL(spi_bus_type);
static int __init spi_init(void)
{
int
status;
//申请buf空间 用于数据传输?
buf = kmalloc(SPI_BUFSIZ, GFP_KERNEL);
//注册总线  sys/bus/下的spi目录
status = bus_register(&spi_bus_type);
//创建主机控制器的类  sys/class/下的spi_master目录
status = class_register(&spi_master_class);
return status;
}
//可以看出,此宏在系统初始化时是先于module_init()执行的。
//可见,在初始化阶段,spi_init函数向系统注册了一个名为spi的总线类型,
//同时也为SPI控制器注册了一个名为spi_master的设备类
postcore_initcall(spi_init); 

转载地址:http://nome.baihongyu.com/

你可能感兴趣的文章
chat 快问!
查看>>
2.Html与CSS
查看>>
6.Xml
查看>>
Linux总结
查看>>
DKT—Going Deeper with Deep Knowledge Tracing
查看>>
Android简单MVP解析接口列表,搜索框,点击切换
查看>>
ADB
查看>>
响应的HTTP协议格式+常见的响应码
查看>>
Java数组
查看>>
创建线程方式
查看>>
线程池
查看>>
Netty读写方法
查看>>
LRUCache
查看>>
Mac上如何强制关闭应用
查看>>
关于Linux系统中touch命令的说明
查看>>
剑指Offer03-数组中重复的数字
查看>>
将windows里的内容直接复制粘贴到ubuntu,提高效率
查看>>
将tomcat设置成window自启动服务
查看>>
webservice 远程服务器返回错误:(400)错误的请求
查看>>
[日常] PHP与Mysql测试kill慢查询并检验PDO的错误模式
查看>>