Как переслать IOCTL из i2c-dev.c в драйвер адаптера (i2c-rt3352.c) - PullRequest
0 голосов
/ 18 августа 2011

Я пишу драйвер адаптера I2C для SOC. Этот адаптер уже существует в системе, и драйвер RTC работает с ним через .master_xfer.

Я хотел бы отправить IOCTL из приложения через / dev / i2c. Я загрузил 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?

Ответы [ 2 ]

0 голосов
/ 23 августа 2011

Я нашел способ передать свои собственные IOCTL: Указатель на функцию .algo_control в структуре i2c_algorithm будет обрабатывать специальные ioctl.

i2cdev_ioctl -> (по умолчанию) -> i2c_control -> (по умолчанию) -> (adap-> algo-> algo_control)

0 голосов
/ 18 августа 2011

В выводе я вижу, что вы отправляете IOCTL 0x03, что это?это пользовательская команда?Один из способов записи / чтения - это команда I2C_RDWR ioctl.Вам необходимо собрать i2c_msgs в вашем приложении и выполнить команду I2C_RDWR с помощью ioctl.I2C_RDWR понимается только драйвером i2c-dev и вызывает функцию передачи адаптера.

Команда IOCTL не передается драйверу адаптера, нет возможности связаться с драйвером адаптера с помощью IOCTL, если вы используете интерфейс драйвера i2c-dev.

...