Драйвер uCLinux Maxim14830 не проверяется

Я пытаюсь заставить оценочную плату Maxim14830 работать с моим SOM ​​Emcraft STM32F4. На моем SOM ​​запущено ядро ​​Emcraft uClinux 2.0.0 (взято из ядра 4.4) на github ( здесь я планирую попробовать это и с версией ядра 4.5).

Драйвер не регистрирует 4 устройства ttyMAX[n]. При дальнейшей проверке ни один из кодов драйвера max310x.c фактически не выполняется на основании добавленных мною printk. Я бы по крайней мере ожидал, что функция зонда запустится во время загрузки.

Исходный код на github для драйвера maxim14830 (протокол?) Находится здесь max310x.c

Исходный код на github для драйвера spi (контроллера?) Находится здесь spi-stm32.c

Я смог добавить устройство spidev нормально, так что я считаю, что это проблема, уникальная для maxim14830.

Я вижу spi-устройство здесь:

/sys/devices/platform/soc/40003800.spi/spi_master/spi1/spi1.0 # cat modalias 
spi:maxim14830

Я вижу драйвер max310x здесь:

/sys/bus/spi/drivers/max310x

Я вижу следующие записи devicetree:

/sys/firmware/devicetree/base/soc/spi@40003800/max14830@0 # cat compatible 
maxim,maxim14830
/sys/firmware/devicetree/base/clocks/osc_max14830

Мой девичник выглядит так:

&spi_2 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_spi_2>;
    cs-gpios = <&gpiob 9 OUT>;
    timeouts = <3>;

    max14830: max14830@0 {
        status = "okay";
        compatible="maxim,maxim14830";
        reg = <0>;
        gpio-controller;
        #gpio-cells = <2>;
        spi-max-frequency = <20000000>;
        interrupt-parent = <&exti>;
        interrupts = <10>;
        clocks = <&spi_uart_clk>;
        clock-names = "xtal";
    };

    spidev: spidev@2 {
            status = "disabled";
            compatible = "linux,spidev";
            spi-max-frequency = <20000000>;
            reg = <0>;
    };
};

Я могу скомпилировать свой блоб дерева устройств и нормально запустить соответствующий образ linux. Из моих printk, stm32_spi_probe вызывается из "драйвера контроллера", но, насколько мне известно, код драйвера max310x.c не вызывается после..

Куда мне идти, чтобы отладить это дальше? Это мой первый встроенный проект Linux, и я мог бы использовать некоторые указатели..

0 ответов

Другие вопросы по тегам