编写SPI设备驱动程序

本文介绍了如何编写SPI设备驱动程序,包括在设备树中配置SPI设备,注册spi_driver以及如何发起SPI传输的接口函数,如spi_write、spi_read等。同时,文章提到了适用于不同上下文的同步和异步传输函数,并强调了spi_transfer和spi_message结构体在SPI通信中的作用。

编写SPI设备驱动程序




参考资料:

  • 内核头文件:include\linux\spi\spi.h

  • 内核文档:Documentation\spi\spidev


一、 SPI驱动程序框架

在这里插入图片描述

二、 怎么编写SPI设备驱动程序

2.1 编写设备树

  • 查看原理图,确定这个设备链接在哪个SPI控制器下

  • 在设备树里,找到SPI控制器的节点

  • 在这个节点下,创建子节点,用来表示SPI设备

  • 示例如下:

    &ecspi1 {
         
         
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_ecspi1>;
    
        fsl,spi-num-chipselects = <2>;
        cs-gpios = <&gpio4 26 GPIO_ACTIVE_LOW>, <&gpio4 24 GPIO_ACTIVE_LOW>;
        status = "okay";
    
        dac: dac {
         
         
            compatible = "100ask,dac";
            reg = <0>;
            spi-max-frequency = <10000000>;
        };
    };
    

2.2 注册spi_driver

SPI设备的设备树节点,会被转换为一个spi_device结构体。

我们需要编写一个spi_driver来支持它。

示例如下:

static 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值