linux зависает при чтении регистров SPI на Imx6

У меня есть проект встроенного Linux, работающего на SoC NXP Imx6, и я пытаюсь использовать его SPI. Поскольку нет драйвера, поддерживающего как ведущий, так и подчиненный режим, я сначала попытался справиться с этим сам из пользовательского пространства. Я использовал mmap для доступа к регистрам SPI, но когда я пытаюсь прочитать/записать их с помощью mmap, система зависает, и мне приходится перезагружаться. Затем я сделал то же самое в пользовательском драйвере spi-imx, но мне нужно дождаться прибытия драйвера в функцию spi_imx_transfer, чтобы получить доступ к регистрам.

Я новичок в управлении устройствами Linux, поэтому удивляюсь, почему с помощью того же метода я могу получить доступ к регистрам других устройств, но не к SPI. Почему Linux зависает, когда я пытаюсь прочитать эти регистры? Можно ли читать или записывать их из пользовательского пространства или ранее в моем драйвере устройства?

Есть ли способ разрешить (или разблокировать?) доступ к регистрам?

Любой совет приветствуется.


person R Platão    schedule 10.02.2017    source источник


Ответы (1)


Это не проблема Linux: часы ECSPI были отключены. Итак, мне просто нужно установить правильный регистр в 1 (с помощью mmap) перед доступом к регистрам SPI.

person R Platão    schedule 17.02.2017