簡體   English   中英

如何將IOCTL從i2c-dev.c轉發到適配器驅動程序(i2c-rt3352.c)

[英]How to forward IOCTL's from i2c-dev.c to adapter driver (i2c-rt3352.c)

我正在編寫SOC的I2C適配器驅動程序。 該適配器現在已存在於系統中,並且RTC驅動程序通過.master_xfer與它配合使用。

我想通過/ dev / i2c從應用程序發送IOCTL。 我已經加載了i2c_dev和所有模塊。 發送IOCTL后,我得到以下信息:

#i2ccmd read 0
i2cdev_open[382]
i2c_dev_get_by_minor[54]
i2c_get_adapter[896]
i2cdev_ioctl[186]
ioctl, cmd=0x03, arg=0x00
i2c_control[731]
i2cdev_release[420]
i2c_put_adapter[910]

i2cdev_ioctl方法不會將I2C_RDWR IOCT'L發送到我的適配器驅動程序。 如何將這些IOCTL轉發給i2c-rt3352.c?

在輸出中,我看到您正在發送IOCTL 0x03,這是什么? 這是自定義命令嗎? 寫入/讀取的方法之一是I2C_RDWR ioctl命令。 您需要在應用程序中構建i2c_msgs,然后使用ioctl發出I2C_RDWR命令。 I2C_RDWR僅由i2c-dev驅動程序理解,它將調用適配器傳遞函數。

沒有將IOCTL命令傳遞給適配器驅動程序,如果使用i2c-dev驅動程序接口,則無法使用IOCTL與適配器驅動程序進行通訊。

我已經找到了傳遞自己的IOCTL的方法:i2c_algorithm結構中的.algo_control函數指針將處理特殊的ioctl。

i2cdev_ioctl->(默認)-> i2c_control->(默認)->(adap-> algo-> algo_control)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM