RK3399PRO的字符spi设备驱动

本文详细介绍了在Linux 4.4内核中,针对RK3399PRO平台的SPI设备驱动实现过程,包括动态申请设备号、注册设备到系统、创建设备类、注册SPI驱动、创建设备节点等内容。重点讲解了如何在内核中设置SPI主机部分,如资源申请、时钟使能和DMA通道配置。
摘要由CSDN通过智能技术生成

Linux 4.4内核SPI驱动特性:

①默认采用摩托罗拉SPI协议
②支持8位和16位
③软件可编程时钟频率和传输速率高达50MHz
④支持SPI 4中传输模式的配置
⑤每个SPI控制器支持一个到两个片选

1. 首先申请设备号(动态):

int alloc_chrdev_region(dev_t *dev,unsigned baseminor,unsigned count,const char *name);

含义就是申请一个动态主设备号,并申请一系列次设备号。
baseminor为起始次设备号,count为次设备号的数量,name为设备名,会在设备/proc/devices创建同名设备。

实例:
alloc_chrdev_region(&devno, 0,255, "myOled"); // 申请设备号devno,直观看到就是“myOled”会在系统的/proc/devices内显示。
   
2.注册设备到系统(没有创建设备):

int cdev_add(struct cdev *p, dev_t dev, unsigned count)

含义为 cdev 结构的指针,起始设备编号,以及设备编号范围。

实例接上:
spidev_major = MAJOR(devno);//get allocated major number dynamicly,根据devno获取到主设备号。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值