Запускаем плату SK-A40I-SODIMM.
Необходим включить SPI на канале spi1.
В buildroot на скаченной виртульной машине драйвер SPI
для процессора A40I отсутствует.
драйверы Linux работают в ядре, надо описать нужное устройстве в DT, есть опциональная возможность управлять spi из юзерспейс, для этого надо описать драйвер для трансляции запросов из юзерспейс
Драйвер spidev включается, только если активировать в ядре "Allwinner A31 SPI controller".
Что соответствует подключению драйвера процессора A31 - файл spi-sun6i.c.
В исходниках \drivers есть только 2 драйвера для Allwinner spi-sun6i.c и spi-sun4i.c . Это для других серий процессоров.
Для A40I файла нет.
Соответственно в таком варианте использования уже при загрузке не подключаются DMA :
[ 2.710685] sun6i-spi 1c06000.spi: Failed to request TX DMA channel
[ 2.716975] sun6i-spi 1c06000.spi: Failed to request RX DMA channel
Где скачать драйвер для sun8i (a40i) и как его правильно подключить.
у a40i такой же spi контроллер как у "A31 - файл spi-sun6i.c." - он включен в конфиге, собирается и прописан в DT. Почему не используется dma не могу сказать - драйвер dma есть но для spi каналы dma не описаны.
Попробовал дописать dma для spi1 - вроде работает, данные принимает те же что и отправляет, прерывание одно вместо нескольких сотен на тесте. Для включения dma допишите выделенный текст в файле