2016-08-23 2 views
4

Какой из GPIO API в программировании драйвера устройства Linux предпочтительнее и при каких условиях: gpio_set_value() или gpiod_set_value()?gpiod_ * vs gpio_ * методы в ядре Linux

Один принимает GPIO desc как объект, в то время как другой принимает GPIO, анализируемый из дерева устройств.

ответ

6

Для всех новых драйверов рекомендуется использовать API gpiod_*. Старый gpio_* API считается устаревшим сейчас.

С this фиксации:

gpiolib: экспорт дескрипторов на основе GPIO интерфейс

Этот патч экспортирует gpiod_* семейство функций API, более безопасный альтернативу интерфейсу устаревших GPIO. Различия между gpiod и унаследованных GPIO API, являются:

  • GPIO работает с целыми числами, в то время как gpiod работает на непрозрачных обработчиков , которые не могут быть поддельными или использованными перед надлежащим приобретением
  • gpiod получить/набор функций знают о активное низкое состояние тела GPIO
  • GPIO потребители в настоящее время должна включать <linux/gpio/consumer.h> для доступа нового интерфейс, в то время как чипы водители будут использовать <linux/gpio/driver.h>

Унаследованный API gpio теперь построен как встроенные функции поверх gpiod.

Смотрите следующие ссылки для подробной информации о новом gpiod API:

Смежные вопросы