Изменение адреса I2C на лету драйвера устройства Linux - PullRequest
0 голосов
/ 24 августа 2010

У меня есть две камеры, подключенные к моей системе Linux. Камеры управляются через I2C. Драйвер устройства для отдельной камеры основан на драйвере устройства i2c-core. Я хочу переключаться между двумя камерами. Поэтому я хочу изменить адрес I2C на лету, чтобы управлять одной или другой камерой.

Это разумно? Если да, есть ли функция, которая делает это, или необходимо отсоединить и присоединить клиента с помощью i2c_detach_client и i2c_attach_client соответственно?

Спасибо за любой совет, Стефан

Ответы [ 2 ]

1 голос
/ 08 сентября 2010

Если я правильно понимаю ваш вопрос, вы должны получить устройство для каждой камеры в / dev /, почему бы не открыть оба устройства вместо попытки сделать что-то, что потребует от вас переписать большие части драйвера?

Я предлагаю вам взглянуть на документацию, найденную здесь: http://www.mjmwired.net/kernel/Documentation/i2c (обратите внимание на различные темы слева).

0 голосов
/ 17 мая 2011

Решение, указанное в вашем комментарии, должно работать.Ранее я написал общий драйвер I2C с интерфейсом ioctl, который просто устанавливает запись client-> addr, и это позволило мне протестировать шину.

Обратите внимание, что функции i2c_detach_client и i2c_attach_client были удалены в более новых ядрах.

...