Возможно кому-то это спасет немного нервов и времени. Наверняка, х
Задача- поднять драйвер термопары, которая есть в модулях ядра по SPI
Проблема- почему-то сыпалось постоянно, что занят Chip Select 0 для SPI1. Платформа- orange pi zero. В ходе ковыряния дошел до того, что в spidev это модуль, который позволяет обращаться к SPI из userspace. Как-то вот так. Что можно сделать - самый простой вариант -выкинуть его, т.к. SPI1 из userspace мне не нужен.
Как нашел:
https://wiki.st.com/stm32mpu/wiki/How_to_use_SPI_from_Linux_userland_with_spidev
&spi1 {
status = "okay";
temp-sensor@0{
compatible = "maxim,max6675";
reg = <0>;
spi-max-frequency = <4300000>;
spi-cpha;
};
// spidev@0 {
// compatible = "rohm,dh2228fv";
// reg = <0>;
// spi-max-frequency = <10000000>;
// };
};
А дальше - поправили dts,в случае orange pi zero - это будет BUILDROOT_BUILD_DIR/build/linux-5.10.10/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
И
make linux-rebuild.
make
P
S.Н
асчет
make
linux-rebuild не уверен, скорее всего есть способ как собрать чисто DTS и собрать образ, чтобы не триггерить постоянно пересборку ядра
P.S.S. Так-то и на Phenom 965
make linux-rebuildпроходит достаточно быстро
А, и читать из термопары довольно удобно:
cd sys/bus/iio/devices/iio:device0/Только потом полученное значение надо перегнать в нормальный формат
cat in_temp_raw