Спасибо за наводку.
Но всё равно устройства у нас все достаточно производительные, и все SPI-ные, кроме одного. А всё же проще когда всё на одной шине, так что оно подключено через конвертер.
Вполне возможно.
Я уже в комментариях к первой части говорил, что мне необходима гальваническая развязка, что с I2C сделать не так просто. А одно устройство на I2C на плате будет иметься, так что оно будет подключено через SPI-I2C конвертер.
Так что я буду рассматривать возможность написания для конвертера драйвера как для I2C контроллера. А для подключенной через него железки будет писаться уже обычный драйвер I2C устройства.
IIC не так просто развязать. Сейчас делаем плату для измерения собственных 20-ти битных АЦП, естественно это всё нужно каким то образом гальванически развязать.
Вначале тоже хотел предложить вариант с FT232 или FT245, но потом решил что LPT проще. С ним то работать совсем просто, а для userspace ещё можно использовать библиотеку parapin.
Вполне можно организовать SPI контроллер на базе LPT порта компа.
Для примера можно посмотреть на драйвер контроллера drivers/spi/spi_lm70llp.c (вообще это кит для температурного датчика, но датчик работает по SPI и в Linux драйвер разделён на две части: драйвер контроллера и работающий поверх него драйвер hwmon). Он как раз работает через LPT, правда это трёх-проводная версия SPI, но для примера вполне пойдёт.
Даташит на сам кит: www.national.com/assets/en/boards/LM70LLPEVALmanual.pdf
Если разработчики пилят ядро, то они должны возвращать свои наработки в mainline ветку ядра. Для нас c вами это значит что засыпание должно работать на любом дистрибьютиве. Но фактически это не совсем так, если в одном дистрибьютиве с той же версией ядра засыпание происходит нормально, а в другой нет, то это скорее говорит о том что ребята в первом дистре хорошо настроили хуки для ACPI.
Но всё равно устройства у нас все достаточно производительные, и все SPI-ные, кроме одного. А всё же проще когда всё на одной шине, так что оно подключено через конвертер.
Я уже в комментариях к первой части говорил, что мне необходима гальваническая развязка, что с I2C сделать не так просто. А одно устройство на I2C на плате будет иметься, так что оно будет подключено через SPI-I2C конвертер.
Так что я буду рассматривать возможность написания для конвертера драйвера как для I2C контроллера. А для подключенной через него железки будет писаться уже обычный драйвер I2C устройства.
Я ж говорю, начинающий, за замечание спасибо, учту.
Для примера можно посмотреть на драйвер контроллера drivers/spi/spi_lm70llp.c (вообще это кит для температурного датчика, но датчик работает по SPI и в Linux драйвер разделён на две части: драйвер контроллера и работающий поверх него драйвер hwmon). Он как раз работает через LPT, правда это трёх-проводная версия SPI, но для примера вполне пойдёт.
Даташит на сам кит: www.national.com/assets/en/boards/LM70LLPEVALmanual.pdf