linux SPI bitbang 小结

本文主要讨论了在Linux内核3.6.4版本中,SPI bitbang驱动的问题和工作流程。当bitbang结构体不是结构体的第一个成员时,会导致kernel warning。问题出现在`spi_master_set_devdata`时,期望获取的是单独的`spi_bitbang`,但实际上设置的是整个结构体。解决方法是确保bitbang为结构体首成员,或者修改代码避免此类问题。
摘要由CSDN通过智能技术生成

前段时间同事调试 SPI 驱动, 遇到个问题来问我, 帮忙澄清了并顺便看了下SPI bitbang的驱动代码流程, 小结在此. 内核版本 3.6.4

本文所有文字都是原创, 转发请注明出处.


她的问题是这样的" 如果bitbang结构体不是排在第一个的话, 会有kernel warning出现." 以s3c24xx_spi 为例.

struct s3c24xx_spi{
    /* bitbang has to be first */
    struct spi_bitbang     bitbang;

    struct completion     done;

    void __iomem        *regs;
    int             irq;
    int             len;
    int             count;

    struct fiq_handler     fiq_handler;
    enum spi_fiq_mode     fiq_mode;
    unsigned char         fiq_inuse;
    unsigned char         fiq_claimed;

    void            (*set_cs)(struct s3c2410_spi_info *spi,
                      int cs, int pol);

    /* data buffers */
    const unsigned char    *tx;
    unsigned char        *rx;

    struct clk        *clk;
    struct resource        *ioarea;
    struct spi_master    *master;
    struct spi_device    *curdev;
    struct device        *dev;
    struct s3c2410_spi_info *pdata;
};


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值