#linux-kernel #linux-device-driver #embedded-linux #i2c #usrp
Вопрос:
У меня возникла проблема с чтением с устройств GPIO на встроенном устройстве (usrp n310). i2cdetect
дает «UU» для конкретных устройств, к которым я пытаюсь подключиться, указывая, что устройства уже заняты чипом. /sys/bus/i2c/драйверы показывает, что драйвер, связанный с этими устройствами, является pca953x. Ранее я мог читать и записывать с устройства GPIO (tca6416) на платформе zc706, однако при сравнении драйверов /sys/bus/i2c/я не вижу никаких драйверов, связанных с этим чипом. Код, который я использую, выглядит следующим образом
#include "i2c_dev.hpp" int main() { int i2cfd; __s32 num; // Opening i2c adapter 6 printf("Opening bus adaptern"); i2cfd = open("/dev/i2c-6", O_RDWR); if ( i2cfd lt; 0 ) { printf("Failed to open /dev/i2c-6: %sn", strerror(errno)); return 1; } // Instatiating three objects of IO_Expander class IO_Expander dba; // Reading data from the IO Expander printf("Setting slave address of devicen"); if (ioctl(i2cfd, I2C_SLAVE, 0x20) lt; 0) { printf("Error setting slave address:%sn", strerror(errno)); return 1; } printf("Reading data from the IO Expander for DB-A Objectn"); num = dba.read_data(i2cfd, 0x00); if (num lt; 0) { printf("Error reading data: %sn", strerror(errno)); } else { printf("The input value is %dn", num); } printf("Leaving DB-A Objectnnn"); // Closing the adapter close(i2cfd); }
Итак, я не могу читать с устройств GPIO на платформе n310 из-за этого драйвера pca953x? Если да, то будет ли правильным подходом «отвязать» драйвер pca953x от устройств, чтобы считывать с них значения?
Комментарии:
1. Что ты пытаешься сделать? Чего здесь можно ожидать? Зачем вам нужно развязать драйвер ядра?
2. @0andriy на n310 есть чип(tca6408), с которого я пытаюсь считывать значения, но не могу, потому что он, похоже, используется драйвером pca953x. Я отредактирую свой оригинальный пост
3. Зачем вам нужно их читать? Зачем ? (Вы, вероятно, не поняли, почему у нас есть драйверы ядра в первую очередь)
4. Что в настоящее время использует линии GPIO, предоставляемые расширителем ввода-вывода, и можете ли вы отключить эти линии GPIO вместо того, чтобы отключать сам расширитель ввода-вывода?
5. pca953x-это драйвер для чипа TCA6416.